Difference between revisions of "10393 manual"
(→Firmware images) |
(→Proper shutdown) |
||
(21 intermediate revisions by the same user not shown) | |||
Line 10: | Line 10: | ||
|[[File:NC393-CS marked ports.jpeg|thumb|200px|Fig.1 10393 interfaces]] | |[[File:NC393-CS marked ports.jpeg|thumb|200px|Fig.1 10393 interfaces]] | ||
|} | |} | ||
− | * Power supply wall adapter ( | + | * Power supply wall adapter (options: '''18-75V''' (default) or '''12-36V''' - [[10393_power|more information]]) |
* CAT6 network cable | * CAT6 network cable | ||
* μUSB-to-USB cable | * μUSB-to-USB cable | ||
Line 70: | Line 70: | ||
==<font color="blue">Command line access</font>== | ==<font color="blue">Command line access</font>== | ||
− | * ssh from PC terminal: | + | * ssh from PC's terminal: |
− | $ ssh root@192.168.0.9 | + | <font size='2em'> |
− | + | user@hostname:~$ ssh root@192.168.0.9 | |
− | + | </font> | |
==<font color="blue">Serial console access</font>== | ==<font color="blue">Serial console access</font>== | ||
Line 79: | Line 79: | ||
* In Linux the '''minicom''' program can be used | * In Linux the '''minicom''' program can be used | ||
+ | <font size='2em'> | ||
$ minicom -c on | $ minicom -c on | ||
+ | </font> | ||
Most likely the device will be <b>/dev/ttyUSB0</b>. Settings: | Most likely the device will be <b>/dev/ttyUSB0</b>. Settings: | ||
* <b>115200 8N1, no</b> for hardware/software flow control | * <b>115200 8N1, no</b> for hardware/software flow control | ||
Line 104: | Line 106: | ||
====browser==== | ====browser==== | ||
+ | <font size='2'> | ||
port 0: http://192.168.0.9:2323/img | port 0: http://192.168.0.9:2323/img | ||
port 1: http://192.168.0.9:2324/img | port 1: http://192.168.0.9:2324/img | ||
port 2: http://192.168.0.9:2325/img | port 2: http://192.168.0.9:2325/img | ||
port 3: http://192.168.0.9:2326/img | port 3: http://192.168.0.9:2326/img | ||
− | + | </font> | |
====command line==== | ====command line==== | ||
+ | <font size='2'> | ||
wget http://192.168.0.9:2323/img -O filename.jpeg | wget http://192.168.0.9:2323/img -O filename.jpeg | ||
wget http://192.168.0.9:2324/img -O filename.jpeg | wget http://192.168.0.9:2324/img -O filename.jpeg | ||
wget http://192.168.0.9:2325/img -O filename.jpeg | wget http://192.168.0.9:2325/img -O filename.jpeg | ||
wget http://192.168.0.9:2326/img -O filename.jpeg | wget http://192.168.0.9:2326/img -O filename.jpeg | ||
− | + | </font> | |
− | |||
==<font color="blue">Video</font>== | ==<font color="blue">Video</font>== | ||
===Display=== | ===Display=== | ||
====Multipart JPEG stream==== | ====Multipart JPEG stream==== | ||
+ | <font size='2'> | ||
http://192.168.0.9:2323/mimg | http://192.168.0.9:2323/mimg | ||
http://192.168.0.9:2324/mimg | http://192.168.0.9:2324/mimg | ||
http://192.168.0.9:2325/mimg | http://192.168.0.9:2325/mimg | ||
http://192.168.0.9:2326/mimg | http://192.168.0.9:2326/mimg | ||
− | + | </font> | |
====RTSP==== | ====RTSP==== | ||
* turn on: | * turn on: | ||
− | + | <font size='2'> | |
+ | root@elphel393:~# /usr/bin/str | ||
+ | </font> | ||
* url: | * url: | ||
+ | <font size='2'> | ||
rtsp://192.168.0.9:554 | rtsp://192.168.0.9:554 | ||
rtsp://192.168.0.9:556 | rtsp://192.168.0.9:556 | ||
rtsp://192.168.0.9:558 | rtsp://192.168.0.9:558 | ||
rtsp://192.168.0.9:560 | rtsp://192.168.0.9:560 | ||
− | + | </font> | |
====GStreamer==== | ====GStreamer==== | ||
<font size='2'> | <font size='2'> | ||
Line 185: | Line 192: | ||
====command line==== | ====command line==== | ||
* start: | * start: | ||
+ | <font size='2'> | ||
root@elphel393:~# cat /dev/imu > /path/filename.log | root@elphel393:~# cat /dev/imu > /path/filename.log | ||
+ | </font> | ||
* stop - CTRL-C or kill the process | * stop - CTRL-C or kill the process | ||
Line 202: | Line 211: | ||
* http://192.168.0.9/parsedit.php - read/write parameters: | * http://192.168.0.9/parsedit.php - read/write parameters: | ||
** POST request | ** POST request | ||
+ | <font size='2'> | ||
Read: http://192.168.0.9/parsedit.php?sensor_port=0&PAR1&PAR2 | Read: http://192.168.0.9/parsedit.php?sensor_port=0&PAR1&PAR2 | ||
Change: http://192.168.0.9/parsedit.php?sensor_port=0&PAR1&PAR2 - update values - submit form | Change: http://192.168.0.9/parsedit.php?sensor_port=0&PAR1&PAR2 - update values - submit form | ||
− | + | </font> | |
** GET request - XML response | ** GET request - XML response | ||
+ | <font size='2'> | ||
Read: http://192.168.0.9/parsedit.php?immediate&sensor_port=0&PAR1&PAR2 | Read: http://192.168.0.9/parsedit.php?immediate&sensor_port=0&PAR1&PAR2 | ||
Change: http://192.168.0.9/parsedit.php?immediate&sensor_port=0&PAR1=VAL1&PAR2=VAL2 | Change: http://192.168.0.9/parsedit.php?immediate&sensor_port=0&PAR1=VAL1&PAR2=VAL2 | ||
− | + | </font> | |
Note 1: if the parameter's value is specified in URL it will be applied. The call can have mixed specified and unspecified parameters. | Note 1: if the parameter's value is specified in URL it will be applied. The call can have mixed specified and unspecified parameters. | ||
Line 215: | Line 226: | ||
Example: | Example: | ||
* set 10 fps and enable output trigger signal | * set 10 fps and enable output trigger signal | ||
+ | <font size='2'> | ||
http://192.168.0.9/parsedit.php?sensor_port=0&immediate&TRIG_CONDITION=0&TRIG_OUT=0x66555&TRIG_PERIOD=10000000&TRIG=4 | http://192.168.0.9/parsedit.php?sensor_port=0&immediate&TRIG_CONDITION=0&TRIG_OUT=0x66555&TRIG_PERIOD=10000000&TRIG=4 | ||
− | + | </font> | |
[[Parsedit.php|'''More information''']] | [[Parsedit.php|'''More information''']] | ||
Line 225: | Line 237: | ||
** if opened w/o sensor_port specified the page will show links to available ports | ** if opened w/o sensor_port specified the page will show links to available ports | ||
** '''sensor_port=x''', where x=0..3 - in the address string - for a single sensor camera it is normally 0 | ** '''sensor_port=x''', where x=0..3 - in the address string - for a single sensor camera it is normally 0 | ||
− | |||
− | |||
==<font color="blue">Image formats</font>== | ==<font color="blue">Image formats</font>== | ||
Line 259: | Line 269: | ||
==<font color="blue">Proper shutdown</font>== | ==<font color="blue">Proper shutdown</font>== | ||
* if not properly shutdown - μSD might get corrupted (run '''sync''' at least) | * if not properly shutdown - μSD might get corrupted (run '''sync''' at least) | ||
+ | <font size='2'> | ||
shutdown -hP now | shutdown -hP now | ||
+ | </font> | ||
Same effect: | Same effect: | ||
+ | <font size='2'> | ||
http://192.168.0.9/autocampars.php?reboot | http://192.168.0.9/autocampars.php?reboot | ||
+ | </font> | ||
==<font color="blue">Firmware/software update</font>== | ==<font color="blue">Firmware/software update</font>== | ||
Line 276: | Line 290: | ||
===Change default ip address=== | ===Change default ip address=== | ||
* '''nano''' or '''vi''' | * '''nano''' or '''vi''' | ||
+ | <font size='2'> | ||
ssh root@192.168.0.9 | ssh root@192.168.0.9 | ||
''pass'' | ''pass'' | ||
root@elphel393:~# nano /etc/elphel393/init_elphel393.py | root@elphel393:~# nano /etc/elphel393/init_elphel393.py | ||
''edit - save'' | ''edit - save'' | ||
− | + | </font> | |
'''or''' | '''or''' | ||
* '''sed''' | * '''sed''' | ||
+ | <font size='2'> | ||
root@elphel393:~# sed -i.bkp 's/192.168.0.9/10.xx.xx.xx/' /etc/elphel393/init_elphel393.py | root@elphel393:~# sed -i.bkp 's/192.168.0.9/10.xx.xx.xx/' /etc/elphel393/init_elphel393.py | ||
root@elphel393:~# sed -i.bkp 's/255.255.255.0/xxx.xxx.xxx.xxx/' /etc/elphel393/init_elphel393.py | root@elphel393:~# sed -i.bkp 's/255.255.255.0/xxx.xxx.xxx.xxx/' /etc/elphel393/init_elphel393.py | ||
− | + | </font> | |
− | Then: | + | Then: |
+ | <font size='2'> | ||
#boot from NAND flash? | #boot from NAND flash? | ||
root@elphel393:~# overlay_sync 1 | root@elphel393:~# overlay_sync 1 | ||
Line 295: | Line 312: | ||
root@elphel393:~# sync | root@elphel393:~# sync | ||
root@elphel393:~# reboot -f | root@elphel393:~# reboot -f | ||
− | + | </font> | |
===Set up histogram window and autoexposure parameters=== | ===Set up histogram window and autoexposure parameters=== | ||
[[Autoexposure|Read article]] | [[Autoexposure|Read article]] | ||
Line 317: | Line 334: | ||
===Pointers monitor=== | ===Pointers monitor=== | ||
* Displays sensor, compressor and buffer states per 10393 port: | * Displays sensor, compressor and buffer states per 10393 port: | ||
+ | <font size='2'> | ||
http://192.168.0.9/pointers/ | http://192.168.0.9/pointers/ | ||
+ | </font> | ||
+ | |||
===Powering from batteries (12V or 48V)=== | ===Powering from batteries (12V or 48V)=== | ||
[[10393_power#Powering_from_batteries| 12V and 48V power options]] | [[10393_power#Powering_from_batteries| 12V and 48V power options]] | ||
===Accessing raw pixel values=== | ===Accessing raw pixel values=== | ||
[[Working_with_raw_image_data|Working with raw pixel data]] | [[Working_with_raw_image_data|Working with raw pixel data]] | ||
+ | ===Photo finish (linescan mode)=== | ||
+ | [[Photo-finish|Photo Finish]] (works for JP4 image format) | ||
==<font color="blue">Known problems</font>== | ==<font color="blue">Known problems</font>== | ||
− | * [ | + | * <font color='green'>'''[SOLVED]'''</font> Vertical artifacts in jpegs. Images are ok at 100% quality. Fixed, testing. |
* http://192.168.0.9:232x/noexif/mimg - multipart jpeg displays corrupted frames from time to time. Reason: network bandwidth? | * http://192.168.0.9:232x/noexif/mimg - multipart jpeg displays corrupted frames from time to time. Reason: network bandwidth? | ||
− | * [ | + | * <font color='green'>'''[SOLVED]'''</font> Sometimes on power-on (NAND flash boot) cannot mount the card's rootfs partition. Kernel Panics. Power off/on. Soft "reboot -f" works ok. |
+ | <font size='2'> | ||
... | ... | ||
<b>Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,2)</b> | <b>Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,2)</b> | ||
... | ... | ||
+ | </font> | ||
[[VFS:_Unable_to_mount_root_fs_on_unknown-block(179,2)|More info]] | [[VFS:_Unable_to_mount_root_fs_on_unknown-block(179,2)|More info]] | ||
* Changing exposure/quality/gains - can corrupt images - needs testing. | * Changing exposure/quality/gains - can corrupt images - needs testing. | ||
* After rewriting rootfs to μSD card - some of the cards get a corrupted partition - re-partitioning (reformatting?) solves the problem. | * After rewriting rootfs to μSD card - some of the cards get a corrupted partition - re-partitioning (reformatting?) solves the problem. | ||
+ | <font size='2'> | ||
On the camera the rootfs is mounted as RW and some of the files are changed (also links created) - | On the camera the rootfs is mounted as RW and some of the files are changed (also links created) - | ||
most of the changes are now moved to tmpfs but something might have been missed. | most of the changes are now moved to tmpfs but something might have been missed. | ||
− | + | </font> | |
− | |||
==<font color="blue">Notes</font>== | ==<font color="blue">Notes</font>== | ||
Line 345: | Line 369: | ||
** /mnt/sda1 exists in lower layer: /tmp/rootfs.ro/tmp | ** /mnt/sda1 exists in lower layer: /tmp/rootfs.ro/tmp | ||
** upper layer is mounted to "/" | ** upper layer is mounted to "/" | ||
+ | <font size='2'> | ||
# rmdir /mnt/sda1 | # rmdir /mnt/sda1 | ||
# mkdir /mnt/sda1 | # mkdir /mnt/sda1 | ||
mkdir: cannot create directory '/mnt/sda1': Operation not supported | mkdir: cannot create directory '/mnt/sda1': Operation not supported | ||
− | + | </font> | |
[[Category:393]] | [[Category:393]] |
Revision as of 16:49, 19 January 2018
Contents
- 1 Important Notes
- 2 In the package
- 3 Interfaces
- 4 Power on
- 5 Defaults
- 6 Command line access
- 7 Serial console access
- 8 Web user interface (camvc)
- 9 Download live images
- 10 Video
- 11 Event Logger (GPS, IMU, IMG & EXT)
- 12 Change parameters
- 13 Image formats
- 14 Temperature monitor
- 15 eSATA port switching
- 16 Proper shutdown
- 17 Firmware/software update
- 18 Firmware images
- 19 Other info
- 19.1 Change default ip address
- 19.2 Set up histogram window and autoexposure parameters
- 19.3 Tools for calibrated systems
- 19.4 Switch between ERS and GRR modes in MT9P006
- 19.5 External/internal trigger and FPS control
- 19.6 SSD/MMC/USB formatting
- 19.7 Boot modes
- 19.8 Pointers monitor
- 19.9 Powering from batteries (12V or 48V)
- 19.10 Accessing raw pixel values
- 19.11 Photo finish (linescan mode)
- 20 Known problems
- 21 Notes
Important Notes
- As of 2016/12/15, the software ported from 10353 supports only 5MPix sensors, for 14MPix, please see:
In the package
- 10393 camera system
- Power supply wall adapter (options: 18-75V (default) or 12-36V - more information)
- CAT6 network cable
- μUSB-to-USB cable
- Recovery μSD card
- If the camera is calibrated the calibration data will be on a separate storage media or on the internal SSD (likely /mnt/sda1)
Interfaces
See Fig.1:
GigE | gigabit network |
---|---|
μSD | micro SD card slot - boot or storage |
console | serial console port, use μUSB-to-USB cable |
eSATA+USB | 2-in-1. Connect USB or eSATA device. USB2.0 host |
μUSB | USB2.0 host |
sync | sync multiple cameras or other devices - input/output trigger signal through a 4-conductor 2.5mm audio plug with cable (example: digikey) |
Power on
- Plug in the power supply
- Connect to LAN using the network cable
Notes
- Boot time: ~30s
- The default boot is from the on-board NAND flash. More information on available boot options and recovery boot.
Defaults
IP Address | 192.168.0.9 |
---|---|
User | root |
Password | pass |
- The default IP address is set in the /etc/elphel393/init_elphel393.py.
- If present the internal SSD will be formatted into 2 partitions:
- /dev/sda1 - ext4 (~64-100GB)
- /dev/sda2 - raw partition (no file system) for fast recording
Command line access
- ssh from PC's terminal:
user@hostname:~$ ssh root@192.168.0.9
Serial console access
- Use a microUSB-USB cable to connect console μUSB port (see Fig.1) to PC - the cable's end should be thin enough otherwise interferes with an inserted mmc (multi media card = μSD card).
- In Linux the minicom program can be used
$ minicom -c on
Most likely the device will be /dev/ttyUSB0. Settings:
- 115200 8N1, no for hardware/software flow control
Refer to the following article for more details on using minicom: Using minicom to connect to Elphel393 camera
Web user interface (camvc)
http://192.168.0.9/ (if not found - http://192.168.0.9/closeme.html (type in the browser address bar - will be changed soon)):
- The page contains links to camvc user interface for each individual camera port.
- camvc was ported from the 10353 camera series:
- change parameters like image format, resolution, auto exposure, auto white balance and more. Alternative way to change parameters is described below.
- pause compressor and search within buffered images
- help tips available - see Fig.2 - select then mouse over a control element of interest
Download live images
camvc
- For a currently opened port (displayed in the window title and as "...sensor_port=0..." in the URL):
browser
port 0: http://192.168.0.9:2323/img port 1: http://192.168.0.9:2324/img port 2: http://192.168.0.9:2325/img port 3: http://192.168.0.9:2326/img
command line
wget http://192.168.0.9:2323/img -O filename.jpeg wget http://192.168.0.9:2324/img -O filename.jpeg wget http://192.168.0.9:2325/img -O filename.jpeg wget http://192.168.0.9:2326/img -O filename.jpeg
Video
Display
Multipart JPEG stream
http://192.168.0.9:2323/mimg http://192.168.0.9:2324/mimg http://192.168.0.9:2325/mimg http://192.168.0.9:2326/mimg
RTSP
- turn on:
root@elphel393:~# /usr/bin/str
- url:
rtsp://192.168.0.9:554 rtsp://192.168.0.9:556 rtsp://192.168.0.9:558 rtsp://192.168.0.9:560
GStreamer
gst-launch-1.0 souphttpsrc is-live=true location=http://192.168.0.9:2323/mimg ! jpegdec ! xvimagesink
- mjpeg and rtsp
- More examples at Using GStreamer
Record
- Recording is done by the camogm program
- If recording to internal or external SSD, please, read about eSATA port switching
- important: Event logger (GPS, IMU, IMG, EXT) recording is started/stopped separately. See instructions below.
- For SATA devices camogm supports:
- recording to a partition with a file system - up to 80MB/s
- (default) faster recording to a partition without a file system (raw partition) avoiding OS calls - up to 220MB/s
- To extract data from a raw partition use dd or these scripts to get the data and split it into images. Follow this link for details.
- Can record to an mmc partiton or usb.
- More info
- If the prefix parameter, which is absolute path + prefix, for a channel is not set the file will be written somewhere to rootfs.
- if prefix is empty then the absolute path must end with a slash.
browser
Example 1: (provide a correct media mount point - /mnt/sda1/)
Follow this link for GUI description.
command line
Example:
- /home/root, file prefix=test_, 1GB or 10min files whichever occurs first
- setup and start (in one line):
echo "format=mov;status=/var/tmp/camogm.status;prefix=/home/root/test_;duration=600;length=1073741824;start" > /var/volatile/camogm_cmd
- stop recording:
echo "stop" > /var/volatile/camogm_cmd sync
Event Logger (GPS, IMU, IMG & EXT)
Record
web
- Start:
http://192.168.0.9/logger_launcher.php?cmd=start&file=/mnt/sda1/test.log&index=1&n=10000000
- Stop:
http://192.168.0.9/logger_launcher.php?cmd=stop
- Help:
http://192.168.0.9/logger_launcher.php
command line
- start:
root@elphel393:~# cat /dev/imu > /path/filename.log
- stop - CTRL-C or kill the process
Read
- http://192.168.0.9/read_imu_log.php (will display help)
- on the first access creates /www/pages/logs/ (http://192.168.0.9/logs/)
- link the recorded logs to /www/pages/logs/
- refresh http://192.168.0.9/read_imu_log.php
Change parameters
- http://192.168.0.9/autocampars.php - save/restore/initialize camera/sensor parameters
- http://192.168.0.9/parsedit.php - read/write parameters:
- POST request
Read: http://192.168.0.9/parsedit.php?sensor_port=0&PAR1&PAR2 Change: http://192.168.0.9/parsedit.php?sensor_port=0&PAR1&PAR2 - update values - submit form
- GET request - XML response
Read: http://192.168.0.9/parsedit.php?immediate&sensor_port=0&PAR1&PAR2 Change: http://192.168.0.9/parsedit.php?immediate&sensor_port=0&PAR1=VAL1&PAR2=VAL2
Note 1: if the parameter's value is specified in URL it will be applied. The call can have mixed specified and unspecified parameters.
Note 2: The new value is read on the next call.
Example:
- set 10 fps and enable output trigger signal
http://192.168.0.9/parsedit.php?sensor_port=0&immediate&TRIG_CONDITION=0&TRIG_OUT=0x66555&TRIG_PERIOD=10000000&TRIG=4
Notes:
- parsedit.php and autocampars.php were ported from 353 camera series. There are a few changes from the originals related to 4x sensor ports:
- parameters are individual for each sensor port - writing parameters to multiple port at once is controlled with a (bit-)mask input box
- if opened w/o sensor_port specified the page will show links to available ports
- sensor_port=x, where x=0..3 - in the address string - for a single sensor camera it is normally 0
Image formats
jpeg
- color: YCbCr 4:2:0, 3x3 pixels
- mono6: monochrome - color YCbCr 4:2:0 with zeroed out color components
- mono : monochrome - color YCbCr 4:0:0 with omitted color components
Note: Is not the best for processing since a lot of information is lost at demosaicing
jp4 raw
Temperature monitor
- http://192.168.0.9/hwmon.html:
- Tshutdown - automatic shutdown temperature level (default is 90°C)
eSATA port switching
- requres 10389
- available connections:
- camera <=> internal SSD (default)
- camera <=> external drive (external drive will need a separate power source)
- PC <=> internal SSD
- More information
Proper shutdown
- if not properly shutdown - μSD might get corrupted (run sync at least)
shutdown -hP now
Same effect:
http://192.168.0.9/autocampars.php?reboot
Firmware/software update
Firmware images
Other info
Change default ip address
- nano or vi
ssh root@192.168.0.9 pass root@elphel393:~# nano /etc/elphel393/init_elphel393.py edit - save
or
- sed
root@elphel393:~# sed -i.bkp 's/192.168.0.9/10.xx.xx.xx/' /etc/elphel393/init_elphel393.py root@elphel393:~# sed -i.bkp 's/255.255.255.0/xxx.xxx.xxx.xxx/' /etc/elphel393/init_elphel393.py
Then:
#boot from NAND flash? root@elphel393:~# overlay_sync 1 root@elphel393:~# shutdown -hP now #powercycle
#boot from card? root@elphel393:~# sync root@elphel393:~# reboot -f
Set up histogram window and autoexposure parameters
Tools for calibrated systems
- Install ImageJ plugins
- decode jp4 raw format
- aberrations correction
- distortion correction (pixel mapping)
- rectification and projection
- JP46 Reader camera - decode JP4/JP46
- Eyesis correction - post-process JP4s using calibration data
Switch between ERS and GRR modes in MT9P006
External/internal trigger and FPS control
SSD/MMC/USB formatting
Boot modes
Pointers monitor
- Displays sensor, compressor and buffer states per 10393 port:
http://192.168.0.9/pointers/
Powering from batteries (12V or 48V)
Accessing raw pixel values
Photo finish (linescan mode)
Photo Finish (works for JP4 image format)
Known problems
- [SOLVED] Vertical artifacts in jpegs. Images are ok at 100% quality. Fixed, testing.
- http://192.168.0.9:232x/noexif/mimg - multipart jpeg displays corrupted frames from time to time. Reason: network bandwidth?
- [SOLVED] Sometimes on power-on (NAND flash boot) cannot mount the card's rootfs partition. Kernel Panics. Power off/on. Soft "reboot -f" works ok.
... Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,2) ...
- Changing exposure/quality/gains - can corrupt images - needs testing.
- After rewriting rootfs to μSD card - some of the cards get a corrupted partition - re-partitioning (reformatting?) solves the problem.
On the camera the rootfs is mounted as RW and some of the files are changed (also links created) - most of the changes are now moved to tmpfs but something might have been missed.
Notes
- In case rootfs is on flash, it might make sense (or maybe not as the history is updated only once on session exit) to disable bash sessions command history - disable bash history
- When using overlays, deleting, existing in the lower layer, dirs can cause errors (hopefully it gets fixed someday), example:
- /mnt/sda1 exists in lower layer: /tmp/rootfs.ro/tmp
- upper layer is mounted to "/"
# rmdir /mnt/sda1 # mkdir /mnt/sda1 mkdir: cannot create directory '/mnt/sda1': Operation not supported