Search Results

Search found 4619 results on 185 pages for 'kernel panic'.

Page 112/185 | < Previous Page | 108 109 110 111 112 113 114 115 116 117 118 119  | Next Page >

  • Ubuntu 14.04 ATI/Intel Hybrid Graphics DPM

    - by anchit123
    I have a Dell Inspiron 3521 with hybrid ATI/Intel graphics. (AMD Radeon 7670M / Intel HD 4000) using Ubuntu 14.04 with open source drivers for graphics. (xserver-xorg-video-ati) I read that Ubuntu 14.04 with the linux kernel version 3.13 supports auto switching between graphics and dynamic power management. Is it correct? Anyway, if it is true, I dont think that it is working in my system , because fan runs constantly and battery backup is less than 2 hours. lspci | grep -i vga 00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09) 01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Thames [Radeon HD 7500M/7600M Series] (rev ff) What should I do? Is there any hope that this gets fixed in future kernels?

    Read the article

  • After installing Ubuntu using WUBI, starting Ubuntu does not get further than the GRUB prompt

    - by Kris Everett
    I'm trying to install Ubuntu. I put Ubuntu on a USB flash drive using the WUBI installer. I get to where it finishes the install and it wants me to reboot. But when I reboot and then select Ubuntu, I get a black screen that says GNU GRUB version 1.99-21ubuntu3 Minimal BASH-like editing is supported. for the first word. TAB lists possible command completions. Anywhere else TAB lists possible device or file completions. Grub> When I type in some commands it says "Kernel not specified" and the rest of the commands give no feed back what so ever. What did i do wrong? Can anyone point me in the right direction. Please help this is very frustrating any help would be useful.

    Read the article

  • Samsung NP305U1A laptop won't resume from suspension

    - by Oskar Pålsson
    I just bought a Samsung NP305U1A laptop and installed Ubuntu Desktop 12.04 LTS on it. Whenever I suspend the computer and try to wake it back up, the monitor only shows a black screen and the only thing I can do is a hard reset. Kernel: 3.2.0-24-generic Graphic: Radeon HD 6320 Anybody know what to do? UPDATE I did some some research and remebered that I installed the "ATI/AMD proprietary FGLRX graphics driver" from the "Additional drivers" software bundled in Ubuntu. I also tried to install the "ATI/AMD proprietary FGLRX graphics driver (post-release updates)" but whenever I do, it gives me an error and I can't continue So I decided to make a clean install of Ubuntu 12.04 again and when i tried the suspension out-of-the-box, it did work. But since I can't install the drivers I need, HD video is choppy like hell. So perhaps the suspension bug was fixed in the post-release updates of the driver, but sadly I cannot install them, and I don't know why.

    Read the article

  • Help With Hard links And Symlinks Moving Directory And Files

    - by Julio
    This is what I would like to do. I have a symlink "/var" linking to "/tmpfs/var.1" /var - /tmpfs/var.1 I start a script called "cache_tmpfs" from /etc/rc.local on startup this script will copy /var.backup/* contents to /tmpfs/var.1/ cp -dpRxf /var.backup/* /tmpfs/var.1/ now the problem is that kernel is opening messages log file in /var/log/messages, is it possible to remove the current /var symlink and recreate a new one (that will symlink to /var.backup insteed of /tmpfs/var.1) without issues as files once opened by system become hard links?? rm /var && ln -s /var.backup /var Thanks...

    Read the article

  • Announcement Oracle Solaris 11.1 Availability!

    - by uwes
    On 25th of October Oracle announced the availability of Oracle Solaris 11.1. Highlights include: 8x faster database startup and shutdown and online resizing of the database SGA with a new optimized shared memory interface between the database and Oracle Solaris 11.1 Up to 20% throughput increases for Oracle Real Application Clusters by offloading lock management into the Oracle Solaris kernel Expanded support for Software Defined Networks (SDN) with Edge Virtual Bridging enhancements to maximize network resource utilization and manage bandwidth in cloud environments 4x faster Solaris Zone updates with parallel operations shorten maintenance windows New built-in memory predictor monitors application memory use and provides optimized memory page sizes and resource location to speed overall application performance. More information could be found under the following links: Oracle Solaris 11.1 Data Sheet  What's New in Oracle Solaris 11.1 Oracle Solaris 11.1 FAQs Oracle.com Oracle Solaris page Oracle Technology Network Oracle Solaris page Resources for downloading: Download Solaris 11.1 Order Solaris 11.1 media kit Existing customers can quickly and simply update using the network based repository

    Read the article

  • Atheros AR8132 Ethernet refuses to connect after suspend

    - by Ramesh Patel
    I'm having an issue where my ethernet card (Atheros Communications Inc. AR8132 Fast Ethernet (rev c0)) refuses to recognize when a network cable is plugged in after a suspend. This is dmesg after suspending: [135897.712049] atl1c 0000:02:00.0: MAC state machine can't be idle since disabled for 10ms second [135897.743729] ADDRCONF(NETDEV_UP): eth0: link is not ready [135898.541804] ADDRCONF(NETDEV_UP): eth1: link is not ready [135900.452077] atl1c 0000:02:00.0: irq 47 for MSI/MSI-X [135900.672262] atl1c 0000:02:00.0: Error get phy ID [135900.673060] ADDRCONF(NETDEV_UP): eth0: link is not ready [135900.674140] ADDRCONF(NETDEV_UP): eth0: link is not ready [135925.604052] [135935.776051] eth1: no IPv6 routers present eth0 is the ethernet card and eth1 is the wlan card (Broadcom Corporation BCM43224 802.11a/b/g/n (rev 01)). The ethernet card uses the atl1c driver and the wlan card uses the wl driver. Sorry, should have mentioned as well, running Ubuntu 12.04 with kernel 3.2.0-25-generic.

    Read the article

  • What are the legal consequences of customizing the LiveCD?

    - by Voulnet
    Hello everyone, the organization I work at wants to create a custom Ubuntu LiveCD, the customizations are: Pre-installed programs, plugins, some device drivers, and aesthetics such as icons and backgrounds, as well as changing Firefox's homepage and removing unneeded packages. Not big changes, obviously, and we wish to distribute this custom image for clients to use as a bootable CD or USB stick in order to have a quick environment where all our tools are available instantly. What are the licensing and legal consequences of this? What if some of the programs or plugins that are to be pre-packaged are not GPL'd? I should finally note that we are not changing any code in the kernel or any other distro component. Thank you for your time!

    Read the article

  • Building small Ubuntu server - What hardware is recommended?

    - by 10robinho
    There are many of us who need to build small Ubuntu server. Problem is that in some countries it is hard to find and quite expensive to buy server motherboards and processors. And when one is building small server with limited budget, buying some Xenons is not really an option. So, are there any general recommendations for hardware (I think that motherboards are the main issue) that is stable and fast under Linux? I read that Intel should be the best choice for cpu + mbo combo. So, I was looking around for some Intel motherboards + i7 Ivy Bridge (like Intel DZ77BH-55K with Z77 chipset and Intel i7 3770K) but I've read that they have some issues with kernel, booting and USB ports. That is why I ask community if you have any experience with this. Maybe Intel is not the best choice here? Maybe ASUS or Gigabyte or _other company_ are more stable with Linux? I hope that this Q&As can help people in building stable Ubuntu server.

    Read the article

  • SysRq+REISUB hangs at "resetting" (without actually resetting/restarting) in Maverick

    - by Andrei
    I'm trying SysRq+REISUB to see how it would be used to restart my system safely in case of emergency. However, I find that SysRq+REISUB hangs at "resetting" (without actually resetting/restarting) in Maverick. All other SysRq combinations appear to work correctly (i.e. SysRq+REISU). cat /proc/sys/kernel/sysrq returns 0. But I'm not sure it's relevant because SysRq certainly works. What can I do to have "B" actually restart the system? Thanks!

    Read the article

  • Configure IPv6 on your Linux system (Ubuntu)

    After the presentation on IPv6 at the first event of the Emtel Knowledge Series and some recent discussion on social media networks with other geeks and Linux interested IT people here in Mauritius, I thought that I should give it a try (finally) and tweak my local network infrastructure. Honestly, I have been to busy with contractual project work and it never really occurred to me to set up IPv6 in my LAN. Well, the following paragraphs are going to shed some light on those aspects of modern computer and network technology. This is the first article in a series on IPv6 configuration: Configure IPv6 on your Linux system DHCPv6: Provide IPv6 information in your local network Enabling DNS for IPv6 infrastructure Accessing your web server via IPv6 Piece of advice: This is based on my findings on the internet while reading other people's helpful articles and going through a couple of man-pages on my local system. Let's embrace IPv6 The basic configuration on Linux is actually very simple as the kernel, operating system, and user-space programs support that protocol natively. If your system is ready to go for IP (aka: IPv4), then you are good to go for anything else. At least, I didn't have to install any additional packages on my system(s). We are going to assign a static IPv6 address to the system. Hence, we have to modify the definition of interfaces and check whether we have an inet6 entry specified. Open your favourite text editor and check the following entries (it should be at least similar to this): $ sudo nano /etc/network/interfaces auto eth0# IPv4 configurationiface eth0 inet static  address 192.168.1.2  network 192.168.1.0  netmask 255.255.255.0  broadcast 192.168.1.255# IPv6 configurationiface eth0 inet6 static  pre-up modprobe ipv6  address 2001:db8:bad:a55::2  netmask 64 Of course, you might have to adjust your interface device (eth0) or you might be interested to have multiple directives for additional devices (eth1, eth2, etc.). The auto instruction takes care that your device is enabled and configured during the booting phase. The use of the pre-up directive depends on your kernel configuration but in most scenarios this might be an optional line. Anyways, it doesn't hurt to have it enabled after all - just to be on the safe side. Next, either restart your network subsystem like so: $ sudo service networking restart Or you might prefer to do it manually with identical parameters, like so: $ sudo ifconfig eth0 inet6 add 2001:db8:bad:a55::2/64 In case that you're logged in remotely into your PC (ie. via ssh), it is highly advised to opt for the second choice and add the device manually. You can check your configuration afterwards with one of the following commands (depends on whether it is installed): $ sudo ifconfig eth0eth0      Link encap:Ethernet  HWaddr 00:21:5a:50:d7:94            inet addr:192.168.160.2  Bcast:192.168.160.255  Mask:255.255.255.0          inet6 addr: fe80::221:5aff:fe50:d794/64 Scope:Link          inet6 addr: 2001:db8:bad:a55::2/64 Scope:Global          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1 $ sudo ip -6 address show eth03: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000    inet6 2001:db8:bad:a55::2/64 scope global        valid_lft forever preferred_lft forever    inet6 fe80::221:5aff:fe50:d794/64 scope link        valid_lft forever preferred_lft forever In both cases, it confirms that our network device has been assigned a valid IPv6 address. That's it in general for your setup on one system. But of course, you might be interested to enable more services for IPv6, especially if you're already running a couple of them in your IP network. More details are available on the official Ubuntu Wiki. Continue to configure your network to provide IPv6 address information automatically in your local infrastructure.

    Read the article

  • Convert from EFI to BIOS boot

    - by Lukas F.
    I have a Samsung Notebook NP900X4C with an LUKS encrypted installation of Linux Mint 15 on it. The system is booting in UEFI mode. The problem is that the samsung-notebook kernel module is disabled in UEFI mode and due to that I am missing features like the keyboard backlight. Is it possible to modify the current installtion so it can boot in BIOS mode? Is this correct that the basic steps would be converting the disk from GPT to MBR and installing grub from a live CD? Would this be possible with a LUKS partition?

    Read the article

  • pulseaudio on ubuntu server

    - by Dan
    I am running ubuntu server, and trying to get pulseaudio working. I followed the instructions at How do I run PulseAudio in a headless server installation? At the moment, pacmd list-cards is reporting 0 cards, and I suspect this has something to do with the fact aplay is only playing sound when I run it as sudo. As far as I can tell, this means the the kernel module for my sound card is in fact loaded. I have already tried adding my user to the "audio" group, but this does not help. My questions are 1) How do I get aplay to work without running it as sudo 2) Is there anything special I need to do to make pulseaudio work at this point.

    Read the article

  • Looking for recommendations on OCR problem - tabular numeric data

    - by ldigas
    I have 20 pages of experiment measurement data which I need to digitalize. The results are in tabular form, scanned in 600 dpi resolution, and as far as scans go, they came up pretty clean and readable. For an example of how it looks see here (but beware: it is a rather big scan; about 5Mb; no problem for any broadband connection, but dialups should approach with caution!) ... and I need it finished by sunday afternoon (:-o) <-- smiley in a state of panic (then why did't you start sooner?)... yea, yeah ... I know ... but, it came up late, and I wasn't thinking I was gonna need this data also. So, I'm looking for recommendations. I haven't much experience with OCR programs, save scanning a page or two of pure text, but just to mention, I haven't the wish also to test out every OCR program out there. So this isn't a "name your OCR favourite". What I'm looking is advice from someone who's done something like that, and his/hers experience on what would be the best way to undertake. I need the data in txt form but since it will have to be checked (by drawing it, and just simply watching whether some points "jump out") I'll probably be entering it in Excel at first.

    Read the article

  • Ubuntu 12.04 Boot Error

    - by Aman
    My Laptop was working just fine a day back but it started show the following error on booting: error: couldn't read file So, I googled about it and used a Live-CD to use Boot-Repair as told here: "can't read file" error after installation causes system to not boot I was given this link: http://paste.ubuntu.com/1441528/ if there are issues still. I also tried to do it again by a Boot-Repair-Disk this time and now I am getting the following error: error: couldn't read file error: you need to load the kernel first The boot-repair-disk gave me this link: http://paste2.org/p/2609703 if there are further issues.

    Read the article

  • Slow Wireless Reconnect After Suspend - Broadcom 4312 with STA drivers

    - by nrhine1
    I am using 10.10 with STA drivers, I reinstalled ubuntu because the b43 drivers were giving me a huge hassle along with some weird kernel issues. My wireless speed is fine, everything works well, except upon restart of computer and after taking the computer out of suspend. It takes about 30-45 seconds for the wireless to reconnect, and I think it is a driver issue (I clicked on the network manager at the top and for about 30 seconds there are no wireless networks listed.) I tried this advice already: http://lilserenity.wordpress.com/2007/10/31/fix-ubuntu-dropping-wireless-on-suspendhibernate-resume/ which basically says to change this: STOP_SERVICES="" to STOP_SERVICES="networking" in the file /etc/default/acpi-support This did not help anything. Something to note is that the issue does not occur when I am logging back in after already logging in once and logging out.

    Read the article

  • Better drivers for SiS 650/740 integrated video?

    - by Bart van Heukelom
    I installed Xubuntu 10.10 on an old box today and the graphical performance is horrid. According to lspci, the video card is this: 01:00.0 VGA compatible controller: Silicon Integrated Systems [SiS] 65x/M650/740 PCI/AGP VGA Display Adapter (prog-if 00 [VGA controller]) Subsystem: ASUSTeK Computer Inc. Device 8081 Flags: 66MHz, medium devsel, IRQ 11 BIST result: 00 Memory at f0000000 (32-bit, prefetchable) [size=128M] Memory at e7800000 (32-bit, non-prefetchable) [size=128K] I/O ports at d800 [size=128] Expansion ROM at <unassigned> [disabled] Capabilities: <access denied> Kernel modules: sisfb Is there a way to make it faster? Alternative drivers? The additional drivers tool shows nothing. I'm specifically interested in improving Java's Java2D rendering speed, because I'll be running a "stat screen" written in that language on it.

    Read the article

  • Is there a rational reason to wait for the release date to download, install or update to the next version of Ubuntu?

    - by badp
    Today, October 6th 2010, Ubuntu 10.10 is in Feature Definition Freeze, Debian Import Freeze, Feature Freeze, User Interface Freeze, Beta Freeze, Documentation String Freeze, Final Freeze, Kernel Freeze and past the Translation Deadlines in both the non-language pack and language pack editions as the release schedule details. Basically, except for last minute bugfixes, the version of Ubuntu 10.10 you can download today is identical to the version of Ubuntu 10.10 you can download on the 10th when it gets released. If you downloaded and installed Ubuntu 10.10 today, you would: help find glaring issues for last minute fixing help defray the network load on October 10th see Ubuntu 10.10 in action without waiting Those sound like pretty strong arguments... to me, and indeed I've been using Ubuntu 10.10 for a month now roughly. However, most people prefer to make the jump with everybody else on release day. What are the rational reasons for that?

    Read the article

  • Can't boot Ubuntu 12.10 32 or 64 Bit, only Ubuntu 12.04 32 Bit [closed]

    - by Alexander
    Possible Duplicate: My computer boots to a black screen, what options do I have to fix it? i tried to install Ubuntu 12.04 64Bit, 12.10 32 and 64Bit, but it doesn't work. I'm used the Ubuntu 12.04 32Bit Start Disc Creator and also Unetboot on Win7, the installation-process are finished and i restart without the Stick. I can choose for example 12.10 and it starts writing "start ... [OK], ...", but then it hangs most on "Stop Kernel Messages [OK]". Then i can only shutdown normal the system and it writes stopping, shutdown and something like that. I am use an Aspire One D270 Netbook with Intel Atom N2600. It also doesn't work to try Ubuntu 12.10 from running on USB Stick. It starts, but then its black and the cursor blink on the left upside. Please can you help me? :(

    Read the article

  • Ubuntu 11.10 doesn't detect Intel integrated graphics (i7-2670QM CPU)

    - by Telmo Marques
    The laptop I'm using is an MSI GT683DX-847PT that comes with an NVIDIA GeForce GTX570M discrete GPU, and an Intel Core i7-2670QM CPU. According to Intel's description of the Core i7-2670QM CPU, it has an HD Graphics 3000 integrated GPU. The problem is that the Intel integrated graphics GPU doesn't come up in lspci nor in lshw, only the NVIDIA GPU shows up. Here is the output of both commands: sudo lspci: http://pastebin.com/raw.php?i=9AZg8bJy sudo lshw: http://pastebin.com/raw.php?i=6cAMFQsY I was counting on having two GPU's to run CUDA programs on the discrete NVIDIA GPU, while X was handled by the integrated Intel GPU, to prevent kernel execution timeout. Why doesn't the Intel HD Graphics 3000 GPU show up? Any tests I could make to verify the presence of an integrated GPU?

    Read the article

  • pulseaudio and alsa on ubuntu 12.04 server

    - by Dan
    I am running ubuntu 12.04server, and trying to get pulseaudio working. I followed the instructions at How do I run PulseAudio in a headless server installation? At the moment, pacmd list-cards is reporting 0 cards, aplay will only playing sound when I run it as sudo, and running alsamixer as sudo also works, but running it as my user produces "cannot open mixer: No such file or directory" As far as I can tell, this means the the kernel module for my sound card is in fact loaded. I have already tried adding my user to the "audio" group, but this does not help. The permissions on the devices in /dev/snd are all crw-rw---T 1 root audio 116 I noticed on an ubuntu 12.04 desktop, that the file permissions are slightly different. On the desktop, they are crw-rw---T+ 1 root audio 116 My questions are 1) How do I get aplay to work without running it as sudo on the server 2) Is there anything special I need to do to make pulseaudio work at this point.

    Read the article

  • Flash completely freeze computer

    - by Yanick Rochon
    Since this morning, and ever so frequently, Flash will completely freeze the computer as soon as something launches it. First, the web page will stop responding, then the entire browser, and after about 2 seconds, the mouse and keyboard will stop responding and the computer will escalate to 100% usage, and all that's left is to perform a hard reboot. I tried re-installing Flash, downgrade my kernel, nothing will do. I'm running Mint 13 64-bit (based on Ubuntu 12.04) with XFCE (not Xubuntu, I installed XFCE as separate package). It never freezes otherwise, so I know it's caused by Flash. How do I solve this issue? What could cause this?

    Read the article

  • Using a DisplayLink USB video adapter on Ubuntu 12.10

    - by Jason R
    The line of USB video adapters made by DisplayLink has a somewhat sordid history under Linux. In past Ubuntu releases, the process of getting them to work has been somewhat difficult, inspiring a number of past questions on this site: example 1 example 2 example 3 However, there are some indications that version 3.5 of the Linux kernel (which is used by 12.10) contains better support for these adapters, which should make them easier to use. I currently have a single-GPU machine (it is an Nvidia adapter) with dual monitor outputs. I would like to add the DisplayLink adapter to drive a third external monitor. How can I set this up on Ubuntu 12.10?

    Read the article

  • Boots up into Terminal

    - by Jacob Larson
    I am running a 64 bit version of Ubuntu 12.04.1, and I when I boot up, I am thrown (Rather violently. :P) a full-sized terminal, instead of my lovely GUI login screen.. So I looked around and tried the "startx" command, which works like a charm. Only problem is that now, I have no clue how to keep it from booting to the terminal every time, and boot up into the regular GUI with all my stuff. I did install some kernel updates the night before, though I restarted my computer twice after I had done so without a problem. Thanks for your time!

    Read the article

  • Does Ubuntu Touch consume less than Android?

    - by Eduard Florinescu
    One of the problems of new OSs is power consumption. That is because power and performance requires a lot of tweaks and experience with the kernel, drivers and OS code-base on one hand, and a lot of extensive long-term test and quality assurance on the other hand. Given that Android is a rather old and established OS I saw that it has pretty good power consumption. Phoronix does this kind of comparissions but I was not able to find to much about Ubuntu Touch. Does Ubuntu Touch consume less than Android in general, do you have data on some platforms compared?

    Read the article

  • Override an IOCTL Handler in PQOAL

    - by Kate Moss' Big Fan
    When porting or creating a BSP to a new platform, we often need to make change to OEMIoControl or HAL IOCTL handler for more specific. Since Microsoft introduced PQOAL in CE 5.0 and more and more BSP today leverages PQOAL to simplify the OAL, we no longer define the OEMIoControl directly. It is somehow analogous to migrate from pure Windows SDK to MFC; people starts to define those MFC handlers and forgot the WinMain and the big message loop. If you ever take a look at the interface between OAL and Kernel, PUBLIC\COMMON\OAK\INC\oemglobal.h, the pfnOEMIoctl is still there just as the entry point of Windows Program is WinMain since day one. (For those may argue about pfnOEMIoctl is not OEMIoControl, I will encourage you to dig into PRIVATE\WINCEOS\COREOS\NK\OEMMAIN\oemglobal.c which initialized pfnOEMIoctl to OEMIoControl. The interface is just to split OAL and Kernel which no longer linked to one executable file in CE 6, all of the function signature is still identical) So let's trace into PQOAL to realize how it implements OEMIoControl and how can we override an IOCTL handler we interest. First thing to know is the entry point (just as finding the WinMain in MFC), OEMIoControl is defined in PLATFORM\COMMON\SRC\COMMON\IOCTL\ioctl.c. Basically, it does nothing special but scan a pre-defined IOCTL table, g_oalIoCtlTable, and then execute the handler. (The highlight part) Other than that is just for error handling and the use of critical section to serialize the function. BOOL OEMIoControl(     DWORD code, VOID *pInBuffer, DWORD inSize, VOID *pOutBuffer, DWORD outSize,     DWORD *pOutSize ) {     BOOL rc = FALSE;     UINT32 i; ...     // Search the IOCTL table for the requested code.     for (i = 0; g_oalIoCtlTable[i].pfnHandler != NULL; i++) {         if (g_oalIoCtlTable[i].code == code) break;     }     // Indicate unsupported code     if (g_oalIoCtlTable[i].pfnHandler == NULL) {         NKSetLastError(ERROR_NOT_SUPPORTED);         OALMSG(OAL_IOCTL, (             L"OEMIoControl: Unsupported Code 0x%x - device 0x%04x func %d\r\n",             code, code >> 16, (code >> 2)&0x0FFF         ));         goto cleanUp;     }            // Take critical section if required (after postinit & no flag)     if (         g_ioctlState.postInit &&         (g_oalIoCtlTable[i].flags & OAL_IOCTL_FLAG_NOCS) == 0     ) {         // Take critical section                    EnterCriticalSection(&g_ioctlState.cs);     }     // Execute the handler     rc = g_oalIoCtlTable[i].pfnHandler(         code, pInBuffer, inSize, pOutBuffer, outSize, pOutSize     );     // Release critical section if it was taken above     if (         g_ioctlState.postInit &&         (g_oalIoCtlTable[i].flags & OAL_IOCTL_FLAG_NOCS) == 0     ) {         // Release critical section                    LeaveCriticalSection(&g_ioctlState.cs);     } cleanUp:     OALMSG(OAL_IOCTL&&OAL_FUNC, (L"-OEMIoControl(rc = %d)\r\n", rc ));     return rc; }   Where is the g_oalIoCtlTable? It is defined in your BSP. Let's use DeviceEmulator BSP as an example. The PLATFORM\DEVICEEMULATOR\SRC\OAL\OALLIB\ioctl.c defines the table as const OAL_IOCTL_HANDLER g_oalIoCtlTable[] = { #include "ioctl_tab.h" }; And that leads to PLATFORM\DEVICEEMULATOR\SRC\INC\ioctl_tab.h which defined some of IOCTL handler but others are defined in oal_ioctl_tab.h which is under PLATFORM\COMMON\SRC\INC\. Finally, we got the full table body! (Just like tracing MFC, always jumping back and forth). The format of table is very straight forward, IOCTL code, Flags and Handler Function // IOCTL CODE,                          Flags   Handler Function //------------------------------------------------------------------------------ { IOCTL_HAL_INITREGISTRY,                   0,  OALIoCtlHalInitRegistry     }, { IOCTL_HAL_INIT_RTC,                       0,  OALIoCtlHalInitRTC          }, { IOCTL_HAL_REBOOT,                         0,  OALIoCtlHalReboot           }, The PQOAL scans through the table until it find a matched IOCTL code, then invokes the handler function. Since it scans the table from the top which means if we define TWO handler with same IOCTL code, the first one is always invoked with no exception. Now back to the PLATFORM\DEVICEEMULATOR\SRC\INC\ioctl_tab.h, with the following table { IOCTL_HAL_INITREGISTRY,                   0,  OALIoCtlDeviceEmulatorHalInitRegistry     }, ... #include <oal_ioctl_tab.h> Note the IOCTL_HAL_INITREGISTRY handler are defined in both BSP's local ioctl_tab.h and the common oal_ioctl_tab.h, but due to BSP's local handler comes before "#include <oal_ioctl_tab.h>" so we know the OALIoCtlDeviceEmulatorHalInitRegistry always get called. In this example, the DeviceEmulator BSP overrides the IOCTL_HAL_INITREGISTRY handler from OALIoCtlHalInitRegistry to OALIoCtlDeviceEmulatorHalInitRegistry by manipulating the g_oalIoCtlTable table. (In some point of view, it is similar to message map in MFC) Please be aware, when you override an IOCTL handler in PQOAL, you may want to clone the original implementation to your BSP and change to meet your need. It is recommended and save you the redundant works but remember to rename the handler function (Just like the DeviceEmulator it changes the name of OALIoCtlHalInitRegistry to OALIoCtlDeviceEmulatorHalInitRegistry). If you don't change the name, linker may not be happy (due to name conflict) and the more important is by using different handler name, you could always redirect the handler back to original one. (It is like the concept of OOP that calling a function in base class; still not so clear? I am goinf to show you soon!) The OALIoCtlDeviceEmulatorHalInitRegistry setups DeviceEmulator specific registry settings and in the end, if everything goes well, it calls the OALIoCtlHalInitRegistry (PLATFORM\COMMON\SRC\COMMON\IOCTL\reginit.c) to do the rest.     if(fOk) {         fOk = OALIoCtlHalInitRegistry(code, pInpBuffer, inpSize, pOutBuffer,             outSize, pOutSize);     } Now you got the picture, whenever you want to override an IOCTL hadnler that is implemented in PQOAL just Clone the handler function to your BSP as a template. Simple name change for the handler function, and a name change in the IOCTL table header file that maps the IOCTL with the function Implement your IOCTL handler and whenever you need to redirect it back just calling the original handler function. It is the standard way of implementing a custom IOCTL and most Microsoft developers prefer. The mapping of IOCTL routine to IOCTL code is platform specific - you control the header file that does that mapping.

    Read the article

< Previous Page | 108 109 110 111 112 113 114 115 116 117 118 119  | Next Page >