On Tue, 2013-11-12 at 09:55 +0100, Łukasz Stelmach wrote:
> It was <2013-11-08 pią 18:34>, when Jacek Bukarewicz wrote:
> 
> >   2) RD-PQ userspace image consists of 3 parts - platform.img,
> > data.img, ums.img. Only platform.img is mounted which results in /opt
> > directory missing. Seems like "mic create loop" command puts hardcoded
> > values into /etc/fstab. The workaround is to remove DATA and UMS
> > partition from RD-PQ.ks file or edit /etc/fstab so 2 missing paritions
> > are mounted on /opt and /opt/usr.  We are working on a proper
> > solution.
> 
> There seem to be a problem with mic not generating fstab properly. I am
> working to fix it.

(writing in hurry, so e-mail is messy, if you need more info, ask
specific questions please)

The new policy is that MIC should not generate /etc/fstab at all. And
not only this, but also many other files from /etc. In general, MIC
should simply install packages, everything else - not MIC's business.
Hardcoding anything in MIC for /etc/fstab is a dirty hack.

I mean, currently MIC does generate a lot of stuff, but the policy is
that we do not change this, and do not add more. Instead, if something
needs to change, it starts using the new scheme called "installer
framework plugins".

So the solution we agreed on is so-called installer framework. It is
currently only implemented for the boot-loader and is used in Tizen IVI.
For /etc/fstab it is not implemented, but should be.

It would work like this. Tizen profile implements its own project, say,
setup-fstab-mobile. This project contains a script which
creates /etc/fstab and populates it with data. MIC calls this script.

At the moment it is implemented like this. MIC defines a bunch of
environment variables which contain all the information about
partitioning. The setup-efi-mobile scirpt uses them for
generating /etc/fstab.

The installer framework scripts are executed from the KS file as of
today. For example, see the Tizen IVI KS file, we call setup-efi-ivi
script from there. The script is in tizen.org in the setup-efi-ivi
project, you can take a look. This script sets up the boot-loader
configuration, etc. It uses installer framework environment variables to
get the information about partitions.

http://download.tizen.org/releases/daily/tizen/ivi/ivi/tizen_20131107.5/images/ivi-efi-i586/ivi-efi-i586.ks

Later this may be a different mechanism, but now we use KS file's "post"
section.

So if you want to change the way fstab is generated, you should write
your own script and file a ticket against MIC to make it stop
generating /etc/fstab and instead, rely on an external script.

See in the KS file we have:

installerfw_plugins "bootloader"

which  means: do not run your hacks for installing bootloader, we'll do
this ourselves.

And nice thing is - we now do not have to touch MIC if we want to change
anythign in the bootloader config file, like timeout delay, or menu. We
control this.

For fstab, this would be something like:

installerfw_plugins "fstab"

meaning: disable your fstab hacks, we'll generate it ourselves.

And then you'd have something like

%post
setup-fstab-mobile

which would generate fstab _you_ need, and which would come from
tizen.org.

Here is, BTW, the our 'setup-efi-ivi' script:

https://review.tizen.org/git/?p=profile/ivi/setup-efi-ivi.git;a=blob;f=setup-efi-ivi;h=cc66d09b363a48355c9a6eec938e36638b1bb088;hb=HEAD

Here are the installer framework variables currently defined:

    INSTALLERFW_DISTRO_NAME - distribution name (Tizen)
    INSTALLERFW_KERNEL_OPTS - kernel options from the KS file
    INSTALLERFW_MOUNT_PREFIX - "/" , in case of pc-installer it will be the 
target disk root directory, for example "/mnt/target_system/"
    INSTALLERFW_INSTALLER_NAME - "mic", in case of pc-installer it will be 
"pc-installer"
    INSTALLERFW_PTABLE_FORMAT - "mbr" or "gpt"
    INSTALLERFW_PART_COUNT - count of partitions
    For every partition x (from 0 to INSTALLERFW_PART_COUNT-1)
        INSTALLERFW_PARTx_FSTYPE - "ext4", "btrfs", "vfat", etc
        INSTALLERFW_PARTx_FSOPTS - file-system mount options
        INSTALLERFW_PARTx_UUID - file-system UUID
        INSTALLERFW_PARTx_BOOTFLAG - whether the partition has the "boot" flag 
set, "True" of "False"
        INSTALLERFW_PARTx_PARTUUID - partition UUID (GUID) in case of the GPT 
partition table
        INSTALLERFW_PARTx_SIZE - partition size in Megabytes
        INSTALLERFW_PARTx_MOUNTPOINT - partition mount-point relative to 
INSTALLERFW_MOUNT_PREFIX
        INSTALLERFW_PARTx_DEVNODE - device node of the partition in Tizen OS 
environment when it will actually run
        INSTALLERFW_PARTx_LABEL - file-system label
        INSTALLERFW_PARTx_TYPE_ID - file-system type GUID in case of GPT 
partitions
        INSTALLERFW_PARTx_ALIGN - partition alignment in 512-byte sectors 

-- 
Best Regards,
Artem Bityutskiy

_______________________________________________
Dev mailing list
[email protected]
https://lists.tizen.org/listinfo/dev

Reply via email to