I have been reading some books about device driver development etc.I made a char driver of bond (dummy) device. My book says that PCI devices contain three addressable regions,configuration space,IO ports,and device memory,the book talks about a file include/linux/pci_ids.h and PCI addressing etc.I read about following functions
1) pci_read_config_ 2) pci_write_config_ some thing known as offset is defined to be passed on as an argument to above functions
3) IRQ number assigned to a card function pci_read_config_byte_,configuration register offsets
4) pci_request_region I want to write a pci driver for my own understanding and I am reading some books about it.
I am final year MCA student. I like to do my project in Linux. I know a little in C. I am pursuing RHCE certification. I am using rhel5. I am interested to write linux device drivers and willing to do my project in that.
I have started reading book Linux Device Drivers 3rd edition. So I want to know which is the best light weight distribution to use so that learning can be more generic and also does not involve distro specific nitty-gritty details. I have already tried building kernel for Ubuntu 10.04 but it involved different commands from what is mentioned in the book. So I am not sure whether I would be able to make further in the book. Has anybody tried?
I'm trying to open ttySx from an interrupt.the kernel crashes. is it possible to open/write to serial port from interrupts ? I think it crushes because when I try to open the device there is a mutex lock which cause the kernel to crash , am I right
I have written a Linux kernel module (in Linux 2.4, Red Hat 9) which does the followings: It takes srcIP, sourceport, destIP, destport and loadvalue as command line arguments. If configured load value is greater than 1, it creates different channels (i.e. No of UDP channels created equals to configured load value), assign different source port and destination port to different channels and send UDP datagram in different channels. Say for example the configured parameters are as follows srcIP=10.17.17.43 destIP= 10.17.17.44 sourceport=10000 destport= 20000 loadvalue=2.
Then it creates two UDP different channels and transmits UDP packets (in every 20 milliseconds) to destination IP address (i.e., 10.17.17.44) with source port 10000, destination port 20000 in one channel and source port 10002, destination port 20000 in another channel. When I configure to pass ?loadvalue=500? and run the module, I get the below kernel panic message in system log file (i.e., var/log/messages) 0>Kernel panic: Aiee, killing interrupt handler! In interrupt handler - not syncing. Running the same linux kernel module ,in 1000 loadvalue, I get this message, eth0: Out-of-sync dirty pointer, 49937 vs. 49954 in text console. I am unable to catch the root cause of these problems and how will I solve these?
I changed the complier PGI to Intel. But i had some error message p4_error: interrupt SIGSEGV: 11 This error message was occured using intel compiler I don't know what is the ploblem.
Ctrl-c with middle mouse button (MMB) trigger in running bash script trigger.
The key combination Ctrl-C or "^C" with the keyboard triggered on a running bash script stands for "signal interrupt" (SIGINT) and terminates the process.
For my workflow in the test phase, how I could do that with the MMB-Buffer, followed by the modified script command:
I am doing some Linux kernel programming for my research project. I need to record the timestamp (by using cpuid and rdtsc) when an interrupt handler (top half) is first invoked. Due to the time critical nature of the problem itself, I have to do the timestamping inside the interrupt handler itself (the first operation when the handler is called). However, I understand that tasks that are not so time critical should be deferred to a tasklet function (bottom half) for processing because other interrupts are disabled in a (top-half) interrupt handler. I am currently out of idea on how I can pass the timestamp information that I have obtained in the interrupt handler to the corresponding tasklet function.
I am going to write a TCP server program using c. Can anyone give me some advices on whats and what not to do specially when using select?
There would be a lot of data to be transferred both on the server and back to the client. I already have a simple server here but the server uses a lot of resources. Maybe 3 to 4 connections and the server's load would rise to unacceptable levels.
Which do you think is better to use fork or select?
I want to write some PHP for a website that'll have the data that the script will generate written inside a table with thin black line around it, much like LQ itself. My problem is: how do I draw the box that the text will be inside of, since the amount of text will vary - if I have a GIF with a picture of a box, that'll be of a fixed length, and my script can then only generate that much text, for it to look nice. Or do I need to fiddle with the GD library to get done what I want?
So basically, there is a really cool writing system I have been working on. It could be viewed (for simplification purposes) like an encryption method for the Latin script.
Facts about the writing system: It has a little over 300 symbols. It is syllable-driven. It is highly compositional (eg. "c", "ca", "cae", "ca " and "ci." all map to different symbols - and NOT by overlaying elements) Symbols have medium graphical complexity (comparable to Korean Hangul, or Japanese Hiragana) Has a rather complex set of diacritics (~10, some of which can go on any symbol) Has no ligatures
How transliteration occurs: Sequences of Latin symbols map to certain symbols. Example below:[G][rou][p ][hu][g.]Characters sequences between "[" and "]" map to a single symbol (so it would take only 5 symbols to write "Group hug.").
How I want it to work: I would like to have a daemon that: Intercepts all text displayed on the screen. Converts it to my writing system (changes letter sequences with individual Unicode codes) Leaves unsupported symbols unchanged. Displays all the text on the screen using my font and characters intertwined with the fonts and characters left unchanged.
For example, if you take the following line of C++ code:for (i = 1; i <= n; i++) I would like it displayed like this:[fo][r ]([i ]= [1]; [i ]<= [n]; [i]++) Bold-symbols should be in my Unicode font with special symbols defined for this writing system, and the rest should be in its original font and encoding. Also, I would like this encoding to hold for display-purposes only. The data in the memory should remain unaffected. This also means real-time adjustments: if I open a text editor (say, from the OpenOffice Suite) and I start typing, I would like to see what I type encoded with my writing system, even though the document actually contains Latin letters. This also means that the symbol immediately before the cursor may change as you type.
I have written a daemon server. I would like to add the ability for the daemon to update itself. That is, it should be able to download the latest version of the code (when it receives a signal from a client) and then restart itself. I am stuck on getting the daemon to restart itself. The problem is killing the old daemon without killing the process that is starting the new daemon. In my latest attempt, the daemon that is updating itself runs a program in a subshell (using system) that starts a restarter daemon that runs the original daemon (again using system) with the restart command option. With the restart option, the new version of the daemon sends a terminate signal to the old version. Obviously, when I run the original daemon manually with the restart option, it restarts reliably. I figured that issuing the same restart command from a daemon would adequately isolate the process doing the restarting from the program being restarted. Using ps, I can see that the daemon does actually restart. However, the client locks. In fact, a few times, the OS locked and I had to reset.
I am trying to write .pgm images using the O_DIRECT flag in open().I have a char* buffer which has the image data. I know that I have to align the buffers and have done that using posix_memalign() yet only a part of the image gets written.Has someone used O_DIRECT for writing files successfully?
I'm trying to write a simple, console based application in linux, in c++. I know how to start in Eclipse and I have some experience in c++ from Windoze. I would like to ask, if there is some tutorial available on writing console apps. I mean, I know from using linux that there are two conventions on using parameters in command line (-v and --version for example).
My platform is linux Centos 5. I have read that to learn programming is to read well-written code and take some project to work with. I am always fascinated by routers and firewalls. Like pfsense and vyatta. May be my searching skills are worst but i am not able to find any good tutorials. Ofcourse i dont expect anyone to write a complete router on their blog but wasnt even close to it.
I am running a java application on centos. For now I have a gsm modem connected via the the usb cable. Below is the message I get when I type the command dmesg | grep tty
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A 00:0c: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A usb 2-2: pl2303 converter now attached to ttyUSB0
I have assignment to write bash script and I have to submit it after tommorow . I do not have experience to finish it by myself.I am really need help if any one can contact me. on my email I will be thanks him/ her.
I would like to write a program that can read every ethernet frame arriving on a specific hardware NIC, without a TCP/IP stack otherwise doing anything on that NIC. Likewise I want to be able to write out to that NIC. So every arriving ethernet frame, of all types, would be readable (probably one at a time to preserve frame boundaries). And every write of exactly that same data would send frames out. The data read and written would be the whole ethernet frame. The kernel would do nothing else with this data, but other NICs would still operate as usual.
What I would be doing is that on 2 separate NICs, copying frames from one to the other, as in bridging. But I would also be doing modifications per what my program needs to do (not at liberty to say what that would be). What facility would I need to be looking at to do this? There is no ethernet device file. Would raw sockets be able to do this? The programming language will be C.
I created a small C++ program which starts a server in a separate thread and waits the user to press q using the standard input/output. Something like:
I am trying to learn how to write a kernel module. I am following the excellent guide from The Linux Documentation Project called The Linux Kernel Module Programming Guide v.2.6.4.
My machine is running Ubuntu Lucid Lynx (10.04)
Code:
I installed the corresponding linux headers and just to make sure I also installed the linux source and extracted it in /usr/src
I am trying to run the following trivial kernel module
I'm currently doing a tutorial for writing kernel modules. Right now I'm still at the very beginning, i.e. writing my helloworld stuff.
But what I like to do now is to write stuff onto the console, and I don't get it. According to my tutorials I can print stuff on the console using the printk()-function as long as the priority-level of the macro used in printk() is lower than the console_loglevel (how can I find that value out btw?).
But it doesn't work for me. Even if I use KERN_EMERG it still gets only logged, but not printed on the console and I thought KERN_EMERG get always printed...
Here's my code:
Code:
Code:
Everything works fine. But as soon as there are any blanks in mystring, e.g.
Code:
I always get
Code:
Why do I get this error and how can I insert string with blanks?