Hi all,
I was testing l4linux server as input server and was planning to run it without io package. For this purpose I wanted to rebuild the l4linux kernel with input server option and "without use pci virtual bus" option. My purpose was to see whether the kernel could reach the real IO ports and the result was off-course as expected a kernel panic... My question is how the io package is allowed to reach the IO ports but not the l4linux kernel? Please kindly see the kernel output and the corresponding lua script below:
The lua script:
require("L4");
local lxname = "vmlinuz.android"; local l = L4.default_loader;
local hid = l:new_channel(); local linux_caps = { log = L4.Env.log:m("rws"); -- vbus = io_caps.linux_bus, --rtc = rtc_caps.rtc, ev = hid:svr(), rom = L4.Env.rom, };
l:start( { caps = linux_caps, }, "rom/vmlinuz.android mem=256M l4-input-srv.enable=1 console=ttyLv0 ramdisk=rom/openwrt-x86-alix2-rootfs.tar.gz root=1:0 ramdisk_size=32768 l4x_rd=rom/openwrt-x86-alix2-rootfs.tar.gz init=/etc/preinit");
Kernel output:
NET: Registered protocol family 16 vmlinuz.| Invalid IO-Port access at pc = 007718f1 port=0xcfb vmlinuz.| Die message: Trap: 14 Trap: 14: 0000 [#1] Modules linked in: Pid: 1, comm: swapper Not tainted 3.6.0-l4-svn27 #3 EIP: 0000:[<007718f1>] EFLAGS: 00000246 CPU: 0 EIP is at pci_direct_probe+0x53/0x1d8 EAX: 00417001 EBX: 00000003 ECX: 00110000 EDX: 00000cfb ESI: 00000001 EDI: 0077174c EBP: 10437f78 ESP: 10437f5c DS: 0000 ES: 0000 FS: 0023 GS: 0000 SS: 0023 Process swapper (pid: 1, ti=10436000 task=10435bc0 task.ti=10436000) Stack: 10437f64 00000000 0070ff6b 00000000 00441a4c 00000003 00000000 10437f88 00771756 10454ed8 00000003 10437fc0 0040005a 10437fb0 00030003 007362d4 006e8588 00000000 10bffd86 10bffd81 10bffd92 00000001 00000003 00000049 Call Trace: [<00441a4c>] ? suspend_set_ops+0x3c/0x50 [<00771756>] pci_arch_init+0xa/0x50 [<0040005a>] do_one_initcall+0x2a/0x170 [<0075e698>] kernel_init+0xd1/0x166 [<0075e119>] ? do_early_param+0x74/0x74 [<0075e5c7>] ? start_kernel+0x298/0x298 [<00407dd4>] kernel_thread_start+0x24/0x30 Code: 00 00 00 00 c7 04 24 6b ff 70 00 e8 3a 39 cb ff 85 c0 0f 84 8b 00 00 00 e8 3d 1e c9 ff 89 c6 e8 c6 21 c9 ff ba fb 0c 00 00 b0 01 <ee> b2 f8 ed 89 45 f4 b8 00 00 00 80 ef ed 31 db 3d 00 00 00 80 EIP: [<007718f1>] pci_direct_probe+0x53/0x1d8 SS:ESP 0023:10437f5c ---[ end trace 4eaa2a86a8e2da22 ]--- Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
panic: going to sleep forever, bye vmlinuz.| panic: going to sleep forever, bye
Best regards,
On Wed Nov 21, 2012 at 03:04:10 -0800, Wajidali Whowe wrote:
I was testing l4linux server as input server and was planning to run it without io package. For this purpose I wanted to rebuild the l4linux kernel with input server option and "without use pci virtual bus" option. My purpose was to see whether the kernel could reach the real IO ports and the result was off-course as expected a kernel panic... My question is how the io package is allowed to reach the IO ports but not the l4linux kernel? Please kindly see the kernel output and the corresponding lua script below:
io talks to sigma0 to get access to those ports. L4Linux is built for using io services that's why it fails (as expected). Adding this feature is possibly but not intended. May I ask why you want to run without io, and thus want to give L4Linux full hardware access?
Adam
l4-hackers@os.inf.tu-dresden.de