-rw-r--r-- | noncore/apps/opie-console/fixit.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/noncore/apps/opie-console/fixit.cpp b/noncore/apps/opie-console/fixit.cpp index f170074..82a0339 100644 --- a/noncore/apps/opie-console/fixit.cpp +++ b/noncore/apps/opie-console/fixit.cpp | |||
@@ -1,94 +1,95 @@ | |||
1 | 1 | #include <unistd.h> | |
2 | #include "fixit.h" | 2 | #include "fixit.h" |
3 | 3 | ||
4 | using namespace Opie::Core; | 4 | using namespace Opie::Core; |
5 | 5 | ||
6 | #ifdef FSCKED_DISTRI | 6 | #ifdef FSCKED_DISTRI |
7 | FixIt::FixIt() { | 7 | FixIt::FixIt() { |
8 | /* the new inittab */ | 8 | /* the new inittab */ |
9 | m_file = "#\n# /etc/inittab" | 9 | m_file = "#\n# /etc/inittab" |
10 | "#" | 10 | "#" |
11 | "" | 11 | "" |
12 | "# 0 - halt (Do NOT set initdefault to this)" | 12 | "# 0 - halt (Do NOT set initdefault to this)" |
13 | "# 1 - Single user mode" | 13 | "# 1 - Single user mode" |
14 | "# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)" | 14 | "# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)" |
15 | "# 3 - Full multiuser mode" | 15 | "# 3 - Full multiuser mode" |
16 | "# 4 - JavaVM(Intent) developer mode" | 16 | "# 4 - JavaVM(Intent) developer mode" |
17 | "# 5 - JavaVM(Intent)" | 17 | "# 5 - JavaVM(Intent)" |
18 | "# 6 - reboot (Do NOT set initdefault to this)" | 18 | "# 6 - reboot (Do NOT set initdefault to this)" |
19 | "#" | 19 | "#" |
20 | "id:5:initdefault:" | 20 | "id:5:initdefault:" |
21 | "" | 21 | "" |
22 | "# Specify things to do when starting" | 22 | "# Specify things to do when starting" |
23 | "si::sysinit:/etc/rc.d/rc.sysinit" | 23 | "si::sysinit:/etc/rc.d/rc.sysinit" |
24 | "" | 24 | "" |
25 | "l0:0:wait:/root/etc/rc.d/rc 0" | 25 | "l0:0:wait:/root/etc/rc.d/rc 0" |
26 | "l1:1:wait:/etc/rc.d/rc 1" | 26 | "l1:1:wait:/etc/rc.d/rc 1" |
27 | "l2:2:wait:/etc/rc.d/rc 2" | 27 | "l2:2:wait:/etc/rc.d/rc 2" |
28 | "l3:3:wait:/etc/rc.d/rc 3" | 28 | "l3:3:wait:/etc/rc.d/rc 3" |
29 | "l4:4:wait:/etc/rc.d/rc 4" | 29 | "l4:4:wait:/etc/rc.d/rc 4" |
30 | "l5:5:wait:/etc/rc.d/rc 5" | 30 | "l5:5:wait:/etc/rc.d/rc 5" |
31 | "l6:6:wait:/root/etc/rc.d/rc 6" | 31 | "l6:6:wait:/root/etc/rc.d/rc 6" |
32 | "" | 32 | "" |
33 | "# Specify things to do before rebooting" | 33 | "# Specify things to do before rebooting" |
34 | "um::ctrlaltdel:/bin/umount -a -r > /dev/null 2>&1" | 34 | "um::ctrlaltdel:/bin/umount -a -r > /dev/null 2>&1" |
35 | "sw::ctrlaltdel:/sbin/swapoff -a > /dev/null 2>&1" | 35 | "sw::ctrlaltdel:/sbin/swapoff -a > /dev/null 2>&1" |
36 | "" | 36 | "" |
37 | "# Specify program to run on ttyS0" | 37 | "# Specify program to run on ttyS0" |
38 | "s0:24:respawn:/sbin/getty 9600 ttyS0" | 38 | "s0:24:respawn:/sbin/getty 9600 ttyS0" |
39 | "#pd:5:respawn:/etc/sync/serialctl" | 39 | "#pd:5:respawn:/etc/sync/serialctl" |
40 | "" | 40 | "" |
41 | "# Specify program to run on tty1" | 41 | "# Specify program to run on tty1" |
42 | "1:2:respawn:/sbin/getty 9600 tty1" | 42 | "1:2:respawn:/sbin/getty 9600 tty1" |
43 | "ln:345:respawn:survive -l 6 /sbin/launch" | 43 | "ln:345:respawn:survive -l 6 /sbin/launch" |
44 | "#qt:5:respawn:/sbin/qt" | 44 | "#qt:5:respawn:/sbin/qt" |
45 | "" | 45 | "" |
46 | "# collie sp." | 46 | "# collie sp." |
47 | "sy::respawn:/sbin/shsync\n"; | 47 | "sy::respawn:/sbin/shsync\n"; |
48 | } | 48 | } |
49 | 49 | ||
50 | /* | 50 | /* |
51 | * the retail Zaurus is broken in many ways | 51 | * the retail Zaurus is broken in many ways |
52 | * one is that pppd is listening on our port... | 52 | * one is that pppd is listening on our port... |
53 | * we've to stop it from that and then do kill(SIGHUP,1); | 53 | * we've to stop it from that and then do kill(SIGHUP,1); |
54 | */ | 54 | */ |
55 | void FixIt::fixIt() { | 55 | void FixIt::fixIt() { |
56 | #ifndef EAST | 56 | #ifndef EAST |
57 | ::rename("/etc/inittab", QPEApplication::qpeDir() + "etc/inittab" ); | 57 | ::rename("/etc/inittab", QPEApplication::qpeDir() + "etc/inittab" ); |
58 | QFile file( "/etc/inittab" ); | 58 | QFile file( "/etc/inittab" ); |
59 | if ( file.open(IO_WriteOnly | IO_Raw ) ) { | 59 | if ( file.open(IO_WriteOnly | IO_Raw ) ) { |
60 | file.writeBlock(m_file,strlen(m_file) ); | 60 | file.writeBlock(m_file,strlen(m_file) ); |
61 | } | 61 | } |
62 | file.close(); | 62 | file.close(); |
63 | ::kill( SIGHUP, 1 ); | 63 | ::kill( SIGHUP, 1 ); |
64 | 64 | ||
65 | #else | 65 | #else |
66 | 66 | setuid(0); | |
67 | OProcess m_kill; | 67 | OProcess m_kill; |
68 | m_kill << QPEApplication::qpeDir() + "share/opie-console/sl6000_embedix_kill_0_1.sh"; | 68 | m_kill << QPEApplication::qpeDir() + "share/opie-console/sl6000_embedix_kill_0_1.sh"; |
69 | 69 | ||
70 | 70 | ||
71 | if ( !m_kill.start(OProcess::DontCare,OProcess::NoCommunication) ) { | 71 | if ( !m_kill.start(OProcess::DontCare,OProcess::NoCommunication) ) { |
72 | owarn << "could not execute kill script" << oendl; | 72 | owarn << "could not execute kill script" << oendl; |
73 | } else { | 73 | } else { |
74 | Global::statusMessage( QObject::tr("Fixing up Embedix")); | 74 | Global::statusMessage( QObject::tr("Fixing up Embedix")); |
75 | } | 75 | } |
76 | 76 | ||
77 | #endif | 77 | #endif |
78 | } | 78 | } |
79 | 79 | ||
80 | void FixIt::breakIt() { | 80 | void FixIt::breakIt() { |
81 | #ifdef EAST | 81 | #ifdef EAST |
82 | OProcess m_restart; | 82 | OProcess m_restart; |
83 | |||
83 | m_restart << QPEApplication::qpeDir() + "share/opie-console/sl6000_embedix_restart_0_1.sh"; | 84 | m_restart << QPEApplication::qpeDir() + "share/opie-console/sl6000_embedix_restart_0_1.sh"; |
84 | 85 | ||
85 | 86 | ||
86 | if ( !m_restart.start(OProcess::DontCare,OProcess::NoCommunication) ) { | 87 | if ( !m_restart.start(OProcess::DontCare,OProcess::NoCommunication) ) { |
87 | owarn << "could not execute restart script" << oendl; | 88 | owarn << "could not execute restart script" << oendl; |
88 | } | 89 | } |
89 | 90 | ||
90 | #endif | 91 | #endif |
91 | } | 92 | } |
92 | 93 | ||
93 | 94 | ||
94 | #endif | 95 | #endif |