Re: Is L4Linux can use its existed Linux driver to access hardware device?
Matthias Lange <[email protected]>
| Newsgroups | gmane.comp.micro-kernel.l4.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi, On 09/09/2016 11:49 AM, Zhe Zhao wrote: > Hi, > > Majorly I'd like to run a Android M with L4Linux on my ODROID-XU4, > board, but I'm not sure is that possible, seems there is a L4Android > already, but it is running > on a qemu with strange two androids run together. > > Is there similiar project in your side, and is that a good idea to run > Android on L4Linux, if I understand it correct, I just need to port > needed linux driver to L4Linux, and > build a native google android, then it should work? Running Android in a virtualized environment is a tough task. Unfortunately it is not "just" about porting drivers to L4Linux. Device pass-through is a tricky thing. If you still want to pursue this endeavour a good start is to build a generic ARM version of Android from the AOSP. Then take the disk images, create a L4Re configuration and try to boot the system. Matthias. > > I want to achieve Android together with a subsystem can achieve hard > real time, instead of using weird VM solutions. > > > Thanks > Br > Alex > > > 2016-09-09 14:27 GMT+08:00 Matthias Lange > <[email protected] <mailto:[email protected]>>: > > Hi, > > On 09/07/2016 09:00 AM, Zhe Zhao wrote: > > Hi, > > > > Thanks for you answers. > > > > Does Fiasco use the scheduler that follow the priority? I mean like if > > there is high priority task, it will always have CPU? > > I would like to point you to this recent thread on the mailing list > which discusses details about L4Re's scheduling [1]. > > > Does Fiasco already support tickless kernel? or it will use a fixed 1000 > > HZ as the tick? > > There is some support for tickless/oneshot mode in the L4Re microkernel > but it is not tested. > > > I'd like to run L4Linux on a Droid-xu4 or raspberry is there any easy > > start guide for it? > > Unfortunately no. But it is not complicated either. You can take the > L4Linux basic example as a starting point. You need to build the L4Re > microkernel for the right platform. The userland needs to be compiled > for the right ARM architecture (Rasperry Pi is ARM6k whereas the Droid > is ARMv7). Then you create an uImage which you can e.g. boot via tftp. > > > When I tried the L4Linux with ramdisk which in the L4Re snapshot, it > > seems the it just like running a Linux. I don't know if below > > understanding is correct, if not please correct me > > > > The syscall fork "int 80" will be redirect to L4Linux from Fiasco by IPC > > (how Fiasco knows to redirect int 80 through IPC to L4Linux?), and fork > > will be executed inside L4Linux, then L4Linux will create Fiasco task? > > (so here we have two task proc combined to identify one linux process), > > and L4Linux will create vmspace for the process ? then how the memory > > space be handled to Fiasco? > > L4-like systems have the concept of an exception handler per thread. For > L4Linux this means that all exceptions triggered by a Linux user process > are send to the L4Linux kernel. > > In the case of fork() the L4Linux kernel eventually creates a new L4 > task (l4_factory_create_task). Memory gets mapped from the L4Linux task > into the new task e.g. upon pagefaults. > > > From the above assumption, it means I can just build a rootfs with > > native Linux apps, and use IO manager to pass the harddisk/emmc to > > L4Linux, then I can run whatever apps I like? > > Basically yes. On ARM platforms there are some stumbling blocks for sure > as device pass-through can be tricky at times. > > > I'd like to start read codes related to Fiasco, L4Re, any suggestions > > about the start point? > > That's a very generic question and the generic answer for the L4Re > microkernel is: fiasco/src/kern. Do you have any specific mechanisms in > mind you want to understand? > > Matthias. > > > [1] > http://os.inf.tu-dresden.de/pipermail/l4-hackers/2016/007907.html > <http://os.inf.tu-dresden.de/pipermail/l4-hackers/2016/007907.html> > > > > > Br > > Alex > > > > > > 2016-09-06 23:37 GMT+08:00 Matthias Lange > > <[email protected] > <mailto:[email protected]> > <mailto:[email protected] > <mailto:[email protected]>>>: > > > > Hi, > > > > On 09/05/2016 11:36 AM, Zhe Zhao wrote: > > > Hi, > > > > > > Thanks for your answers, I really appreciate it. > > > > > > I tried to run L4Linux and L4Re in a qemu environment, is it > support SMP > > > already? I found I only have a single core L4Linux running. > and Fiasco > > > report only one scheduler instance. > > > > Yes, SMP is supported. Have you configured the L4Re > microkernel with > > multiprocessing support? Did you start qemu with multiple CPUs? To > > enable more CPUs in L4Linux you need to pass the > 'l4x_cpus=<VALUE>' > > parameter on the cmdline. > > > > > And is it possible to direct reuse the L4Linux's driver > instead of > > > rewrite them in L4Re? is that IO manager used to mapping all > needed > > > device physical address to L4Linux's memory space? Is that > mean I can map > > > all device direct to L4Linux through IO manager? > > > > Yes, but there might be work involved. First you should make > yourself > > familiar with the concepts of Io [0]. > > > > > Is there any work ongoing to support ARM64 on L4Re and > L4Linux? It will > > > be quite interesting consider most of the ARM device are > moving to be 64 > > > bit arch. > > > > We are looking at it but there is nothing to announce publicly > right now > > > > > Do you have some recommend documents for the newbie like me > to get a > > > quick start up? > > > > The L4Re documentation [1]. > > > > > > Matthias. > > > > [0] http://l4re.org/doc/io.html > > [1] http://l4re.org/doc/ > > > > > Br > > > Alex > > > > > > 2016-09-02 14:24 GMT+08:00 Matthias Lange > > > <[email protected] > <mailto:[email protected]> > > <mailto:[email protected] > <mailto:[email protected]>> > > <mailto:[email protected] > <mailto:[email protected]> > > <mailto:[email protected] > <mailto:[email protected]>>>>: > > > > > > Hi, > > > > > > On 08/31/2016 02:35 PM, Zhe Zhao wrote: > > > > Hi, > > > > > > > > After read the basic ideas of L4Linux I have some > questions > > related to it. > > > > > > > > Is L4Linux run as a paravirtualization VM on L4Re? > Then the > > traditional > > > > Linux Process just still compiled against Linux system and > > put them > > > > together with L4Linux disk image? > > > > so it means L4Re works like qemu and Linuxl? > > > > > > No, L4Re does not work like qemu. > > > > > > > or L4Re works as a micro kernel operating system, and > > L4Linux run as a > > > > process on it, all devices handled to L4Linux to reuse the > > drivers of > > > > L4Linux? and the previous Linux process > > > > compiled with Linux, but run direct on L4Re as L4 > processes > > which > > > > communicate with L4Linux through IPC? > > > > > > L4Linux is a modified version of the Linux kernel with the > > hardware > > > abstraction layer (HAL) implemented using L4Re primitives. > > Technically > > > L4Re appears to be "just" another hardware architecture for > > the Linux > > > kernel, just like ARM or MIPS. > > > > > > L4Linux runs as a user space task on top of the L4Re > > microkernel and at > > > the (Linux) kernel ABI is unmodified which allows to run > > existing Linux > > > programs. That means, you can compile "normal" Linux > programs > > with your > > > standard tool chain, put the binary onto a ramdisk or disk > > image and run > > > it with L4Linux. > > > > > > > it is quite confused after read a little of the codes, in > > L4Linux, seems > > > > there is some injection of L4 task stuffs inside > > thread_struct of Linux, > > > > but also have some vCPU related stuffs, > > > > can you help me about what is the real behavior of > L4Linux? > > > > > > Each (Linux) process is actually an L4Re task with the > > exception and > > > page fault handler set to the L4Linux task. That's why some > > L4-specific > > > additions are required to Linux kernel data structures. > > > > > > Matthias. > > > > > > > I'm sorry to ask this basic questions, but after some > > digging I feel > > > > quite confused about how it works. > > -- Matthias Lange, [email protected], +49-351-41 888 614 Kernkonzept GmbH. Sitz: Dresden. Amtsgericht Dresden, HRB 31129. Geschäftsführer: Dr.-Ing. Michael Hohmuth