Overview
| Comment: | Added start of "init" script |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
752b75eff6c0c295e26f1788cba1fd0a |
| User & Date: | rkeene on 2012-08-04 08:09:12 |
| Other Links: | manifest | tags |
Context
|
2012-08-04
| ||
| 19:23 | Added images for logo check-in: 242ee5e43e user: rkeene tags: trunk | |
| 08:09 | Added start of "init" script check-in: 752b75eff6 user: rkeene tags: trunk | |
| 07:16 | More work towards describing what needs to be done check-in: c5886554f0 user: rkeene tags: trunk | |
Changes
Added components/init-earlyboot/init version [ecdb2e7262].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
#! /tclkit
proc load_modules {path} {
catch {
set fd [open [file join $path load]]
set modules [split [read $fd] "\n"]
close $fd
}
foreach module $modules {
if {![file exists $module]} {
puts stderr "\[module\] File not found: $module"
continue
}
if {[catch {
system::syscall::insmod $module
} err]} {
puts stderr "\[module\] Failed to load $module: $err"
}
}
}
proc locate_config_partition {} {
foreach dev [glob -nocomplain /dev/*] {
unset -nocomplain devinfo
catch {
file stat $dev devinfo
}
if {![info exists devinfo(type)]} {
continue
}
if {$devinfo(type) != "blockSpecial"} {
continue
}
unset -nocomplain fd
catch {
set fd [open $dev]
fconfigure $fd -translation binary
}
if {![info exists fd]} {
continue
}
set magic [read $fd 32]
binary scan $magic H* magic
if {$magic != "1daa459b9772ef5d7d58c814458246c69dbd1d53fa75f396462910250bf7a4b6"} {
continue
}
return $dev
}
return ""
}
proc boot {} {
package require system
# 1. Load kernel modules
load_modules /modules
# 2. Mount devfs
file mkdir /dev
system::syscall::mount devfs /dev devfs [list]
# 3. Locate Config partition
set dev [locate_config_partition]
if {$dev == ""} {
## XXX: Install to tmpfs
## XXX: Offer to do installation
} else {
# 4. Mount config partition
mount_config_partition $dev /config
# 5. Load kernel modules
load_modules /config/modules
# 5. Mount /system (from fstab)
## XXX: TODO
}
# 6. Mount /system/config and populate
system::syscall::mount tmpfs /system/config tmpfs [list]
# 7. Unmount devfs
system::syscall::umount /dev
file rmdir /dev
# 8. Pass control to later boot init
system::syscall::execve init /system/apps/appbox-core/default/sbin/init
}
if {[catch {
boot
} err]} {
puts stderr "\[boot\] Boot failed: $err"
}
while 1 {
puts -nonewline "> "
flush stdout
gets stdin line
set ret [catch {
eval $line
}]
if {$ret != ""} {
puts $ret
}
}
|
Added components/init-lateboot/functions version [10517d63e1].
> > > > > > > | 1 2 3 4 5 6 7 | Mount /system/proc Mount /system/dev Mount /system/sys Mount /data Symlink /apps Perform boot-up: 1. Start daemons |