<div dir="ltr">Any idea on this? Just a pointer to the right direction will be great! <div><br></div><div>Thanks,<br>Francesco</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 23, 2017 at 3:52 PM, Francesco Longo <span dir="ltr"><<a href="mailto:flongo@unime.it" target="_blank">flongo@unime.it</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi all,<div>sorry for the very long post. As I said in a previous email I'm trying to play with LXD on top of a Raspberry Pi 3. My goal is to mount the GPIO pseudo filesystem on a container so that I can access the GPIO pins from within the container. <div><div><br></div><div>I came up with the following conclusions: </div><div><br></div><div> - if I create a privileged container (I would prefer not to do that anyway) I can see the /sys/class/gpio filesystem as root but I cannot write it. For example, trying a classical "echo 1 > /sys/class/gpio/export, I get "bash: export: Read-only file system"</div><div> - if I create a non-privileged container I cannot even enter folder /sys/class/gpio as root. I can enter /sys/class but there I see that gpio folder has owner nobody.nogroup and 770 permissions. </div><div><br></div><div>I solved the issue with a FUSE filesystem running on the Raspberry that mirrors the /sys/class/gpio and mounting such a filesystem under a different path, i.e., /gpio_mnt/sys/class/gpio. </div><div><br></div><div>This is the script I created: </div><div><br></div><div><div><i>lxc launch ubuntu:16.04 test1</i></div><div><i><br></i></div><div><i>MYUID=`sudo ls -l /var/lib/lxd/containers/test1/<wbr>rootfs/ | grep root | awk '{}{print $3}{}'`</i></div><div><i><br></i></div><div><i>lxc exec test1 -- addgroup gpio</i></div><div><i>lxc exec test1 -- usermod -a -G gpio ubuntu</i></div><div><i>MYGID=$(($MYUID + `lxc exec test1 -- sed -nr "s/^gpio:x:([0-9]+):.*/\1/p" /etc/group`))</i></div><div><i><br></i></div><div><i>sudo mkdir -p /gpio_mnt/test1</i></div><div><i>sudo chmod 777 -R /gpio_mnt/</i></div><div><i><br></i></div><div><i>sudo mkdir -p /gpio_mnt/test1/sys/devices/<wbr>platform/soc/3f200000.gpio</i></div><div><i>sudo mkdir -p /gpio_mnt/test1/sys/class/gpio</i></div><div><i>sudo chown "$MYUID"."$MYGID" -R /gpio_mnt/test1/sys/</i></div><div><i><br></i></div><div><i>lxc exec test1 -- mkdir -p /gpio_mnt/sys/class/gpio</i></div><div><i>lxc exec test1 -- mkdir -p /gpio_mnt/sys/devices/<wbr>platform/soc/3f200000.gpio</i></div><div><i><br></i></div><div><i>lxc config device add test1 gpio disk source=/gpio_mnt/test1/sys/<wbr>class/gpio path=/gpio_mnt/sys/class/gpio</i></div><div><i>lxc config device add test1 devices disk source=/gpio_mnt/test1/sys/<wbr>devices/platform/soc/3f200000.<wbr>gpio path=/gpio_mnt/sys/devices/<wbr>platform/soc/3f200000.gpio</i></div><div><i><br></i></div><div><i>#This is the mirroring through FUSE filesystem</i></div><div><i>cd /home/ubuntu/test_gpio_<wbr>mirroring/</i></div><div><i>sudo node node-folder-mirroring.js /sys/devices/platform/soc/<wbr>3f200000.gpio /gpio_mnt/test1/sys/devices/<wbr>platform/soc/3f200000.gpio -o uid=$MYUID -o gid=$MYGID -o allow_other &> log_devices_test1 &</i></div><div><i>sudo node node-folder-mirroring.js /sys/class/gpio /gpio_mnt/test1/sys/class/gpio -o uid=$MYUID -o gid=$MYGID -o allow_other &> log_gpio_test1 &</i></div></div><div><br></div><div>I would like not to mount under /gpio_mnt/sys/class/gpio but under /sys/class/gpio so that standard Raspberry libraries will work inside the container without any modification but I will still be able to capture the syscalls with the FUSE filesystem mediating the access to GPIO pins. </div><div><br></div><div>How can I do that? Am I missing something here? </div><div><br></div><div>Thanks,</div><div>Francesco</div><span class="HOEnZb"><font color="#888888"><div><br></div><div><br></div>-- <br><div class="m_-8964610840041382058gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div>------------------------------<wbr>------------------------------<wbr>------------------</div><div>Dr. Francesco Longo, PhD</div><div>Assistant Professor</div><div>Dipartimento  di Ingegneria</div><div>Università degli Studi di Messina</div><div>address: Contrada di Dio (S. Agata), 98166, Messina, Italy</div><div>email: <a href="mailto:flongo@unime.it" target="_blank">flongo@unime.it</a></div><div>phone: <a href="tel:+39%20090%20397%207335" value="+390903977335" target="_blank">+39 090 3977335</a> --- fax: <a href="tel:+39%20090%20397%207471" value="+390903977471" target="_blank">+39 090 3977471</a></div><div><span style="font-size:13.3333px">------------------------------<wbr>------------------------------<wbr>------------------</span><br></div></div></div></div></div></div></div></div></div>
</font></span></div></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>-------------------------------------------------------------------------------------------------</div><div>Dr. Francesco Longo, PhD</div><div><br></div><div>Assistant Professor @ Department of <span style="font-size:12.8px">Engineering, University of Messina</span></div><div><span style="font-size:12.8px">address: Contrada di Dio, S. Agata - 98166, Messina, Italy</span><br></div><div>email: <a href="mailto:flongo@unime.it" target="_blank">flongo@unime.it</a></div><div>web: <a href="http://mdslab.unime.it/flongo" target="_blank">mdslab.unime.it/flongo</a></div><div>phone: +39 090 3977335 --- <span style="font-size:12.8px">fax: +39 090 3977471</span></div><div><br></div><div>Software Engineer @ SmartMe.io s.r.l.</div><div><div style="font-size:12.8px"><span style="font-size:12.8px">address: Via Osservatorio, 1 - 98121, Messina, Italy</span><br></div><div style="font-size:12.8px">email: <a href="mailto:francesco@smartme.io" target="_blank">francesco@smartme.io</a></div><div style="font-size:12.8px">web: <a href="http://smartme.io" target="_blank">smartme.io</a></div></div><div style="font-size:12.8px">VAT number: 03457040834 </div><div><span style="font-size:12.8px">-------------------------------------------------------------------------------------------------</span><br></div></div></div></div></div></div></div></div></div></div></div></div>
</div>