summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/stage1.c
diff options
context:
space:
mode:
Diffstat (limited to 'mdk-stage1/stage1.c')
-rw-r--r--mdk-stage1/stage1.c55
1 files changed, 10 insertions, 45 deletions
diff --git a/mdk-stage1/stage1.c b/mdk-stage1/stage1.c
index 47473e9d7..94bb1e0df 100644
--- a/mdk-stage1/stage1.c
+++ b/mdk-stage1/stage1.c
@@ -1,5 +1,5 @@
/*
- * Guillaume Cottenceau (was gc@mandriva.com)
+ * Guillaume Cottenceau (gc)
*
* Copyright 2000-2004 Mandriva
*
@@ -121,7 +121,7 @@ static pid_t shell_pid = 0;
static void spawn_shell(void)
{
int fd;
- char * shell_name[] = { "/sbin/sh", NULL };
+ char * shell_name[] = { "/bin/sh", NULL };
log_message("spawning a shell");
@@ -219,22 +219,18 @@ static void spawn_interactive(void)
static void handle_pcmcia(void)
{
char * pcmcia_adapter;
- if (kernel_version() == 2) {
- stg1_error_message("We now use kernel pcmcia support and this won't work with a 2.2 kernel.");
- return;
- }
pcmcia_adapter = pcmcia_probe();
if (!pcmcia_adapter) {
log_message("no pcmcia adapter found");
return;
}
- my_insmod("pcmcia_core", ANY_DRIVER_TYPE, NULL, 0);
- my_insmod(pcmcia_adapter, ANY_DRIVER_TYPE, NULL, 0);
+ my_modprobe("pcmcia_core", ANY_DRIVER_TYPE, NULL);
+ my_modprobe(pcmcia_adapter, ANY_DRIVER_TYPE, NULL);
/* ds is an alias for pcmcia in recent 2.6 kernels
but we don't have modules.alias in install, so try to load both */
- my_insmod("ds", ANY_DRIVER_TYPE, NULL, 0);
- my_insmod("pcmcia", ANY_DRIVER_TYPE, NULL, 0);
+ my_modprobe("ds", ANY_DRIVER_TYPE, NULL);
+ my_modprobe("pcmcia", ANY_DRIVER_TYPE, NULL);
/* setup a dynamic resource database for non statically mapped PCMCIA sockets */
pcmcia_socket_startup(-1);
@@ -252,8 +248,9 @@ static void handle_hid(void)
entry_list = hid_probe();
for (i = 0; i < entry_list.nb; i++) {
if (entry_list.entries[i].module != NULL)
- my_insmod(entry_list.entries[i].module, ANY_DRIVER_TYPE, NULL, 0);
+ my_modprobe(entry_list.entries[i].module, ANY_DRIVER_TYPE, NULL);
}
+ my_modprobe("hid_generic", ANY_DRIVER_TYPE, NULL);
}
@@ -347,39 +344,8 @@ static void method_select_and_prepare(void)
}
#endif
-static enum return_type create_initial_fs_symlinks(char* symlinks)
-{
- FILE *f;
- char buf[5000];
-
- if (scall(!(f = fopen(symlinks, "rb")), "fopen"))
- return RETURN_ERROR;
- while (fgets(buf, sizeof(buf), f)) {
- char oldpath[500], newpath[500];
- buf[strlen(buf)-1] = '\0'; // trim \n
- if (sscanf(buf, "%s %s", oldpath, newpath) != 2) {
- sprintf(oldpath, "%s%s", STAGE2_LOCATION, buf);
- sprintf(newpath, "%s", buf);
- }
- recursiveRemove_if_it_exists(newpath);
- log_message("creating symlink %s -> %s", oldpath, newpath);
- if (scall(symlink(oldpath, newpath), "symlink"))
- return RETURN_ERROR;
- }
- fclose(f);
- return RETURN_OK;
-}
-
void finish_preparing(void)
{
- recursiveRemove("/init");
-
- if (create_initial_fs_symlinks(STAGE2_LOCATION "/usr/share/symlinks") != RETURN_OK)
- stg1_fatal_message("Fatal error finishing initialization.");
-
- /* /tmp/syslog is used by the second init, so it must be copied now, not in stage2 */
- /* we remove it to ensure the old one is not copied over it in stage2 */
-
#ifdef SPAWN_SHELL
if (shell_pid != 0) {
int fd;
@@ -423,7 +389,6 @@ int main(int argc __attribute__ ((unused)), char **argv __attribute__ ((unused))
spawn_shell();
#endif
init_modules_insmoding();
- init_firmware_loader();
init_frontend("Welcome to " DISTRIB_DESCR ", " __DATE__ " " __TIME__);
probe_that_type(VIRTIO_DEVICES, BUS_ANY);
@@ -472,7 +437,7 @@ int main(int argc __attribute__ ((unused)), char **argv __attribute__ ((unused))
if (IS_RESCUE)
return 66; /* ask init to exec new init */
- else
- return 0x35; /* ask init to run stage2 binary */
+
+ return 0;
#endif
}