You are not logged in.
I am trying to test the Rust for Linux kernel in my machine. It doesn't boot which isn't all that surprising. I get the following output:
mount: /new_root: unknown filesystem type 'btrfs'
You are now being dropped into an emergency shell
sh: can't access tty; job control turned off
[rootfs ]#
The important part however is that the keyboard does not work at this stage. I have also tried using this kernel in Fedora but I was able to at least login as root in the emergency shell and get the logs.
From reading Archwiki about mkinicpio I think that one possible reason would be that the default kernel config in Fedora build the keyboard-related stuff in the kernel while Arch default config has almost everything as a module.
So I wanted to ask what is the preferred method of debugging in this case in arch linux.
I can of course build the keyboard-related stuff in the kernel. Other might be to maybe use kernel parameters in grub.
Also, this kernel has to be compiled with LLVM, and not GCC.
Last edited by Ayush1325 (2021-09-17 07:30:45)
Offline
Is atkbd not in the initramfs or is your initramfs on the btrfs partition?
Offline
Is atkbd not in the initramfs or is your initramfs on the btrfs partition?
The initramfs is in the /boot partition along with the normal kernel which was formatted as vfat.
The initramfs does not seem to have atkbd, at least not when using the following command to check:
lsinitcpio /boot/initramfs-linux-rust.img | grep atkbd
But running the same command for the normal kernel initramfs comes up empty too, so I'm not sure if u ment this.
The fallback initramfs does have an atkbd.ko.zst file in modules, but the keyboard does not work in the fallback image either, so there is that.
Offline
What's the output of "lsmod" when booting the regular kernel?
Offline
What's the output of "lsmod" when booting the regular kernel?
lsmod output:
Module Size Used by
snd_seq_dummy 16384 0
snd_hrtimer 16384 1
snd_seq 90112 7 snd_seq_dummy
nft_objref 16384 1
nf_conntrack_netbios_ns 16384 1
nf_conntrack_broadcast 16384 1 nf_conntrack_netbios_ns
nft_fib_inet 16384 1
nft_fib_ipv4 16384 1 nft_fib_inet
nft_fib_ipv6 16384 1 nft_fib_inet
nft_fib 16384 3 nft_fib_ipv6,nft_fib_ipv4,nft_fib_inet
nft_reject_inet 16384 8
nf_reject_ipv4 16384 1 nft_reject_inet
nf_reject_ipv6 20480 1 nft_reject_inet
nft_reject 16384 1 nft_reject_inet
nft_ct 20480 33
nft_chain_nat 16384 2
nf_tables 266240 395 nft_ct,nft_reject_inet,nft_fib_ipv6,nft_objref,nft_fib_ipv4,nft_chain_nat,nft_reject,nft_fib,nft_fib_inet
ip6table_nat 16384 0
ip6table_mangle 16384 0
ip6table_raw 16384 0
ip6table_security 16384 0
iptable_nat 16384 0
nf_nat 53248 3 ip6table_nat,nft_chain_nat,iptable_nat
nf_conntrack 180224 4 nf_nat,nft_ct,nf_conntrack_netbios_ns,nf_conntrack_broadcast
nf_defrag_ipv6 24576 1 nf_conntrack
nf_defrag_ipv4 16384 1 nf_conntrack
iptable_mangle 16384 0
nvidia_drm 73728 7
iptable_raw 16384 0
iptable_security 16384 0
nvidia_modeset 1200128 17 nvidia_drm
rfkill 32768 2
nfnetlink 20480 2 nf_tables
ip6table_filter 16384 0
ip6_tables 32768 5 ip6table_filter,ip6table_raw,ip6table_nat,ip6table_mangle,ip6table_security
nvidia 35319808 1128 nvidia_modeset
iptable_filter 16384 0
uvcvideo 118784 0
snd_usb_audio 352256 1
videobuf2_vmalloc 20480 1 uvcvideo
videobuf2_memops 20480 1 videobuf2_vmalloc
videobuf2_v4l2 36864 1 uvcvideo
vfat 24576 1
videobuf2_common 69632 4 videobuf2_vmalloc,videobuf2_v4l2,uvcvideo,videobuf2_memops
igb 266240 0
fat 86016 1 vfat
snd_usbmidi_lib 45056 1 snd_usb_audio
videodev 270336 3 videobuf2_v4l2,uvcvideo,videobuf2_common
snd_rawmidi 45056 1 snd_usbmidi_lib
i2c_algo_bit 16384 1 igb
snd_seq_device 16384 2 snd_seq,snd_rawmidi
dca 16384 1 igb
mc 65536 5 videodev,snd_usb_audio,videobuf2_v4l2,uvcvideo,videobuf2_common
intel_rapl_msr 20480 0
intel_rapl_common 28672 1 intel_rapl_msr
usblp 28672 0
joydev 28672 0
mousedev 24576 0
edac_mce_amd 36864 0
kvm_amd 147456 0
snd_hda_codec_realtek 159744 1
wmi_bmof 16384 0
mxm_wmi 16384 0
snd_hda_codec_generic 98304 1 snd_hda_codec_realtek
snd_hda_codec_hdmi 73728 1
ledtrig_audio 16384 1 snd_hda_codec_generic
kvm 1056768 1 kvm_amd
snd_hda_intel 57344 2
irqbypass 16384 1 kvm
snd_intel_dspcfg 28672 1 snd_hda_intel
snd_intel_sdw_acpi 20480 1 snd_intel_dspcfg
crct10dif_pclmul 16384 1
crc32_pclmul 16384 0
snd_hda_codec 176128 4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek
ghash_clmulni_intel 16384 0
aesni_intel 380928 0
snd_hda_core 110592 5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek
crypto_simd 16384 1 aesni_intel
snd_hwdep 16384 2 snd_usb_audio,snd_hda_codec
cryptd 28672 2 crypto_simd,ghash_clmulni_intel
rapl 16384 0
drm_kms_helper 303104 1 nvidia_drm
pcspkr 16384 0
snd_pcm 151552 5 snd_hda_codec_hdmi,snd_hda_intel,snd_usb_audio,snd_hda_codec,snd_hda_core
tpm_crb 20480 0
sp5100_tco 20480 0
usbhid 65536 0
cec 73728 1 drm_kms_helper
snd_timer 45056 3 snd_seq,snd_hrtimer,snd_pcm
k10temp 16384 0
tpm_tis 16384 0
syscopyarea 16384 1 drm_kms_helper
i2c_piix4 28672 0
snd 114688 21 snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_usb_audio,snd_usbmidi_lib,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_pcm,snd_rawmidi
tpm_tis_core 28672 1 tpm_tis
sysfillrect 16384 1 drm_kms_helper
sysimgblt 16384 1 drm_kms_helper
tpm 90112 3 tpm_tis,tpm_crb,tpm_tis_core
ccp 118784 1 kvm_amd
soundcore 16384 1 snd
fb_sys_fops 16384 1 drm_kms_helper
gpio_amdpt 20480 0
wmi 36864 2 wmi_bmof,mxm_wmi
pinctrl_amd 32768 0
rng_core 16384 2 ccp,tpm
gpio_generic 20480 1 gpio_amdpt
mac_hid 16384 0
acpi_cpufreq 32768 0
drm 585728 11 drm_kms_helper,nvidia,nvidia_drm
crypto_user 20480 0
fuse 167936 5
bpf_preload 16384 0
ip_tables 32768 5 iptable_filter,iptable_security,iptable_raw,iptable_nat,iptable_mangle
x_tables 53248 12 ip6table_filter,ip6table_raw,iptable_filter,iptable_security,ip6table_nat,ip6_tables,iptable_raw,ip_tables,iptable_nat,ip6table_mangle,ip6table_security,iptable_mangle
btrfs 1658880 2
blake2b_generic 20480 0
libcrc32c 16384 4 nf_conntrack,nf_nat,btrfs,nf_tables
crc32c_generic 16384 0
xor 24576 1 btrfs
raid6_pq 122880 1 btrfs
sr_mod 28672 0
xhci_pci 20480 0
crc32c_intel 24576 3
cdrom 81920 1 sr_mod
xhci_pci_renesas 20480 1 xhci_pci
Here is my mkinitcpio.conf too just in case:
# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run. Advanced users may wish to specify all system modules
# in this array. For instance:
# MODULES=(piix ide_disk reiserfs)
# MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
MODULES=()
# BINARIES
# This setting includes any additional binaries a given user may
# wish into the CPIO image. This is run last, so it may be used to
# override the actual binaries included by a given hook
# BINARIES are dependency parsed, so you may safely ignore libraries
BINARIES=()
# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way. This is useful for config files.
FILES=()
# HOOKS
# This is the most important setting in this file. The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
## This setup specifies all modules in the MODULES setting above.
## No raid, lvm2, or encrypted root is needed.
# HOOKS=(base)
#
## This setup will autodetect all modules for your system and should
## work as a sane default
# HOOKS=(base udev autodetect block filesystems)
#
## This setup will generate a 'full' image which supports most systems.
## No autodetection is done.
# HOOKS=(base udev block filesystems)
#
## This setup assembles a pata mdadm array with an encrypted root FS.
## Note: See 'mkinitcpio -H mdadm' for more information on raid devices.
# HOOKS=(base udev block mdadm encrypt filesystems)
#
## This setup loads an lvm2 volume group on a usb device.
# HOOKS=(base udev block lvm2 filesystems)
#
## NOTE: If you have /usr on a separate partition, you MUST include the
# usr, fsck and shutdown hooks.
HOOKS=(base udev autodetect modconf block filesystems keyboard fsck)
# COMPRESSION
# Use this to compress the initramfs image. By default, zstd compression
# is used. Use 'cat' to create an uncompressed image.
#COMPRESSION="zstd"
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"
# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=()
Offline
Check the initramfs of the problem-kernel for
kvm_amd 147456 0
wmi_bmof 16384 0
mxm_wmi 16384 0
kvm 1056768 1 kvm_amd
irqbypass 16384 1 kvm
aesni_intel 380928 0
usbhid 65536 0
i2c_piix4 28672 0
ccp 118784 1 kvm_amd
gpio_amdpt 20480 0
wmi 36864 2 wmi_bmof,mxm_wmi
pinctrl_amd 32768 0
mac_hid 16384 0
Offline
Check the initramfs of the problem-kernel for
Well, I'm not quite sure how to check it other than lsmod without booting into it, so can you provide a wiki link or example?
For the time being, here is the ouptut of the problem kernel initramfs files:
bin
buildconfig
config
dev/
etc/
etc/fstab
etc/initrd-release
etc/ld.so.cache
etc/ld.so.conf
etc/modprobe.d/
etc/modprobe.d/firewalld-sysctls.conf
etc/mtab
hooks/
hooks/udev
init
init_functions
lib
lib64
new_root/
proc/
run/
sbin
sys/
tmp/
usr/
usr/bin/
usr/bin/[
usr/bin/arch
usr/bin/ash
usr/bin/awk
usr/bin/base32
usr/bin/base64
usr/bin/basename
usr/bin/bc
usr/bin/blkdiscard
usr/bin/blkid
usr/bin/busybox
usr/bin/bzip2
usr/bin/cat
usr/bin/chgrp
usr/bin/chmod
usr/bin/chown
usr/bin/chroot
usr/bin/clear
usr/bin/cp
usr/bin/cpio
usr/bin/cttyhack
usr/bin/cut
usr/bin/dd
usr/bin/depmod
usr/bin/df
usr/bin/dirname
usr/bin/dmesg
usr/bin/du
usr/bin/echo
usr/bin/env
usr/bin/expr
usr/bin/fallocate
usr/bin/false
usr/bin/fatattr
usr/bin/free
usr/bin/fsck
usr/bin/fsck.btrfs
usr/bin/fsfreeze
usr/bin/fstrim
usr/bin/fsync
usr/bin/getopt
usr/bin/grep
usr/bin/gzip
usr/bin/halt
usr/bin/head
usr/bin/hexdump
usr/bin/hexedit
usr/bin/i2ctransfer
usr/bin/ifconfig
usr/bin/init
usr/bin/insmod
usr/bin/install
usr/bin/ip
usr/bin/ipaddr
usr/bin/iplink
usr/bin/ipneigh
usr/bin/iproute
usr/bin/iprule
usr/bin/iptunnel
usr/bin/kbd_mode
usr/bin/kill
usr/bin/killall
usr/bin/kmod
usr/bin/less
usr/bin/link
usr/bin/ln
usr/bin/loadfont
usr/bin/loadkmap
usr/bin/losetup
usr/bin/ls
usr/bin/lsmod
usr/bin/lsscsi
usr/bin/lzop
usr/bin/md5sum
usr/bin/mim
usr/bin/mkdir
usr/bin/mkfifo
usr/bin/mknod
usr/bin/mkpasswd
usr/bin/mktemp
usr/bin/modinfo
usr/bin/modprobe
usr/bin/mount
usr/bin/mountpoint
usr/bin/mv
usr/bin/nc
usr/bin/netstat
usr/bin/nologin
usr/bin/nproc
usr/bin/nsenter
usr/bin/nslookup
usr/bin/nuke
usr/bin/openvt
usr/bin/partprobe
usr/bin/paste
usr/bin/pgrep
usr/bin/pidof
usr/bin/ping
usr/bin/ping6
usr/bin/poweroff
usr/bin/printf
usr/bin/ps
usr/bin/pwd
usr/bin/readlink
usr/bin/realpath
usr/bin/reboot
usr/bin/resume
usr/bin/rm
usr/bin/rmdir
usr/bin/rmmod
usr/bin/route
usr/bin/run-init
usr/bin/sed
usr/bin/seq
usr/bin/setfattr
usr/bin/setfont
usr/bin/sh
usr/bin/sha1sum
usr/bin/sha256sum
usr/bin/sha512sum
usr/bin/shuf
usr/bin/sleep
usr/bin/sort
usr/bin/stat
usr/bin/strings
usr/bin/switch_root
usr/bin/sync
usr/bin/systemd-tmpfiles
usr/bin/tac
usr/bin/tail
usr/bin/tar
usr/bin/tcpsvd
usr/bin/tee
usr/bin/telnet
usr/bin/test
usr/bin/tftp
usr/bin/touch
usr/bin/true
usr/bin/truncate
usr/bin/ts
usr/bin/udevadm
usr/bin/udhcpc
usr/bin/udhcpc6
usr/bin/umount
usr/bin/uname
usr/bin/uniq
usr/bin/unlink
usr/bin/unshare
usr/bin/unzip
usr/bin/uptime
usr/bin/vi
usr/bin/wc
usr/bin/wget
usr/bin/which
usr/bin/xxd
usr/bin/xz
usr/bin/yes
usr/lib/
usr/lib64
usr/lib/ld-linux-x86-64.so.2
usr/lib/libacl.so.1
usr/lib/libaudit.so.1
usr/lib/libblkid.so.1
usr/lib/libcap-ng.so.0
usr/lib/libcap.so.2
usr/lib/libcrypto.so.1.1
usr/lib/libcrypt.so.2
usr/lib/libc.so.6
usr/lib/libdl.so.2
usr/lib/libffi.so.7
usr/lib/libgcrypt.so.20
usr/lib/libgpg-error.so.0
usr/lib/libip4tc.so.2
usr/lib/libkmod.so.2
usr/lib/liblz4.so.1
usr/lib/liblzma.so.5
usr/lib/libmount.so.1
usr/lib/libp11-kit.so.0
usr/lib/libpam.so.0
usr/lib/libpthread.so.0
usr/lib/librt.so.1
usr/lib/libseccomp.so.2
usr/lib/libz.so.1
usr/lib/libzstd.so.1
usr/lib/modprobe.d/
usr/lib/modprobe.d/bluetooth-usb.conf
usr/lib/modprobe.d/nvdimm-security.conf
usr/lib/modprobe.d/nvidia.conf
usr/lib/modprobe.d/nvidia-dkms.conf
usr/lib/modprobe.d/systemd.conf
usr/lib/modules/
usr/lib/modules/5.14.0-rc3-1-rust-81529-g3976bd9d29fd/
usr/lib/modules/5.14.0-rc3-1-rust-81529-g3976bd9d29fd/kernel/
usr/lib/modules/5.14.0-rc3-1-rust-81529-g3976bd9d29fd/kernel/blake2b_generic.ko.zst
usr/lib/modules/5.14.0-rc3-1-rust-81529-g3976bd9d29fd/kernel/btrfs.ko.zst
usr/lib/modules/5.14.0-rc3-1-rust-81529-g3976bd9d29fd/kernel/cdrom.ko.zst
usr/lib/modules/5.14.0-rc3-1-rust-81529-g3976bd9d29fd/kernel/crc32c_generic.ko.zst
usr/lib/modules/5.14.0-rc3-1-rust-81529-g3976bd9d29fd/kernel/crc32c-intel.ko.zst
usr/lib/modules/5.14.0-rc3-1-rust-81529-g3976bd9d29fd/kernel/crc-itu-t.ko.zst
usr/lib/modules/5.14.0-rc3-1-rust-81529-g3976bd9d29fd/kernel/firewire-core.ko.zst
usr/lib/modules/5.14.0-rc3-1-rust-81529-g3976bd9d29fd/kernel/firewire-sbp2.ko.zst
usr/lib/modules/5.14.0-rc3-1-rust-81529-g3976bd9d29fd/kernel/libcrc32c.ko.zst
usr/lib/modules/5.14.0-rc3-1-rust-81529-g3976bd9d29fd/kernel/mmc_block.ko.zst
usr/lib/modules/5.14.0-rc3-1-rust-81529-g3976bd9d29fd/kernel/mmc_core.ko.zst
usr/lib/modules/5.14.0-rc3-1-rust-81529-g3976bd9d29fd/kernel/raid6_pq.ko.zst
usr/lib/modules/5.14.0-rc3-1-rust-81529-g3976bd9d29fd/kernel/sha256-ssse3.ko.zst
usr/lib/modules/5.14.0-rc3-1-rust-81529-g3976bd9d29fd/kernel/sr_mod.ko.zst
usr/lib/modules/5.14.0-rc3-1-rust-81529-g3976bd9d29fd/kernel/usbhid.ko.zst
usr/lib/modules/5.14.0-rc3-1-rust-81529-g3976bd9d29fd/kernel/usb-storage.ko.zst
usr/lib/modules/5.14.0-rc3-1-rust-81529-g3976bd9d29fd/kernel/virtio_blk.ko.zst
usr/lib/modules/5.14.0-rc3-1-rust-81529-g3976bd9d29fd/kernel/xhci-pci.ko.zst
usr/lib/modules/5.14.0-rc3-1-rust-81529-g3976bd9d29fd/kernel/xhci-pci-renesas.ko.zst
usr/lib/modules/5.14.0-rc3-1-rust-81529-g3976bd9d29fd/kernel/xor.ko.zst
usr/lib/modules/5.14.0-rc3-1-rust-81529-g3976bd9d29fd/kernel/xxhash_generic.ko.zst
usr/lib/modules/5.14.0-rc3-1-rust-81529-g3976bd9d29fd/modules.alias.bin
usr/lib/modules/5.14.0-rc3-1-rust-81529-g3976bd9d29fd/modules.builtin.alias.bin
usr/lib/modules/5.14.0-rc3-1-rust-81529-g3976bd9d29fd/modules.builtin.bin
usr/lib/modules/5.14.0-rc3-1-rust-81529-g3976bd9d29fd/modules.dep.bin
usr/lib/modules/5.14.0-rc3-1-rust-81529-g3976bd9d29fd/modules.devname
usr/lib/modules/5.14.0-rc3-1-rust-81529-g3976bd9d29fd/modules.softdep
usr/lib/modules/5.14.0-rc3-1-rust-81529-g3976bd9d29fd/modules.symbols.bin
usr/lib/systemd/
usr/lib/systemd/libsystemd-shared-249.so
usr/lib/systemd/systemd-udevd
usr/lib/udev/
usr/lib/udev/ata_id
usr/lib/udev/rules.d/
usr/lib/udev/rules.d/50-udev-default.rules
usr/lib/udev/rules.d/60-persistent-storage.rules
usr/lib/udev/rules.d/64-btrfs.rules
usr/lib/udev/rules.d/80-drivers.rules
usr/lib/udev/scsi_id
usr/local/
usr/local/bin
usr/local/lib
usr/local/sbin
usr/sbin
var/
var/run
VERSION
There is no difference between the initramfs files other than the diffreence in the module paths.
Offline
pretty much "lsinicpio … | grep …"
On a quick glance, none of them is there (so try explicitly edding them), but btrfs is there - do you face the emergency shell drop-off w/ that initramfs?
Offline
pretty much "lsinicpio … | grep …"
On a quick glance, none of them is there (so try explicitly edding them), but btrfs is there - do you face the emergency shell drop-off w/ that initramfs?
Yup, I tried both the normal and fallback initramfs and results are the same. Drops me in the emergency shell without keyboard.
I also compared the initramfs of problem kernel with the base kernel but there is no difference other than the name of the kernel.
The only other thing I can think of is that maybe arch linux doesn't play nice with kernel compiled with LLVM?
Offline
This is not related to "archlinux" - you're not reaching the system.
"unknown filesystem type 'btrfs'" means there's no btrfs module available - despite the lsinicpio output.
The only thing I could imagine if you're actually booting the proper initramfs is that the kernel somehow lacks zstd support - igrep the config for ZSTD.
Offline
This is not related to "archlinux" - you're not reaching the system.
"unknown filesystem type 'btrfs'" means there's no btrfs module available - despite the lsinicpio output.
The only thing I could imagine if you're actually booting the proper initramfs is that the kernel somehow lacks zstd support - igrep the config for ZSTD.
Well, here are all instances of zstd in the kernel config:
CONFIG_HAVE_KERNEL_ZSTD=y
CONFIG_KERNEL_ZSTD=y
CONFIG_RD_ZSTD=y
CONFIG_MODULE_COMPRESS_ZSTD=y
CONFIG_F2FS_FS_ZSTD=y
CONFIG_UBIFS_FS_ZSTD=y
CONFIG_SQUASHFS_ZSTD=y
CONFIG_PSTORE_ZSTD_COMPRESS=y
CONFIG_PSTORE_ZSTD_COMPRESS_DEFAULT=y
CONFIG_PSTORE_COMPRESS_DEFAULT="zstd"
CONFIG_CRYPTO_ZSTD=y
CONFIG_ZSTD_COMPRESS=y
CONFIG_ZSTD_DECOMPRESS=y
CONFIG_DECOMPRESS_ZSTD=y
Also as I said, I was able to reach the emergency prompt and log as the root user in Fedora which uses btrfs and zstd as default, so the only variable should be the config and initramfs.
Offline
I don't quite understand why you can't load the btrfs module, but the keyboard support is likely from one of the modules in #6
The problem is that adding them to the initramfs won't necessarily achieve anything if the btrfs module in the initramfs already can't be utilized…
Offline
Ok, so I finally was able to solve the problem.
I just removed the old config and generated a new config from the latest config in /proc.
I still can't boot but the keyboard works and I can get to the root emergency prompt.
I think the problem might have been with the old config. I also haven't enabled any of the Rust Sample modules so that can be the case too.
Either way, thanks for all your help @seth.
Offline
Ok, so I finally was able to solve the problem.
I just removed the old config and generated a new config from the latest config in /proc.
I still can't boot but the keyboard works and I can get to the root emergency prompt.
I think the problem might have been with the old config. I also haven't enabled any of the Rust Sample modules so that can be the case too.
Either way, thanks for all your help @seth.
Could you say how you did it, please? I am finding a solution right now but on the normal (linux) kernel. Sorry for disturbing!
Offline