And i also think it even can use this method, prink your error message, and use a shell " sleep 100; dmesg | grep xxx >> savefile" to do this job and no need to write an application. It is simple and no need for a minute to realize it if it is used just for a trace tool for u. BRs Lin 2009/9/14 Pei Lin <telent997@xxxxxxxxx>: > why u must use a law to limit your solution? > And u can hack kernel and dig the hole and do what u want...... > > Lin > > 2009/9/14 Leonidas . <leonidas137@xxxxxxxxx>: >> >> >> On Mon, Sep 14, 2009 at 2:19 PM, Leonidas . <leonidas137@xxxxxxxxx> wrote: >>> >>> >>> On Mon, Sep 14, 2009 at 1:57 PM, Pei Lin <telent997@xxxxxxxxx> wrote: >>>> >>>> SO u can use the first method,write files from the kernel space..... >>>> See the hyperlink i give. >>>> >>>> Lin >>>> >>>> 2009/9/14 Leonidas . <leonidas137@xxxxxxxxx>: >>>> > >>>> > >>>> > On Mon, Sep 14, 2009 at 1:22 PM, Leonidas . <leonidas137@xxxxxxxxx> >>>> > wrote: >>>> >> >>>> >> >>>> >> Hi List >>>> >> >>>> >> I have written a kernel module which implements a char device. An >>>> >> userspace app >>>> >> is supposed to get data from my module and then dump it into a file >>>> >> for >>>> >> further processing. >>>> >> >>>> >> The kind of data which kernel module is going to pass to userspace is >>>> >> going to be a 4K buffer, >>>> >> and the data traffic is not going to be really heavy, meaning may be a >>>> >> 4K >>>> >> buffer every 1 min or so. >>>> >> I am not very sure though, but certainly not heavy traffic the way >>>> >> they >>>> >> describe for network traffic etc. >>>> >> >>>> >> And this data needs to be logged to a file either from kernel or >>>> >> userspace >>>> >> and an userspace all will work >>>> >> on that data. This data needs to be logged as soon as it arrives >>>> >> meaning, >>>> >> I might not be able to write it to >>>> >> /proc since from module I can update /proc only when user actually >>>> >> accesses it. This data needs to be >>>> >> static in nature, meaning I get one error and I write it to a file >>>> >> somehow >>>> >> and user can see it anytime. >>>> >> >>>> >> I hope I have described the situation clearly. I have explored some >>>> >> mechanism like ioctls, mmaping the >>>> >> kernel buffer etc but all these would require the user module to poll >>>> >> or >>>> >> notified somehow by kernel that >>>> >> the data is available. I dont want the user module to poll. >>>> >> >>>> >> >>>> >> -Leo. >>>> >> >>>> > >>>> > When we do a printk it writes to kernel log buffer, correct? This is >>>> > real in >>>> > time operation i.e. as soon as we do a >>>> > printk the messages get logged. Now this log file can be accesses from >>>> > /var/log/messages right? How is this done? >>>> > >>>> > I want to so something similar, so I can log my messages to a seprate >>>> > file >>>> > which is going to stay around so user can >>>> > see at across reboots as well. >>>> > >>>> > >>>> > >>>> > -Leo. >>>> > >>>> > >>> >>> >>> No, Greg KH mentions that is should not be done! >>> And I have been reading that 'It is a bad..bad thing to access files from >>> kernel space' >>> since I started doing Linux stuff. >>> >>> _Leo. >> >> >> I am aware of other legitimate mechanisms as I have described on my origianl >> post. >> It is just that I have certain constraints under which I cant use many of >> the methods >> since I dont want to user space entity to do polling or get signal from >> kernel. >> >> -Leo. >> > -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ