summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/cdrom.c
diff options
context:
space:
mode:
Diffstat (limited to 'mdk-stage1/cdrom.c')
-rw-r--r--mdk-stage1/cdrom.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/mdk-stage1/cdrom.c b/mdk-stage1/cdrom.c
index eea54594c..71db1da16 100644
--- a/mdk-stage1/cdrom.c
+++ b/mdk-stage1/cdrom.c
@@ -1,5 +1,5 @@
/*
- * Guillaume Cottenceau (gc@mandriva.com)
+ * Guillaume Cottenceau (gc)
*
* Copyright 2000 Mandriva
*
@@ -138,7 +138,7 @@ enum return_type cdrom_prepare(void)
enum return_type results;
static int already_probed_ide_generic = 0;
- my_insmod("ide_cd_mod", ANY_DRIVER_TYPE, NULL, 0);
+ my_modprobe("ide_cd_mod", ANY_DRIVER_TYPE, NULL);
if (IS_AUTOMATIC) {
get_medias(CDROM, &medias, &medias_models, BUS_IDE);
@@ -149,7 +149,7 @@ enum return_type cdrom_prepare(void)
if ((i = try_automatic(medias, medias_models)) != -1)
return do_with_device(medias[i], medias_models[i]);
- my_insmod("sr_mod", ANY_DRIVER_TYPE, NULL, 0);
+ my_modprobe("sr_mod", ANY_DRIVER_TYPE, NULL);
get_medias(CDROM, &medias, &medias_models, BUS_SCSI);
if ((i = try_automatic(medias, medias_models)) != -1)
return do_with_device(medias[i], medias_models[i]);
@@ -158,9 +158,16 @@ enum return_type cdrom_prepare(void)
if ((i = try_automatic(medias, medias_models)) != -1)
return do_with_device(medias[i], medias_models[i]);
+ /* detect hybrid isos (isos dumped to an USB stick) */
+ my_modprobe("sd_mod", ANY_DRIVER_TYPE, NULL);
+ get_medias(DISK, &medias, &medias_models, BUS_USB);
+ if ((i = try_automatic(medias, medias_models)) != -1) {
+ return do_with_device(medias[i], medias_models[i]);
+ }
+
unset_automatic();
} else
- my_insmod("sr_mod", ANY_DRIVER_TYPE, NULL, 0);
+ my_modprobe("sr_mod", ANY_DRIVER_TYPE, NULL);
get_medias(CDROM, &medias, &medias_models, BUS_ANY);
@@ -173,7 +180,7 @@ enum return_type cdrom_prepare(void)
if (count == 0) {
if (!already_probed_ide_generic) {
already_probed_ide_generic = 1;
- my_insmod("ide_generic", ANY_DRIVER_TYPE, NULL, 0);
+ my_modprobe("ide_generic", ANY_DRIVER_TYPE, NULL);
return cdrom_prepare();
}
stg1_error_message("No CDROM device found.");