Disk subsystem: Difference between revisions

From FMods.net
(Created page with "== Bootloader + Startup IFS == <!--T:1--> https://www.qnx.com/developers/docs/7.1/#com.qnx.doc.neutrino.building/topic/intro/intro_startup_sequence.html <code>MLO</code> - ROM monitor or Multimedia card Loader. <code>Startup IFS</code> - Startup program, QNX kernel and rootfs Layout on EMMC flash: <pre> Block# Offset in bytes Name --------------------------------------------------- 0x0000 0x0000000 MBR 0x0002 0x0000400 (1024) bo...")
 
(Minor formatting fixes)
 
Line 3: Line 3:


<code>MLO</code> - ROM monitor or Multimedia card Loader.
<code>MLO</code> - ROM monitor or Multimedia card Loader.
<code>Startup IFS</code> - Startup program, QNX kernel and rootfs
 
<code>Startup IFS (QNX-IFS)</code> - Startup program, QNX kernel and rootfs


Layout on EMMC flash:
Layout on EMMC flash:
Line 11: Line 12:
0x0000    0x0000000                MBR
0x0000    0x0000000                MBR
0x0002    0x0000400 (1024)        boot bank info
0x0002    0x0000400 (1024)        boot bank info
0x0100    0x0020000 (131072)      MLO
0x0100    0x0020000 (131072)      MLO (bootloader)
0x0184    0x0030800 (198656)      IFS first bank
0x0184    0x0030800 (198656)      IFS first bank
0x7cd2    0x0F9A400 (16360448)    IFS second bank
0x7cd2    0x0F9A400 (16360448)    IFS second bank
Line 32: Line 33:
</pre>
</pre>


== hd0t180 == <!--T:1-->
== <code>hd0t180</code> == <!--T:1-->


Mountpoint: <code>/fs/images</code>
Mountpoint: <code>/fs/images</code>
Called from startup script(startupIFS)
 
Called from startup script (at startupIFS)


<pre>
<pre>
Line 41: Line 43:
</pre>
</pre>


== hd0t177 or hd0t178 == <!--T:1-->
== <code>hd0t177 or hd0t178</code> == <!--T:1-->


Mountpoint: <code>/fs/mp</code>
Mountpoint: <code>/fs/mp</code>
Called from <code>/etc/script_mnt.sh</code> (startupIFS)
 
Called from <code>/etc/script_mnt.sh</code> (at startupIFS)


<pre>
<pre>
mmc_get_act /dev/hd0 0 > /tmp/mmcinfo
mmc_get_act /dev/hd0 0 > /tmp/mmcinfo
mount -b -r -t qnx6 -o snapshot=0,noatime,alignio $MMC_ACT_FS_PART /fs/mp
mount -b -r -t qnx6 -o snapshot=0,noatime,alignio $MMC_ACT_FS_PART /fs/mp
</pre>
</pre>Content of <code>/tmp/mmcinfo:</code><pre>
 
<pre>
# cat /tmp/mmcinfo
# cat /tmp/mmcinfo
MMC_ACT_FS_PART=/dev/hd0t177
MMC_ACT_FS_PART=/dev/hd0t177
Line 62: Line 63:
</pre>
</pre>


== hd0t181 == <!--T:1-->
== <code>hd0t181</code> == <!--T:1-->


Mountpoint: <code>/fs/rwdata</code>
Mountpoint: <code>/fs/rwdata</code>
Called from startup script (startupIFS)
 
Called from startup script (at startupIFS)


<pre>
<pre>
Line 74: Line 76:


Mountpoint: <code>/fs/mp/ifs</code>
Mountpoint: <code>/fs/mp/ifs</code>
Called from startup script
 
Called from startup script (at startupIFS)


<pre>
<pre>
Line 80: Line 83:
mount_ifs -b -f /fs/mp/ifs/quickapps-ifs -m / &
mount_ifs -b -f /fs/mp/ifs/quickapps-ifs -m / &
mount_ifs -b -f /fs/mp/ifs/second-ifs -m / &
mount_ifs -b -f /fs/mp/ifs/second-ifs -m / &
</pre>
</pre><code>mount_ifs</code> help:<pre>
 
<pre>
# use mount_ifs
# use mount_ifs
mount_ifs mount-ifs Utility
mount_ifs mount-ifs Utility
Line 163: Line 164:
</pre>
</pre>


== Commands == <!--T:1-->
== Useful commands & tools == <!--T:1-->
 
Mountpoint: <code>/fs/mp/ifs</code>
Called from startup script


<pre>
<pre>
mount -uw /fs/mp/ #remount to RW
mount -uw /fs/mp/ #remount to RW
</pre>
</pre>Custom scripts (available in '''FMods Tools Package'''):<pre>
 
/fs/rwdata/dev/remount_rw.sh # Remount /fs/mp with RW permissions
<pre>
/fs/rwdata/dev/remount_ro.sh # Remount /fs/mp with RO permissions
/fs/rwdata/dev/remount_rw.sh # Custom script (available in FMods Tools Package) to mount /fs/mp with RW permissions
/fs/rwdata/dev/remount_ro.sh # Custom script (available in FMods Tools Package) to mount /fs/mp with RO permissions
</pre>
</pre>

Latest revision as of 13:03, 27 May 2024

Bootloader + Startup IFS[edit | edit source]

https://www.qnx.com/developers/docs/7.1/#com.qnx.doc.neutrino.building/topic/intro/intro_startup_sequence.html

MLO - ROM monitor or Multimedia card Loader.

Startup IFS (QNX-IFS) - Startup program, QNX kernel and rootfs

Layout on EMMC flash:

Block#    Offset in bytes          Name
---------------------------------------------------
0x0000    0x0000000                MBR
0x0002    0x0000400 (1024)         boot bank info
0x0100    0x0020000 (131072)       MLO (bootloader)
0x0184    0x0030800 (198656)       IFS first bank
0x7cd2    0x0F9A400 (16360448)     IFS second bank

Bootloader + Startup IFS[edit | edit source]

# fdisk /dev/hd0 show -l

     _____OS_____     Start       End       ______Number______   Size    Boot  
     name    type     Block       Block     Cylinders   Blocks                 

1.   DOS        6          32       65535        32       65504     31 MB   *
2.   QNX6     177       65536     3211263      1536     3145728   1536 MB
3.   QNX6     178     3211264     6356991      1536     3145728   1536 MB
4.   Extd'd     5     6356992   122142719     56536   115785728  56536 MB
4.1  nonQNX   180     6357024   119595007     55292   113237984  55291 MB
4.2  BSD      181   119595040   122138623      1242     2543584   1241 MB
4.3  nonQNX   182   122138656   122142719         2        4064      1 MB

hd0t180[edit | edit source]

Mountpoint: /fs/images

Called from startup script (at startupIFS)

mount -b -t qnx6 -o noatime,alignio /dev/hd0t180 /fs/images

hd0t177 or hd0t178[edit | edit source]

Mountpoint: /fs/mp

Called from /etc/script_mnt.sh (at startupIFS)

mmc_get_act /dev/hd0 0 > /tmp/mmcinfo
mount -b -r -t qnx6 -o snapshot=0,noatime,alignio $MMC_ACT_FS_PART /fs/mp

Content of /tmp/mmcinfo:

  1. cat /tmp/mmcinfo

MMC_ACT_FS_PART=/dev/hd0t177 MMC_PAS_FS_PART=/dev/hd0t178 MMC_ACT_IFS=0 MMC_PAS_IFS=1 ACT_IFS_ERROR=0 ACT_FS_ERROR=0 STARTUP_IFS_ERROR=0

hd0t181[edit | edit source]

Mountpoint: /fs/rwdata

Called from startup script (at startupIFS)

mount -b -t qnx6 -o alignio /dev/hd0t181 /fs/rwdata &

IFSs[edit | edit source]

Mountpoint: /fs/mp/ifs

Called from startup script (at startupIFS)

mount_ifs -b -f /fs/mp/ifs/renderer-ifs -m / &
mount_ifs -b -f /fs/mp/ifs/quickapps-ifs -m / &
mount_ifs -b -f /fs/mp/ifs/second-ifs -m / &

mount_ifs help:

  1. use mount_ifs

mount_ifs mount-ifs Utility

Syntax: mount-ifs [-f filename][-m mountpoint]

Options:

  -f filename         source ifs file name
  -m 			mount point
  -b			daemonize before the real transfer (default is after).
  -T 			create a separate thread to do the decompress in parallel.

Mount images[edit | edit source]

Called from sh /etc/mount_all_images.sh

Some info[edit | edit source]

# ls -la /fs/images/
total 41277473
drwxrwxr-x  5 root      root            4096 Jan 01  1970 .
drwxr-xr-t  2 root      root              10 Jan 01  1970 ..
drwx------  2 root      root            4096 Jan 01  1970 .boot
drwxrwxrwx  4 root      root            4096 Jan 01 00:10 ivsu_cache
drwxrwxrwx  2 root      root            4096 Jan 01 00:10 ivsu_installcache
-rw-rw-rw-  1 root      root      3351511040 Jan 01  1970 map_comn.img
-rw-rw-rw-  1 root      root      3456892928 Jan 01  1970 map_euc.img
-rw-rw-rw-  1 root      root      3985637376 Jan 01  1970 map_eue.img
-rw-rw-rw-  1 root      root      3018063872 Jan 01  1970 map_eus.img
-rw-rw-rw-  1 root      root      1243611136 Jan 01  1970 map_ext.img
-rw-rw-rw-  1 root      root        76283904 Jan 01  1970 station_logos.img
-rw-rw-rw-  1 root      root      2072248320 Jan 01  1970 voice.img
-rw-rw-rw-  1 root      root      3929800704 Jan 01  1970 voice_nav_eucpr.img
# df -h
/fs/rwdata/ppsp                0         0         0     100%  /ppsp           
/dev/blk/ram-0-allo         128M      1.2M      127M       1%  /fs/tmpfs/      
/fs/images/map_ext.         1.1G      1.1G      892K     100%  /fs/sd/MAP/     
/fs/images/map_eus.         2.8G      2.7G       14M     100%  /fs/sd/MAP/     
/fs/images/map_eue.         3.7G      3.6G       21M     100%  /fs/sd/MAP/     
/fs/images/map_euc.         3.2G      3.2G      5.7M     100%  /fs/sd/MAP/     
/fs/images/map_comn         3.1G      3.0G       24M     100%  /fs/sd/MAP/     
/fs/images/voice_na         3.6G      3.6G       35M     100%  /fs/Nuance/     
/fs/images/voice.im         1.9G      1.9G      8.4M     100%  /fs/Nuance/     
/dev/hd0t181                1.2G      849M      393M      69%  /fs/rwdata/     
/dev/diagscratch0            35M       30K       35M       1%  /fs/rwdata/quip/
/dev/diagevents0             90M       68K       90M       1%  /fs/rwdata/quip/
/dev/hd0t177                1.4G      1.3G      126M      92%  /fs/mp/         
/fs/images/station_          73M       72M      432K     100%  /fs/mp/resources
/dev/hd0t180                 54G       22G       32G      41%  /fs/images/     
/var/pps                       0         0         0     100%  /pps            
/dev/hd0                    1.9M      1.9M         0     100%  /dev/hd0t182    
/dev/hd0                    1.5G      1.5G         0     100%  /dev/hd0t178    
/dev/hd0                     32M       32M         0     100%  /dev/hd0t6      
/dev/hd0                     58G       58G         0     100%  
# mount
/fs/rwdata/ppsp on /ppsp type PPS 
/dev/blk/ram-0-alloc-0-tmp on /fs/tmpfs type tmp 
/fs/images/map_ext.img on /fs/sd/MAP type qnx6 
/fs/images/map_eus.img on /fs/sd/MAP type qnx6 
/fs/images/map_eue.img on /fs/sd/MAP type qnx6 
/fs/images/map_euc.img on /fs/sd/MAP type qnx6 
/fs/images/map_comn.img on /fs/sd/MAP type qnx6 
/fs/images/voice_nav_eucpr.img on /fs/Nuance type qnx6 
/fs/images/voice.img on /fs/Nuance type qnx6 
/dev/hd0t181 on /fs/rwdata type qnx6 
/dev/diagscratch0 on /fs/rwdata/quip/forensics type qnx4 
/dev/diagevents0 on /fs/rwdata/quip/events type qnx4 
/dev/hd0t177 on /fs/mp type qnx6 
/fs/images/station_logos.img on /fs/mp/resources/station_logo/Logo type qnx6 
/dev/hd0t180 on /fs/images type qnx6 
/var/pps on /pps type PPS 

Useful commands & tools[edit | edit source]

mount -uw /fs/mp/ #remount to RW

Custom scripts (available in FMods Tools Package):

/fs/rwdata/dev/remount_rw.sh # Remount /fs/mp with RW permissions /fs/rwdata/dev/remount_ro.sh # Remount /fs/mp with RO permissions