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