/srv/irclogs.ubuntu.com/2005/11/29/#ubuntu-boot.txt

=== sethmahoney [n=seth@67-42-7-62.ptld.qwest.net] has joined #ubuntu-boot
=== sethmahoney [n=seth@67-42-7-62.ptld.qwest.net] has left #ubuntu-boot []
=== jbailey [n=jbailey@modemcable139.249-203-24.mc.videotron.ca] has joined #ubuntu-boot
=== pitti [n=pitti@ubuntu/member/pitti] has joined #ubuntu-boot
=== Keybuk [n=scott@descent.netsplit.com] has joined #ubuntu-boot
fabbioneKeybuk: you got your ubuntulog08:33
Keybukthanks08:33
fabbioneKeybuk: anyway the best is to just send me a mail08:34
fabbionebecuase the bot is like -20 in my priority list :)08:35
Keybukis that nice -20, or ... ? :p08:35
fabbioneehhe08:36
Keybukinfinity: random question; are we leading the initramfs-tools versions or are Debian?  ...  I'm making quite major changes, so it would feel more natural to release it was 0.40ubuntu1 or something09:12
makxubuntu is behind atm.09:22
Keybukfsvo "behind"09:23
Keybukall the changes in your 039 are irrelevant for ubuntu09:23
makxwe have changes jbailey ok'ed but didn't want to push yet for breezy09:23
Keybukand replaced by those in our 040, which won't work for Debian09:24
Keybuk(or whatever version we use for it)09:24
infinityWe haven't merged with Debian yet, nor have I had time to tell makx what Debian changes I think are utter crack so we can merge the other direction.09:24
infinitySo, pick a version number at random, and make sure it has "ubuntu" in the name, and we'll sort it later. :/09:24
Keybukinfinity: ok09:24
=== infinity has been too busy to do much of anything with it and, frankly, has been ignoring initramfs while you've had your hardware activation lock on it.
infinitySo, hurry the heck up. :)09:25
Keybukam doing my changes right now :)  so the lock will be released once these are done and uploaded09:25
makxyou still don't have a manpage for update-initramfs09:26
Keybukinfinity: one thing I'm considering ... would it make more sense to provide initramfs-tools hooks and scripts in udev, which will just get copied in, rather than hardcoding use of udev into initramfs-tools ?09:26
makxKeybuk: yes09:27
makxwe already have an hooks/udev09:27
makxinifinity: please tell what is utter crack?09:28
infinityKeybuk : That would be beyond fine.09:28
infinityKeybuk : In fact, that's what we SHOULD be doing.09:28
infinityKeybuk : The less package-specific cruft we have in initramfs, the better.09:28
infinityKeybuk : If that approach can be done in both Debian and Ubuntu, our diffs may get very small again.09:29
Keybukok, because scripts/init-top/udev makes a lot of sense to me09:29
Keybukalong with hooks/udev to copy over things09:29
infinity(Which is one motivation for making it work that way)09:29
Keybukand ship those in udev itself, rather than in initramfs-tools09:29
infinitymakx : Nothing is "utter crack" so much as stuff that should be discussed.  I was being overly dramatic for effect. :)09:30
infinityKeybuk : Yes please.09:30
makxinfinity: evms will move to it's package what else is bad?09:31
infinityevms was one, yes.09:31
infinityRealistically, anything that can be factored back out (and our own implementation was guilty of this before you started hacking on it) should be removed.09:31
infinityThe more initramfs is kept as a flexible framework with very little actual "content", the better.09:32
Keybukactually, now I think about it, it should be init-premount as otherwise it'll happen before module loading -- and conf/modules should happen first09:32
infinityI'm also wondering at what stage we should declare klibc a failed experiment, and just use glibc everywhere.09:33
makxdo we have everything in busybox?09:33
Keybukinfinity: the klibc utilities are useful, but that's it09:33
infinityKeybuk : What does klibc ship that we couldn't get from turning on some busybox options?09:33
infinity(or building a few tiny binaries of our own, linked against glibc)09:34
makxwould help a lot on Debian, klibc isn't ready for quite some archs09:34
Keybukinfinity: no idea, the binaries that come with klibc are tiny09:35
Keybukwe could just copy anything there we didn't have in busybox09:35
Keybukrun-init is probably the main one ;)09:35
infinityReimplementing without klibc (whether or not we decide to use that branch) is definitely on my lis tof things to do.09:38
infinitySo we'll see where that goes.09:38
infinityRight now, I should get back to making X build.09:38
=== infinity shakes his fist at keybuk.
infinityIf yo ukeep fixing my bugs, I'll have to keep fixing Daniel's bugs, and the world will go all topsy-turvy!10:09
Keybukwho's bugs is daniels fixing?10:12
infinitySee, that may be where it all falls apart.10:13
Keybukand who is fixing my bugs?10:14
=== pitti_ [n=pitti@195.227.105.180] has joined #ubuntu-boot
Keybukinfinity: hmm, do we want firmware in the initramfs or not?10:25
fabbioneKeybuk: no, you don't10:26
fabbioneotherwise initramfs will explode10:26
Keybukwhat if they want an nfsroot on a network card that needs firmware?10:27
fabbioneKeybuk: tough luck... some initramfs are already too big10:29
fabbioneand netboot on some machines is broken for that10:29
infinityWell, PXE on wireless is never going to happen, but do we have wired cards that require firmware to go?10:38
fabbioneonly wireless10:39
fabbioneafaik10:39
infinityfabbione : firmware wouldn't explode the initramfs.  Most firmware is way smaller than the driver it goes with.10:39
fabbioneinfinity: we are already fighting with oversize.. we need to put initramfs on a heavy diet10:40
infinityBut, if we only ship firmware for wireless, it's not much of a win to have it in the initramfs IMO.10:40
infinityfabbione : Putting it on a diet is as simple as changing the mode used to build it.  It's undecided at the moment if we WANT to do that, though.10:40
infinity(The current mode has the advantage of being portable between hardware devices, whereas the smart detection modes mean if you chage your hardware, your system may not boot)10:40
fabbioneinfinity: ppc can't netboot.. it has been decided already :)10:41
fabbionestarting from the amount of drivers will be in the udeb and so on...10:41
KeybukKamion: ping?10:54
KeybukKamion: (for your scrollback pleasure) ... could we nuke the d-i/base-config/debootstrap/whatever-does-it thing that adds /proc to /etc/fstab ... it's absolutely useless ;)10:56
Kamionit's nice to be able to 'mount /proc' without having to remember the arguments11:01
Kamionbut file a bug on partman-target with rationale as to why it's actively bad to have it there11:01
Keybukit's not so much actively bad, as misleading11:04
Keybukit's never used by the main boot, so gives users the illusion that they can change it there and have some effect11:04
Keybukand as /sys and /dev aren't alongside it, it looks strange11:04
Kamionneed to also check that stuff in d-i doesn't rely on it11:05
Kamion(obviously it would be easy to change)11:05
=== pitti [n=pitti@ubuntu/member/pitti] has joined #ubuntu-boot
jbaileyKeybuk: wireless nfsroot will probably want firmware.01:24
jbaileyfabbione: ppc can suck raw eggs. =)  What we did in Debian for initrd was to set ppc to dep and not the others.01:25
fabbionedep?01:26
fabbionedude.. i have a ppc01:26
fabbioneand i use netboot01:26
fabbioneinitramfs must work01:27
fabbioneor i am going to make an offer this channel can't refure01:27
fabbionerefuse even01:27
jbaileySo set your initramfs generator to dep mode.01:29
jbaileyJust because that arch is broken doesn't mean the others need to be penalised against a very useful use case.01:29
fabbionei still need to figure who does root over wireless01:30
makxjbailey: please upload latest initramfs-tools :)01:32
jbaileymakx: I'd prefer in general that 'sync with ubuntu' contained some level of details.01:37
=== jbailey builds.
jbaileyIt's not that important since Ubuntu is upstream for you.01:38
jbaileyBut since that's the only changelog file, you're actually dropping information there.01:38
jbaileyThere's no way to trace what's changed without a debdiff.01:39
jbaileymakx: Uploaded.01:39
KeybukI'm confused, why can't ppc netboot?  why does it have a maximum ramfs size?02:14
fabbioneKeybuk: for some reasons OF can't load a file bigger than 6MB via tftp02:15
Keybuksounds like a bug that can be fixed02:15
Keybukjust load the initramfs in 6MB chunks02:16
jbaileyKeybuk: There seems to be a discussion about hostnames on the u-d.  Didn't we solve this problem at ubz?02:17
jbaileyISTR you or someone asking about it.02:17
Keybukno?02:17
Keybukwasn't me02:17
jbaileyHmm02:17
jbaileyColin's apparently enabled hostname now which makes it harder to get rid of busybox if we want to at some point.02:17
Keybukdo we want to get rid of busybox?02:18
infinityI don't.  busybox is love.02:19
Keybukin busybox vs. klibc-utils, I err towards busybox IF we can get it to stop forking for its built-ins :)02:19
infinityJeff is a purist, however, who thinks that eventually we can implement the whole thing as ed scripts.02:19
=== HiddenWolf [n=HiddenWo@136.76.dynamic.phpg.net] has joined #ubuntu-boot
jbaileyKeybuk: My idealist version is that it should be possibly to disable it and get a 20k initramfs in dep mode. =)02:20
jbaileypossible, rather.02:20
Keybukwhat shell would you use ?02:21
Keybukand udev alone is about 150-200K02:21
jbaileyIs it that big now?02:21
jbaileyHmm02:21
jbaileyOkay, 100k then.02:21
jbaileyinitramfs' are gzip'd.02:21
jbaileyKeybuk: There's no reason for things in there not to be ash friendly.02:22
Keybukudevd is 55K, udevplug is 28K02:22
Keybukall of the little helpers are about 240K together02:23
Kamionjbailey: harder to get rid of busybox> I don't understand how me enabling hostname makes it any harder?02:24
Kamionand busybox' shell *is* ash, near enough02:24
infinityYou jus tgave us one more crutch?02:24
Kamiontrue02:24
infinityNot that I mind, terribly.02:25
pittiKeybuk: can we recognize ditital cameras by a device type argument, or do we need usermaps, just as with scanners?02:25
jbaileyKamion: What he said.  It's only an issue if there's still value in reducing the initramfs size by switching to really tiny utilities.02:26
jbaileyKamion: My argument is that there is, based on the fact that reading things over the network in grub is suck, as is reading off of flash.02:26
infinityI'm not sure there is much value in trying to make it tiny.02:26
infinityMaking it not HUGE is good, but I dunno how tiny it needs to be.02:27
Keybukpitti: where there's a usermap now, there's probably a good reason02:27
infinityPoeple booting from network and flash don't do it often enough to care about a few extra seconds' boot time.02:27
Keybukyou can do class-matching with the existing usermaps02:27
infinity(At least, they shouldn't be)02:27
Keybukso I figure if they could, they would have02:27
jbaileyinfinity: Having an embedded device be usable in 5 to 10 seconds is good.  Loading the current sized initramfs off of CF was reported to be in the 1 to 2 minute range.02:27
pittiKeybuk: ok, so I'm going to merge libgphoto2 for now (just wanted to ask whether it woudd be a complete waste)02:28
infinityjbailey : I'd argue that our bug lies elsewhere, then, that read speed is inexcusable.02:28
jbaileyinfinity: Limitation of pc bios.  No dma, sucky short reads.02:29
jbaileyThat's why it's not a problem at runtime.02:29
infinity(And why are embedded device folk running Ubuntu kernels and bloated initrds anyway?)02:30
Keybukpitti: I think we should keep both usermaps, we can support them for free; and only remove them if we're damned sure we can replace them for every device they use02:31
jbaileyinfinity: CF != embedded in every case.02:32
pittiKeybuk: ok; Debian's libgphoto generates its own udev rules from the usermap ATM02:32
jbaileyinfinity: It can be thinclient as well.02:32
pittiKeybuk: that certainly works, but we might be able to speed it up with grepmap02:32
Keybukpitti: exactly, I think we should stick with the usermap simply because the conversion sucks02:32
pittiKeybuk: oh, it would be a conversion in the other way02:32
Keybukhow do you mean?02:33
pittiKeybuk: the former print-usb-usermap (which generated the usermap) now changed syntax to look like udev rules02:33
pittiKeybuk: of course we can revert to the older version for that02:33
Keybukoh right, what's the source of that?02:33
Keybukie. where does it get the ids02:33
infinityjbailey : It could be, yes.  I did thin clients with IDE-CF once.  Of course, I also don't recall them being that shit-slow at loading kernels off the CF either, so...02:33
=== Kamion wonders if there's any way to load i82365 or the other PCMCIA bridges using udev rules rather than an init script
Keybukfor that one, it sounds like we should use the udev rules then -- call it /etc/udev/rules.d/85-gphoto.rules or something02:34
Kamionyenta_socket should be handled automatically now02:34
KeybukKamion: is there an event you can load them on?02:34
KamionKeybuk: hard to tell - all my machines are yenta AFAIK02:34
infinityjbailey : Oh well.  I can see that there are corner cases for tiny initrds, but I'm not sure it's a case I'm inclined to optimise for.  People who really need a tiny boot can figure out how to make one.02:34
infinity(monolithic kernels, whatever)02:34
Kamionhm, well, I could move the dodgy logic from pcmcia-cs' init script into a udev rule that gets called on pcmcia_socket add02:35
KeybukKamion: grep for them in modules.alias02:35
KamionKeybuk: I did; i82365 at least isn't there02:35
jbaileyinfinity: I'm not arguing to optimse for that.  Certainly I'm inclined to include busybox in every common case - I like having ls around if nothing else when I'm troubleshooting.02:35
Kamionnor is tcic02:35
jbaileyinfinity: But if there are reasonable things we can do (like poking the value into proc rather than using hostname) I think it's worth doing.02:36
KeybukKamion: a lot of the non-yenta bridges are ISA or equally antiquated, aren't they?02:36
infinityjbailey : Which one report claimed didn't work.02:37
KamionKeybuk: i82365 is ISA; I can't quite figure out what the hell tcic is, but it at least only does PCMCIA not Cardbus02:37
Kamioni82092 is PCI02:38
Kamion(and in modules.alias)02:38
Keybukthe ISA ones are a bitch, because there's no way to detect them except with a stick02:39
Keybukand some machines (usually Dells) don't like being poked with a stick02:39
pittiKeybuk: sorry, got distracted; I think the conversion tool parses it out of the C source02:41
Keybukpitti: ok, use the existing conversion tool then :)  I thought you meant they had a tool to convert usermaps into udev.rules02:41
Keybukso for gphoto, we should use udev.rules and write them to /etc/udev/rules.d/85-gphoto.rules02:41
Keybukwhat does libsane do?02:41
pittiKeybuk: for gphoto that's exactly how Debian does it now02:42
pittiKeybuk: are the udev rules pre-parsed into memory structures, or are the text files parsed every time?02:42
Keybukpre-parsed now02:42
pittiKeybuk: OTOH, udev parsing shouldn't be that much slower than grepmap, or is it?02:42
Keybuknote that the order matters, and our ordering is different to Debian's, so the filename might need to be different02:42
KamionKeybuk: pcmcia-cs already has a pcic_probe and /etc/default/pcmcia that you can frob if you need to; all I need to do is check /etc/default/pcmcia and load what it says to load, more or less02:42
KeybukKamion: ok, we could steal that I guess02:42
Kamionyeah, I think what I'll do is write /lib/udev/pcmciautils that reads /etc/default/pcmcia and loads the module02:43
makxjbailey: thanks! :)02:43
Kamionand attach that to pcmcia_socket add02:43
Keybukwhat adds pcmcia_socket ?02:44
Keybukif the helper could output a list of modules, you can use a rule like:  PROGRAM="/lib/udev/pcmciautils", RUN+="/sbin/modprobe $result"02:45
Keybukand make the helper exit 1 if there aren't modules02:45
Keybukthat's then consistent with the other things that do exactly that02:45
=== infinity [n=adconrad@loki.0c3.net] has left #ubuntu-boot []
pittiKeybuk: Debian uses udev rule symlink 25_* (gphoto); so 85 is ok for us?02:58
Keybuk85-gphoto.rules file is what we should have02:58
Keybukhmm02:59
Keybukhang on02:59
Keybukwhat do these rules do, just assign permissions?02:59
Keybukcan you paste one?02:59
KamionKeybuk: what adds pcmcia_socket> cs.c, I think, in an __init03:28
Keybukright, so how does that get loaded?03:29
Keybukpitti: so, yeah, paste a rule example couldya for gphoto?04:04
pittiKeybuk: I didn't continue the merge during the meeting, gimme some minutes04:04
Keybuk:(04:04
=== infinity [n=adconrad@loki.0c3.net] has joined #ubuntu-boot
KeybukI guess I could just steal the debian package and peek <g>04:05
Keybukpitti: so, these rules are really sucky04:07
Keybukcould I suggest a _little_ tweak :)04:07
KamionKeybuk: it's part of pcmcia_core; good question exactly what loads that first04:07
pittisure04:07
Keybukright now it generates something that looks like ...04:07
KeybukBUS!="usb", ACTION!="add", GOTO="libgphoto2_rules_end"04:07
Keybuk  : rules here04:07
Kamionfor PCI systems it'll be coldplugged as usual, since the world depends on it04:07
KeybukLABEL="libgphoto2_rules_end"04:07
Keybukso that has a problem already04:08
Keybukyou can't do BUS!= :)04:08
Keybukchange that to be SUBSYSTEM!="usb_device"04:08
Keybukthen the rules themselves, they look like04:08
pittiBUS != 'usb' looks a bit odd anyway?04:08
KeybukSYSFS{idVendor}=="0553", SYSFS{idProduct}=="0202", RUN+="/etc/hotplug/usb/usbcam"04:08
Kamionwe have a 'modprobe pcmcia' in the pcmcia_socket add udev rule for ISA systems etc., but I'm not sure what would cause that rule to actually get called on such systems04:08
Keybukpitti: it's skipping the rules for anything not a usb add event04:08
KamionI was hoping not to need an init script ...04:08
pittiah, ok04:09
Keybukand the script just assigns permissions to things04:09
Keybukwhich is a bit doofus04:09
Keybukso....04:09
Keybukcould we change the output to be something like04:09
pittiset the permissoins right away, yes04:09
KeybukSUBSYSTEM!="usb_device", GOTO="libgphoto2_rules_end"04:09
KeybukSYSFS{idVendor}=="0553", SYSFS{idProduct}=="0202", GROUP="plugdev", MODE="0660"04:10
KeybukLABEL="libgphoto2_rules_end"04:10
pittiyes, that looks better04:10
Keybuk(and yes, I deliberately dropped the ACTION!=add thing)04:10
pittiI'll modify print-udev-rules-bla.c accordingly04:10
Keybukthen write the file as /etc/udev/rules.d/45-gphoto.rules04:10
Keybuk(45 not 85 so it doesn't get included in initramfs)04:10
pittiok, sure04:10
Keybukthe rule numbers are set up in such a way that 50-xxx is the perfect place for user rules ... 20 assigns names, 40 permissions, 60 symlinks, 80 runs programs and 90 runs modprobe04:11
Keybukinitramfs doesn't have permissions, symlinks or programs ... so gets 0-39 and 90+04:12
=== jbailey removes 'initramfs' from his nick highlight list.
Keybuknow, I shall make tea04:14
Keybukthen I shall get my laptop booting again, after I foolishly forgot to put udev.conf in the initramfs <g>04:14
Kamionok, I'm going to give pcmciautils an init script that does the bridge module probe if it needs to; I don't see a way to do this within udev05:02
Kamionand I'll make it take a copy of /etc/default/pcmcia as /etc/default/pcmciautils so that I don't have to deal with pcmcia-cs.postrm removing the former05:03
Keybukyeah, I don't think there is a way to do it with udev05:03
Keybukudev reacts to events, if there's no event to react to, there's no way to do it05:04
Keybukudev will correctly react to the modprobe, of course, so all you need to do is _start_ it05:04
Keybukfor most devices, the thing that starts stuff is udevplug, which walks sysfs and tickles everything the kernel's found so far05:04
Keybukbut if the kernel hasn't found legacy pcmcia buses, there needs to be a manual stick05:05
Kamionall the init script does is modprobe pcmcia_core, then if there's no /sys/class/pcmcia_socket/* yet modprobe $PCIC05:05
Kamionbasically05:05
jbaileyI thought all of the pccard love was supposed to just get folded in so that it behaved the same as any other pluggable bus (usb, ieee1394, etc..)05:05
Kamionjbailey: it does, but only for PCI bridges05:05
Keybukjbailey: it has been05:05
Kamionthen once the bridge is up, the rest is a regular hotpluggable bus05:05
Keybukjbailey: you still need something to modprobe the drivers for the old ISA pcmcia bridges though05:05
jbaileyAh, okay.05:05
KeybukKamion: ok ... beware that the /sys thing won't turn up straight away05:06
KamionKeybuk: no harm done if it doesn't, I think; I've stolen the code from pcmcia-cs.init to check whether there's a yenta bridge there by poking in /sys/bus/pci/devices/*/class05:06
Keybukright05:06
Kamionand fixed it to detect i82092 as well, which is the only other PCI bridge I can see05:06
Keybukthat stuff's probably needless now05:07
Keybukif there's a /sys/bus/pci/devices/*/class that's a yenta bridge, then yenta_socket will be loaded05:07
Kamionyeah, just a sanity-check to make sure we don't accidentally probe the wrong bridge05:07
Keybukand you'll have /sys/bus/pcmcia05:07
Keybuk*nods*05:07
Kamionbecause apparently /etc/default/pcmcia is sometimes broken on old upgrades and says i82365 when it isn't05:08
Kamionand we check /sys/class/pcmcia_socket/* before any of this too, so if boot-time events loaded the bridge then none of this will happen anyway05:08
Keybukok, fixed udevplug bug, time for manual boot #305:08
Keybukugh @ /sbin/udevplug -Bide -Bscsi -Bi2o -Busb -Bieee1394 /class/mem /class/misc /class/tty /class/vc /block05:10
KeybukI'm so aliasing that to /sbin/udevplug --whatever-initramfs-needs05:10
Keybukanyone know what the serio, eisa or MCA buses are?05:12
HiddenWolfeisa is/was a competitor to ps/205:15
jbaileyeisa was an extended isa bus.05:15
jbaileySupported some autoconfiguration, and a slightly wider bus path.05:15
jbaileyThe sockets could also take isa cards.05:15
Keybukjbailey: anything on any of those we might need for initramfs?05:15
Keybukie. storage or hid controllers?05:15
HiddenWolfhm05:15
jbaileyKeybuk: EISA *might* actually be autodetectable enough for initramfs.05:15
Keybuk/sys/bus/eisa/devices is empty on my system (at least on initial startup)05:16
HiddenWolfIt was somewhat expensive to implement (though not as much as MCA), so it never became particularly popular in desktop PCs. However, it was reasonably successful in the server market,05:16
jbaileyOn a truly ancient system, yeah.  It was a good way of actually getting harddrive controllers in.  I think my alpha has eisa.  But it was popular in servers (and freaking expensive)05:16
Keybuk/sys/bus/MCA has turned up in 2.6.15 ... I think it wants to shout05:16
jbaileyMCA is overloaded.05:17
jbaileyClasic MCA was a PS/2 architecture with autodetection.05:17
KeybukI'll leave them out until someone bitches05:17
jbaileyI think it's now something else.05:17
Keybukwe're already poking enough as it is05:17
jbaileyI maintainer my argument that we don't actually care about anything pre-PCI for booting. =)05:18
jbaileymaintain, rather =)05:18
jbaileyAnything that old won't run gnome in any useful way.05:18
Keybukwhat's i2o?05:18
Keybukyou put that in the spec when I wasn't looking05:18
jbaileyIt's a bus standard that was suppose to feature standarized drivers for high end hardware.05:18
jbaileyI've never actually had one.  Tollef has, though.05:19
Keybukdoes it have root filesystems on it?05:19
jbaileyIt does on his box.05:19
jbaileyinitramfs-tools theoretically supports it in Breezy.05:19
Keybukok05:19
Keybuk# /sbin/udevplug -Bide05:19
Keybukudevplug[4499] : scan_bus: unable to open bus 'ide'05:19
Keybuk\o/05:19
Keybuksame thing for scsi, i2o, usb and ieee139405:20
Keybuk(those bits are only for compile-your-own idiots ... those buses should be missing at this point, as we haven't probed the pci bus for storage controllers yet)05:21
Keybukhmm, is it really /sys/bus/ieee1394 ?  I haven't got one05:21
jbaileyjbailey@starshine:/sys/bus$ ls05:21
jbaileyi2c  ide  ieee1394  macio  of_platform  pci  pcmcia  platform  scsi  usb  vio05:21
Keybuki2c ?  is that different to i2o?05:22
Keybukmacio?  vio?  WHO INVENTED ALL THESE THINGS?! :)05:22
Keybukmy laptop has a /sys/bus/pci_express ... wonder whether we should look for controllers on that05:22
jbaileyI think i2c is different, yes.05:23
jbaileyI don't know how, though.05:23
jbaileyjbailey@starshine:/sys/bus/i2c/drivers$ ls05:23
jbaileyi2c_adapter  PMac Keywest Audio  therm_pm7205:23
KeybukI2C (pronounce: I squared C) is a protocol developed by Philips. It is a05:23
Keybukslow two-wire protocol (10-400 kHz), but it suffices for many types of05:23
Keybukdevices.05:23
Keybukoh05:23
Keybukit's the fan-speed thing05:24
pittiKeybuk: hey, look at that nice rule:05:24
Kamionmacio and vio are similar-ish I think - at least, vio uses /proc/device-tree too05:24
pitti# USB PTP Class Camera05:24
pittiSYSFS{bDeviceClass}=="06", GROUP="plugdev", MODE="0660"05:24
pittiKeybuk: ^ *that*'s what rules should look like :)05:24
Keybukpitti: yeah, that one should work for a lot of things -- provided it's within a SUBSYSTEM!="usb_device", GOTO="..." thing05:25
KamionKeybuk: fan speed, some Mac sound devices, random other stuff on Macs too05:25
pittiKeybuk: yes, it is, I did the conversion05:25
Keybukkewl05:25
Keybukright, now for the biiig test05:25
pitticrw-rw---- 1 root plugdev 189, 260 2005-11-24 17:25 /dev/usbdev3.505:26
Keybukdoes /sbin/udevplug -Bpci -Iclass=0x010[01] * do the right thing?05:26
Keybukhmm05:26
Keybukthat caused ide_core, alim15x3 and generic to be loaded05:27
Keybukbut, pointedly, no /dev/hda to appear05:27
Keybukgrr05:27
pittiKeybuk: now I'll try to convince libgphoto to actually talk to /dev/usbdev3.5 instead of /proc/bus/usb/003/00405:27
pittis/4$/5/05:27
Keybukpitti: it'll be /dev/bus/usb/003/004 with our naming rules05:28
Keybukso you should just replace /proc with /dev05:28
pittiKeybuk: oh, ok, right now it's like above05:29
pittibut if that works in general, that should be fine05:29
Keybukyeah, that's the "kernel-assigned" name for those devices05:31
Keybukwhich is a bit boring05:31
Keybukhmm05:32
Keybukok05:32
Keybuk/dev/hda, oh /dev/hda, wherefor art thou /dev/hda?05:32
Keybukjbailey: ok, I'm clearly being stupid ... what provides those devices?05:35
jbaileyKeybuk: Eh? It's in /sys/block05:36
jbaileyWhat do you mean by what provides?05:36
Keybukwell05:36
Keybukwhat module do I need to load?05:36
Keybukthey're not in /sys/block yet, because I haven't loaded the right module05:36
jbaileyOh05:38
jbaileyyour specific ide module05:38
jbaileyide-disk05:38
jbaileyide-generic05:39
Keybukok... so how do I know to load ide-disk? :P05:39
jbaileyide-generic must be last.05:39
jbaileyYou have to walk /proc/ide to get the info on each device.05:39
Keybukno devices there yet ... you see05:39
Keybukjust /proc/ide/drivers05:40
Keybukohhh05:40
KeybukI see the problem05:40
jbaileyRight, but when you load cmd64x or whatever.05:40
Keybukwtf is "generic"05:40
jbaileyIt'll be there.05:40
Keybuknot "ide-generic", "generic"05:40
jbaileyDid they rename it?05:40
Keybukno...05:40
jbaileyAnd ide-generic doesn't have to be last, sorry, just has to be after any specific IDE drivers you want.05:40
jbaileyBut then /proc/ide will exist.05:40
Keybukgeneric is what got loaded (along with ide-core and the specific module) when I walked the PCI bus05:41
Keybuknot ide-generic05:41
jbaileyAh.05:41
jbaileyNo idea what "generic" is.05:41
jbaileydescription=PCI driver module for generic PCI IDE05:41
Keybukright, very odd05:42
Keybukok, so I need a rule in here somewhere to load ide-generic ... wonder how I'm going to shimmy that05:42
pittiKeybuk: how practical - our current libusb already checks for /dev/bus/usb before /proc/bus/usb :)05:57
pittiKeybuk: so I only need to teach it about /dev/usbdevX.Y05:57
Kamionok, that's pcmciautils updated; the only thing I think pcmcia-cs is needed for now is setting up the resource database on installation, and possibly some CIS bits05:57
KamionI'll look at those later05:57
Keybukpitti: you probably don't need to do that05:58
Keybuknobody is shipping without the /dev/bus/usb rules that I'm aware of05:58
pittiKeybuk: I could wait with the gphoto upload until you upload udev05:58
pittiKeybuk: we do at the moment :)05:58
Keybukwell, no, we don't TECHNICALLY :p05:58
Keybukyeah, I'd wait and not support usbdevX.Y05:59
Keybukhmm05:59
pittiKeybuk: ok, for testing I just modify my local udev rules, I guess05:59
Keybukdidn't we blacklist all of the framebuffer devices?05:59
Keybukahh06:00
Keybukno06:00
Keybukthe old hotplug pci.agent just skipped them06:00
Keybukhmm06:00
Keybukudevplug doesn't do that, of course06:00
KeybukI wonder whether there's some modprobe.d trick we can use to blacklist an entire class06:01
pittiKeybuk: yay, a symlink works nicely, great; thanks for your help06:03
Keybukpitti: symlink?06:04
pittiKeybuk: /dev/bus/usb/003/008 -> /dev/usbdev3.8, just for testing06:05
Keybukahh06:05
pittiKeybuk: that's how your udev will create the devs?06:05
Keybukit'll rename them06:05
Keybukthere won't be a /dev/usbdev3.806:05
Keybuk(ie. it uses NAME= not SYMLINK+=)06:06
pittiKeybuk: I mean /dev/bus/usb/xxx/yyy06:06
Keybukoh06:06
Keybukright06:06
Keybukyes06:06
pittiok, cool06:06
pittithen everything is settled06:06
Keybukis that what gphoto actually looks for?  it's not looking for /dev/bus/usb/3/8 ?06:06
pittilibsane uses libgphoto-port0, which uses libusb, which is prepared for your udev06:06
pittiKeybuk: I have to check the code if /3/8 is also supported06:07
pittibut since /proc/bus/usb always had three digits, that's what libusb currently looks for06:07
Keybukcause I think that's how Debian named them (which I thought was a bug, so I prematurely fixed it just in case)06:07
Keybukoooooh06:10
Keybukmy system has booted06:10
pittiKeybuk: 'k, /dev/bus/usb/3/9 works as well06:10
Keybukpitti: ah, so it looks for both?06:10
pittiyes06:10
Keybukwhich does it "prefer", looking at the code?06:10
pittiKeybuk: whatever comes first in asciibetical order06:10
pittii. e. 00x, I suppose06:11
Keybukoh right06:11
pittioh, wait, that was a lie06:11
pittiit doesn't sort06:11
pittiso, whatever readdir() delivers first06:11
pittinot that it would matter so much06:11
KeybukI mean which of /dev/bus/xxx/yyy, /dev/bus/x/y, /proc/bus/xxx/yyy does it look for first?06:12
pittiKeybuk: /dev is prefered over /proc, which is sane06:12
pittiKeybuk: the first two are indetermined06:12
Keybukok06:12
pittiKeybuk: it just walks the directory with readdir()06:12
pittibut that's fine AFAICS06:12
Keybukoh, so it doesn't actually build the path?06:13
pittithe important part is /dev > /proc06:13
Keybukright06:13
Keybukso I now have 5 bugs06:13
Keybuk1) ide-generic isn't loaded, so needs to be somehow06:14
Keybuk2) /lib/udev/ide_media gets passed the wrong thing06:14
Keybuk3) a typo in a rules file06:14
Keybuk4) framebuffers need blacklisting06:14
Keybukand06:14
Keybuk5) kernel still panics06:14
Keybukinterestingly it did #5 quite a way down the boot sequence, when hal started06:19
Keybukso maybe iz sysfs bug06:19
Keybukjbailey: ping?06:26
jbaileyKeybuk: pong06:26
Keybukwe utterly only support built-in IDE controllers or PCI IDE controllers, right?06:26
Keybukor does ide-generic activate anything that the PCI walk didn't?06:27
Keybukie. should I put "modprobe ide-generic" in a udev rule if we find a PCI IDE controller, or does it need to be out of the main sequence?06:27
Keybukhmm, deathly silence06:31
jbaileyide-generic should activate pretty much everything else that listens at the right addresses.06:34
Keybukok06:34
jbaileyWe added it in to support random embedded things and other bits that don't have the right chips.06:34
Keybukthe trouble is that a "modprobe ide-generic" won't wait06:35
Keybuk(for /dev/hda and stuff to appear)06:35
Keybukright06:41
Keybukmodprobe -q ide-generic06:41
Keybukudevstart -W06:41
Keybuk:)06:41
Keybukuh s/udevstart/udevplug/06:41
jbaileyLOL06:44
Keybukhmm, so I noticed one bug with leaving udevd running until the real filesystem06:44
Keybukwe move /dev out of the way :)06:44
jbaileyThe idea was to cd /dev first.07:17
jbaileyShould solve that, no?07:17
Keybukno, because it would still try and mknod /dev/foo07:36
Keybukis ok though07:50
Keybukif we kill it just before we exec init, and start it straight after, that's pretty short07:50
Keybukwe don't need it for exec init ... that's way after mountroot07:50
=== Mithrandir [n=tfheen@c5100BC63.inet.catch.no] has joined #ubuntu-boot
Mithrandirhiya09:23
Keybukheyhey09:26
Mithrandirjbailey: you pung?09:26
jbaileyMithrandir: Scott wanted to know about i2o09:26
jbaileyMithrandir: Since you've actually touched one, I was hoping you could answer better than I.09:26
Keybukno, I just wanted to know how dead I'd be if I didn't broke it on boot ;)09:26
Mithrandirsure, what's the question?09:26
Keybukuh, PROBE it on boot09:26
Keybukhello, freud09:26
MithrandirKeybuk: well, the system would be completely unbootable.09:27
Keybukthat's pretty much what I wanted to know09:27
Keybuki2o controllers are PCI storage controllers?09:27
jbaileyKeybuk: I don't know what Norweigians do when they're angry, but that's what you'd have to deal with.09:27
Mithrandirunless one, for some insane reason has / on something non-i2o, that is.09:27
jbaileyTax you, or something.09:27
Keybukjbailey: Tollef bites09:27
MithrandirI also slap people with x40s09:27
KeybukMithrandir: like IDE or SCSI?09:28
Keybuk... with their X4009:28
Mithrandiryes, but why would you do that if you have an I2O controller?09:28
KeybukI don't know what an i2o controller is09:28
KeybukI've never seen one before09:28
=== Keybuk wonders what his amd64 will have
jbaileyMithrandir: That's the part you can fill in that I can't. =)09:28
KeybukSATA I think09:28
jbaileyKeybuk: sata, probably. =)09:28
Mithrandirit's a disk controller, most often SCSI on the disk interface, but can be anything.09:28
jbaileyMithrandir: Aren't there i2o nics too?09:28
Mithrandiri2o is a standardised interface, so you only have to have one driver for all kinds of hardware09:29
Mithrandirjbailey: possibly.09:29
Keybukah, yes09:29
Keybukanother standardised interface09:29
Keybukthe nice thing about those is there are so many of them09:29
Keybukyou just need one driver for each bloody standardised interface09:29
Mithrandiryes :-)09:29
Keybukok09:29
Mithrandirit's like if you had a single SCSI card adapter which worked for all scsi cards, though.09:30
KeybukI'll leave -Bi2o in then09:30
Keybuknot that should actually have anything on it at that point09:30
Keybukthat probe is for stuff that got loaded *before* we probed the PCI bus for storage controllers09:30
Keybukusually "elmo woz ere" type things09:30
jbaileyMithrandir: (and then couldn't find any scsi cards)09:30
Mithrandirs/adapter/driver/, though09:31
MithrandirKeybuk: also, devices show up in /dev/i2o/hdX and not as /dev/hdX.09:31
Keybukdo they?09:33
KeybukO:-)09:33
Keybukperhaps you should rephrase that09:33
Keybukmaybe "could you make the devices show up in /dev/i2o" ... :)09:33
Mithrandirthey should show up as /dev/i2o/hdX, not /dev/hdX. :-P09:34
Keybukshould they?09:34
Mithrandirthat's what all the docs say, that's what the kernel default is and so on, so yes, I absolutely think so.09:34
Keybukthere isn't a kernel default09:34
Keybukhmm09:34
MithrandirMAKEDEV default, then09:34
Mithrandirunless you have a good reason for them to show up somewhere else.09:34
Keybukthere isn't a rule for that in current udev.rules ... so how does that work?09:35
Keybuk*shrug*09:35
KeybukI guess it just does09:35
Keybukkernel probably does something sick like DEVNAME=i2o/hdX09:35
Mithrandiron my i2o box (which runs hoary), I have both /dev/i2o_hda and /dev/i2o/hda09:36
Keybukkooky09:36
Mithrandir(as well as i2o_hda1, i2o/hda1, etc)09:36
Mithrandiryeah, I think just i2o/hdX is good09:37
Keybukcould you do a udevinfo -q all -n /dev/i2o_hda09:37
Keybukand udevinfo -q all -n /dev/i2o/hda09:37
Mithrandir: tfheen@my ~ > udevinfo -q all -n /dev/i2o_hda09:37
Mithrandirdevice not found in database09:37
Mithrandir: tfheen@my ~ > udevinfo -q all -n /dev/i2o/hda09:37
MithrandirP: /block/i2o!hda09:37
MithrandirN: i2o/hda09:37
MithrandirS:09:37
Mithrandir: tfheen@my ~ >09:37
Mithrandirblank line after the S:09:37
Keybukudevinfo -a -p '/block/i2o!hda'09:38
Mithrandirloads09:40
Mithrandirhttp://pastebin.com/43743509:40
Keybukinteresting09:43
Keybukwell, I guess it works09:46
Keybukunlike my IDE controller *sigh*09:46
MithrandirI'm going to get that particular machine available for testing in a few days, so I can do any kinds of testing you want.09:46
Mithrandirit's probably going back into production in not too long, though, as it's a dual 250 and we like to keep those busy.09:46
Keybuk*nods*09:47
Mithrandirdoes that mean "please tell me when you've installed dapper on it and what breaks"?09:57
Keybukyup09:57
Keybukpretty much09:57
Mithrandirit'll be easy for me to give out access to the box when it's reinstalled, if you're interested.09:58
Keybuksounds good09:58
Keybuktheoretically it should all be fine though09:59
KeybukI can't see any special handling for i2o in Debian or SuSE's rules09:59
Mithrandiryeah, and in theory theory and practice are equal.09:59
Keybukwhich probably means it was written a not-too-insane man09:59
Keybukand the kernel actually knows how to drive it09:59
Mithrandirthe original driver was written by a Mr. Cox.09:59
Mithrandiryou might have heard of him.09:59
Keybukindeed10:00
Mithrandirhe's probably insane, but in the good sense of the word.10:00
Keybuk:o)10:00
=== ..[topic/#ubuntu-boot:Keybuk] : http://people.ubuntu.com/~scott/bootcharts/dapper-20051124-1.png
=== BenC [n=bcollins@debian/developer/bcollins] has joined #ubuntu-boot

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!