On Sun, 2010-12-26 at 09:02 -0800, Arjan van de Ven wrote: > On 12/25/2010 6:02 PM, Giuseppe Dia wrote: > > Hi all, > > I'm trying to make the Omnibook driver > > (http://sourceforge.net/apps/mediawiki/omnibook/index.php?title=Main_Page > > last version from git) more Meego 1.1 netbook friendly. Compiling and > > installing is flawless, and it works (hot keys, blue tooth works on my > > Toshiba nb200) but the original driver doesn't have the MODULE_ALIAS > > macro defined, so it's not loaded at boot. > > As far as I know (correct me if I'm wrong), there's no /etc/modules or > > other explicit way to load a module at boot in meego and I understand > > that module loading in meego should be done just by enumeration by > > kernel only. > > > > So I added the MODULE_ALIAS macro (now modprobe > > usb:v0930pxxxxxxxxxxxxxxxxxxxxxx works) and the file 'omnibook' in > > modprobe.d with the relevant module options inside (option ectype=12 > > works for me), but the module isn't loaded during enumeration at boot. > > Now the involved hardware doesn't show anywhere, (so the system has no > > alias to match to) until the driver itself is loaded. > > To summarize: > > -) hardware won't show until driver is loaded, so no alias during > > enumeration > > -) I did a little test adding an alias directive with the a > > usb:v0930pxxxxxxxxxxxxxxxxxxxxxxX entry in dists.conf (I know, it's not > > supposed to be modified) but it won't load the module anyway. > > I know I miss something, but seems to me the classic egg-chicken > > problem. Maybe this is the reason why it was left outside the meego > > kernel? > > Besides this, being a 'group of drivers' rather than a driver for a > > single device, choosing the module_aliases correctly is a task on > > itself. > > Thanks for your advice, > > if it's machine specific you can always use the DMI entries to match the > specific machine > this is done by for example the thinkpad fan drivers, and a series of > others.... > > they do it like this: > > > /* > * DMI matching for module autoloading > * > * See http://thinkwiki.org/wiki/List_of_DMI_IDs > * See http://thinkwiki.org/wiki/BIOS_Upgrade_Downloads > * > * Only models listed in thinkwiki will be supported, so add yours > * if it is not there yet. > */ > #define IBM_BIOS_MODULE_ALIAS(__type) \ > MODULE_ALIAS("dmi:bvnIBM:bvr" __type "ET??WW*") > > /* Ancient thinkpad BIOSes have to be identified by > * BIOS type or model number, and there are far less > * BIOS types than model numbers... */ > IBM_BIOS_MODULE_ALIAS("I[MU]"); /* 570, 570e */ > > > Hi, after a bit of testing I have a working patch of Omnibook drivers for Toshiba NB200 module autoloading, addressing bug 318. https://bugs.meego.com/show_bug.cgi?id=318 It works on Meego 1.1 and I'm currently testing it on 1.2 (no problems so far). Please note that I already submitted the patch to Omnibook developers months ago: http://sourceforge.net/tracker/?func=detail&aid=3146110&group_id=174260&atid=868544 Do you think it could be interesting to include it? Regards,
Giuseppe Dia >From f4cb5859f129ded2fc30f43562f5080c3c6ec353 Mon Sep 17 00:00:00 2001 From: Giuseppe Dia <[email protected]> Date: Mon, 27 Dec 2010 12:32:56 +0100 Subject: [PATCH] Toshiba NB 200 MODULE_ALIAS and Dmi table lookup --- init.c | 1 + laptop.h | 9 +++++++++ 2 files changed, 10 insertions(+), 0 deletions(-) diff --git a/init.c b/init.c index c5278fe..d337c83 100644 --- a/init.c +++ b/init.c @@ -531,5 +531,6 @@ module_param_call(ectype, set_ectype_param, get_ectype_param, NULL, S_IRUGO); module_param_named(userset, omnibook_userset, int, S_IRUGO); MODULE_PARM_DESC(ectype, "Type of embedded controller firmware"); MODULE_PARM_DESC(userset, "Use 0 to disable, 1 to enable users to set parameters"); +MODULE_ALIAS("dmi:*:svnTOSHIBA:pnTOSHIBANB200:*:rnKAVAA:*"); /* End of file */ diff --git a/laptop.h b/laptop.h index dd0a198..3fe4682 100644 --- a/laptop.h +++ b/laptop.h @@ -610,6 +610,15 @@ static struct dmi_system_id omnibook_ids[] __initdata = { }, { .callback = dmi_matched, + .ident = "Toshiba NB200", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "TOSHIBA NB200"), + }, + .driver_data = (void*) TSM70 + }, + { + .callback = dmi_matched, .ident = "Toshiba Satellite A80", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), -- 1.7.2.2 _______________________________________________ MeeGo-kernel mailing list [email protected] http://lists.meego.com/listinfo/meego-kernel
