<div>Hello!</div><div> </div><div>I'll try to answer your question about rwfs image.</div><div>I had the same issue plus I wanted to be able to create some data in rwfs segment.</div><div>Thus I've created obmc-phosphor-image.bbappend where I do the following:</div><div><div>======================================================================</div><div>RWFS_SIZE ?= "4194304"</div><div>OVERLAY_MKFS_OPTS = " --pad=${RWFS_SIZE}"</div></div><div><div> </div><div># Override JFFS image creation</div><div>do_generate_rwfs_static() {<!-- --></div><div>rwdir=$(pwd)</div><div>rwdir=${rwdir}/jffs2</div><div>image=rwfs.jffs2</div><div> </div><div>rm -rf $rwdir $image > /dev/null 2>&1</div><div>mkdir -p ${rwdir}/cow</div><div>rwdir=${rwdir}/cow</div><div> </div><div>bbplain "DEBUG: Creating RWFS image "</div><div> </div><div>mv ${IMAGE_ROOTFS}/rwfs/* ${rwdir}/</div><div>rm -rf ${IMAGE_ROOTFS}/rwfs</div><div> </div><div># Create necessary files, directories, etc in ${rwdir}</div><div>${JFFS2_RWFS_CMD} ${OVERLAY_MKFS_OPTS} ${OVERLAY_MKFS_OPTS} --squash-uids</div><div>}</div></div><div>======================================================================</div><div> </div><div>At the end I have the normal JFFS2 image instead of empty.</div><div> </div><div>Hope this can help.</div><div> </div><div>21.04.2020, 18:24, "zhouyuanqing8@outlook.com" <zhouyuanqing8@outlook.com>:</div><blockquote><div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:12pt">Hi </div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:12pt"> </div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:12pt">    This is a very good idea. As the first time to do openbmc, I look forward to it. Currently, I am being troubled by the problems you describe.</div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:12pt"> </div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:12pt">    The following questions, please also help you answer it, thank you very much.</div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:12pt"> </div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:12pt">    1.I modified the dts file, how to use the command "bitbake -f linux-aspeed" to Generate fitimage and dub&#xff1f;</div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:12pt">     Now, I modify the dts file in the kernel source directory. When I compile, bitbake will re-fetch the source code, decompress, patch, configure, and compile, causing my changes to be overwritten. I currently use manual call scripts to compile dts files and make images for debugging.Is there a way to make bitbake skip the previous steps and compile directly&#xff1f;</div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:12pt"> </div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:12pt"> </div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:12pt">     2.The size of image-rwfs is 0, I want to use rwfs debugging, how to configure to generate a normal image-rwfs? </div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:12pt">     -rw-r--r--. 2 harleyzhou harleyzhou     9443             4月        7 17:27 obmc-phosphor-image-xxh-20200407092558.rootfs.manifest<div>     -rw-r--r--. 2 harleyzhou harleyzhou 18214912         4月    7 17:27 obmc-phosphor-image-<span style="background-color:#ffffff;font-family:'calibri' , 'arial' , 'helvetica' , sans-serif">xxh</span>-20200407092558.rootfs.squashfs-xz</div><div>     -rw-rw-r--. 2 harleyzhou harleyzhou 33554432        4月   7 17:27 obmc-phosphor-image-<span style="background-color:#ffffff;font-family:'calibri' , 'arial' , 'helvetica' , sans-serif">xxh</span>-20200407092558.static.mtd</div><div>     -rw-rw-r--. 2 harleyzhou harleyzhou 33566720        4月   7 17:28 obmc-phosphor-image-<span style="background-color:#ffffff;font-family:'calibri' , 'arial' , 'helvetica' , sans-serif">xxh</span>-20200407092558.static.mtd.all.tar</div><div>     -rw-rw-r--. 2 harleyzhou harleyzhou 22384640        4月   7 17:28 obmc-phosphor-image-<span style="background-color:#ffffff;font-family:'calibri' , 'arial' , 'helvetica' , sans-serif">xxh</span>-20200407092558.static.mtd.tar</div><div>     -rw-r--r--. 2 harleyzhou harleyzhou   308218            4月      7 17:27 obmc-phosphor-image-<span style="background-color:#ffffff;font-family:'calibri' , 'arial' , 'helvetica' , sans-serif">xxh</span>-20200407092558.testdata.json</div><div>     -rw-r--r--. 2 harleyzhou harleyzhou           0              <span style="background-color:#00ff00"> 4月   7 17:27 obmc-phosphor-image-</span><span style="background-color:#00ff00;font-family:'calibri' , 'arial' , 'helvetica' , sans-serif">xxh</span><span style="background-color:#00ff00">.jffs2</span></div></div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:12pt"> </div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:12pt"> </div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:12pt">    3. I did not find the source code of "pgood_wait" and "power_control.exe" in obmc-op-control-power? where can I get it ?</div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:12pt"> </div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:12pt"> </div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:12pt">    4.<span style="background-color:#ffffff;color:#24292e">OpenBMC uses </span><a href="https://www.freedesktop.org/wiki/Software/systemd/" style="box-sizing:border-box;color:rgb( 3 , 102 , 214 )">systemd</a><span style="background-color:#ffffff;color:#24292e"> to manage all processes, So i analyzed the process of systemd starting process and saw "default.target-> basic.target-> sysinit.target-> local-fs.target", there is no content behind.please help to provide clues of systemd starting process.</span></div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:12pt"> </div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:12pt"><span style="background-color:#ffffff;color:#24292e">    5.I understand the following execution process of power-on , help check if it is correct.</span></div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:12pt">       a).rest or busctl send power-on commands to systemd through d-bus messages.</div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:12pt">       b).systemd find the <span style="background-color:#ffffff;color:#24292e;font-family:'pingfang sc';font-size:12px"> obmc-chassis-poweron@.target</span></div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:12pt"><span style="background-color:#ffffff;color:#24292e;font-family:'pingfang sc';font-size:12px">      <span style="background-color:#ffffff;color:#000000;font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:16px">   c).systemd find the <span style="background-color:#ffffff;color:#24292e;font-family:'pingfang sc';font-size:12px">obmc-power-start@.target</span></span></span></div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:12pt"><span style="background-color:#ffffff;color:#24292e;font-family:'pingfang sc';font-size:12px"><span style="background-color:#ffffff;color:#000000;font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:16px"><span style="background-color:#ffffff;color:#24292e;font-family:'pingfang sc';font-size:12px">        <span style="background-color:#ffffff;color:#000000;font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:16px"> d).systemd find the <span style="background-color:#ffffff;color:#24292e;font-family:'pingfang sc';font-size:12px"><a href="mailto:op-power-start@0.service">op-power-start@0.service</a></span><span style="color:#24292e;font-family:'pingfang sc';font-size:12px;margin:0px"> </span></span></span></span></span></div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:12pt"><span style="background-color:#ffffff;color:#24292e;font-family:'pingfang sc';font-size:12px"><span style="background-color:#ffffff;color:#000000;font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:16px"><span style="background-color:#ffffff;color:#24292e;font-family:'pingfang sc';font-size:12px"><span style="background-color:#ffffff;color:#000000;font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:16px"><span style="color:#24292e;font-family:'pingfang sc';font-size:12px;margin:0px">        <span style="background-color:#ffffff;color:#000000;font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:16px;margin:0px">e).<span style="background-color:#ffffff;font-family:'calibri' , 'arial' , 'helvetica' , sans-serif">systemd start a thread and execute "<span style="background-color:#ffffff;color:#24292e;font-family:'pingfang sc';font-size:12px">busctl call `mapper get-service /org/openbmc/control/power%i` /org/openbmc/control/power%i org.openbmc.control.Power setPowerState I 1"</span></span></span></span></span></span></span></span></div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:12pt"> </div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:12pt">appendix&#xff1a;</div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:12pt"><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e">ls <a href="mailto:obmc-chassis-poweron@0.target.requires">obmc-chassis-poweron@0.target.requires</a></span></p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e"><a href="mailto:op-power-start@0.servic">op-power-start@0.servic</a>e  <a href="mailto:op-wait-power-on@0.service">op-wait-power-on@0.service</a></span></p><p style="font:12px 'pingfang sc';margin:0px;min-height:17px"> </p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e">cat obmc-chassis-poweron@.target </span></p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e">[Unit]</span></p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e">Description=Chassis%i (Power On)</span></p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e">Wants=multi-user.target</span></p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e">After=multi-user.target</span></p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e"><a href="mailto:Wants=mapper-wait@-xyz-openbmc_project-state-chassis%i.service">Wants=mapper-wait@-xyz-openbmc_project-state-chassis%i.service</a></span></p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e"><a href="mailto:After=mapper-wait@-xyz-openbmc_project-state-chassis%i.service">After=mapper-wait@-xyz-openbmc_project-state-chassis%i.service</a></span></p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e">Wants=mapper-subtree-remove@-xyz-openbmc\x5fproject-software\x3Axyz.openbmc_project.Software.ActivationBlocksTransition.service</span></p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e">After=mapper-subtree-remove@-xyz-openbmc\x5fproject-software\x3Axyz.openbmc_project.Software.ActivationBlocksTransition.service</span></p><p style="font:12px 'pingfang sc';margin:0px;min-height:17px"> </p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e">cat <a href="mailto:op-power-start@0.servic">op-power-start@0.servic</a>e </span></p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e">[Unit]</span></p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e">Description=Start Power%i</span></p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e"><a href="mailto:Wants=obmc-power-start@%i.target">Wants=obmc-power-start@%i.target</a></span></p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e"><a href="mailto:Before=obmc-power-start@%i.target">Before=obmc-power-start@%i.target</a></span></p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e"><a href="mailto:After=obmc-power-start-pre@%i.target">After=obmc-power-start-pre@%i.target</a></span></p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e">After=obmc-fan-control.target</span></p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e"><a href="mailto:Wants=mapper-wait@-org-openbmc-control-power%i.service">Wants=mapper-wait@-org-openbmc-control-power%i.service</a></span></p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e"><a href="mailto:After=mapper-wait@-org-openbmc-control-power%i.service">After=mapper-wait@-org-openbmc-control-power%i.service</a></span></p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e">[Service]</span></p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e">RemainAfterExit=yes</span></p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e">Type=oneshot</span></p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e">ExecStart=/bin/sh -c "busctl call `mapper get-service /org/openbmc/control/power%i` /org/openbmc/control/power%i org.openbmc.control.Power setPowerState i 1"</span></p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e">SyslogIdentifier=op-power-start</span></p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e">[Install]</span></p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e"><a href="mailto:WantedBy=obmc-host-start@%i.target">WantedBy=obmc-host-start@%i.target</a></span></p><p style="font:12px 'pingfang sc';margin:0px;min-height:17px"> </p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e">cat obmc-power-start@.target </span></p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e">[Unit]</span></p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e">Description=Power%i On</span></p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e"><a href="mailto:After=obmc-power-start-pre@%i.target">After=obmc-power-start-pre@%i.target</a></span></p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e">Wants=multi-user.target</span></p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e"><a href="mailto:Conflicts=obmc-chassis-poweroff@%i.target">Conflicts=obmc-chassis-poweroff@%i.target</a></span></p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e">RefuseManualStart=yes</span></p><p style="font:12px 'pingfang sc';margin:0px"><span style="background-color:#ffffff;color:#24292e">RefuseManualStop=yes</span></p></div><div><div> </div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:12pt"><span style="background-color:#ffffff;color:#323130;font-family:'dengxian';text-align:justify">Thanks</span></div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'arial' , 'helvetica' , sans-serif;font-size:12pt"><span style="background-color:#ffffff;color:#323130;font-family:'dengxian';text-align:justify">Harley</span></div><hr style="width:98%" /><div><font color="#000000" face="Calibri, sans-serif" style="font-size:11pt"><strong>发件人:</strong> openbmc <<a href="mailto:openbmc-bounces+zhouyuanqing8=outlook.com@lists.ozlabs.org">openbmc-bounces+zhouyuanqing8=outlook.com@lists.ozlabs.org</a>> 代表 Sui Chen <<a href="mailto:suichen6@gmail.com">suichen6@gmail.com</a>><br /><strong>发送时间:</strong> 2020年4月21日 1:05<br /><strong>收件人:</strong> <a href="mailto:openbmc@lists.ozlabs.org">openbmc@lists.ozlabs.org</a> <<a href="mailto:openbmc@lists.ozlabs.org">openbmc@lists.ozlabs.org</a>><br /><strong>主题:</strong> Re: Call for Gardening Tasks</font><div> </div></div><div lang="ZH-CN"><div><p style="font-family:'dengxian';font-size:10.5pt;margin:0cm 0cm 0.0001pt 0cm;text-align:justify"><span lang="EN-US">> On Apr 11, 2020, at 8:15 AM, Andrew Geissler <geissonator at gmail.com> wrote:</span></p><p style="font-family:'dengxian';font-size:10.5pt;margin:0cm 0cm 0.0001pt 0cm;text-align:justify"><span lang="EN-US">> Systemd Visualization</span></p><p style="font-family:'dengxian';font-size:10.5pt;margin:0cm 0cm 0.0001pt 0cm;text-align:justify"><span lang="EN-US">> Another complicated area of OpenBMC is our systemd targets and services. Building on the upstream tools to visualize our systemd targets and services would be useful to new people.</span></p><p style="font-family:'dengxian';font-size:10.5pt;margin:0cm 0cm 0.0001pt 0cm;text-align:justify"><span lang="EN-US" style="font-size:12pt"> </span></p><p style="font-family:'dengxian';font-size:10.5pt;margin:0cm 0cm 0.0001pt 0cm;text-align:justify"><span lang="EN-US" style="font-size:12pt">+1 to visualization, and I have a few thoughts on this ---</span></p><p style="font-family:'dengxian';font-size:10.5pt;margin:0cm 0cm 0.0001pt 0cm;text-align:justify"><span lang="EN-US" style="font-size:12pt">My lacking a mental model of how an OpenBMC system works had been my pain point in the first few months working with OpenBMC (I’m a bit new to this area), so after learning the minimal set of survival skills I did something similar to what you mentioned C visualizing the messages passed between different dbus peers (and conveniently, IPMI traffic, as IPMI-related dbus messages exposing all IPMI payload comprise most of the dbus traffic on that particular system I was working on.)</span></p><p style="font-family:'dengxian';font-size:10.5pt;margin:0cm 0cm 0.0001pt 0cm;text-align:justify"><span lang="EN-US" style="font-size:12pt"> </span></p><p style="font-family:'dengxian';font-size:10.5pt;margin:0cm 0cm 0.0001pt 0cm;text-align:justify"><span lang="EN-US" style="font-size:12pt">I think packet analysis tools such as Wireshark and graphics frame analysis tools such as RenderDoc, or system event-based Windows Performance tool like GPUView provide great examples of what people might expect to achieve with a visualization tool: capture, inspect and (sometimes) playback, across multiple layers in the software/hardware stack. Many similar existing tools process sequences of events, and in this case of BMCs, the events could be dbus messages. I found a prototype visualizer made at work greatly helpful in explaining to new team members some basic concepts and the IPMI stack on the BMC.</span></p><p style="font-family:'dengxian';font-size:10.5pt;margin:0cm 0cm 0.0001pt 0cm;text-align:justify"><span lang="EN-US" style="font-size:12pt"> </span></p><p style="font-family:'dengxian';font-size:10.5pt;margin:0cm 0cm 0.0001pt 0cm;text-align:justify"><span lang="EN-US" style="font-size:12pt">The IPMI stack is interesting because it’s one noticeable workload on the particular BMC system I had been working on; in my current limited understanding, having lots of I/O capability to connect to hundreds of sensors is one of the many features that set apart a BMC chip and a similarly powerful smartphone chip, and the broad use of dbus is what sets apart OpenBMC and the desktop Linux distro I had been using. I heard optimization is best done workload by workload, perhaps this rationale applies to visualization too?</span></p><p style="font-family:'dengxian';font-size:10.5pt;margin:0cm 0cm 0.0001pt 0cm;text-align:justify"><span lang="EN-US" style="font-size:12pt"> </span></p><p style="font-family:'dengxian';font-size:10.5pt;margin:0cm 0cm 0.0001pt 0cm;text-align:justify"><span lang="EN-US" style="font-size:12pt">I realize I was mostly talking about visualizing the run-time state of the system rather than build-time, but we could visualize the run-time aspect of systemd units too since I have seen many times a dbus message eventually triggering a systemd target to acutate the system, so it would be good to consider both dbus and systemd (and maybe other parts of the system?) to have a more holistic view of the BMC’s operations.</span></p><p style="font-family:'dengxian';font-size:10.5pt;margin:0cm 0cm 0.0001pt 0cm;text-align:justify"><span lang="EN-US" style="font-size:12pt"> </span></p><p style="font-family:'dengxian';font-size:10.5pt;margin:0cm 0cm 0.0001pt 0cm;text-align:justify"><span lang="EN-US" style="font-size:12pt">Thanks</span></p><p style="font-family:'dengxian';font-size:10.5pt;margin:0cm 0cm 0.0001pt 0cm;text-align:justify"><span lang="EN-US" style="font-size:12pt">Sui</span></p></div></div></div></div></blockquote><div> </div><div> </div><div>-- </div><div>Best regards,</div><div>Konstantin Klubnichkin,</div><div>lead firmware engineer,</div><div>server hardware R&D group,</div><div>Yandex Moscow office.</div><div>tel: +7-903-510-33-33</div><div> </div>