mirror of
https://git.shadowkat.net/izaya/OC-PsychOS2.git
synced 2024-11-22 12:04:20 -05:00
Compare commits
No commits in common. "c52a0ee2acee6ed3f2ee5e852f29d9e899035a12" and "91d9ce33c83c148c871e54967640154481130ea9" have entirely different histories.
c52a0ee2ac
...
91d9ce33c8
74
INSTALL.md
74
INSTALL.md
@ -1,74 +0,0 @@
|
|||||||
# Installing PsychOS
|
|
||||||
|
|
||||||
## From OpenOS
|
|
||||||
### Requirements
|
|
||||||
In general:
|
|
||||||
- oppm
|
|
||||||
- mtar
|
|
||||||
|
|
||||||
For installing to an unmanaged drive or tape
|
|
||||||
- slicer
|
|
||||||
- partman
|
|
||||||
- rtfs
|
|
||||||
- boopu
|
|
||||||
|
|
||||||
### Preparing the target disk
|
|
||||||
#### Managed filesystem
|
|
||||||
Preparing a managed filesystem is extremely simple: attach it to your computer, and make sure there's nothing that you want to keep in the following locations on the filesystem:
|
|
||||||
- init.lua
|
|
||||||
- lib/
|
|
||||||
- service/
|
|
||||||
- doc/
|
|
||||||
- pkg/
|
|
||||||
- cfg/
|
|
||||||
|
|
||||||
#### Unmanaged drive or tape
|
|
||||||
##### Creating partitions
|
|
||||||
First, you'll need to find out how many sectors your target device has. `slicer <addr> show` will show you something like this:
|
|
||||||
|
|
||||||
```
|
|
||||||
# slicer 9f7 show
|
|
||||||
Drive 9f755736 - 1024KiB, 2048 sectors:
|
|
||||||
# Name Type Start Len End
|
|
||||||
```
|
|
||||||
|
|
||||||
The usable space on the disk is going to be two sectors less than the total size - sectors 2 through 2047, in this case, as you will want to leave space for the OSDI partition table at the start, and the MTPT partition table at the end.
|
|
||||||
|
|
||||||
First, we'll create the boot partition. 64KiB is the recommended size, though 48KiB may be enough. OC disks use 512 byte sectors, so that will work out to 128 sectors.
|
|
||||||
|
|
||||||
```
|
|
||||||
# slicer 9f7 add init.lua boot 2 128
|
|
||||||
Drive 9f755736 - 1024KiB, 2048 sectors:
|
|
||||||
# Name Type Start Len End
|
|
||||||
1: 9f755736 mtpt 0 0 -1
|
|
||||||
2: init.lua boot 2 128 129
|
|
||||||
```
|
|
||||||
|
|
||||||
Next, we need to create an rtfs partition, for the boot filesystem. This can use the rest of the space on the disk, but should be named `<first 8 characters of computer address>-boot`.
|
|
||||||
|
|
||||||
```
|
|
||||||
# slicer 9f7 add ffa5c282-boot rtfs 130 1918
|
|
||||||
Drive 9f755736 - 1024KiB, 2048 sectors:
|
|
||||||
# Name Type Start Len End
|
|
||||||
1: 9f755736 mtpt 0 0 -1
|
|
||||||
2: init.lua boot 2 128 129
|
|
||||||
3: ffa5c282-boot rtfs 130 1918 2047
|
|
||||||
```
|
|
||||||
|
|
||||||
Once you're all done, you can restart partman and it should recognise the new partitions.
|
|
||||||
|
|
||||||
```
|
|
||||||
# rc partman restart
|
|
||||||
# components part
|
|
||||||
partition 9f755736-a739-4f45-8c5c-35a66a7f5dbe/2
|
|
||||||
```
|
|
||||||
|
|
||||||
##### Formatting the filesystem
|
|
||||||
Next, we'll use the mkfs.rtfs utility to format the filesystem partition we just created. Do note that the order of components is not fixed, so using a shortened version can result in unreliable behavior, like, for example, formatting the boot partition.
|
|
||||||
|
|
||||||
```
|
|
||||||
# mkfs.rtfs 9f755736-a739-4f45-8c5c-35a66a7f5dbe/2 ffa5c282-boot
|
|
||||||
9f755736-a739-4f45-8c5c-35a66a7f5dbe/2
|
|
||||||
```
|
|
||||||
|
|
||||||
To make OpenOS mount the filesystem, the simplest way is to restart partman again, as described in the previous section.
|
|
@ -16,14 +16,6 @@ end
|
|||||||
function netutil.exportfs(path) -- string -- boolean -- Export the directory *path* over RPC.
|
function netutil.exportfs(path) -- string -- boolean -- Export the directory *path* over RPC.
|
||||||
local path = "/"..table.concat(fs.segments(path),"/")
|
local path = "/"..table.concat(fs.segments(path),"/")
|
||||||
local px = require("unionfs").create(path)
|
local px = require("unionfs").create(path)
|
||||||
function px.dirstat(p)
|
|
||||||
local rt = {}
|
|
||||||
for k,v in ipairs(px.list(p)) do
|
|
||||||
local fp = p.."/"..v
|
|
||||||
rt[v] = {px.isDirectory(fp), px.size(fp), px.lastModified(fp)}
|
|
||||||
end
|
|
||||||
return rt
|
|
||||||
end
|
|
||||||
for k,v in pairs(px) do
|
for k,v in pairs(px) do
|
||||||
rpc.register("fs_"..path.."_"..k,v)
|
rpc.register("fs_"..path.."_"..k,v)
|
||||||
print("fs_"..path.."_"..k)
|
print("fs_"..path.."_"..k)
|
||||||
|
@ -107,7 +107,6 @@ function fs.mounts() -- -- table -- Returns a table containing the mount points
|
|||||||
for k,v in pairs(fsmounts) do
|
for k,v in pairs(fsmounts) do
|
||||||
rt[#rt+1] = k,v.address or "unknown"
|
rt[#rt+1] = k,v.address or "unknown"
|
||||||
end
|
end
|
||||||
table.sort(rt)
|
|
||||||
return rt
|
return rt
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -3,11 +3,6 @@ fsmanager.filesystems = {}
|
|||||||
local run = true
|
local run = true
|
||||||
|
|
||||||
function fsmanager.mount(addr)
|
function fsmanager.mount(addr)
|
||||||
for k,v in ipairs(fs.mounts()) do
|
|
||||||
if fs.address(v) == addr then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
end
|
|
||||||
dest = "/" .. (component.invoke(addr,"getLabel") or "mnt/"..addr:sub(1,3))
|
dest = "/" .. (component.invoke(addr,"getLabel") or "mnt/"..addr:sub(1,3))
|
||||||
syslog("Mounting "..addr.." to "..dest)
|
syslog("Mounting "..addr.." to "..dest)
|
||||||
fs.makeDirectory(dest)
|
fs.makeDirectory(dest)
|
||||||
|
Loading…
Reference in New Issue
Block a user