Alexander Valitov | 5 Feb 15:24
Picon

L4Linux stub drivers & L4 drivers


Hi All,

I’m new to L4Fiasco and L4Linux.
I’ve managed to build and run L4Linux 2.6.28 using dope (thanks to this mail
list).
In the next step I would like to remove as much as possible hardware access
operations from L4Linux to L4 servers. By splitting L4Linux driver into two
parts, first one is the L4Linux stub driver which talks to second L4 server
part which in its turn has a deal with access to hardware. Any form of
multiplexing/demultiplexing of hardware between several L4Linux instances is
not required at this stage, only monopolistic access.
Actually, the ideal solution for me is where L4Linux doesn’t have direct
access to hardware at all.

I have some questions to community:
1.	Is it generally possible?
2.	What kind of native L4 or DDE drivers are available now? And what about
corresponding stub drivers for L4Linux?
3.	How should I configure L4Linux or maybe packages in /trunk/l4/pkg/ to
remove as much as possible hardware access operations from L4Linux to L4
servers? Are there any ready-to-use L4Linux "config" files for this purpose?

Thank you in advance.

Best Regards, Alexander Valitov

--

-- 
View this message in context: http://www.nabble.com/L4Linux-stub-drivers---L4-drivers-tp21852355p21852355.html
Sent from the L4 mailing list archive at Nabble.com.
(Continue reading)

Adam Lackorzynski | 5 Feb 15:55
Picon
Favicon

Re: L4Linux stub drivers & L4 drivers

Hi,

On Thu Feb 05, 2009 at 06:24:21 -0800, Alexander Valitov wrote:
> I’m new to L4Fiasco and L4Linux.
> I’ve managed to build and run L4Linux 2.6.28 using dope (thanks to this mail
> list).
> In the next step I would like to remove as much as possible hardware access
> operations from L4Linux to L4 servers. By splitting L4Linux driver into two
> parts, first one is the L4Linux stub driver which talks to second L4 server
> part which in its turn has a deal with access to hardware. Any form of
> multiplexing/demultiplexing of hardware between several L4Linux instances is
> not required at this stage, only monopolistic access.
> Actually, the ideal solution for me is where L4Linux doesn’t have direct
> access to hardware at all.
> 
> I have some questions to community:
> 1.	Is it generally possible?

Yes, this is one of the premium use cases.

> 2.	What kind of native L4 or DDE drivers are available now? And what about
> corresponding stub drivers for L4Linux?

There's ORe, which is a network stack in software and a corresponding
network driver in L4Linux. There a pseudo serial driver in L4Linux.
There's a block stub but currently without a real L4 driver. Then the
framebuffer driver that talks to l4con and dope. Same for input.

> 3.	How should I configure L4Linux or maybe packages in /trunk/l4/pkg/ to
> remove as much as possible hardware access operations from L4Linux to L4
(Continue reading)

Adam Chang | 6 Feb 03:16
Picon

Re: Problem of running L4Linux

Dear all:
 Now I  use QEMU to boot Fiasco and L4linux , the configuration is as
same as before, but there still has some problem.
The following is the serial output while booting L4Linux
======Beginning of Serial Output=====
	Welcome to Fiasco(ia32)!
	DD-L4(v2)/ia32 microkernel (C) 1998-2008 TU Dresden
	Rev: r422 compiled with gcc 4.3.2 for Intel Pentium Pro    []

	Enabling special fully nested mode for PIC
	Using the PIT (i8254) on IRQ 0 for scheduling
	SERIAL ESC: allocated IRQ 4 for serial uart
	SERIAL ESC: allocated IRQ 4 for serial uart
	Not using serial hack in slow timer handler.
	Absolute KIP Syscalls using: Sysenter
	CPU: GenuineIntel (6:3:3:0) Model: Pentium II (Klamath) at 2195 MHz

	32 KB L1 I Cache (8-way associative, 64 bytes per line)
	32 KB L1 D Cache (8-way associative, 64 bytes per line)
2048 KB L2 U Cache (8-way associative, 64 bytes per line)

Freeing init code/data: 20480 bytes (5 pages)

	Calibrating timer loop... done.
	SIGMA0: Hello!
	KIP @ 1000
	Found Fiasco: KIP syscalls: yes
	allocated 4KB for maintenance structures

	Roottask.
(Continue reading)

Alexander Valitov | 6 Feb 09:17
Picon

Re: Problem of running L4Linux


Hi Adam,

Adam Chang wrote:
> 
> Dear all:
> Now I add the serial port to VMware machine and connected the serial
> port to output file
> The following is the serial output while booting L4Linux
> ======Beginning of Serial Output=====
> Welcome to Fiasco(ia32)!
> DD-L4(v2)/ia32 microkernel (C) 1998-2008 TU Dresden
> Rev: r422 compiled with gcc 4.3.2 for Intel Pentium Pro    []
> 
> ... ... ...
> 
> run     | contxt_init(): 640x480, cols:80, lines:40, sb_lines:1040
> loader  | vmlinuz: Starting application using libld-l4.s.so
> loader  | vmlinuz,#10: Loading binary
> loader  | vmlinuz,#10: Loading ldso
> loader  | vmlinuz,#10: Starting libld-l4.s.so at 000138e0 via 0000cc24
> 
> DOUBLE FAULT!
> 
> 
I'm not L4 hacker, but recently I've built and ran L4Linux on raw hardware
(586) with dope.
When I saw your message I tried to run the same binaries on VMWare and It
works!
Try to use my GRUB config (don't forget to fix the paths) and L4linux config
(Continue reading)

Alexander Valitov | 6 Feb 17:05
Picon

Re: L4Linux stub drivers & L4 drivers


Hi Adam,

Thank you for prompt answer.

I think I have found all L4Linux configuration options related to my task in
the following menuconfig’s menu:

L4Linux configuration -> Stub drivers ->

Here they are (I put corresponding variable in parentheses):

[*] Use the rtc server (L4_EXTERNAL_RTC)
[ ] Block driver for the generic_blk interface (L4_BLK_DRV)
[ ] Block driver for the persistent dataspace interface (L4_PDSPBLK_DRV)
[*] Framebuffer driver for l4con and DOpE (input/output) (L4_FB_DRIVER)
[ ]   Support for the X Window System driver (L4_FB_DRIVER_XF86IF)
[ ] Network driver for ORe (L4_ORE_DRV)
[*] Pseudo serial driver for console (L4_SERIAL)
[*]   Serial console support (L4_SERIAL_CONSOLE)
[ ]   Cons system support (L4_CONS)

Meaning of some of these options is clear for me and some of them isn’t. If
I’m right:

1. L4_EXTERNAL_RTC option forces L4Linux to use rtc module instead of direct
access to timer hardware.
2. As you wrote L4_FB_DRIVER compiles in l4fb module into L4Linux, so it
could be used by dope or con server.
3. L4_ORE_DRV adds stub network driver to L4Linux which uses ore server for
(Continue reading)

Adam Lackorzynski | 9 Feb 22:02
Picon
Favicon

Re: Problem of running L4Linux


On Fri Feb 06, 2009 at 10:16:51 +0800, Adam Chang wrote:
> 	loader  | vmlinuz,#10: Entry at 00009c24 => 003ff000
> 	loader  | vmlinuz,#10: Started
>         loader  | vmlinuz,#10: Double PF (r) at 00008000 eip 0040d715 (10.00)
> 
> 	--Double PF, 'g' for kill--------------------------------IP: 01304395
> 	[loader.pager] (d.03) jdb:
> 
> ======Ending of Serial Output=====
> 
> The above is my current circumstance$B!$(Bcan someone give me some advice
> how to solve this problem?

I'd like to know what's at 0x0040d715 in the vmlinux binary
(objdump -ld). Otherwise it's hard to tell.

Adam
--

-- 
Adam                 adam <at> os.inf.tu-dresden.de
  Lackorzynski         http://os.inf.tu-dresden.de/~adam/
Adam Lackorzynski | 9 Feb 22:22
Picon
Favicon

Re: L4Linux stub drivers & L4 drivers

Hi Alex,

On Fri Feb 06, 2009 at 08:05:56 -0800, Alexander Valitov wrote:
> I think I have found all L4Linux configuration options related to my task in
> the following menuconfig’s menu:
> 
> L4Linux configuration -> Stub drivers ->
> 
> Here they are (I put corresponding variable in parentheses):
> 
> [*] Use the rtc server (L4_EXTERNAL_RTC)
> [ ] Block driver for the generic_blk interface (L4_BLK_DRV)
> [ ] Block driver for the persistent dataspace interface (L4_PDSPBLK_DRV)
> [*] Framebuffer driver for l4con and DOpE (input/output) (L4_FB_DRIVER)
> [ ]   Support for the X Window System driver (L4_FB_DRIVER_XF86IF)
> [ ] Network driver for ORe (L4_ORE_DRV)
> [*] Pseudo serial driver for console (L4_SERIAL)
> [*]   Serial console support (L4_SERIAL_CONSOLE)
> [ ]   Cons system support (L4_CONS)
> 
> Meaning of some of these options is clear for me and some of them isn’t. If
> I’m right:
> 
> 1. L4_EXTERNAL_RTC option forces L4Linux to use rtc module instead of direct
> access to timer hardware.

Yes.

> 2. As you wrote L4_FB_DRIVER compiles in l4fb module into L4Linux, so it
> could be used by dope or con server.
(Continue reading)

Michael Roitzsch | 10 Feb 17:42
Picon
Favicon

Re: libgendep, dlsym undefined symbol

Hi,

> Yes I have the same error. The debug result is:
>
> [...]
>      9857:     calling init: libgendep.so
>      9857:
>      9857:     symbol=fopen;  lookup in file=gcc
>      9857:     symbol=fopen;  lookup in file=libgendep.so
>      9857:     binding file libgendep.so to libgendep.so: normal  
> symbol `fopen'
>      9857:     symbol=dlsym;  lookup in file=gcc
>      9857:     symbol=dlsym;  lookup in file=libgendep.so
>      9857:     symbol=dlsym;  lookup in file=/lib/libc.so.6
>      9857:     symbol=dlsym;  lookup in file=/lib/ld-linux.so.2
>      9857:     libgendep.so: error: symbol lookup error: undefined  
> symbol: dlsym (fatal)
> gcc: symbol lookup error: libgendep.so: undefined symbol: dlsym

My guess would be that libdl.so is missing on your system. This  
library is typically installed as /lib/tls/libdl.so.2 or something  
similar.

If this does not lead you anywhere, please post the output of

ldd /path/to/your/libgendep.so

Michael
Andre Puschmann | 11 Feb 19:36
Picon
Picon

log output in fiaso-ux

Hi everybody,

I am quite new to L4 but currently writing some sort of demo/learning
applications to get a deeper understanding.
I am using fiasco-ux which is very useful as it allows really short
"compile-and-try" cycles :-)
I want to use the log pkg which works quite good when compiling
applications with "MODE=sigma0" or "MODE=tiny" set inside the according
Makefile. However, when using "MODE=l4env" (which is the default
according to the bid manual and is also used in some examples) the log
server somehow eats the printf's.
Is there any way to get them back to the console? Or is this not even
desired in that mode?
I am currently loading the following additional libs: "names dm_phys
l4io log l4env_pr".

Best regards,

Andre
Tsai, Tung-Chieh | 11 Feb 14:44
Picon

memory problems on Fiasco porting

Dear all,

   I'm working on porting Fiasco to an ARM(922T) platform.
Currently, I can get into kernel debugger, and successfully
 leave the `Calibrating timer loop'. But then I stuck in
Thread::init_workload, fail to create sigma0_thread. ARM
processor would raise a data abort exception and then
goto 0xffff0010.

  It seems failed because trying to load an illegal virtual
address at 0xc0080004, which doing this at :

  Kernel_thread::init_workload
    Thread::create
       Thread::maybe_create
          Thread::thread_lock
            Thread_lock::lock_dirty
              ...
              Switch_lock<Thread_lock_valid>::lock

  I guess the problem maybe becuase some architecture
porting part still has problem, or because the sigma0_task
create for sigma0_thread setting wrong memory space,
because I've some memory space setting incorrect.
Honestly, I don't know where setting the virtual address
translation for 0xd0000000 ~ 0xc0000000(_tcbs_1 to
phys_offset), is this range use for each  thread's tcb ?

  And where can I get more information about Fiasco's
memory layout? for example, what does Mem_layout::Tcbs
(Continue reading)


Gmane