+++ /dev/null
-#!/bin/sh
-# Mount host directory on /mnt/host via virtio-9p
-
-if grep "virtio-9p" /proc/cmdline ; then
- if mount -t 9p -o trans=virtio fileshare /mnt/host -oversion=9p2000.L -o msize=65536; then
- echo -e "[${_Y}Mount.9pfs succeed${C_}]"
- else
- echo -e "[${_R}Mount.9pfs fail!!!!${C_}]"
- fi
-fi
-
--- /dev/null
+# This script is executed in initramfs.
+
+if [ ! -z $1 ]; then
+ NEW_ROOT=$1
+ # if NEW_ROOT is passed, it executed by initramfs.
+ # So, we should prepare some core utils.
+ /bin/busybox ln -sf /bin/busybox /bin/ln
+ ln -sf /bin/busybox /bin/sed
+ ln -sf /bin/busybox /bin/grep
+ ln -sf /bin/busybox /bin/cut
+ ln -sf /bin/busybox /bin/tr
+ ln -sf /bin/busybox /bin/expr
+ ln -sf /bin/busybox /bin/readlink
+ ln -sf /bin/busybox /bin/rm
+else
+ NEW_ROOT=
+fi
+
+if [ -d $NEW_ROOT/etc/emulator/prerun.d ]; then
+ for i in $NEW_ROOT/etc/emulator/prerun.d/*.sh; do
+ if [ -r $i ]; then
+ . $i
+ fi
+ done
+ unset i
+fi
+
--- /dev/null
+if [ ! -z $1 ]; then
+ NEW_ROOT=$1
+else
+ NEW_ROOT=
+fi
+
+CMDLINE=/proc/cmdline
+EMULATOR_ENV=$NEW_ROOT/etc/profile.d/emulator_env.sh
+
+##### network proxy environments
+echo -e "*** Generating network proxy env"
+
+if [ -f $EMULATOR_ENV ]; then
+ rm -f $EMULATOR_ENV
+fi
+
+# for busybux ash
+PROXIES0="http_proxy"
+PROXIES1="https_proxy"
+PROXIES2="ftp_proxy"
+PROXIES3="socks_proxy"
+
+URLS0="http"
+URLS1="https"
+URLS2="ftp"
+URLS3="socks"
+
+for index in 0 1 2 3
+do
+ eval PROXY="\$PROXIES$index"
+ eval URL="\$URLS$index"
+ if [ ! -z ${PROXY} ] ; then
+ EXPORT_CONTENT="${PROXY}="
+ if grep -q ${PROXY} $CMDLINE ; then
+ __PROXY=`sed "s/^.*${PROXY}=\([^, ]*\).*$/\1/g" $CMDLINE`
+ if [ "x${__PROXY}" != "x" ] ; then
+ EXPORT_CONTENT="${EXPORT_CONTENT}${URL}://${__PROXY}/" >> $EMULATOR_ENV
+ fi
+ fi
+ echo "export ${EXPORT_CONTENT}" >> $EMULATOR_ENV
+ echo -e "- ${EXPORT_CONTENT}"
+ fi
+done
+echo "export no_proxy=localhost,127.0.0.1/8,10.0.2.0/24" >> $EMULATOR_ENV
+echo -e "- no_proxy=localhost,127.0.0.1/8,10.0.2.0/24"
--- /dev/null
+ #!/bin/sh
+if [ ! -z $1 ]; then
+ NEW_ROOT=$1
+else
+ NEW_ROOT=
+fi
+
+USR_LIB=$NEW_ROOT/usr/lib
+YAGL_PATH=/usr/lib/yagl
+DUMMY_PATH=/usr/lib/dummy-gl
+
+echo -e "[${_G} Opengl-es acceleration module setting. ${C_}]"
+if [ -e /dev/yagl ] ; then
+ echo -e "[${_G} Emulator support gles hw acceleration. ${C_}]"
+ echo -e "[${_G} Apply to use hw gles library. ${C_}]"
+ ln -s -f $YAGL_PATH/libEGL.so.1.0 $USR_LIB/libEGL.so
+ ln -s -f $YAGL_PATH/libEGL.so.1.0 $USR_LIB/libEGL.so.1
+ ln -s -f $YAGL_PATH/libGLESv1_CM.so.1.0 $USR_LIB/libGLESv1_CM.so
+ ln -s -f $YAGL_PATH/libGLESv1_CM.so.1.0 $USR_LIB/libGLESv1_CM.so.1
+ ln -s -f $YAGL_PATH/libGLESv2.so.1.0 $USR_LIB/libGLESv2.so
+ ln -s -f $YAGL_PATH/libGLESv2.so.1.0 $USR_LIB/libGLESv2.so.1
+else
+ echo -e "[${_G} Emulator does *not* support gles hw acceleration. ${C_}]"
+ echo -e "[${_G} Apply to use gles stub library. ${C_}]"
+ ln -s -f $DUMMY_PATH/libEGL_dummy.so $USR_LIB/libEGL.so
+ ln -s -f $DUMMY_PATH/libEGL_dummy.so $USR_LIB/libEGL.so.1
+ ln -s -f $DUMMY_PATH/libGLESv1_dummy.so $USR_LIB/libGLESv1_CM.so
+ ln -s -f $DUMMY_PATH/libGLESv1_dummy.so $USR_LIB/libGLESv1_CM.so.1
+ ln -s -f $DUMMY_PATH/libGLESv2_dummy.so $USR_LIB/libGLESv2.so
+ ln -s -f $DUMMY_PATH/libGLESv2_dummy.so $USR_LIB/libGLESv2.so.1
+fi
-#!/bin/sh
+if [ ! -z $1 ]; then
+ NEW_ROOT=$1
+else
+ NEW_ROOT=
+fi
+
CMDLINE=/proc/cmdline
-XML=/etc/config/model-config.xml
+XML=$NEW_ROOT/etc/config/model-config.xml
+echo -e "*** Setting model-config.xml"
-echo -e "[${_G} model config setting ${C_}]"
+if [ ! -f $XML ] ; then
+ echo -e "- model-config.xml does not exist"
+ exit
+fi
# display resolution
-if grep --silent "video=" $CMDLINE ; then
- echo -e "[${_G} modify the resolution value of platform features: ${C_}]"
-
+if grep -q "video=" $CMDLINE ; then
VIDEO=`sed s/.*video=// $CMDLINE | cut -d ' ' -f1`
FORMAT=`echo $VIDEO | cut -d ':' -f2 | cut -d ',' -f2`
RESOLUTION=`echo $FORMAT | cut -d '-' -f1`
TR_NUM=`echo $WIDTH$HEIGHT | tr -d '[0-9]'`
if [ "$TR_NUM" != "" ] ; then
- echo "non-integer argument"
+ echo -e "- resolution value is non-integer argument"
else
WIDTH_KEY="tizen.org\/feature\/screen.width\" type=\"int\""
sed -i s/"$WIDTH_KEY".*\</"$WIDTH_KEY"\>"$WIDTH"\</ $XML
HEIGHT_KEY="tizen.org\/feature\/screen.height\" type=\"int\""
sed -i s/"$HEIGHT_KEY".*\</"$HEIGHT_KEY"\>"$HEIGHT"\</ $XML
- echo -e "[${_G} width=$WIDTH, height=$HEIGHT ${C_}]"
+ echo -e "- width=$WIDTH, height=$HEIGHT"
# screen size
SCREENSIZE_KEY="tizen.org\/feature\/screen.size"
fi
# dot per inch
-if grep --silent "dpi=" $CMDLINE ; then
- echo -e "[${_G} modify the dpi value of platform features: ${C_}]"
-
+if grep -q "dpi=" $CMDLINE ; then
DPI=`sed s/.*dpi=// $CMDLINE | cut -d ' ' -f1`
TR_NUM=`echo $DPI | tr -d '[0-9]'`
if [ "$TR_NUM" != "" ] ; then
- echo "non-integer argument"
+ echo -e "- dpi value is non-integer argument"
else
- SCREEN_DPI=`expr "$DPI" "/" 10`
+ #temp
+ if [ "$DPI" -gt "999" ] ; then
+ SCREEN_DPI=`expr "$DPI" "/" 10`
+ else
+ SCREEN_DPI="$DPI"
+ fi
DPI_KEY="tizen.org\/feature\/screen.dpi\" type=\"int\""
sed -i s/"$DPI_KEY".*\</"$DPI_KEY"\>"$SCREEN_DPI"\</ $XML
- echo -e "[${_G} dpi=$SCREEN_DPI ${C_}]"
+ echo -e "- dpi=$SCREEN_DPI"
fi
fi
+++ /dev/null
-#/bin/sh -e
-
-CMDLINE=/proc/cmdline
-VIDEO=`sed s/.*video=// $CMDLINE | cut -d ' ' -f1`
-FORMAT=`echo $VIDEO | cut -d ':' -f2 | cut -d ',' -f2`
-RESOLUTION=`echo $FORMAT | cut -d '-' -f1`
-W=`echo $RESOLUTION | awk -Fx '{print $1}'`
-H=`echo $RESOLUTION | awk -Fx '{print $2}'`
-
-if [ -d /usr/share/edje ] && [ -d /usr/share/edje/emul ] &&
- [ -f /usr/share/edje/emul/1X1_poweron.edj ] && [ -f /usr/share/edje/emul/1X1_poweroff.edj ] &&
- [ -f /usr/share/edje/emul/3X4_poweron.edj ] && [ -f /usr/share/edje/emul/3X4_poweroff.edj ]
-then
- rm -f /usr/share/edje/poweron.edj
- rm -f /usr/share/edje/poweroff.edj
- if [ $W == $H ]
- then
- ln -s emul/1X1_poweron.edj /usr/share/edje/poweron.edj
- ln -s emul/1X1_poweroff.edj /usr/share/edje/poweroff.edj
- else
- ln -s emul/3X4_poweron.edj /usr/share/edje/poweron.edj
- ln -s emul/3X4_poweroff.edj /usr/share/edje/poweroff.edj
- fi
-fi
+++ /dev/null
-#!/bin/sh
-/etc/emulator/mount-hostdir.sh
--- /dev/null
+# W/A for incorrect rendering
+export ECORE_EVAS_FORCE_SYNC_RENDER=1
+++ /dev/null
-#!/bin/sh
-if grep -q "http_proxy=" /proc/cmdline ; then
- __proxy=`sed 's/^.*http_proxy=\([^, ]*\).*$/\1/g' /proc/cmdline`
- if [ "x${__proxy}" = "x" ]; then
- export "http_proxy="
- else
- export "http_proxy=http://${__proxy}/"
- fi
-fi
-if grep -q "https_proxy=" /proc/cmdline ; then
- __proxy=`sed 's/^.*https_proxy=\([^, ]*\).*$/\1/g' /proc/cmdline`
- if [ "x${__proxy}" = "x" ]; then
- export "https_proxy="
- else
- export "https_proxy=https://${__proxy}/"
- fi
-fi
-if grep -q "ftp_proxy=" /proc/cmdline ; then
- __proxy=`sed 's/^.*ftp_proxy=\([^, ]*\).*$/\1/g' /proc/cmdline`
- if [ "x${__proxy}" = "x" ]; then
- export "ftp_proxy="
- else
- export "ftp_proxy=ftp://${__proxy}/"
- fi
-fi
-if grep -q "socks_proxy=" /proc/cmdline ; then
- __proxy=`sed 's/^.*socks_proxy=\([^, ]*\).*$/\1/g' /proc/cmdline`
- if [ "x${__proxy}" = "x" ]; then
- export "socks_proxy="
- else
- export "socks_proxy=socks://${__proxy}/"
- fi
-fi
-export "no_proxy=localhost,127.0.0.1/8,10.0.0.0/16"
--- /dev/null
+[Unit]
+Description=Swap on emulator
+
+[Swap]
+What=/dev/disk/by-label/emulator-swap
+
+[Install]
+WantedBy=emulator_preinit.target
[Service]
Type=oneshot
-# platform features
-ExecStartPre=/bin/sh -c '/etc/emulator/model-config.sh'
-# for boot-animation
-ExecStartPre=/bin/sh -c '/etc/emulator/select-boot-animation.sh'
+# execute prerun scripts.
+# it is not necessary because it is already executed from initramfs.
+# commented out for debugging.
+#ExecStartPre=/bin/sh -c '. /etc/emulator/prerun'
+
# W/A for alarm-service
ExecStart=/bin/touch /dev/rtc1
+++ /dev/null
-[Unit]
-Description=Mount host directory
-DefaultDependencies=no
-
-[Service]
-Type=oneshot
-ExecStart=/etc/emulator/mount-hostdir.sh
-
-[Install]
-WantedBy=emulator_preinit.target
[Service]
Type=oneshot
-ExecStart=/opt/usr/devel/usr/bin/amixer "cset" "name='Master Playback Switch'" "1"
-ExecStart=/opt/usr/devel/usr/bin/amixer "cset" "name='Master Playback Volume'" "50"
-ExecStart=/opt/usr/devel/usr/bin/amixer "cset" "name='PCM Playback Switch'" "1"
-ExecStart=/opt/usr/devel/usr/bin/amixer "cset" "name='PCM Playback Volume'" "31"
+ExecStart=/usr/bin/amixer "cset" "name='Master Playback Switch'" "1"
+ExecStart=/usr/bin/amixer "cset" "name='Master Playback Volume'" "50"
+ExecStart=/usr/bin/amixer "cset" "name='PCM Playback Switch'" "1"
+ExecStart=/usr/bin/amixer "cset" "name='PCM Playback Volume'" "31"
[Install]
WantedBy=emulator_preinit.target
[Service]
Type=oneshot
ExecStart=/usr/bin/env -i sh -c 'source /etc/profile; env | egrep -v "^(HOME|PWD|SHLVL|_)=" > /run/tizen-mobile-env'
+ExecStartPost=/usr/bin/chsmack -a "_" /run/tizen-mobile-env
[Install]
WantedBy=basic.target
[Service]
Type=oneshot
ExecStart=/bin/sh -c 'while [ ! -e /tmp/.wm_ready ]; do sleep 0.1 ; done'
+TimeoutSec=30s
[Install]
WantedBy=tizen-boot.target
-KERNEL=="glmem", MODE="0666", SECLABEL{smack}="*"
-KERNEL=="yagl", MODE="0666", SECLABEL{smack}="*"
-KERNEL=="esm", MODE="0666", SECLABEL{smack}="*"
-
-KERNEL=="brillcodec", GROUP="hwcodec", MODE="0666", SECLABEL{smack}="*"
-
-KERNEL=="video0", GROUP="camera", MODE="0660", SECLABEL{smack}="device::camera"
-KERNEL=="video1", GROUP="video", MODE="0660", SECLABEL{smack}="device::video"
-KERNEL=="video2", GROUP="video", MODE="0660", SECLABEL{smack}="device::video"
-
-KERNEL=="vdpram*", MODE="0644"
-
-# Moved from /etc/rc.d/rc3.d/S30brightness
-SUBSYSTEM=="lcd", ATTR{lcd_power}=="?*", RUN+="/bin/chown :system_bklight 0664 %S/%p/lcd_power"
-
-SUBSYSTEM=="drm", SECLABEL{smack}="*"
+KERNEL=="yagl", GROUP="video", MODE="0660", SECLABEL{smack}="*"
+SUBSYSTEM=="drm", GROUP="video", MODE="0660", SECLABEL{smack}="*"
+KERNEL=="brillcodec", GROUP="hwcodec", MODE="0666", SECLABEL{smack}="*"
+KERNEL=="video0", GROUP="camera", MODE="0660", SECLABEL{smack}="device::camera"
+KERNEL=="video1", GROUP="video", MODE="0660", SECLABEL{smack}="device::video"
+KERNEL=="video2", GROUP="video", MODE="0660", SECLABEL{smack}="device::video"
+KERNEL=="vdpram*", GROUP="system", MODE="0660", SECLABEL{smack}="*"
+
+# not enabled now
+#KERNEL=="esm", MODE="0660", SECLABEL{smack}="*"
+
+# SDCard
+KERNEL=="vd[a-z]", ENV{ID_FS_LABEL_ENC}=="emul-sdcard*" SYMLINK+="sdcard/%k"
<manifest>
- <request>
+ <request>
<domain name="_"/>
- </request>
+ </request>
+ <assign>
+ <filesystem path='/etc/emulator/prerun.d/generate-emulator-env.sh' exec_label='none' />
+ <filesystem path='/etc/emulator/prerun.d/set-model-config.sh' exec_label='none' />
+ <filesystem path='/etc/rc.d/rc.sysinit' exec_label='none' />
+ <filesystem path='/etc/rc.d/rc.emul' exec_label='none' />
+ <filesystem path='/etc/rc.d/rc.shutdown' exec_label='none' />
+ <filesystem path='/etc/rc.d/rc.firstboot' exec_label='none' />
+ <filesystem path='/etc/preconf.d/emulator_ns.preinit' exec_label='none' />
+ <filesystem path='/etc/preconf.d/systemd_conf.preinit' exec_label='none' />
+ <filesystem path='/etc/profile.d/proxy_setting.sh' exec_label='none' />
+ </assign>
</manifest>
Name: system-plugin-emulator
-Version: 0.1.5
+Version: 0.1.11
Release: 1
%define systemd_dir /usr/lib/systemd
find . -name .gitignore -exec rm -f {} \;
cp -arf filesystem/* %{buildroot}
-# for legacy init
-if [ ! -d %{buildroot}/etc/rc.d/rc3.d ]; then
- mkdir -p %{buildroot}/etc/rc.d/rc3.d
-fi
-ln -s /etc/init.d/mount-hostdir %{buildroot}//etc/rc.d/rc3.d/S03mount-hostdir
-ln -s /etc/init.d/ssh %{buildroot}/etc/rc.d/rc3.d/S50ssh
-
# for systemd
# for emulator_preinit.target
mkdir -p %{buildroot}/%{systemd_dir}/system/basic.target.wants
ln -s %{systemd_dir}/system/emulator_preinit.target %{buildroot}/%{systemd_dir}/system/basic.target.wants/
mkdir -p %{buildroot}/%{systemd_dir}/system/emulator_preinit.target.wants
ln -s %{systemd_dir}/system/emul-setup-audio-volume.service %{buildroot}/%{systemd_dir}/system/emulator_preinit.target.wants/
-ln -s %{systemd_dir}/system/emul-mount-hostdir.service %{buildroot}/%{systemd_dir}/system/emulator_preinit.target.wants/
ln -s %{systemd_dir}/system/emul-common-preinit.service %{buildroot}/%{systemd_dir}/system/emulator_preinit.target.wants/
+ln -s %{systemd_dir}/system/dev-disk-by\\x2dlabel-emulator\\x2dswap.swap %{buildroot}/%{systemd_dir}/system/emulator_preinit.target.wants/
# for emulator.target
mkdir -p %{buildroot}/%{systemd_dir}/system/multi-user.target.wants
ln -s %{systemd_dir}/system/emulator.target %{buildroot}/%{systemd_dir}/system/multi-user.target.wants/
ln -s ../wm_ready.service %{buildroot}/%{systemd_dir}/system/tizen-boot.target.wants/
mkdir -p %{buildroot}/%{systemd_dir}/system/tizen-system.target.wants
-# for host file sharing
-mkdir -p %{buildroot}/mnt/host
-
# include license
mkdir -p %{buildroot}/usr/share/license
cp LICENSE %{buildroot}/usr/share/license/%{name}
+%if "%{?tizen_profile_name}" == "mobile" || "%{?tizen_profile_name}" == "tv"
+touch %{buildroot}/etc/machine-id
+%else
+rm %{buildroot}/etc/machine-id
+%endif
+
%post
#make fstab
if [ -e /etc/fstab ]; then
-%if "%{?tizen_profile_name}" == "mobile"
- echo "/opt/var /var bind bind 0 0" >> /etc/fstab
-%endif
echo "tmpfs /tmp tmpfs comment=havefs-smackfs-smackfsroot=* 0 0" >> /etc/fstab
- echo "/dev/vdb swap swap defaults 0 0" >> /etc/fstab
fi
%posttrans
/etc/preconf.d/emulator_ns.preinit
%files
-/etc/emulator/mount-hostdir.sh
-/etc/emulator/model-config.sh
-/etc/emulator/select-boot-animation.sh
-/etc/init.d/mount-hostdir
+/etc/emulator/prerun
+/etc/emulator/prerun.d/set-model-config.sh
+/etc/emulator/prerun.d/generate-emulator-env.sh
+/etc/emulator/prerun.d/opengl-es-setup-yagl-env.sh
/etc/inittab
+%if "%{?tizen_profile_name}" == "mobile" || "%{?tizen_profile_name}" == "tv"
+/etc/machine-id
+%endif
/etc/preconf.d/emulator_ns.preinit
/etc/preconf.d/systemd_conf.preinit
-/etc/profile.d/proxy_setting.sh
+/etc/profile.d/emulator_ecore_workaround.sh
/etc/rc.d/rc.emul
/etc/rc.d/rc.firstboot
/etc/rc.d/rc.shutdown
/etc/rc.d/rc.sysinit
-/etc/rc.d/rc3.d/S03mount-hostdir
-/etc/rc.d/rc3.d/S50ssh
/etc/systemd/default-extra-dependencies/ignore-units
/usr/lib/systemd/system/emulator_preinit.target
/usr/lib/systemd/system/emulator.target
/usr/lib/systemd/system/multi-user.target.wants/tizen-system.target
/usr/lib/systemd/system/multi-user.target.wants/tizen-runtime.target
/usr/lib/systemd/system/emul-setup-audio-volume.service
-/usr/lib/systemd/system/emul-mount-hostdir.service
/usr/lib/systemd/system/emul-common-preinit.service
+/usr/lib/systemd/system/dev-disk-by\x2dlabel-emulator\x2dswap.swap
/usr/lib/systemd/system/emulator_preinit.target.wants/emul-setup-audio-volume.service
-/usr/lib/systemd/system/emulator_preinit.target.wants/emul-mount-hostdir.service
/usr/lib/systemd/system/emulator_preinit.target.wants/emul-common-preinit.service
+/usr/lib/systemd/system/emulator_preinit.target.wants/dev-disk-by\x2dlabel-emulator\x2dswap.swap
/usr/lib/systemd/system/tizen-boot.target
/usr/lib/systemd/system/tizen-system.target
/usr/lib/systemd/system/tizen-runtime.target
/usr/lib/systemd/system/tizen-generate-env.service
/usr/lib/udev/rules.d/51-tizen-udev-default.rules
/usr/lib/udev/rules.d/95-tizen-emulator.rules
-%dir /mnt/host
/usr/share/license/%{name}
+%manifest packaging/%{name}.manifest
+