Итак, с манипуляциями в "/tmp/run/ipc__storage_manager" пока не удалось разобраться. Тем не менее удалось выяснить, как перезапустить storage_manager после его "убийства" (а это уже тот минимум, на который я рассчитывал). Для начала объявляем LD_LIBRARY_PATH необходимый для запуска storage_manager'а
LD_LIBRARY_PATH=/firmware_ext/opera/lib/:/firmware_ext/ekioh/lib/:/firmware_ext/flashlite/lib/:/firmware/lib:/tango/mrua/lib:/tango3//dcchd/lib:/tango3/mrua/MRUA_src/lib:/firmware/lib::/firmware_ext/qtbrowser//lib:/firmware_ext/qtbrowser//plugins/bearer:/firmware_ext/qtbrowser//plugins/gfxdrivers:/firmware_ext/qtbrowser//plugins/iconengines:/firmware_ext/qtbrowser//plugins/imageformats:/firmware_ext/qtbrowser//plugins/sqldrivers
его можно в частности подсмотреть в
/tmp/run/start_firmware.log
, далее переходим в корень (cd /) и стартуем менеджер командой
firmware/bin/storage_manager
без первого слеша (это критично, иначе не запуститься) и он стартует в качестве демона в терминале. Если нужно запусить в фоне, достаточно на конец добавить "&" т.е.
firmware/bin/storage_manager &
как это собственно организовано bdstart.sh
После того, как storage_manager был прибит, я воткнул флешку и после снова инициализировал процесс с включённым трейсингом, но ничего особо нового по манипуляциями в "/tmp/run/ipc__storage_manager" выяснить не удалось. При этом удалось обнаружить обращение к ряду файлов, среди которых в частности были с неясным назначением (ибо таковых у меня тупо не существовало, под светил жирным)
/etc/localtime
/firmware/translations/languages.properties
/fconfig/power_button_behaviour_choice_disabled
/fconfig/rct.txt
/config/settings.properties
/firmware/config/upgrade_settings.properties
/config/upgrade_settings_applyed.properties
/config/rs/dxe.txt
/config/rs/st.txt
/fconfig/rs/st.txt
/D/dune_folder.txt
/etc/blkid.conf
/tmp/mnt/storage/MyDrive/dune_folder.txt
/etc/samba/smb.conf
/tmp/run/storage_list.xml
помимо этого удалось обнаружить утилиту
/firmware/bin/sg_start
которая вроде как занимается извлечением дисков из приводов или остановкой hdd. Или тем и другим вместе
/firmware/bin/sg_start --help
Unrecognized option: help
Usage: sg_start [0|--stop|1|--start] [--eject] [--fl=<n>] [-i] [--imm=0|1]
[--load] [--loej] [--pc=<n>] [-v] [-V] <device>
where: 0 stop unit (e.g. spin down a disk or a cd/dvd)
1 start unit (e.g. spin up a disk or a cd/dvd)
--eject stop then eject the medium
--fl=<n> format layer number (mmc5)
-i return immediately (same as '--imm=1')
--imm=0|1 0->await completion(def), 1->return immediately
--load load then start the medium
--loej load the medium if '-start' option is also given
or stop unit and eject
--pc=<n> power conditions (in hex, default 0 -> no power condition)
1 -> active, 2 -> idle, 3 -> standby, 5 -> sleep (MMC)
--start start unit (same as '1'), default action
--stop stop unit (same as '0')
-v verbose (print out SCSI commands)
-V print version string then exit
Example: 'sg_start --stop /dev/sdb' stops unit
'sg_start --eject /dev/scd0' stops unit and ejects medium
Performs a START STOP UNIT SCSI command
ну идо кучи в storage_manager за светилась утилитка eject, которая тоже занимается открытием/закрытием лотка привода
/usr/bin/eject --help
BusyBox v1.15.3 (2014-12-19 12:09:12 MSK) multi-call binary
Usage: eject [-t] [-T] [DEVICE]
Eject specified DEVICE (or default /dev/cdrom)
Options:
-s SCSI device
-t Close tray
-T Open/close tray (toggle)
p.s. Что до сих пор не удалось понять, так что это за "simple_ipc_server" с которым "общается" storage_manager давая в выхлоп строки с "stormgr_ipc" ?
p.p.s. Ещё момент который не даёт покоя - по каккому принципу storage_manager занимается монтированием /D и как избежаться монтирования как "/D" не того раздела не того накопителя, либо заставить storage_manager перебиндить /D ?