http://wiki.linuxmce.org/api.php?action=feedcontributions&user=Burgiman&feedformat=atomLinuxMCE - User contributions [en]2024-03-28T15:34:15ZUser contributionsMediaWiki 1.24.1http://wiki.linuxmce.org/index.php?title=Frequently_Asked_Questions&diff=22226Frequently Asked Questions2010-02-02T10:14:15Z<p>Burgiman: </p>
<hr />
<div>[[Category:Documentation]]<br />
This '''frequently asked questions''' (FAQ) section outlines solutions to the most common queries for initial/potential users. See also [[troubleshooting]] for solutions to problems experienced with the system.<br />
==Before Installing LinuxMCE==<br />
===What Does LinuxMCE Do For Me?===<br />
'''LinuxMCE is a whole home automation suite. It includes full featured solutions for:'''<br />
*Media<br />
**Organize media with [[Catalog_media_with_attributes|special metadata tags]]<br />
**View/Listen to media in any room<br />
**Media automatically [[Have_my_media_follow_me|follows you]] through your home<br />
**New media is automatically detected - even if it's on other devices like another computer on your network or Network Attached Storage (NAS)<br />
**Control all your A/V gear through LinuxMCE (using [[Control_regular_A/V_equipment|IR]], [[Control_A/V_equipment_with_RS232/USB/Ethernet|USB, Ethernet, or RS-232]]) including automatically powering everything on and setting the proper inputs on each device<br />
*[[Security]]<br />
**Monitor sensors and [[Have_LinuxMCE_notify_me_of_security_alerts|trigger events]]<br />
**[[Monitor_surveillance_cameras|Monitor security cameras]]<br />
*[[LinuxMCE_telecom_features|Telecomunication]]<br />
**Use VoIP phones anywhere in your home with minimal setup<br />
**Voicemail, call forwarding, advanced caller ID<br />
*Network Management<br />
**Take the place of a standard home router<br />
**Advanced [[Firewall_Rules|firewall]]<br />
**Advanced Quality of Service (QoS) to make sure your bandwidth is used effectively (especially important for VoIP)<br />
**Manage networked storage (such as [[Network_Attached_Storage|NAS devices]]<br />
*[[Automation|Home Control and Automation]]<br />
**Control climate and lighting throughout your entire home<br />
<br />
'''LinuxMCE provides all this functionality by controlling [[:Category:Hardware|all kinds of devices]] throughout the home including:'''<br />
*LinuxMCE [[Core]] Computer<br />
*LinuxMCE [[Media_Directors|Media Director]] Computers<br />
*LinuxMCE [[Orbiters|Orbiters]] (Fancy remotes)<br />
**Nokia [[Nokia 770|770]]/[[Nokia N800|N800/N810]]<br />
**Various PDAs (such as IPAQ 5550 and IPAQ hx2410)<br />
**Various Bluetooth capable mobile phones (including Nokia [[Nokia E65|E65]], [[Nokia N70|N70]], [[Nokia N73|N73]], [[Nokia 6620|6620]], [[Nokia 7650|7650]]) <br />
**The [[Web Orbiter]]<br />
**Various [[:Category:Orbiters|other devices]]<br />
*Networked storage (including [[:Category:Network_Attached_Storage|Network Attached Storage]] (NAS) Devices)<br />
*A/V Equipment (TVs, Receivers, Cable Boxes, etc)<br />
**Using [[:Category:Infrared|Infrared]] (IR)<br />
**Using [[Control_A/V_equipment_with_RS232/USB/Ethernet|RS-232]] (Serial)<br />
**Using [[Control_A/V_equipment_with_RS232/USB/Ethernet|Ethernet]] (Network)<br />
**Using [[Control_A/V_equipment_with_RS232/USB/Ethernet|USB]]<br />
*TV [[:Category:TV_Cards|Capture Devices]]<br />
*Lighting [[:Category:Automation|Automation]]<br />
**Using [[X10_LinuxMCE_Configuration|X10]]<br />
**Using [[:Category:ZWave|Z-Wave]]<br />
**Using [[:Category:Insteon|Insteon]]<br />
**Using [[:Category:Automation|various other protocols]]<br />
**See also: [[Automation]]<br />
*HVAC (Climate Control)[[:Category:Automation|Automation]]<br />
*Security [[:Category:Security|Systems or Individual Sensors]]<br />
*Surveillance [[:Category:Cameras|Cameras]] (IP, Firewire, [[:Category:Video_Capture_Boards|video capture board]], etc)<br />
*VoIP [[:Category:Phones|Phones]] and [[VOIP Service Providers|Service Providers]]<br />
<br />
For more, see [[What can I do with LinuxMCE?]]<br />
<br />
===Is LinuxMCE an appliance or software solution?===<br />
Until now there have been two options for a smarthome+media system:<br />
# Low cost '''software''' based PC solutions, including home automation software like [http://www.homeseer.com HomeSeer], [http://www.premisesystems.com Premise] and [http://www.misterhouse.com Mr. House], also media software like [http://www.microsoft.com/windowsxp/mediacenter/default.mspx Microsoft Windows XP Media Center].<br />
# '''Appliance''' solutions, like [http://www.crestron.com Crestron], [http://www.amx.com AMX], [http://www.kaleidescape.com Kaleidescape] and [http://www.escient.com Escient].<br />
<br />
High-end systems are always appliance based, preferred for their simplicity, reliability and lack of hassle; no worry about missing the football game because your PC-based PVR got a virus. But appliance systems cost a lot &mdash; for one that includes automation, media, telephony, etc., like LinuxMCE. Even though those "appliances" are normally PC's inside special cases, often running Linux plus some proprietary software, you can never get the software separately to build your own &mdash; until now.<br />
<br />
LinuxMCE is an appliance solution. The Core becomes a self-configuring, self-maintaining black box appliance. Since the Core automatically offers a network boot image to any PC's you want to use as media directors, they too become appliances. You can still use them as a PC, of course, but you can crash the hard drive, install a virus, delete system files, and it doesn't matter. When you hit 'LinuxMCE' on the remote control, the Core sends it a network boot, the hard drive turns off, it doesn't use your operating system, and you'll never see a PC prompt. And when you hit the PC button, it goes back to being a PC like normal. LinuxMCE is a 'family friendly' solution--you can use the PC for kernel-level coding, knowing the kids can always hit 1 button and still use it to watch cartoons.<br />
<br />
LinuxMCE offers the best of both worlds: an appliance solution at the price of a software solution, and the the power and versatility of a software solution with the ease of use of an appliance. We offer the software for free as open source because our business is licensing LinuxMCE to hardgoods manufacturers who embed it in their products.<br />
<br />
===What do commercial appliance solutions similar to LinuxMCE cost?===<br />
Appliance solutions are normally quite expensive. The most popular combinations are:<br />
# [http://www.crestron.com Crestron] system to do all the home automation. The cost varies depending on what you want to do with it, but a whole-house solution including touch-screen panels will set you back at least $25,000 for an entry-level system, and can easily hit 6 figures.<br />
# [http://www.kaleidescape.com Kaleidescape] for the DVD movie server, costing $27,000 for the main server, and $4,000 for each TV where you want to watch movies.<br />
# [http://www.escient.com Escient] Fireball for the music server, costing $5,000 for the central music server.<br />
# A PBX phone system with voicemail, like [http://www.panasonic.com Panasonic] will cost another 5 grand or so.<br />
<br />
All of those products require professional installation and setup, particularly the home automation devices. LinuxMCE was designed with simple web-based wizard so even non-techies can get a whole solution up within a few hours. But our competitors' products are different. Smart home dealers will require a trained programmer to set them up. For example, it can take weeks of programming to set up a Crestron system in a good-sized house. Programming fees can be over $10,000, plus re-programing fees every time you make a change. '''Bottom line: around $100,000''' for an appliance solution that does what LinuxMCE does.<br />
<br />
Appliance solutions are typically PCs, running an Linux OS with custom, proprietary software, placed inside custom cases. The software is not available separately, so there's no way to economize or build your own.<br />
<br />
LinuxMCE has taken a different approach. LinuxMCE is also an appliance solution, but we have made the software available separately. In fact, it is free, so techies and software programmers can build their own high-end appliance systems. Competing PC hardware manufacturers can license the LinuxMCE platform to use in standard, low-cost PCs. LinuxMCE brings down the cost by offering all the functionality of several systems in 1 system: whole house media & entertainment, home automation, telecom, security, and personal computer.<br />
<br />
===I've heard LinuxMCE is just a bunch of projects merged together. Is that true? What is special about LinuxMCE?===<br />
<p>LinuxMCE includes a lot of other open source projects, like Xine, Asterisk, MythTV, VideoLan, etc. So we are often asked, "Why do I need LinuxMCE, can't I just use those other projects by themselves?"</p><br />
<p>LinuxMCE has a lot of its own software; it's not just a collection of other projects. In fact, LinuxMCE's own software is bigger than most of the key outside projects combined. LinuxMCE includes its own messaging platform. Most of the logic and functionality, such as how to handle home security, media, etc., is in LinuxMCE's plug-in's--not the other projects. Plus LinuxMCE includes a GUI that runs on Linux, Windows, Windows CE and Symbian. There are already thousands of DCE Devices for various smart home components. And LinuxMCE includes lots of development tools, like the GUI Designer, code generators like DCEGen and sql2cpp. There are also some fairly substantial stand-alone projects with LinuxMCE, like sqlCVS. sqlCVS has essentially all the same features as CVS or SVN, but it works with databases--not source code. It is what ensures that when one user translates a screen on the GUI, or learns an infrared code, or creates a new GSD device, that this is committed to a central repository, reviewed by our staff, then propagated to all other users.</p><br />
<p>Additionally LinuxMCE has its own "wrappers" for all the outside open source projects we integrate. This is what allows them to work together seamlessly.</p><br />
<p><b>Example #1: LinuxMCE's wrappers allow open source projects to be interchangeable modules.</b> For example, on one media director un-check the box for the 'Xine' media player, but leave 'VideoLan' checked. Do the opposite for another media director. And for the rest, leave both checked (the default). Now start watching a movie in 1 room. As you move from room to room the movie will seamlessly move from Xine to VideoLan and back. If you leave both checked, Xine will be used when the movie is playing in 1 room only, and VideoLan when it is playing in multiple rooms. This interoperability is not possible outside of LinuxMCE.</p><br />
<p><b>Example #2: LinuxMCE allows a bunch of disparate projects to work together as a seamless whole</b> For example, if there's a security breach in your house, the lights and TV's in the house come on automatically using our home automation DCE device interfaces, and the security pin pad appears on all the Windows webpads and PDA's. After 30 seconds a menacing video plays for the burglar using Xine, while the surveillance cameras monitored by Motion feed a live video to your mobile phone over GPRS. Hit 'Talk' on the phone and Xine suspends, passing control to Linphone which makes a call using Asterisk to your mobile phone with the audio piped through the stereo so you can shout at the intruder and let him know you're watching him from a remote location and calling. To the end-user, it works seamlessly, like 1 cohesive whole, but in reality, what LinuxMCE did is enable a bunch of existing applications to work together.</p><br />
<br />
===Which hardware is known to work?===<br />
See the [[:Category:Hardware|Hardware category]].<br />
<br />
===Can LMCE record digital television?=== <br />
Yes, as long as it is unencrypted. Please [[Understanding_digital_cable|see this article]]<br />
<br />
===Is LinuxMCE a distribution or a package?===<br />
Strictly speaking LinuxMCE is a package. A very big package. The distribution it runs on is standard Kubuntu Linux.<br />
<br />
Only the PC running as the Core is required to run Kubuntu and use the LinuxMCE package.<br />
<br />
Any PC used as a Media Director can [[netboot]] from the Core, without the requirement for an OS at all. Of course, you can always boot whatever OS is already stored on the hard drive of each Media Director PC and use that PC separately from the LinuxMCE system. Play the games (or whatever) that are stored on the hard drive (using whichever OS is already installed there) there, and when you're ready to use that PC as a Media Director again, you just go back to netbooting from the Core.<br />
<br />
For the Core, you should use Kubuntu and our packages.<br />
<br />
LinuxMCE is based on the standard Kubuntu Linux distribution. While you could try to run LinuxMCE on another distribution, it's not recommended. LinuxMCE has lots of scripts and utilities to facilitate various tasks. Plus, LinuxMCE embeds many other open source projects, like Xine, Asterisk, etc., with our own "wrappers" that allows them to work together seamlessly. These wrappers are only tested against the versions we maintain in our Ubuntu mirror.<br />
<br />
Before we upgrade anything on our mirror, we thoroughly test the new packages in our system to be sure it still works.<br />
<br />
We didn't take any modules away from the Kubuntu distribution, we only added some. You can still use your Core as a normal Kubuntu Linux PC. In fact, our additions can be bypassed if they get in your way, as is explained below. But in general, DCERouter and other devices, like the home automation modules, all run in the background and won't interfere in screen sessions.<br />
<br />
''Here's what we changed:''<br />
<br />
====Configuration scripts====<br />
LinuxMCE includes a lot of scripts that automate all aspects of maintaining a Linux system. For example, when you add a new user from the LinuxMCE Admin site, it automatically creates a new media directory, exports a samba share, creates an email and voicemail accounts, and so on. There's also scripts to do lots of low-level things like setup ip network prioritizing, so your VOIP calls are always clear. By default, LinuxMCE overwrites and re-creates many Linux config files at each boot. In this regard LinuxMCE acts like a black box appliance. However, once you install LinuxMCE you can go to the [[LinuxMCE Admin Website]]-->Advanced-->Boot Scripts and disable any or all of these scripts. Then you can still maintain your LinuxMCE Core like any other Linux PC and it won't overwrite your config files.<br />
<br />
====Our Ubuntu mirror====<br />
We maintain our own mirror based on Ubuntu. The reason is that we have "wrappers" for many open source projects like Xine, Asterisk, etc., allowing them to work together seamlessly. Whenever updates are posted to Ubuntu's repository, we test the new versions to be sure the changes did not break anything in our wrappers and that the auto-configuration scripts still work. In very rare cases, we need to make our own version of a package that replaces the one in Ubuntu. We avoid that whenever possible, and instead re-work our wrappers so that we can stay current with the "stock" version. Such changes are generally trivial, and you should see no difference between LinuxMCE's Ubuntu mirror and the official one.<br />
<br />
====Window manager====<br />
The Media Directors use our own modified version of the Ratpoison window manager. All applications appear as full-screen, with no borders. Our Orbiter GUI becomes the XWindows desktop. This is the desired behavior in an appliance-like set-top box; we completely isolate the user from anything computer-like. However, you will likely not want this as your main desktop. It is possible to run 2 versions of X on separate terminals: one with LinuxMCE's window manager, and the other with your own preferred choice of desktop.<br />
<br />
====Software Module Overview====<br />
<br />
[[Overview of the software modules]]<br />
<br />
===Ok, I'm sold - what do I need to run LinuxMCE?===<br />
LinuxMCE components include:<br />
*'''''The Core''''' - The computer that acts as the "server" for LinuxMCE. It is responsible for coordinating all the other components and managing your network. This system '''REQUIRES TWO NETWORK CARDS'''. Read the next question for an explanation.<br />
*'''''Media Directors''''' - The computers that are connected to your TV's and allow you to view your media. The Core can also act as a Media Director; this configuration is called a '''''Hybrid'''''. Any system that is to be used as a Media Director should have '''an nVidia graphics card, 6200 or better'''. Read the question after the next for an explanation.<br />
*'''''Orbiters''''' - Small devices used as advanced remote controls. Some possible devices include:<br />
**Bluetooth mobile phones (with OBEX capabilities)<br />
**Nokia Internet tablets (N770/800/810)<br />
**Windows PCs<br />
**Any device with a web browser<br />
<br />
You must have exactly one Core. You may have as many Media Directors and Orbiters as you please. For a more detailed explanation, including hardware recommendations, see [[User_Manual#Hardware|this section]] of the User Manual.<br />
<br />
You will also need additional hardware for certain functionality. Here are some examples:<br />
*Recording/Watching TV - PCI or Ethernet based TV tuner<br />
*Security - Sensors, device to connect sensors to the system, IP-cameras<br />
*Home control and automation - Home automation computer adapter, control system compatible devices (switches, thermostats, etc)<br />
*A/V equipment control - IR Transceiver, RS-232 cabling<br />
*Telecommunication - VoIP provider, VoIP phones (or at least some microphones attached to Media Directors)<br />
<br />
You don't have to buy everything at once - you can expand your system as you please.<br />
<br />
===Why do I need two network cards in my Core?===<br />
LinuxMCE is built to automate as many tasks as possible. In order to do this, it monitors new connections to your network. This allows LinuxMCE to immediately react and automatically configure new networked hardware. This includes setting up VoIP phones and adding media from other systems or Network Attached Storage (NAS) devices. <br />
<br />
The LMCE or "internal" network hosts all of your LMCE devices and media sources, and is connected to the "internal" or second NIC on your core server. The first or "external" NIC can simply connect to your existing network. You can keep any existing routers and DHCP servers you wish on your "external" existing home network. The LMCE core server will connect to that network via the external NIC, and if configured that way, will receive a DHCP lease IP address like any other device. Thus your LMCE core server effectively sits between your "external" and "internal" networks using NICs 1 and 2 respectively.<br />
<br />
I basic diagrammatic guide is [[Network_Setup|here.]]<br />
<br />
But note - anything on your existing network that you want to interact with LMCE, such as NAS devices, wireless APs, PCs that may contain media, VoIP phones, ethernet based security or home automation equipment, should be moved onto the LMCE internal network. From that point it will provide DHCP services and Internet routeing to those devices.<br />
<br />
For that reason, it is important not to put any DHCP servers on your internal network. LMCE must provide that. Any existing DHCP servers on your external network are perfectly fine and can remain, as these do not effect the internal network.<br />
<br />
Ideally, you will eventually (or immediately) move all your devices onto the LMCE internal network, for simplicity. This is highly recommended. This would leave your external network as nothing but a simple link from the core's external NIC to your Internet connection device. <br />
<br />
Some (most?) people have an ADSL modem that also provides routeing functionality - thus your LMCE core will route all Internet bound traffic to this modem, and it will route the traffic on to your ISP. <br />
<br />
Others use broadband modems as a "bridge", typically with a PPPoE dialer, and bridge their public IP address directly to the LMCE core server, thus the core is effectively directly on the Internet and performs all the routing to your ISP itself. This approach is equally valid as the core has a full firewall making it secure. This configuration can be a little trickier to set up, but has the advantage of making VoIP setup much easier.<br />
<br />
Still others have both an ADSL/cable modem and a separate router device on the external network. The LMCE core server routes to the router device, and it routes either to or through the broadband device to your ISP. Again, this is valid, but often unnecessarily complicated.<br />
<br />
===Why does LinuxMCE Require nVidia graphics cards? Why can't I use my ATI card?===<br />
Any system that is going to be used as a Media Director (including a hybrid Core) should have an nVidia graphics card, 6200 or better. This is technically not a requirement, but it is a very strong suggestion. Here's why:<br />
<br />
*ATI's Linux drivers do not properly support all the features LinuxMCE needs to run the graphical overlay<br />
*Because the drivers don't support LinuxMCE's feature set, we haven't done enough refinement of the ATI device templates to make it work without lots of manual intervention<br />
*Even with proper setup - which takes an extreme amount of effort - the results are not all that good.<br />
<br />
The bottom line, nVidia has better support in Linux than ATI, allowing LinuxMCE to do a lot more stuff. Using an nVidia card will save a lot of manual configuration and give a better user experience. For these reasons, LinuxMCE only recommends nVidia cards.<br />
<br />
''LinuxMCE developers will NOT help you configure graphics cards that do not meet this requirement. You are more than welcome to use other hardware, but do so at your own risk.''<br />
<br />
For more information see [[Display Drivers]].<br />
<br />
===How do I install LinuxMCE?===<br />
There are two ways to install LinuxMCE. Both are detailed in the [[Installation Guide]], here's a short summary of each. '''Be sure to read the [[Installation Guide]] in its entirety''' before installing LinuxMCE - it contains '''very important''' information.<br />
<br />
No matter which you choose, it's important to realize that LinuxMCE is not a Linux distribution - it's actually built upon Kubuntu. The most recent version of LinuxMCE is 0710, which installs on top of Kubuntu 7.10. Do not attempt to install LinuxMCE 0710 on Kubuntu 8.04 or 8.10 - it will not work. (LinuxMCE version 0810 is under development - [[LinuxMCE-0810_alpha2|alpha versions]] are available for testing - these should not be used by new users. Not all features are complete, and not all features are stable.)<br />
====DVD Method====<br />
This method will use the entire hard drive and will setup LinuxMCE with default settings. If you want more control over the installation, use the CD method. Booting from the DVD will start the install process.<br />
<br />
Default settings include:<br />
*Automatically install Kubuntu 7.10<br />
*Use the whole hard drive - wiping anything on it<br />
*Start a DHCP server on boot<br />
<br />
====CD Method====<br />
This is a two step process. First, you must install Kubuntu 7.10. '''Do not apply any Kubuntu updates.''' Doing so may cause issues with the LinuxMCE install. Then, start the CD installation from within Kubuntu (not as a boot disc). Details about this process are in the [[Installation Guide]].<br />
<br />
Additional configuration options include:<br />
*Custom partition setup<br />
*Run installation from ISO images (instead of actual discs)<br />
<br />
==First Boot==<br />
===Nothing came up on my TV! What's wrong?===<br />
Probably nothing serious. See [[AVWizard#What_to_do_if_A.2FV_Wizard_does_not_start|this page]].<br />
===My Network Card Doesn't Work! Now What?===<br />
There are some devices that don't work out of the box. [[Unrecognized_NIC|This page]] has more information on getting NICs to work.<br />
===How do I login to a LinuxMCE system?===<br />
In order to do certain things - like system configuration, or general computing - you will need to provide login information. See [[Logging_In]] for details.<br />
===How do I configure LinuxMCE?===<br />
Much of the initial configuration is handled in the installation. The remaining system setup is handled by the [[AVWizard|A/V Wizard]], which automatically launches on the first boot.<br />
<br />
For additional configuration options, see the [[LinuxMCE Admin Website]] (http://dcerouter/ or http://192.168.80.1/) or re-run the A/V Wizard.<br />
<br />
==General Information==<br />
===How are media files organized?===<br />
====General use====<br />
<p>For windows users, you can access the files on the core in Windows explorer's network neighborhood, or by choosing 'Start' 'Run' and typing \\ plus the ip of your core. You will need to login with your user-name and password; it's the same one you use with LinuxMCE Admin. You will see 2 folders: 'public' and 'john', assuming your name is 'John'. Any files that you want everyone in the House to have access to go into the public folder. The folder with your name, John in this case, is your private folder where you can put files that only that only you will have access to. Often times when you choose to save media using the orbiter it will ask you if you want the media to be public or private. If you choose public the media will be saved under the public folder, and if you choose private it will be saved under the private folder with your name. Within those folders you will find some folders called: 'music' (where all ripped cd's go), 'movies' (where all ripped DVD's go), 'videos' (where videos recorded from tv or camcorders go), pictures (where your pictures go), and 'documents' (where your documents go). When you go to play some media in the orbiter by choosing the buttons music, movies, videos, pictures or documents, you will see combined together all the media from the family's public folder as well as the media from your own personal private folder.</p><br />
<br />
<p>So, for example, if you rip a CD 'Madonna' and make it public, and rip a CD 'Rolling Stones' and make it private, and your spouse rips a CD 'Fleetwood Mac' and makes it private, then when you touch music on the orbiter you will see 'Madonna' and 'Rolling Stones', and when your spouse touches music your spouse will see 'Fleetwood Mac' and 'Madonna'. Assuming your name is john and your spouse is susan, then if you browse the network share, you will find 'Madonna' in the folder public\music and you will find 'Rolling Stones' in the folder john\music. If, in LinuxMCE admin your user has 'can modify configuration' checked, then that means you are also able to browse everybody else's private folders too. So in addition to 'public' and 'john', you will also see a folder 'susan', which contains 'music' which contains 'Fleetwood Mac'. If that option is not checked for Susan, then she will only see the folder 'public' and 'susan' and will not see your private folder 'john'.</p><br />
<br />
<p>Note that even if you check that option giving yourself access to everyone's private folders, when you go to browse media on the orbiter you will still only see public files plus your own private files, just so you're not bothered with everyone else's.</p><br />
<br />
<p>To maintain the media files, including copying deleting and renaming, you can either use another PC and a network share, such as a Windows PC with Windows Explorer, or in the LinuxMCE admin web site you can choose Media & Files, Browse.</p><br />
<br />
<p>Note that LinuxMCE maintains an internal database of all your media, including various attributes such as the actors in a movie or the composer of a song. This makes searching very comfortable. For example if you touch the music button, then start typing, you will see all attributes. For example after you touch 'G', you may see 'Geffen Studios (studio)', 'Get You Back (song)', 'GNR Live (album)', and 'Guns N Roses (performer)'. You can continue typing to narrow your entries down further, and touch any entry then 'view' to see all the music that matches. The resulting screen even does cross matching and shows pictures for each attribute.</p><br />
<br />
<p>When you rip media within LinuxMCE the attributes are created automatically. You can view attributes or change them in the LinuxMCE admin site. LinuxMCE also monitors any media that you may add or change outside of LinuxMCE, such as using Windows Explorer. For example if you copy files over in Windows Explorer, LinuxMCE will automatically scan the files and add the attributes to its internal database so you can still search. Also if you rename or delete files, LinuxMCE will automatically update your database accordingly.</p><br />
<br />
<p>If you add a plug-and-play network attached storage device, within each media folder you will see a subfolder for that device and you will be able to move files to and from it.</p><br />
<br />
====Technical explanation====<br />
<p>The public directory maps to /home/public/data, and each user's private directory maps to /home/user_xxxx/data, where xxxx is the internal user ID. The name 'john' is a symlinc to user_xxxx for convenience. The program /usr/pluto/bin/UpdateMedia uses INotify to monitor all /home/public/data and /home/user_xxxx/data folders, so it can rescan whenever the directory is changed. All attributes are stored in the MySql database pluto_media. Each file is a record in the 'File' table. UpdateMedia creates an extended attribute called 'ID' for each file with the primary key of each file. That way if you move or rename a file UpdateMedia will see the extended attribute and your attributes will not be lost--it just updates the database. If you want to add more storage you can map drives under those directories. For example, if you have another 2TB drive array that you want to use for both public music and your private movies, create 2 directories on that array, let's say: public_music and john_movies. Using a network mount, or a symlinc to a network mount, create a folder such as /home/public/data/music/my_2TB_nas that maps to public_music and /home/user_xxxx/data/movies/my_2TB_nas that maps to john_movies. Then when you browse music or movies in the orbiter you will see a folder 'my_2TB_nas' to access the files on that new drive. When you add a plug-and-play network attached storage, LinuxMCE automatically adds a folder within every single directory, such as /home/public/data/music/new_nas, /home/public/data/movies/new_nas, /home/user_xxxx/data/videos/new_nas, and these are automatically mapped to corresponding folders on the NAS. This makes it very easy for a novice to just plug in a NAS and immediately use it without any technical knowledge. However if you want to change this behavior, just remove the symlincs our plug and play script created.</p><br />
<br />
===What are scenarios?===<br />
[[Scenarios]] (aka activities) are the buttons that appear on the main menu of every controller, such as Web pads, PDAs, mobile phones, and Media Director PCs. They trigger any number of actions which can include anything from changing lighting to starting media playback to changing climate settings. Scenarios are specific to rooms. A scenario can affect any device anywhere in the house, but certain scenarios will only be displayed in certain rooms. This is so that when you are in a particular room, you will only see the scenarios that you are likely to use from that room.<br />
See [[What_scenarios_are_created_automatically?|this page]] to learn about what scenarios are created automatically.<br />
===Does LinuxMCE support encrypted DVD's?===<br />
The short answer: yes - if it is legal in your area. You will have to add optional software to enable the features. See [[Encrypted_DVD's| this page]] for more information.<br />
===How can I use additional mouse buttons for LinuxMCE?===<br />
See [[Use_Additional_Mouse_Buttons|this page]]<br />
===How should I format additional hard drives?===<br />
From "blog gelusi: Linux Tuning Guide" (http://gelusi.blogspot.com/2008/02/linux-tuning-guide.html)<br />
<br />
1. Filesystem<br />
Block sizes<br />
<br />
For filesystems dedicated to serving fairly large files, adopting a larger than default 1024 byte block size may yield significant<br />
performance gains.<br />
<br />
Recent transactions on the linux kernel list suggest that setting the block sizein an ext2 file system to 4096 instead of the <br />
default 1024 will result in less file fragmentation, faster fsck's, faster deletes and faster raw read speed, due to the reduced <br />
number of seeks.<br />
<br />
Unfortunately this cannot be changed on the fly. Only a reformat will make this so. The command to format a file system with 4096 <br />
byte blocks is:<br />
<br />
mke2fs -b 4096 /dev/whatever<br />
<br />
Additionally, on any filesystems except those used for logfiles, the default of 5% reserved for root use is excessive for large <br />
file systems, so the command to make the filesystem can be augmented to<br />
<br />
mke2fs -b 4096 -m 1 /dev/whatever<br />
<br />
to set the reserved fraction to 1 percent.<br />
<br />
Then if you want a journaling (ext3) filesystem:<br />
<br />
mke2fs -b 4096 -m 1 -j /dev/whatever<br />
<br />
Note, no further configuration should be necessary as new drives will be auto-discovered.<br />
<br />
==Fixing Problems==<br />
===What if I forget my web admin password?===<br />
[[Reset_the_password_for_the_LinuxMCE_Admin_site|See this article]]<br />
===What if I forget my linuxmce/upgrade account password?===<br />
[[Resetting_Account_Passwords|See this article]]<br />
===I can't access my media files over the network!===<br />
[[I can't access my media files over the network|See this article]].<br />
===What if you don't have a driver for my home automation device?===<br />
[[What if you don't have a driver for my home automation device|See this article]].<br />
===What if my problem isn't listed here?===<br />
It may be listed on the [[Troubleshooting]] page.<br />
<br />
If not, it's time to do some research on your own. [[Main_Page|The LinuxMCE wiki]] is full of information - try using the search feature or browsing categories. See if anyone else has had the same issue by searching on [http://forum.linuxmce.org/ the forum].<br />
<br />
When all else fails, maybe someone else has the answer for you. Try posting on [http://forum.linuxmce.org/ the forum] or our IRC channel (irc.freenode.net #linuxmce).<br />
<br />
Remember, LinuxMCE doesn't have any paid employees, so don't get annoyed if no one gets back to you right away. We're all very busy people who have lives outside of LinuxMCE.</div>Burgimanhttp://wiki.linuxmce.org/index.php?title=Frequently_Asked_Questions&diff=22225Frequently Asked Questions2010-02-02T10:10:23Z<p>Burgiman: </p>
<hr />
<div>[[Category:Documentation]]<br />
This '''frequently asked questions''' (FAQ) section outlines solutions to the most common queries for initial/potential users. See also [[troubleshooting]] for solutions to problems experienced with the system.<br />
==Before Installing LinuxMCE==<br />
===What Does LinuxMCE Do For Me?===<br />
'''LinuxMCE is a whole home automation suite. It includes full featured solutions for:'''<br />
*Media<br />
**Organize media with [[Catalog_media_with_attributes|special metadata tags]]<br />
**View/Listen to media in any room<br />
**Media automatically [[Have_my_media_follow_me|follows you]] through your home<br />
**New media is automatically detected - even if it's on other devices like another computer on your network or Network Attached Storage (NAS)<br />
**Control all your A/V gear through LinuxMCE (using [[Control_regular_A/V_equipment|IR]], [[Control_A/V_equipment_with_RS232/USB/Ethernet|USB, Ethernet, or RS-232]]) including automatically powering everything on and setting the proper inputs on each device<br />
*[[Security]]<br />
**Monitor sensors and [[Have_LinuxMCE_notify_me_of_security_alerts|trigger events]]<br />
**[[Monitor_surveillance_cameras|Monitor security cameras]]<br />
*[[LinuxMCE_telecom_features|Telecomunication]]<br />
**Use VoIP phones anywhere in your home with minimal setup<br />
**Voicemail, call forwarding, advanced caller ID<br />
*Network Management<br />
**Take the place of a standard home router<br />
**Advanced [[Firewall_Rules|firewall]]<br />
**Advanced Quality of Service (QoS) to make sure your bandwidth is used effectively (especially important for VoIP)<br />
**Manage networked storage (such as [[Network_Attached_Storage|NAS devices]]<br />
*Home Control and Automation<br />
**Control climate and lighting throughout your entire home<br />
<br />
'''LinuxMCE provides all this functionality by controlling [[:Category:Hardware|all kinds of devices]] throughout the home including:'''<br />
*LinuxMCE [[Core]] Computer<br />
*LinuxMCE [[Media_Directors|Media Director]] Computers<br />
*LinuxMCE [[Orbiters|Orbiters]] (Fancy remotes)<br />
**Nokia [[Nokia 770|770]]/[[Nokia N800|N800/N810]]<br />
**Various PDAs (such as IPAQ 5550 and IPAQ hx2410)<br />
**Various Bluetooth capable mobile phones (including Nokia [[Nokia E65|E65]], [[Nokia N70|N70]], [[Nokia N73|N73]], [[Nokia 6620|6620]], [[Nokia 7650|7650]]) <br />
**The [[Web Orbiter]]<br />
**Various [[:Category:Orbiters|other devices]]<br />
*Networked storage (including [[:Category:Network_Attached_Storage|Network Attached Storage]] (NAS) Devices)<br />
*A/V Equipment (TVs, Receivers, Cable Boxes, etc)<br />
**Using [[:Category:Infrared|Infrared]] (IR)<br />
**Using [[Control_A/V_equipment_with_RS232/USB/Ethernet|RS-232]] (Serial)<br />
**Using [[Control_A/V_equipment_with_RS232/USB/Ethernet|Ethernet]] (Network)<br />
**Using [[Control_A/V_equipment_with_RS232/USB/Ethernet|USB]]<br />
*TV [[:Category:TV_Cards|Capture Devices]]<br />
*Lighting [[:Category:Automation|Automation]]<br />
**Using [[X10_LinuxMCE_Configuration|X10]]<br />
**Using [[:Category:ZWave|Z-Wave]]<br />
**Using [[:Category:Insteon|Insteon]]<br />
**Using [[:Category:Automation|various other protocols]]<br />
**See also: [[Automation]]<br />
*HVAC (Climate Control)[[:Category:Automation|Automation]]<br />
*Security [[:Category:Security|Systems or Individual Sensors]]<br />
*Surveillance [[:Category:Cameras|Cameras]] (IP, Firewire, [[:Category:Video_Capture_Boards|video capture board]], etc)<br />
*VoIP [[:Category:Phones|Phones]] and [[VOIP Service Providers|Service Providers]]<br />
<br />
For more, see [[What can I do with LinuxMCE?]]<br />
<br />
===Is LinuxMCE an appliance or software solution?===<br />
Until now there have been two options for a smarthome+media system:<br />
# Low cost '''software''' based PC solutions, including home automation software like [http://www.homeseer.com HomeSeer], [http://www.premisesystems.com Premise] and [http://www.misterhouse.com Mr. House], also media software like [http://www.microsoft.com/windowsxp/mediacenter/default.mspx Microsoft Windows XP Media Center].<br />
# '''Appliance''' solutions, like [http://www.crestron.com Crestron], [http://www.amx.com AMX], [http://www.kaleidescape.com Kaleidescape] and [http://www.escient.com Escient].<br />
<br />
High-end systems are always appliance based, preferred for their simplicity, reliability and lack of hassle; no worry about missing the football game because your PC-based PVR got a virus. But appliance systems cost a lot &mdash; for one that includes automation, media, telephony, etc., like LinuxMCE. Even though those "appliances" are normally PC's inside special cases, often running Linux plus some proprietary software, you can never get the software separately to build your own &mdash; until now.<br />
<br />
LinuxMCE is an appliance solution. The Core becomes a self-configuring, self-maintaining black box appliance. Since the Core automatically offers a network boot image to any PC's you want to use as media directors, they too become appliances. You can still use them as a PC, of course, but you can crash the hard drive, install a virus, delete system files, and it doesn't matter. When you hit 'LinuxMCE' on the remote control, the Core sends it a network boot, the hard drive turns off, it doesn't use your operating system, and you'll never see a PC prompt. And when you hit the PC button, it goes back to being a PC like normal. LinuxMCE is a 'family friendly' solution--you can use the PC for kernel-level coding, knowing the kids can always hit 1 button and still use it to watch cartoons.<br />
<br />
LinuxMCE offers the best of both worlds: an appliance solution at the price of a software solution, and the the power and versatility of a software solution with the ease of use of an appliance. We offer the software for free as open source because our business is licensing LinuxMCE to hardgoods manufacturers who embed it in their products.<br />
<br />
===What do commercial appliance solutions similar to LinuxMCE cost?===<br />
Appliance solutions are normally quite expensive. The most popular combinations are:<br />
# [http://www.crestron.com Crestron] system to do all the home automation. The cost varies depending on what you want to do with it, but a whole-house solution including touch-screen panels will set you back at least $25,000 for an entry-level system, and can easily hit 6 figures.<br />
# [http://www.kaleidescape.com Kaleidescape] for the DVD movie server, costing $27,000 for the main server, and $4,000 for each TV where you want to watch movies.<br />
# [http://www.escient.com Escient] Fireball for the music server, costing $5,000 for the central music server.<br />
# A PBX phone system with voicemail, like [http://www.panasonic.com Panasonic] will cost another 5 grand or so.<br />
<br />
All of those products require professional installation and setup, particularly the home automation devices. LinuxMCE was designed with simple web-based wizard so even non-techies can get a whole solution up within a few hours. But our competitors' products are different. Smart home dealers will require a trained programmer to set them up. For example, it can take weeks of programming to set up a Crestron system in a good-sized house. Programming fees can be over $10,000, plus re-programing fees every time you make a change. '''Bottom line: around $100,000''' for an appliance solution that does what LinuxMCE does.<br />
<br />
Appliance solutions are typically PCs, running an Linux OS with custom, proprietary software, placed inside custom cases. The software is not available separately, so there's no way to economize or build your own.<br />
<br />
LinuxMCE has taken a different approach. LinuxMCE is also an appliance solution, but we have made the software available separately. In fact, it is free, so techies and software programmers can build their own high-end appliance systems. Competing PC hardware manufacturers can license the LinuxMCE platform to use in standard, low-cost PCs. LinuxMCE brings down the cost by offering all the functionality of several systems in 1 system: whole house media & entertainment, home automation, telecom, security, and personal computer.<br />
<br />
===I've heard LinuxMCE is just a bunch of projects merged together. Is that true? What is special about LinuxMCE?===<br />
<p>LinuxMCE includes a lot of other open source projects, like Xine, Asterisk, MythTV, VideoLan, etc. So we are often asked, "Why do I need LinuxMCE, can't I just use those other projects by themselves?"</p><br />
<p>LinuxMCE has a lot of its own software; it's not just a collection of other projects. In fact, LinuxMCE's own software is bigger than most of the key outside projects combined. LinuxMCE includes its own messaging platform. Most of the logic and functionality, such as how to handle home security, media, etc., is in LinuxMCE's plug-in's--not the other projects. Plus LinuxMCE includes a GUI that runs on Linux, Windows, Windows CE and Symbian. There are already thousands of DCE Devices for various smart home components. And LinuxMCE includes lots of development tools, like the GUI Designer, code generators like DCEGen and sql2cpp. There are also some fairly substantial stand-alone projects with LinuxMCE, like sqlCVS. sqlCVS has essentially all the same features as CVS or SVN, but it works with databases--not source code. It is what ensures that when one user translates a screen on the GUI, or learns an infrared code, or creates a new GSD device, that this is committed to a central repository, reviewed by our staff, then propagated to all other users.</p><br />
<p>Additionally LinuxMCE has its own "wrappers" for all the outside open source projects we integrate. This is what allows them to work together seamlessly.</p><br />
<p><b>Example #1: LinuxMCE's wrappers allow open source projects to be interchangeable modules.</b> For example, on one media director un-check the box for the 'Xine' media player, but leave 'VideoLan' checked. Do the opposite for another media director. And for the rest, leave both checked (the default). Now start watching a movie in 1 room. As you move from room to room the movie will seamlessly move from Xine to VideoLan and back. If you leave both checked, Xine will be used when the movie is playing in 1 room only, and VideoLan when it is playing in multiple rooms. This interoperability is not possible outside of LinuxMCE.</p><br />
<p><b>Example #2: LinuxMCE allows a bunch of disparate projects to work together as a seamless whole</b> For example, if there's a security breach in your house, the lights and TV's in the house come on automatically using our home automation DCE device interfaces, and the security pin pad appears on all the Windows webpads and PDA's. After 30 seconds a menacing video plays for the burglar using Xine, while the surveillance cameras monitored by Motion feed a live video to your mobile phone over GPRS. Hit 'Talk' on the phone and Xine suspends, passing control to Linphone which makes a call using Asterisk to your mobile phone with the audio piped through the stereo so you can shout at the intruder and let him know you're watching him from a remote location and calling. To the end-user, it works seamlessly, like 1 cohesive whole, but in reality, what LinuxMCE did is enable a bunch of existing applications to work together.</p><br />
<br />
===Which hardware is known to work?===<br />
See the [[:Category:Hardware|Hardware category]].<br />
<br />
===Can LMCE record digital television?=== <br />
Yes, as long as it is unencrypted. Please [[Understanding_digital_cable|see this article]]<br />
<br />
===Is LinuxMCE a distribution or a package?===<br />
Strictly speaking LinuxMCE is a package. A very big package. The distribution it runs on is standard Kubuntu Linux.<br />
<br />
Only the PC running as the Core is required to run Kubuntu and use the LinuxMCE package.<br />
<br />
Any PC used as a Media Director can [[netboot]] from the Core, without the requirement for an OS at all. Of course, you can always boot whatever OS is already stored on the hard drive of each Media Director PC and use that PC separately from the LinuxMCE system. Play the games (or whatever) that are stored on the hard drive (using whichever OS is already installed there) there, and when you're ready to use that PC as a Media Director again, you just go back to netbooting from the Core.<br />
<br />
For the Core, you should use Kubuntu and our packages.<br />
<br />
LinuxMCE is based on the standard Kubuntu Linux distribution. While you could try to run LinuxMCE on another distribution, it's not recommended. LinuxMCE has lots of scripts and utilities to facilitate various tasks. Plus, LinuxMCE embeds many other open source projects, like Xine, Asterisk, etc., with our own "wrappers" that allows them to work together seamlessly. These wrappers are only tested against the versions we maintain in our Ubuntu mirror.<br />
<br />
Before we upgrade anything on our mirror, we thoroughly test the new packages in our system to be sure it still works.<br />
<br />
We didn't take any modules away from the Kubuntu distribution, we only added some. You can still use your Core as a normal Kubuntu Linux PC. In fact, our additions can be bypassed if they get in your way, as is explained below. But in general, DCERouter and other devices, like the home automation modules, all run in the background and won't interfere in screen sessions.<br />
<br />
''Here's what we changed:''<br />
<br />
====Configuration scripts====<br />
LinuxMCE includes a lot of scripts that automate all aspects of maintaining a Linux system. For example, when you add a new user from the LinuxMCE Admin site, it automatically creates a new media directory, exports a samba share, creates an email and voicemail accounts, and so on. There's also scripts to do lots of low-level things like setup ip network prioritizing, so your VOIP calls are always clear. By default, LinuxMCE overwrites and re-creates many Linux config files at each boot. In this regard LinuxMCE acts like a black box appliance. However, once you install LinuxMCE you can go to the [[LinuxMCE Admin Website]]-->Advanced-->Boot Scripts and disable any or all of these scripts. Then you can still maintain your LinuxMCE Core like any other Linux PC and it won't overwrite your config files.<br />
<br />
====Our Ubuntu mirror====<br />
We maintain our own mirror based on Ubuntu. The reason is that we have "wrappers" for many open source projects like Xine, Asterisk, etc., allowing them to work together seamlessly. Whenever updates are posted to Ubuntu's repository, we test the new versions to be sure the changes did not break anything in our wrappers and that the auto-configuration scripts still work. In very rare cases, we need to make our own version of a package that replaces the one in Ubuntu. We avoid that whenever possible, and instead re-work our wrappers so that we can stay current with the "stock" version. Such changes are generally trivial, and you should see no difference between LinuxMCE's Ubuntu mirror and the official one.<br />
<br />
====Window manager====<br />
The Media Directors use our own modified version of the Ratpoison window manager. All applications appear as full-screen, with no borders. Our Orbiter GUI becomes the XWindows desktop. This is the desired behavior in an appliance-like set-top box; we completely isolate the user from anything computer-like. However, you will likely not want this as your main desktop. It is possible to run 2 versions of X on separate terminals: one with LinuxMCE's window manager, and the other with your own preferred choice of desktop.<br />
<br />
====Software Module Overview====<br />
<br />
[[Overview of the software modules]]<br />
<br />
===Ok, I'm sold - what do I need to run LinuxMCE?===<br />
LinuxMCE components include:<br />
*'''''The Core''''' - The computer that acts as the "server" for LinuxMCE. It is responsible for coordinating all the other components and managing your network. This system '''REQUIRES TWO NETWORK CARDS'''. Read the next question for an explanation.<br />
*'''''Media Directors''''' - The computers that are connected to your TV's and allow you to view your media. The Core can also act as a Media Director; this configuration is called a '''''Hybrid'''''. Any system that is to be used as a Media Director should have '''an nVidia graphics card, 6200 or better'''. Read the question after the next for an explanation.<br />
*'''''Orbiters''''' - Small devices used as advanced remote controls. Some possible devices include:<br />
**Bluetooth mobile phones (with OBEX capabilities)<br />
**Nokia Internet tablets (N770/800/810)<br />
**Windows PCs<br />
**Any device with a web browser<br />
<br />
You must have exactly one Core. You may have as many Media Directors and Orbiters as you please. For a more detailed explanation, including hardware recommendations, see [[User_Manual#Hardware|this section]] of the User Manual.<br />
<br />
You will also need additional hardware for certain functionality. Here are some examples:<br />
*Recording/Watching TV - PCI or Ethernet based TV tuner<br />
*Security - Sensors, device to connect sensors to the system, IP-cameras<br />
*Home control and automation - Home automation computer adapter, control system compatible devices (switches, thermostats, etc)<br />
*A/V equipment control - IR Transceiver, RS-232 cabling<br />
*Telecommunication - VoIP provider, VoIP phones (or at least some microphones attached to Media Directors)<br />
<br />
You don't have to buy everything at once - you can expand your system as you please.<br />
<br />
===Why do I need two network cards in my Core?===<br />
LinuxMCE is built to automate as many tasks as possible. In order to do this, it monitors new connections to your network. This allows LinuxMCE to immediately react and automatically configure new networked hardware. This includes setting up VoIP phones and adding media from other systems or Network Attached Storage (NAS) devices. <br />
<br />
The LMCE or "internal" network hosts all of your LMCE devices and media sources, and is connected to the "internal" or second NIC on your core server. The first or "external" NIC can simply connect to your existing network. You can keep any existing routers and DHCP servers you wish on your "external" existing home network. The LMCE core server will connect to that network via the external NIC, and if configured that way, will receive a DHCP lease IP address like any other device. Thus your LMCE core server effectively sits between your "external" and "internal" networks using NICs 1 and 2 respectively.<br />
<br />
I basic diagrammatic guide is [[Network_Setup|here.]]<br />
<br />
But note - anything on your existing network that you want to interact with LMCE, such as NAS devices, wireless APs, PCs that may contain media, VoIP phones, ethernet based security or home automation equipment, should be moved onto the LMCE internal network. From that point it will provide DHCP services and Internet routeing to those devices.<br />
<br />
For that reason, it is important not to put any DHCP servers on your internal network. LMCE must provide that. Any existing DHCP servers on your external network are perfectly fine and can remain, as these do not effect the internal network.<br />
<br />
Ideally, you will eventually (or immediately) move all your devices onto the LMCE internal network, for simplicity. This is highly recommended. This would leave your external network as nothing but a simple link from the core's external NIC to your Internet connection device. <br />
<br />
Some (most?) people have an ADSL modem that also provides routeing functionality - thus your LMCE core will route all Internet bound traffic to this modem, and it will route the traffic on to your ISP. <br />
<br />
Others use broadband modems as a "bridge", typically with a PPPoE dialer, and bridge their public IP address directly to the LMCE core server, thus the core is effectively directly on the Internet and performs all the routing to your ISP itself. This approach is equally valid as the core has a full firewall making it secure. This configuration can be a little trickier to set up, but has the advantage of making VoIP setup much easier.<br />
<br />
Still others have both an ADSL/cable modem and a separate router device on the external network. The LMCE core server routes to the router device, and it routes either to or through the broadband device to your ISP. Again, this is valid, but often unnecessarily complicated.<br />
<br />
===Why does LinuxMCE Require nVidia graphics cards? Why can't I use my ATI card?===<br />
Any system that is going to be used as a Media Director (including a hybrid Core) should have an nVidia graphics card, 6200 or better. This is technically not a requirement, but it is a very strong suggestion. Here's why:<br />
<br />
*ATI's Linux drivers do not properly support all the features LinuxMCE needs to run the graphical overlay<br />
*Because the drivers don't support LinuxMCE's feature set, we haven't done enough refinement of the ATI device templates to make it work without lots of manual intervention<br />
*Even with proper setup - which takes an extreme amount of effort - the results are not all that good.<br />
<br />
The bottom line, nVidia has better support in Linux than ATI, allowing LinuxMCE to do a lot more stuff. Using an nVidia card will save a lot of manual configuration and give a better user experience. For these reasons, LinuxMCE only recommends nVidia cards.<br />
<br />
''LinuxMCE developers will NOT help you configure graphics cards that do not meet this requirement. You are more than welcome to use other hardware, but do so at your own risk.''<br />
<br />
For more information see [[Display Drivers]].<br />
<br />
===How do I install LinuxMCE?===<br />
There are two ways to install LinuxMCE. Both are detailed in the [[Installation Guide]], here's a short summary of each. '''Be sure to read the [[Installation Guide]] in its entirety''' before installing LinuxMCE - it contains '''very important''' information.<br />
<br />
No matter which you choose, it's important to realize that LinuxMCE is not a Linux distribution - it's actually built upon Kubuntu. The most recent version of LinuxMCE is 0710, which installs on top of Kubuntu 7.10. Do not attempt to install LinuxMCE 0710 on Kubuntu 8.04 or 8.10 - it will not work. (LinuxMCE version 0810 is under development - [[LinuxMCE-0810_alpha2|alpha versions]] are available for testing - these should not be used by new users. Not all features are complete, and not all features are stable.)<br />
====DVD Method====<br />
This method will use the entire hard drive and will setup LinuxMCE with default settings. If you want more control over the installation, use the CD method. Booting from the DVD will start the install process.<br />
<br />
Default settings include:<br />
*Automatically install Kubuntu 7.10<br />
*Use the whole hard drive - wiping anything on it<br />
*Start a DHCP server on boot<br />
<br />
====CD Method====<br />
This is a two step process. First, you must install Kubuntu 7.10. '''Do not apply any Kubuntu updates.''' Doing so may cause issues with the LinuxMCE install. Then, start the CD installation from within Kubuntu (not as a boot disc). Details about this process are in the [[Installation Guide]].<br />
<br />
Additional configuration options include:<br />
*Custom partition setup<br />
*Run installation from ISO images (instead of actual discs)<br />
<br />
==First Boot==<br />
===Nothing came up on my TV! What's wrong?===<br />
Probably nothing serious. See [[AVWizard#What_to_do_if_A.2FV_Wizard_does_not_start|this page]].<br />
===My Network Card Doesn't Work! Now What?===<br />
There are some devices that don't work out of the box. [[Unrecognized_NIC|This page]] has more information on getting NICs to work.<br />
===How do I login to a LinuxMCE system?===<br />
In order to do certain things - like system configuration, or general computing - you will need to provide login information. See [[Logging_In]] for details.<br />
===How do I configure LinuxMCE?===<br />
Much of the initial configuration is handled in the installation. The remaining system setup is handled by the [[AVWizard|A/V Wizard]], which automatically launches on the first boot.<br />
<br />
For additional configuration options, see the [[LinuxMCE Admin Website]] (http://dcerouter/ or http://192.168.80.1/) or re-run the A/V Wizard.<br />
<br />
==General Information==<br />
===How are media files organized?===<br />
====General use====<br />
<p>For windows users, you can access the files on the core in Windows explorer's network neighborhood, or by choosing 'Start' 'Run' and typing \\ plus the ip of your core. You will need to login with your user-name and password; it's the same one you use with LinuxMCE Admin. You will see 2 folders: 'public' and 'john', assuming your name is 'John'. Any files that you want everyone in the House to have access to go into the public folder. The folder with your name, John in this case, is your private folder where you can put files that only that only you will have access to. Often times when you choose to save media using the orbiter it will ask you if you want the media to be public or private. If you choose public the media will be saved under the public folder, and if you choose private it will be saved under the private folder with your name. Within those folders you will find some folders called: 'music' (where all ripped cd's go), 'movies' (where all ripped DVD's go), 'videos' (where videos recorded from tv or camcorders go), pictures (where your pictures go), and 'documents' (where your documents go). When you go to play some media in the orbiter by choosing the buttons music, movies, videos, pictures or documents, you will see combined together all the media from the family's public folder as well as the media from your own personal private folder.</p><br />
<br />
<p>So, for example, if you rip a CD 'Madonna' and make it public, and rip a CD 'Rolling Stones' and make it private, and your spouse rips a CD 'Fleetwood Mac' and makes it private, then when you touch music on the orbiter you will see 'Madonna' and 'Rolling Stones', and when your spouse touches music your spouse will see 'Fleetwood Mac' and 'Madonna'. Assuming your name is john and your spouse is susan, then if you browse the network share, you will find 'Madonna' in the folder public\music and you will find 'Rolling Stones' in the folder john\music. If, in LinuxMCE admin your user has 'can modify configuration' checked, then that means you are also able to browse everybody else's private folders too. So in addition to 'public' and 'john', you will also see a folder 'susan', which contains 'music' which contains 'Fleetwood Mac'. If that option is not checked for Susan, then she will only see the folder 'public' and 'susan' and will not see your private folder 'john'.</p><br />
<br />
<p>Note that even if you check that option giving yourself access to everyone's private folders, when you go to browse media on the orbiter you will still only see public files plus your own private files, just so you're not bothered with everyone else's.</p><br />
<br />
<p>To maintain the media files, including copying deleting and renaming, you can either use another PC and a network share, such as a Windows PC with Windows Explorer, or in the LinuxMCE admin web site you can choose Media & Files, Browse.</p><br />
<br />
<p>Note that LinuxMCE maintains an internal database of all your media, including various attributes such as the actors in a movie or the composer of a song. This makes searching very comfortable. For example if you touch the music button, then start typing, you will see all attributes. For example after you touch 'G', you may see 'Geffen Studios (studio)', 'Get You Back (song)', 'GNR Live (album)', and 'Guns N Roses (performer)'. You can continue typing to narrow your entries down further, and touch any entry then 'view' to see all the music that matches. The resulting screen even does cross matching and shows pictures for each attribute.</p><br />
<br />
<p>When you rip media within LinuxMCE the attributes are created automatically. You can view attributes or change them in the LinuxMCE admin site. LinuxMCE also monitors any media that you may add or change outside of LinuxMCE, such as using Windows Explorer. For example if you copy files over in Windows Explorer, LinuxMCE will automatically scan the files and add the attributes to its internal database so you can still search. Also if you rename or delete files, LinuxMCE will automatically update your database accordingly.</p><br />
<br />
<p>If you add a plug-and-play network attached storage device, within each media folder you will see a subfolder for that device and you will be able to move files to and from it.</p><br />
<br />
====Technical explanation====<br />
<p>The public directory maps to /home/public/data, and each user's private directory maps to /home/user_xxxx/data, where xxxx is the internal user ID. The name 'john' is a symlinc to user_xxxx for convenience. The program /usr/pluto/bin/UpdateMedia uses INotify to monitor all /home/public/data and /home/user_xxxx/data folders, so it can rescan whenever the directory is changed. All attributes are stored in the MySql database pluto_media. Each file is a record in the 'File' table. UpdateMedia creates an extended attribute called 'ID' for each file with the primary key of each file. That way if you move or rename a file UpdateMedia will see the extended attribute and your attributes will not be lost--it just updates the database. If you want to add more storage you can map drives under those directories. For example, if you have another 2TB drive array that you want to use for both public music and your private movies, create 2 directories on that array, let's say: public_music and john_movies. Using a network mount, or a symlinc to a network mount, create a folder such as /home/public/data/music/my_2TB_nas that maps to public_music and /home/user_xxxx/data/movies/my_2TB_nas that maps to john_movies. Then when you browse music or movies in the orbiter you will see a folder 'my_2TB_nas' to access the files on that new drive. When you add a plug-and-play network attached storage, LinuxMCE automatically adds a folder within every single directory, such as /home/public/data/music/new_nas, /home/public/data/movies/new_nas, /home/user_xxxx/data/videos/new_nas, and these are automatically mapped to corresponding folders on the NAS. This makes it very easy for a novice to just plug in a NAS and immediately use it without any technical knowledge. However if you want to change this behavior, just remove the symlincs our plug and play script created.</p><br />
<br />
===What are scenarios?===<br />
[[Scenarios]] (aka activities) are the buttons that appear on the main menu of every controller, such as Web pads, PDAs, mobile phones, and Media Director PCs. They trigger any number of actions which can include anything from changing lighting to starting media playback to changing climate settings. Scenarios are specific to rooms. A scenario can affect any device anywhere in the house, but certain scenarios will only be displayed in certain rooms. This is so that when you are in a particular room, you will only see the scenarios that you are likely to use from that room.<br />
See [[What_scenarios_are_created_automatically?|this page]] to learn about what scenarios are created automatically.<br />
===Does LinuxMCE support encrypted DVD's?===<br />
The short answer: yes - if it is legal in your area. You will have to add optional software to enable the features. See [[Encrypted_DVD's| this page]] for more information.<br />
===How can I use additional mouse buttons for LinuxMCE?===<br />
See [[Use_Additional_Mouse_Buttons|this page]]<br />
===How should I format additional hard drives?===<br />
From "blog gelusi: Linux Tuning Guide" (http://gelusi.blogspot.com/2008/02/linux-tuning-guide.html)<br />
<br />
1. Filesystem<br />
Block sizes<br />
<br />
For filesystems dedicated to serving fairly large files, adopting a larger than default 1024 byte block size may yield significant<br />
performance gains.<br />
<br />
Recent transactions on the linux kernel list suggest that setting the block sizein an ext2 file system to 4096 instead of the <br />
default 1024 will result in less file fragmentation, faster fsck's, faster deletes and faster raw read speed, due to the reduced <br />
number of seeks.<br />
<br />
Unfortunately this cannot be changed on the fly. Only a reformat will make this so. The command to format a file system with 4096 <br />
byte blocks is:<br />
<br />
mke2fs -b 4096 /dev/whatever<br />
<br />
Additionally, on any filesystems except those used for logfiles, the default of 5% reserved for root use is excessive for large <br />
file systems, so the command to make the filesystem can be augmented to<br />
<br />
mke2fs -b 4096 -m 1 /dev/whatever<br />
<br />
to set the reserved fraction to 1 percent.<br />
<br />
Then if you want a journaling (ext3) filesystem:<br />
<br />
mke2fs -b 4096 -m 1 -j /dev/whatever<br />
<br />
Note, no further configuration should be necessary as new drives will be auto-discovered.<br />
<br />
==Fixing Problems==<br />
===What if I forget my web admin password?===<br />
[[Reset_the_password_for_the_LinuxMCE_Admin_site|See this article]]<br />
===What if I forget my linuxmce/upgrade account password?===<br />
[[Resetting_Account_Passwords|See this article]]<br />
===I can't access my media files over the network!===<br />
[[I can't access my media files over the network|See this article]].<br />
===What if you don't have a driver for my home automation device?===<br />
[[What if you don't have a driver for my home automation device|See this article]].<br />
===What if my problem isn't listed here?===<br />
It may be listed on the [[Troubleshooting]] page.<br />
<br />
If not, it's time to do some research on your own. [[Main_Page|The LinuxMCE wiki]] is full of information - try using the search feature or browsing categories. See if anyone else has had the same issue by searching on [http://forum.linuxmce.org/ the forum].<br />
<br />
When all else fails, maybe someone else has the answer for you. Try posting on [http://forum.linuxmce.org/ the forum] or our IRC channel (irc.freenode.net #linuxmce).<br />
<br />
Remember, LinuxMCE doesn't have any paid employees, so don't get annoyed if no one gets back to you right away. We're all very busy people who have lives outside of LinuxMCE.</div>Burgimanhttp://wiki.linuxmce.org/index.php?title=Generic_Serial_Device&diff=22186Generic Serial Device2010-01-27T11:22:21Z<p>Burgiman: </p>
<hr />
<div>{| align="right"<br />
| __TOC__<br />
|}<br />
Generic_Serial_Device (also known as '''GSD''') is a LinuxMCE device that allows end-user to do simple programming for RS232, serial USB (See [[Serial Hack]] for details on getting USB to serial adapters identified properly in the admin panel!) or network connected devices.<br />
:Note : The information is not quite complete because I'm not the original author.<br />
<br />
== Short description ==<br />
It's a standard DCE device, it only can execute commands and send events .<br />
The main idea is instead of programming a device in C++, compile, link with proper libraries you can edit (in a webpage) few lines of code in ruby which will be executed when device receives that command. It exports several objects into ruby so you'll have access to devicedata, device hierarchy, established connection and so on.<br />
<br />
The ruby code for each device template is stored somewhere in ''InfraredGroup_Command'' table. To edit the code go to Wizard> Devices > Generic_Serial_Devices on [[LinuxMCE-admin]] website. You have to add a device from a device template in order to see anything in that page.<br />
<br />
Select the device, and click "RubyCodes" button to be able to edit code that will be executed. <br />
You should be able to see commands that are specified in device template (like ON/OFF/WhateverElse) and a group of ''Internal Commands'' which are used to perform certain actions are to add helper functions.<br />
<br />
If the command you are trying to add doesn't show on first page, go to ''Add/Remove commands'' and add more commands for your device.<br />
<br />
=== Ruby source code ===<br />
<br />
There are 2 forms of ruby code you can write :<br />
* standard ruby code (check [http://www.ruby-lang.org/en/] and [http://poignantguide.net/ruby/] for syntax, references and programming guides)<br />
* short form for '''conn_.Send'''<br />
<$"PWON\r"$><br />
:which simply will send the string ''"PWON\r"'' to device.<br />
<br />
You'll have to quick reload router to get new code. Restarting GSD only will keep old code because the code is supplied by [[Infrared_Plugin]] which caches pluto_main and won't update it's cache without full restart of [[DCERouter]]. With this code it creates a ruby source which will be interpreted by embedded ruby.<br />
<br />
It will create methods called "cmd_CmdIDx" for each command(x) defined in web interface except ''Private_Method_Listing'' which will be inserted in the body of the class directly without wrapping.<br />
<br />
The source usually looks like (''DevID'' is iPK_Device of specific device, ''CmdIDx'' is iPK_Command ) :<br />
<br />
require 'Ruby_Generic_Serial_Device'<br />
class Command < Ruby_Generic_Serial_Device::RubyCommandWrapper<br />
end<br />
class Device_DevID < Ruby_Generic_Serial_Device::RubySerialWrapper<br />
def cmd_CmdID1(paramlist)<br />
@returnParamArray.clear<br />
### WEB CODE for CmdID1 GOES HERE ###<br />
return @returnParamArray<br />
end<br />
def cmd_CmdID2(paramlist)<br />
@returnParamArray.clear<br />
### WEB CODE for CmdID2 GOES HERE ###<br />
return @returnParamArray<br />
end<br />
...<br />
def cmd_ReceiveCommandForChild(cmd)<br />
### Process_Receive Command_For_Child GOES HERE ###<br />
end<br />
...<br />
### Private_Method_Listing GOES HERE ###<br />
...<br />
def initialize()<br />
super<br />
@returnParamArray=Array.new<br />
end<br />
### Generated Setters/Getters goes here (may be empty, but usually looks like below) ###<br />
def data_set(value)<br />
@returnParamArray[19]=value<br />
end<br />
<br />
end<br />
<br />
There might be more then one class definition in that source. This may happen when child device is itself a GSD device.<br />
<br />
=== Command details ===<br />
When the command from DCE arrives it is routed to specific device and ''cmd_XXX'' is run. The commands are run one by one, meaning that you cannot run 2 commands simultaneously. This limitation is implied by embedded ruby interpretor which fails if run from multiple threads.<br />
DCE commands may have return parameters (well known GetVideoFrame), as ruby can return only 1 parameter the ''@returnParamArray'' was added. You can see that in each method we insert '''@returnParamArray.clear''' then the real code and then '''return @returnParamArray'''. Also some setters are generated (like the one from above) for code readability.<br />
<br />
Beside usual DCE command you'll see some ''Internal Commands''. Here goes a small list and what they do:<br />
* '''Private Method Listing''' - used to insert all kind of helpers<br />
* '''Process IDLE''' - method executed once in a while (may be used to keep connection alive, scan for new devices on serial bus)<br />
* '''Process Incoming Data''' - called when some data is available <br />
* '''Process Receive Command For Child''' - called if the device has children and those are pretty dummy (like Lights under CM11), so practically the parent will do the job. As a parameter you have ''cmd'' which is a wrapper for DCEMessage, so you'll have access to deviceId, senderId, commandID and so on.<br />
* '''Process Initialize''' - called when device is starting (to perform handshake with device or some other initialisation required by protocol)<br />
* '''Process Release''' - to close gracefully connection with device (say "good bye" or something)<br />
<br />
== Implementation notes ==<br />
There are several classes that actually need to be touched. Most of the other classes are just for wrapping DCE objects (like Device, Message, Connection and so on) and exporting them into ruby.<br />
<br />
Most important classes :<br />
* '''RubyDCEDeviceNode''' is actually the Device, responsable with initialisation and partially a message handler.<br />
* '''RubyDCEEmbededClass''' is bridge between DeviceNode and ruby, it has ''CallCmdHandler'' which does the real call to ruby and sends back result.<br />
* '''RubyIOManager''' is the one responsible for instantiating RubyDCEDeviceNodes, code retrieval, command handler and serializing ruby calls.<br />
* '''RubyDCECodeSupplier''' gives you the ruby code<br />
* '''RubyCommandWrapper''' a wrapper for Message<br />
* '''GSDMessageProcessing''' is [[Message_Translation|message translator]] which will try to run command if it's implemented without translation.<br />
* '''RubySerialIOConnectionWrapper''' helps to wrap Serial and TCP/IP based connection under same interface, see down the hierarchy the connection you need.<br />
<br />
There are also some files needed for building a library for ruby with SWIG, let them alone, it should work.<br />
<br />
The compilation will give you '''Generic_Serial_Device''' and '''Ruby_Generic_Serial_Device.so''', first file is the binary itself, second file is the bridge library and it will be included by ruby (the request for it is in the first line of the generated source)<br />
<br />
== Known issues ==<br />
<br />
* Only '''ONE''' command can be executed at a time. This is a limitation of embedded ruby, which should be run from one thread only.<br />
* If command expected an answer, it would wait about 20 seconds for the ruby command to complete, and if the command haven't completed yet, it would send an empty response.<br />
* Most of the data are pretty cryptic (like ''device_.devdata_[114]''), you have to look that that number represents (device data id, command id, command parameter id, event id, event parameter id, some other id)<br />
<br />
== Short example ==<br />
For more details about exported classes and available methods check [[GSD_Ruby_Interface]]<br />
<br />
Here is a short example from ''Panasonic IP Camera'':<br />
0:require 'Ruby_Generic_Serial_Device'<br />
1:class Command < Ruby_Generic_Serial_Device::RubyCommandWrapper<br />
2:end<br />
3:class Device_47 < Ruby_Generic_Serial_Device::RubySerialWrapper<br />
4:#### 84 ####################################################################<br />
5:def cmd_84(data, format, disable_aspect_lock, streamid, width, height)<br />
6:@returnParamArray.clear<br />
7:conn_.Reconnect()<br />
8:auth_s=device_.devdata_[114]+":"+device_.devdata_[115]<br />
9:auth_a=Array.new;<br />
10:auth_s.each{|c| auth_a.push(c)}<br />
11:<br />
12:fix_path=device_.devdata_[2];<br />
13:fix_path='/'+fix_path if fix_path[0]!='/'[0];<br />
14:<br />
15:s = "GET "+fix_path+" HTTP/1.0\r\n"<br />
16:s+= "Accept: */*\r\n"<br />
17:s+= "Authorization: Basic "+auth_a.pack("m").chop+"\r\n"<br />
18:s+= "\r\n"<br />
19:<br />
20:conn_.Send(s)<br />
21:recv=""<br />
22:loop {<br />
23: buff=conn_.Recv(16384, 5000)<br />
24: if buff.empty?<br />
25: break<br />
26: end<br />
27: recv += buff<br />
28:}<br />
29:if recv=~ /^HTTP[^\r\n]+200\sOK.+?\r\n\r\n(.+)$/m<br />
30: data_set($1)<br />
31: format_set('jpg')<br />
32:end<br />
33:return @returnParamArray<br />
34:end<br />
...<br />
194:#### START SETTERS ####################################################################<br />
195:def initialize()<br />
196:super<br />
197:@returnParamArray=Array.new<br />
198:end<br />
199:def data_set(value)<br />
200:@returnParamArray[19]=value<br />
201:end<br />
202:def format_set(value)<br />
203:@returnParamArray[20]=value<br />
204:end<br />
205:#### END SETTERS ####################################################################<br />
206:end<br />
You can see how command 84 (GetVideoFrame) is implemented:<br />
* it has 6 parameters ''cmd_84(data, format, disable_aspect_lock, streamid, width, height)'', parameters ''data'' and ''format'' are also output parameters<br />
* to set output parameters methods like ''data_set'' and ''format_set'' are automatically generated<br />
* ''device_.devdata_[114]'', ''device_.devdata_[115]'' are the username and password to login into camera <br />
* then it creates HTTP header with basic authorization<br />
* ''device_.devdata_[2]'' is the path to the snapshot (it is configurable because it can change between models)<br />
* it sends the request and waits for the answer<br />
* reads the answer, regexp parse it and gets JPEG content<br />
* sets output parameters<br />
* returns @returnParamArray (the return statement is added automatically)<br />
<br />
<br />
== Example - Adding Clipsal Interface ==<br />
<br />
We can control lights, curtains and climate controls using Clipsal Interface that connects through Serial Port.<br />
<br />
[[Here is a detailed example of how to add Clipsal Interface using Generic Serial Device.|Adding Clipsal Interface using Generic Serial Device]]<br />
<br />
== Useful Pages ==<br />
* [[Serial Hack]] - A quick and dirty hack to fix the USB to Serial adapter problem! (Device not showing the correct block device on the admin panel)<br />
* [[How to add your own GSD device]]<br />
<br />
[[Category: Programmer's Guide]]</div>Burgimanhttp://wiki.linuxmce.org/index.php?title=Generic_Serial_Device&diff=22185Generic Serial Device2010-01-27T11:21:48Z<p>Burgiman: </p>
<hr />
<div>{| align="right"<br />
| __TOC__<br />
|}<br />
Generic_Serial_Device (also known as '''GSD''') is a LinuxMCE device that allows end-user to do simple programming for RS232, serial USB (See [[Serial Hack]] for details on getting USB to serial adapters identified properly in the admin panel!) or network connected devices.<br />
:Note : The information is not quite complete because I'm not the original author.<br />
<br />
== Short description ==<br />
It's a standard DCE device, it only can execute commands and send events .<br />
The main idea is instead of programming a device in C++, compile, link with proper libraries you can edit (in a webpage) few lines of code in ruby which will be executed when device receives that command. It exports several objects into ruby so you'll have access to devicedata, device hierarchy, established connection and so on.<br />
<br />
The ruby code for each device template is stored somewhere in ''InfraredGroup_Command'' table. To edit the code go to Wizard> Devices > Generic_Serial_Devices on [[Centersonic Admin Website]] website. You have to add a device from a device template in order to see anything in that page.<br />
<br />
Select the device, and click "RubyCodes" button to be able to edit code that will be executed. <br />
You should be able to see commands that are specified in device template (like ON/OFF/WhateverElse) and a group of ''Internal Commands'' which are used to perform certain actions are to add helper functions.<br />
<br />
If the command you are trying to add doesn't show on first page, go to ''Add/Remove commands'' and add more commands for your device.<br />
<br />
=== Ruby source code ===<br />
<br />
There are 2 forms of ruby code you can write :<br />
* standard ruby code (check [http://www.ruby-lang.org/en/] and [http://poignantguide.net/ruby/] for syntax, references and programming guides)<br />
* short form for '''conn_.Send'''<br />
<$"PWON\r"$><br />
:which simply will send the string ''"PWON\r"'' to device.<br />
<br />
You'll have to quick reload router to get new code. Restarting GSD only will keep old code because the code is supplied by [[Infrared_Plugin]] which caches pluto_main and won't update it's cache without full restart of [[DCERouter]]. With this code it creates a ruby source which will be interpreted by embedded ruby.<br />
<br />
It will create methods called "cmd_CmdIDx" for each command(x) defined in web interface except ''Private_Method_Listing'' which will be inserted in the body of the class directly without wrapping.<br />
<br />
The source usually looks like (''DevID'' is iPK_Device of specific device, ''CmdIDx'' is iPK_Command ) :<br />
<br />
require 'Ruby_Generic_Serial_Device'<br />
class Command < Ruby_Generic_Serial_Device::RubyCommandWrapper<br />
end<br />
class Device_DevID < Ruby_Generic_Serial_Device::RubySerialWrapper<br />
def cmd_CmdID1(paramlist)<br />
@returnParamArray.clear<br />
### WEB CODE for CmdID1 GOES HERE ###<br />
return @returnParamArray<br />
end<br />
def cmd_CmdID2(paramlist)<br />
@returnParamArray.clear<br />
### WEB CODE for CmdID2 GOES HERE ###<br />
return @returnParamArray<br />
end<br />
...<br />
def cmd_ReceiveCommandForChild(cmd)<br />
### Process_Receive Command_For_Child GOES HERE ###<br />
end<br />
...<br />
### Private_Method_Listing GOES HERE ###<br />
...<br />
def initialize()<br />
super<br />
@returnParamArray=Array.new<br />
end<br />
### Generated Setters/Getters goes here (may be empty, but usually looks like below) ###<br />
def data_set(value)<br />
@returnParamArray[19]=value<br />
end<br />
<br />
end<br />
<br />
There might be more then one class definition in that source. This may happen when child device is itself a GSD device.<br />
<br />
=== Command details ===<br />
When the command from DCE arrives it is routed to specific device and ''cmd_XXX'' is run. The commands are run one by one, meaning that you cannot run 2 commands simultaneously. This limitation is implied by embedded ruby interpretor which fails if run from multiple threads.<br />
DCE commands may have return parameters (well known GetVideoFrame), as ruby can return only 1 parameter the ''@returnParamArray'' was added. You can see that in each method we insert '''@returnParamArray.clear''' then the real code and then '''return @returnParamArray'''. Also some setters are generated (like the one from above) for code readability.<br />
<br />
Beside usual DCE command you'll see some ''Internal Commands''. Here goes a small list and what they do:<br />
* '''Private Method Listing''' - used to insert all kind of helpers<br />
* '''Process IDLE''' - method executed once in a while (may be used to keep connection alive, scan for new devices on serial bus)<br />
* '''Process Incoming Data''' - called when some data is available <br />
* '''Process Receive Command For Child''' - called if the device has children and those are pretty dummy (like Lights under CM11), so practically the parent will do the job. As a parameter you have ''cmd'' which is a wrapper for DCEMessage, so you'll have access to deviceId, senderId, commandID and so on.<br />
* '''Process Initialize''' - called when device is starting (to perform handshake with device or some other initialisation required by protocol)<br />
* '''Process Release''' - to close gracefully connection with device (say "good bye" or something)<br />
<br />
== Implementation notes ==<br />
There are several classes that actually need to be touched. Most of the other classes are just for wrapping DCE objects (like Device, Message, Connection and so on) and exporting them into ruby.<br />
<br />
Most important classes :<br />
* '''RubyDCEDeviceNode''' is actually the Device, responsable with initialisation and partially a message handler.<br />
* '''RubyDCEEmbededClass''' is bridge between DeviceNode and ruby, it has ''CallCmdHandler'' which does the real call to ruby and sends back result.<br />
* '''RubyIOManager''' is the one responsible for instantiating RubyDCEDeviceNodes, code retrieval, command handler and serializing ruby calls.<br />
* '''RubyDCECodeSupplier''' gives you the ruby code<br />
* '''RubyCommandWrapper''' a wrapper for Message<br />
* '''GSDMessageProcessing''' is [[Message_Translation|message translator]] which will try to run command if it's implemented without translation.<br />
* '''RubySerialIOConnectionWrapper''' helps to wrap Serial and TCP/IP based connection under same interface, see down the hierarchy the connection you need.<br />
<br />
There are also some files needed for building a library for ruby with SWIG, let them alone, it should work.<br />
<br />
The compilation will give you '''Generic_Serial_Device''' and '''Ruby_Generic_Serial_Device.so''', first file is the binary itself, second file is the bridge library and it will be included by ruby (the request for it is in the first line of the generated source)<br />
<br />
== Known issues ==<br />
<br />
* Only '''ONE''' command can be executed at a time. This is a limitation of embedded ruby, which should be run from one thread only.<br />
* If command expected an answer, it would wait about 20 seconds for the ruby command to complete, and if the command haven't completed yet, it would send an empty response.<br />
* Most of the data are pretty cryptic (like ''device_.devdata_[114]''), you have to look that that number represents (device data id, command id, command parameter id, event id, event parameter id, some other id)<br />
<br />
== Short example ==<br />
For more details about exported classes and available methods check [[GSD_Ruby_Interface]]<br />
<br />
Here is a short example from ''Panasonic IP Camera'':<br />
0:require 'Ruby_Generic_Serial_Device'<br />
1:class Command < Ruby_Generic_Serial_Device::RubyCommandWrapper<br />
2:end<br />
3:class Device_47 < Ruby_Generic_Serial_Device::RubySerialWrapper<br />
4:#### 84 ####################################################################<br />
5:def cmd_84(data, format, disable_aspect_lock, streamid, width, height)<br />
6:@returnParamArray.clear<br />
7:conn_.Reconnect()<br />
8:auth_s=device_.devdata_[114]+":"+device_.devdata_[115]<br />
9:auth_a=Array.new;<br />
10:auth_s.each{|c| auth_a.push(c)}<br />
11:<br />
12:fix_path=device_.devdata_[2];<br />
13:fix_path='/'+fix_path if fix_path[0]!='/'[0];<br />
14:<br />
15:s = "GET "+fix_path+" HTTP/1.0\r\n"<br />
16:s+= "Accept: */*\r\n"<br />
17:s+= "Authorization: Basic "+auth_a.pack("m").chop+"\r\n"<br />
18:s+= "\r\n"<br />
19:<br />
20:conn_.Send(s)<br />
21:recv=""<br />
22:loop {<br />
23: buff=conn_.Recv(16384, 5000)<br />
24: if buff.empty?<br />
25: break<br />
26: end<br />
27: recv += buff<br />
28:}<br />
29:if recv=~ /^HTTP[^\r\n]+200\sOK.+?\r\n\r\n(.+)$/m<br />
30: data_set($1)<br />
31: format_set('jpg')<br />
32:end<br />
33:return @returnParamArray<br />
34:end<br />
...<br />
194:#### START SETTERS ####################################################################<br />
195:def initialize()<br />
196:super<br />
197:@returnParamArray=Array.new<br />
198:end<br />
199:def data_set(value)<br />
200:@returnParamArray[19]=value<br />
201:end<br />
202:def format_set(value)<br />
203:@returnParamArray[20]=value<br />
204:end<br />
205:#### END SETTERS ####################################################################<br />
206:end<br />
You can see how command 84 (GetVideoFrame) is implemented:<br />
* it has 6 parameters ''cmd_84(data, format, disable_aspect_lock, streamid, width, height)'', parameters ''data'' and ''format'' are also output parameters<br />
* to set output parameters methods like ''data_set'' and ''format_set'' are automatically generated<br />
* ''device_.devdata_[114]'', ''device_.devdata_[115]'' are the username and password to login into camera <br />
* then it creates HTTP header with basic authorization<br />
* ''device_.devdata_[2]'' is the path to the snapshot (it is configurable because it can change between models)<br />
* it sends the request and waits for the answer<br />
* reads the answer, regexp parse it and gets JPEG content<br />
* sets output parameters<br />
* returns @returnParamArray (the return statement is added automatically)<br />
<br />
<br />
== Example - Adding Clipsal Interface ==<br />
<br />
We can control lights, curtains and climate controls using Clipsal Interface that connects through Serial Port.<br />
<br />
[[Here is a detailed example of how to add Clipsal Interface using Generic Serial Device.|Adding Clipsal Interface using Generic Serial Device]]<br />
<br />
== Useful Pages ==<br />
* [[Serial Hack]] - A quick and dirty hack to fix the USB to Serial adapter problem! (Device not showing the correct block device on the admin panel)<br />
* [[How to add your own GSD device]]<br />
<br />
[[Category: Programmer's Guide]]</div>Burgimanhttp://wiki.linuxmce.org/index.php?title=Display_Drivers&diff=13118Display Drivers2008-06-02T18:47:31Z<p>Burgiman: /* Via Chipsets */</p>
<hr />
<div>{| align="right"<br />
| __TOC__<br />
|}<br />
[[Category: Tutorials]]<br />
[[Category: Hardware| ]]<br />
<br />
An incomplete HowTo on updating LinuxMCE to the latest display drivers and configuring them manually. It could use your help, so if something is different in your situation, please add it.<br />
<br />
'''Note that this should normally not be necessary unless you have specific wishes or trouble getting your display to work properly.''' <br />
<br />
== Installation ==<br />
If the graphical environment cannot start you are likely to see a text screen blinking, this makes it very hard to login, if this is the case you can reboot into "rescue mode" by pressing [Esc] when GRUB tells you to during the boot process and then select it from the menu you will be presented with.<br />
<br />
=== ATI Chipsets ===<br />
The two main ways to install the ATI drivers are described in the [http://wiki.cchtml.com/index.php/Ubuntu_Feisty_Installation_Guide Ubuntu Feisty Installation Guide].<br />
<br />
For more information see also the [http://wiki.cchtml.com/index.php/Main_Page Unofficial ATI Linux Driver Wiki] and you might want to have a look at [http://www.mythtv.org/wiki/index.php/AtiProprietaryDriver AtiProprietaryDriver] in the MythTV wiki as well since LinuxMCE depends on it for viewing TV. MythTV in turn relies heavily on the support of certain features by the graphics drivers. The ATI drivers turn out to be a bit "challenged" in this area to say the least.<br />
<br />
==== Installing The ATI Driver ====<br />
<br />
Here's the procedure I use for setting up an ATI X1250 MD. Currently the the AVwizard in 0710 does not configure ATI cards properly so you need to to do some manual steps to get things working.<br />
<br />
'''Step 1'''<br />
<br />
Add the MD in the normal way (ie plug it into the network and let it add itself). Let it reboot and then it should run the AVwizard. Choose the options you want - output connector, resolution, refresh.... UI2 with Overlay etc etc and complete the wizard. Now the screen will return to a console screen and will after 5-10 mins will try to run the setup Wizard... but the setup Wizard will run very slowly and the video of 'Sarah' will not play smoothly. This is because the ATI drivers are not installed yet and the X driver is set to 'vesa'.<br />
<br />
'''Step 2'''<br />
<br />
From another machine ssh into the partially installed MD using Konsole from the KDE Desktop or a terminal app like Putty under Windows XP. Do the following from the console;<br />
<br />
sudo su - <return><br />
ssh moonNN <return> (**where the NN is the device number for the MD we're configuring**)<br />
<br />
Alternatively do the following from the MD/Core you are configuring;<br />
<br />
Ctrl+Alt+2<br />
<br />
Now login using the login you created when you installed your system ie When you ran the DVD installer or CD installer. Now we're logged into the MD we are configuring as 'root' and we can install the ATI drivers and configure Xorg.conf;<br />
<br />
Firstly make sure our sources.list is up to date:<br />
<br />
apt-get update <return><br />
<br />
Now lets install the ATI driver and packages;<br />
<br />
apt-get install linux-restricted-modules-generic restricted-manager <return><br />
<br />
Answer 'Y' to installing new packages then do the following steps;<br />
<br />
apt-get install xorg-driver-fglrx <return><br />
depmod -a <return><br />
<br />
So far so good... now we have the ATI drivers installed! (the current driver in the repos is not the latest ATI release an updated driver will be packaged soon though). Now we have to configure Xorg to use it! Do the steps below;<br />
<br />
I use the console text editor 'joe' below but you can use whichever you prefer ('nano' is installed by default for example);<br />
<br />
joe /etc/X11/xorg.conf <return><br />
<br />
Now you are editing the xorg.conf of your MD and the only change you need to make is to the 'Device' section. In the 'Device' section you will see a line thats says;<br />
<br />
Driver "vesa"<br />
or<br />
Driver "ati"<br />
<br />
Change the string 'vesa' (or ati) to 'fglrx' which is the name of the ATI driver. The updated driver line should look like below;<br />
<br />
Driver "fglrx"<br />
<br />
Now save the changes you have made to xorg.conf.<br />
<br />
Now reboot the MD from the console with;<br />
<br />
reboot <return><br />
<br />
The MD will now reboot normally and the setup wizard will run again.... but this time the video and the Ui will run smoothly as the ATI driver is installed and confgured.<br />
<br />
Currently the ATI driver will not support UI2 with transparency but it will support UI2 with overlay very nicely indeed. There are two small caveats to running UI2 with Overlay currently with the ATI driver in that the 'Compass Rose' on screen menu for selecting DVD chapters, Lighting levels etc etc and the 'Zoom & Aspect ratio' screen when playing Video do not draw correctly - the bit maps for the menus do not display but the menus do work.<br />
<br />
=== NVidia Chipsets ===<br />
There are several ways to install NVidia drivers, the way described here is meant as a guide to install the very latest drivers from the NVidia website. Note that this way will bypass the LinuxMCE (Kubuntu) packaging system, possibly removing and/or overwriting some of it's files.<br />
<br />
1. Go to a console (text) terminal by holding [CTRL]-[ALT] and pressing the [F1] key simultaneously, log in with the user account you have created during the Kubuntu install and become root, if you haven't done so already. <br />
'''<you>@dcerouter:~$''' sudo -s<br />
2. Download the latest [http://www.nvidia.com/object/unix.html linux drivers from NVidia] (depending [http://www.nvidia.com/object/IO_32667.html on your hardware], one of versions: 100.14.23, 1.0-9639 or 1.0-7185 currently), if you haven't done so already. When you have found the URL for downloading the package on the nvidia site you could download it like this:<br />
'''root@dcerouter:~#''' wget <nowiki>http://us.download.nvidia.com/XFree86/Linux-x86/</nowiki>''<version>''<nowiki>/NVIDIA-Linux-x86-</nowiki>''<version>''<nowiki>-pkg1.run</nowiki><br />
3. Go to runlevel 1 to stop the currently running X-server. <br />
<br />
NB: There was no need for me to run this command as I was already in Level 1 - It just locked up the keyboard. --[[User:Mortar|Mortar]] 18:12, 6 January 2008 (MST)<br />
'''root@dcerouter:~#''' telinit 1 <br />
4. Execute the installer and follow instructions. Ignore the warning about runlevel 1 and don't bother looking for precompiled drivers.<br />
'''root@dcerouter:~#''' sh NVIDIA-Linux-x86-''<version>''-pkg1.run<br />
5. Now it needs to be configured. The recommended and most convenient way is to use the [[AVWizard]]. For more advanced setup, or if the AVWizard for some reason is unable to set your up your screens to your liking, you can configure the ''X-server'' manually by editing the ''xorg.conf'' file directly.<br />
<br />
=== Intel Chipsets ===<br />
There is a renewed interest in the Intel graphics chipsets since Intel released the drivers under the GPL. Currently the Intel driver still cannot support UI2 with Alphablending but they will support UI2 with Overlay very nicely and video performance is excellent. LinuxMCE versions after Beta4 have full support for configuring the Intel driver in the AVwizard.<br />
<br />
From LinuxMCE-0710 Beta4 onwards LinuxMCE will install the newer intel driver by default - so the instructions below are only useful if your still running LinuxMCE-0704.<br />
<br />
==== For LinuxMCE-0704 ====<br />
<br />
You will want to make sure you are using the newer intel drivers from http://packages.ubuntu.com/gutsy/i386/xserver-xorg-video-intel/download for i386. These replace the older i810, etc. drivers and should cover all the modern intel chipsets. The name for this driver is 'intel' and would replace the older 'i810' drivers.<br />
<br />
If you're using i810 driver make sure you add Option "LinearAlloc" "8160" to xorg.conf or video players will crash with X11 error: BadAlloc.<br />
<br />
From man i810:<br />
Option "LinearAlloc" "integer"<br />
Allows more memory for the offscreen allocator. This usually<br />
helps in situations where HDTV movies are required to play but<br />
not enough offscreen memory is usually available. Set this to<br />
8160 for upto 1920x1080 HDTV support. Default 0KB (off).<br />
<br />
=== Via Chipsets ===<br />
Use the Openchrome or Via Unichrome drivers. The Via Unichrome drivers can be downloaded from [http://www.viaarena.com/default.aspx?PageID=2&OSID=45&CatID=3220]<br />
<br />
At the time of this writing (10/04/08), the binary Via Unichrome driver (released december 2007) works best (stable, good 2d and 3d) on my Via Mini ITX with CLE266 integerated graphics system. It is able to run UI2 medium with very good performance. <br />
There is a crash at bootup (with any via driver) if the complete runlevel 2 starts. <br />
This issue can be worked around by booting recovery mode and manually starting only /etc/init.d/kdm as root.<br />
Issue under investigation - will update here when good workaround is done.<br />
Contact zeratul at fastmail.fm for latest status/tips<br />
<br />
'''HOW-TO VIA Openchrome driver for xorg:'''<br><br />
For VIA CX700M2 UniChrome PRO II Graphics (1" VIA units) or mainly via graphics:<br><br />
<br />
'''UPDATED FOR 0710!'''<br />
--[[User:Burgiman|burgi]] 11:47, 2 June 2008 (PDT)<br />
<br />
''shell into your box and do the following:''<br><br />
apt-get install build-essential automake1.9 libtool x11proto-* libgl1-mesa-dev makedepend libxxf86vm-dev libexpat1-dev libexpat1 libxmu-dev xtrans-dev libpng12-dev libxcomposite-dev libxfixes-dev libxdamage-dev libxrandr-dev libxrender-dev libstartup-notification0-dev libgconf2-dev<br />
<br />
cd /usr/src<br />
svn checkout http://svn.openchrome.org/svn/trunk openchrome<br />
cd openchrome*<br />
./autogen.sh --prefix=/usr<br />
make<br />
make install<br />
<br />
Now we have to edit /etc/X11/xorg.conf and change the device driver to via openchrome:<br><br />
vi /etc/X11/xorg.conf<br />
Go to<br />
Section "Device"<br />
and change<br />
Driver "vesa" <br />
to<br />
Driver "openchrome"<br />
save and test the compiled new driver with a: <br><br />
X :1<br />
and if your xwindow comes up, you can reboot and have fun<br><br />
--[[User:Burgiman|burgi]] 13:37, 3 March 2008 (PST)<br />
<br />
=== Other Chipsets ===<br />
Please help out by adding more if you can.<br />
<br />
== Configuration ==<br />
The recommended and most convenient way is to use the [[AVWizard]]. For more advanced setup, or if the X-server (and thus also the AVWizard) is unable to start, you can configure the ''X-server'' manually by editing the ''xorg.conf'' file directly.<br />
<br />
=== Getting started ===<br />
Start by making a backup copy of the ''/etc/X11/xorg.conf'' file (even if it doesn't work it might contain settings you could need). In this example we will start from scratch and edit the configuration file step by step to get the main display setup. <br />
<br />
Some of these steps require that there will be no X-server active on the system, the easiest way to achieve this is to boot in ''rescue-mode'', just hit [Esc] when [[Grub]] tells you to during the startup of your machine and select the right line from the menu. Another way is to go to a text-mode console (aka. terminal) with [CTRL]-[ALT]-[F1], [[Logging In|log in]], become root and issue the command:<br />
telinit 1<br />
This wil stop the running X-server and drop you into rescue mode as well. <br />
<br />
One of the advantages is that now you can start and stop the X-server by hand with an alternative configuration file and without having to reboot or even start an entire desktop environment.<br />
<br />
=== Generating a template ===<br />
These instructions were originally written for ATI chipsets, so they might need to be adjusted and updated a bit. Not all of the specific options may be relevant for your chipset. <br />
<br />
'''While there is no (other) X-server running''' you can create a template configuration file by running:<br />
X -configure<br />
This will create a file called xorg.conf.new in your ''home'' directory, test it with the following command and hit [CTRL]-[ALT]-[Backspace] when done:<br />
X -config ~/xorg.conf.new<br />
Within a few seconds a gray bitpattern should show up with an 'X' shaped mouse cursor. If the screen is distorted or reports the refresh rate to be out of range then you will either have to specify the proper refreshrate limitations for your screen or insert "modelines" for the resolution(s) you want to use (see below). <br />
<br />
When you're satisfied you can overwrite ''/etc/X11/xorg.conf'' with this file to make it the default (you did make a backup didn't you?), once you have done that you can use "startx" to test and have the use of your desktop as well. This should at least be enough to allow the use of a graphic configuration tool (like the [[AVWizard]] for instance) to set up your display further. More advanced manual configuration options can be found below.<br />
<br />
Here is an example of such a generated file:<br />
<br />
Section "ServerLayout"<br />
Identifier "X.org Configured"<br />
Screen 0 "Screen0" 0 0<br />
InputDevice "Mouse0" "CorePointer"<br />
InputDevice "Keyboard0" "CoreKeyboard"<br />
EndSection<br />
<br />
Section "Files"<br />
RgbPath "/etc/X11/rgb"<br />
ModulePath "/usr/lib/xorg/modules"<br />
FontPath "/usr/share/fonts/X11/misc"<br />
FontPath "/usr/X11R6/lib/X11/fonts/misc"<br />
FontPath "/usr/share/fonts/X11/cyrillic"<br />
FontPath "/usr/share/fonts/X11/100dpi/:unscaled"<br />
FontPath "/usr/share/fonts/X11/75dpi/:unscaled"<br />
FontPath "/usr/share/fonts/X11/Type1"<br />
FontPath "/usr/X11R6/lib/X11/fonts/Type1"<br />
FontPath "/usr/share/fonts/X11/100dpi"<br />
FontPath "/usr/share/fonts/X11/75dpi"<br />
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"<br />
EndSection<br />
<br />
Section "Module"<br />
Load "extmod"<br />
Load "record"<br />
Load "xtrap"<br />
Load "dri"<br />
Load "glx"<br />
Load "dbe"<br />
Load "GLcore"<br />
Load "type1"<br />
EndSection<br />
<br />
Section "InputDevice"<br />
Identifier "Keyboard0"<br />
Driver "kbd"<br />
EndSection<br />
<br />
Section "InputDevice"<br />
Identifier "Mouse0"<br />
Driver "mouse"<br />
Option "Protocol" "auto"<br />
Option "Device" "/dev/input/mice"<br />
Option "ZAxisMapping" "4 5 6 7"<br />
EndSection<br />
<br />
Section "Monitor"<br />
Identifier "Monitor0"<br />
VendorName "Monitor Vendor"<br />
ModelName "Monitor Model"<br />
EndSection<br />
<br />
Section "Device"<br />
### Available Driver options are:-<br />
### Values: &lt;i&gt;: integer, <f>: float, <bool>: "True"/"False",<br />
### <string>: "String", <freq>: "<f> Hz/kHz/MHz"<br />
### [arg]: arg optional<br />
#Option "ShadowFB" # [<bool>]<br />
#Option "DefaultRefresh" # [<bool>]<br />
#Option "ModeSetClearScreen" # [<bool>]<br />
Identifier "Card0"<br />
Driver "vesa"<br />
''VendorName "ATI Technologies Inc"''<br />
''BoardName "ATI Radeon Xpress 1200 Series"''<br />
''BusID '''"PCI:1:5:0"'''''<br />
EndSection<br />
<br />
Section "Screen"<br />
Identifier "Screen0"<br />
Device "Card0"<br />
Monitor "Monitor0"<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 1<br />
EndSubSection<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 4<br />
EndSubSection<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 8<br />
EndSubSection<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 15<br />
EndSubSection<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 16<br />
EndSubSection<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 24<br />
EndSubSection<br />
EndSection<br />
<br />
Note that the only thing really specific to my setup in this config file is ''BusID'', if you only have one graphics adapter in your system this value can be omitted, otherwise the value(s) can be found with:<br />
X -scanpci<br />
Where each card will need it's own Device Section in the config file. The "VendorName" and "BoardName" settings are just labels and serve no real purpose other then being able to identify this particular device, which is usefull if you have more then one.<br />
<br />
We'll be using this sample configuration as a starting point in the other examples below, the comments (lines starting with ''#'' can be safely removed as well as the ''"Display"'' subsections for the colordepths we don't plan on using.<br />
<br />
=== Refresh rate / ModeLine ===<br />
The easiest way to sort this problem is to let the X-server figure this out by not specifying the limits of your screen. However this often fails, leaving you with an unusable display. Simply look up '''your screen''''s refresh rates in the documentation and add them like this:<br />
<br />
Section "Monitor"<br />
Identifier "Monitor0"<br />
VendorName "Monitor Vendor"<br />
ModelName "Monitor Model"<br />
''HorizSync '''27-102''' # kHz''<br />
''VertRefresh '''50-160''' # Hz''<br />
EndSection<br />
<br />
Alternatively you could specify a "ModeLine" for each resolution you want to use. By using ModeLines you have much finer controll over the timings of the output signal generated by your videocard. The drawback is that the timing values can be hard to get right. <br />
<br />
Search the web for a "modeline generator", and many of these will include instructions on how to add the modeline, but briefly, you just add it to the "Monitor" section. Read the [http://en.wikipedia.org/wiki/Modeline wikipedia entry] to learn how to use modelines. <br />
* http://koala.ilog.fr/cgi-bin/nph-colas-modelines<br />
* http://xtiming.sourceforge.net/cgi-bin/xtiming.pl<br />
* http://www.bohne-lang.de/spec/linux/modeline/<br />
* http://amlc.berlios.de/<br />
* http://www.mythtv.org/wiki/index.php/Working_with_Modelines<br />
If one modeline doesn't work perfectly, try another, perhaps from another generator, because they can vary so much.<br />
<br />
Using the wrong timings could in some (nowadays rare) occasions damage the hardware of your screen, so if it looks garbeled don't leave it like that for hours on end but hit [Ctrl]-[Alt]-[&larr;Backspace] and readjust your settings. Most modern screens however simply report that the signal is out of range if this happens.<br />
<br />
=== Colordepth and resolution ===<br />
Specify the colordepth and resolution(s) you would like to use, like this:<br />
<br />
Section "Screen"<br />
Identifier "Screen0"<br />
Device "Card0"<br />
Monitor "Monitor0"<br />
''DefaultDepth '''24'''''<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 24<br />
''Virtual '''1600 1200'''''<br />
''Modes '''"1600x1200" "1280x1024" "1024x768" "800x600" "640x480" "512x384" "400x300" "320x240"'''''<br />
EndSubSection<br />
EndSection<br />
<br />
As most people will only be using 24 bits anyway, I have removed the other redundant subsections. "Virtual" is the size of your desktop and "Modes" are physical resolutions, you can flip through these by holding [CTRL]-[ALT] and pressing the plus or minus on the numeric keypad. These are just examples, most people will only want to specify the resolution they actually use.<br />
<br />
=== DRI device permissions ===<br />
This section is needed to have the X-server set the proper permissions on the DRI device during startup. Simply add it to the end of the /etx/X11.xorg file if it isn't there already.<br />
<br />
Section "DRI"<br />
Mode 0666<br />
EndSection<br />
<br />
=== Chipset driver ===<br />
Change "'''vesa'''" to "'''fglrx'''" (or "'''ati'''", depending on which drivers you installed earlier), as shown below, the old line is left as a comment in this example for clarity, but it's better to remove it as some scripts seem to find it confusing. For Nvidia chipsets use '''nvidia''' or '''nv''' as the driver names (instead of '''fglrx''').<br />
<br />
Section "Device"<br />
Identifier "Card0"<br />
''# Driver "'''vesa'''"''<br />
''Driver "'''fglrx'''"''<br />
VendorName "ATI Technologies Inc"<br />
BoardName "ATI Radeon Xpress 1200 Series"<br />
BusID "PCI:1:5:0"<br />
EndSection<br />
<br />
If your X-server was running you will have to restart it completely for the changes to take effect, the easiest and most thorough way to do this is to reboot.<br />
<br />
=== Physical display size ===<br />
Like specifying the refresh rate his is optional but sometimes necessary, most of the time it is either detected or some sane defaults are used but sometimes it isn't, which can result in unreadable font sizes.<br />
<br />
Section "Monitor"<br />
...<br />
DisplaySize '''155 95'''<br />
EndSection<br />
<br />
Where you have to replace the numbers with the physical '''width''' and '''height''' of your screen in millimeters (1" = 25mm), feel free to try mine, however these are for a small touchscreen.<br />
<br />
=== Disable composite ===<br />
Aparently the ATI '''fglrx''' driver does not ''yet'' support composite with DRI. So if you are using the fglrx driver, disable it by adding this to the end of the /etx/X11.xorg file if it isn't there already.<br />
<br />
Section "Extensions"<br />
Option "Composite" "Disable"<br />
EndSection<br />
<br />
=== Additional options ===<br />
To be continued, I don't think this is enough to get UI2 completely (either mode) going yet. Feel free to jump in anytime... <br />
<br />
<br />
Things still to sort out amongst others (i.e. what is it, do we need it and what are the settings if any):<br />
<br />
Section "Module"<br />
Load "i2c"<br />
Load "bitmap"<br />
Load "ddc"<br />
Load "freetype"<br />
Load "int10"<br />
Load "vbe"<br />
Load "speedo"<br />
Load "type1"<br />
Load "dbe"<br />
Load "glx"<br />
Load "v4l"<br />
EndSection<br />
<br />
Section "ServerFlags"<br />
Option "AIGLX" "off"<br />
EndSection<br />
<br />
Section "Extensions"<br />
Option "Composite" "Disable"<br />
# Option "RENDER" "true"<br />
EndSection<br />
<br />
Option "PseudoColorVisuals" "off"<br />
Option "OpenGLOverlay" "off"<br />
Option "VideoOverlay" "off"<br />
Option "DesktopSetup" "clone"<br />
<br />
TV-out options, 2nd display, etc.<br />
<br />
<br />
== Troubleshooting ==<br />
<br />
=== X-windows won't start for AVWizard ===<br />
<br />
*One problem on nvidia-cards could be that it does not detect the right monitor.<br />
<br />
::Go to Console 1 ([Ctrl]+[Alt]+1) and edit /etc/X11/xorg.conf (nano -w /etc/X11/xorg.conf). Find the section ::Device with the driver nvidia add the line <pre>Option "ConnectedMonitor" "XXX"<br />
::where XXX is CRT, CRT-0, CRT-1, DVI-0, DVI-1, ...</pre><br />
::Save and exit (nano: Ctrl+x) and restart the computer. In my case it was "CRT-1".<br />
* Screen is black, after install seemed to go okay. You may have even seen the Kubuntu splash screen.<br />
**[[AVWizard]]<br />
<br />
=== X-windows won't start ===<br />
<br />
Reboot into rescue-mode if needed (hit [Esc] when [[Grub]] tells you to), and restore a working copy of your /etc/X11/xorg.conf, or edit it by hand to fix the problem. Test it with the command "X" and press [Ctrl]-[Alt]-[&larr;Backspace] simultaneous to quit (alternative: use "startx" and get the full desktop, if any), then reboot when it works and you're done.<br />
<br />
=== Signal out of range ===<br />
<br />
See ''[[#Refresh rate / ModeLine ]]'' above.<br />
<br />
=== Microscopic fonts in KDE ===<br />
<br />
See ''[[#Physical_display_size]]'' above.<br />
<br />
If the above does not work, probably Xorg is calculating the DPI value in the wrong way.<br />
This can be verified by having a look at the file /var/log/Xorg.0.log related to the MD with this issue searching for the line containing "DPI set to (x , y)",where x and y are values that apply to the specific display.<br />
<br />
If those values are too small, fonts will be displayed accordingly (i.e, VERY small)<br />
<br />
A workaround is to force Xorg to startup with a given DPI value.<br />
<br />
To achieve this the following steps are required:<br />
<br />
* edit the file /usr/pluto/bin/Start_X_Wrapper.sh on your MD where you are facing the font problem<br />
* find the line beginning with xinit<br />
* add "-dpi 96" (without quotes) at the end of this line<br />
* save the file and reboot MD<br />
<br />
Obviously it is possible to set DPI to something different than 96, according to specific needs.<br />
<br />
Please note that after an LMCE update the startup script may be replaced by new ones, so the above workaround may have to be re-applied in order to keep fonts at the desired dimension.<br />
<br />
=== LinuxMCE keeps reconfiguring my display settings ===<br />
<br />
Add a line containing '''exit''' to the top of the ''/usr/pluto/bin/Xconfigure.sh'' file. After you do this you may experience difficulties running the AVWizard again, if so remove this line and add it back again after the wizard is finished.<br />
<br />
For LinuxMCE 710 simply comment out the line that says<br />
. /usr/pluto/bin/X-CleanupVideo.sh<br />
This is the command that gets run that modifies the xorg.conf file on startup. This is different than above because if you put exit at the top your display will not get initialized. And as above if you want to run the AVWizard you will need to uncomment this line.<br />
<br />
== See also ==<br />
* [http://www.mythtv.org/wiki/index.php/Main_Page MythTV wiki] <br />
* MythTV Experience [http://brentlagesse.net/~brent/mythtv.php]<br />
* [[X_Configuration_Scripts]]</div>Burgimanhttp://wiki.linuxmce.org/index.php?title=Display_Drivers&diff=13085Display Drivers2008-05-31T12:28:59Z<p>Burgiman: /* Via Chipsets */</p>
<hr />
<div>{| align="right"<br />
| __TOC__<br />
|}<br />
[[Category: Tutorials]]<br />
[[Category: Hardware| ]]<br />
<br />
An incomplete HowTo on updating LinuxMCE to the latest display drivers and configuring them manually. It could use your help, so if something is different in your situation, please add it.<br />
<br />
'''Note that this should normally not be necessary unless you have specific wishes or trouble getting your display to work properly.''' <br />
<br />
== Installation ==<br />
If the graphical environment cannot start you are likely to see a text screen blinking, this makes it very hard to login, if this is the case you can reboot into "rescue mode" by pressing [Esc] when GRUB tells you to during the boot process and then select it from the menu you will be presented with.<br />
<br />
=== ATI Chipsets ===<br />
The two main ways to install the ATI drivers are described in the [http://wiki.cchtml.com/index.php/Ubuntu_Feisty_Installation_Guide Ubuntu Feisty Installation Guide].<br />
<br />
For more information see also the [http://wiki.cchtml.com/index.php/Main_Page Unofficial ATI Linux Driver Wiki] and you might want to have a look at [http://www.mythtv.org/wiki/index.php/AtiProprietaryDriver AtiProprietaryDriver] in the MythTV wiki as well since LinuxMCE depends on it for viewing TV. MythTV in turn relies heavily on the support of certain features by the graphics drivers. The ATI drivers turn out to be a bit "challenged" in this area to say the least.<br />
<br />
==== Installing The ATI Driver ====<br />
<br />
Here's the procedure I use for setting up an ATI X1250 MD. Currently the the AVwizard in 0710 does not configure ATI cards properly so you need to to do some manual steps to get things working.<br />
<br />
'''Step 1'''<br />
<br />
Add the MD in the normal way (ie plug it into the network and let it add itself). Let it reboot and then it should run the AVwizard. Choose the options you want - output connector, resolution, refresh.... UI2 with Overlay etc etc and complete the wizard. Now the screen will return to a console screen and will after 5-10 mins will try to run the setup Wizard... but the setup Wizard will run very slowly and the video of 'Sarah' will not play smoothly. This is because the ATI drivers are not installed yet and the X driver is set to 'vesa'.<br />
<br />
'''Step 2'''<br />
<br />
From another machine ssh into the partially installed MD using Konsole from the KDE Desktop or a terminal app like Putty under Windows XP. Do the following from the console;<br />
<br />
sudo su - <return><br />
ssh moonNN <return> (**where the NN is the device number for the MD we're configuring**)<br />
<br />
Alternatively do the following from the MD/Core you are configuring;<br />
<br />
Ctrl+Alt+2<br />
<br />
Now login using the login you created when you installed your system ie When you ran the DVD installer or CD installer. Now we're logged into the MD we are configuring as 'root' and we can install the ATI drivers and configure Xorg.conf;<br />
<br />
Firstly make sure our sources.list is up to date:<br />
<br />
apt-get update <return><br />
<br />
Now lets install the ATI driver and packages;<br />
<br />
apt-get install linux-restricted-modules-generic restricted-manager <return><br />
<br />
Answer 'Y' to installing new packages then do the following steps;<br />
<br />
apt-get install xorg-driver-fglrx <return><br />
depmod -a <return><br />
<br />
So far so good... now we have the ATI drivers installed! (the current driver in the repos is not the latest ATI release an updated driver will be packaged soon though). Now we have to configure Xorg to use it! Do the steps below;<br />
<br />
I use the console text editor 'joe' below but you can use whichever you prefer ('nano' is installed by default for example);<br />
<br />
joe /etc/X11/xorg.conf <return><br />
<br />
Now you are editing the xorg.conf of your MD and the only change you need to make is to the 'Device' section. In the 'Device' section you will see a line thats says;<br />
<br />
Driver "vesa"<br />
or<br />
Driver "ati"<br />
<br />
Change the string 'vesa' (or ati) to 'fglrx' which is the name of the ATI driver. The updated driver line should look like below;<br />
<br />
Driver "fglrx"<br />
<br />
Now save the changes you have made to xorg.conf.<br />
<br />
Now reboot the MD from the console with;<br />
<br />
reboot <return><br />
<br />
The MD will now reboot normally and the setup wizard will run again.... but this time the video and the Ui will run smoothly as the ATI driver is installed and confgured.<br />
<br />
Currently the ATI driver will not support UI2 with transparency but it will support UI2 with overlay very nicely indeed. There are two small caveats to running UI2 with Overlay currently with the ATI driver in that the 'Compass Rose' on screen menu for selecting DVD chapters, Lighting levels etc etc and the 'Zoom & Aspect ratio' screen when playing Video do not draw correctly - the bit maps for the menus do not display but the menus do work.<br />
<br />
=== NVidia Chipsets ===<br />
There are several ways to install NVidia drivers, the way described here is meant as a guide to install the very latest drivers from the NVidia website. Note that this way will bypass the LinuxMCE (Kubuntu) packaging system, possibly removing and/or overwriting some of it's files.<br />
<br />
1. Go to a console (text) terminal by holding [CTRL]-[ALT] and pressing the [F1] key simultaneously, log in with the user account you have created during the Kubuntu install and become root, if you haven't done so already. <br />
'''<you>@dcerouter:~$''' sudo -s<br />
2. Download the latest [http://www.nvidia.com/object/unix.html linux drivers from NVidia] (depending [http://www.nvidia.com/object/IO_32667.html on your hardware], one of versions: 100.14.23, 1.0-9639 or 1.0-7185 currently), if you haven't done so already. When you have found the URL for downloading the package on the nvidia site you could download it like this:<br />
'''root@dcerouter:~#''' wget <nowiki>http://us.download.nvidia.com/XFree86/Linux-x86/</nowiki>''<version>''<nowiki>/NVIDIA-Linux-x86-</nowiki>''<version>''<nowiki>-pkg1.run</nowiki><br />
3. Go to runlevel 1 to stop the currently running X-server. <br />
<br />
NB: There was no need for me to run this command as I was already in Level 1 - It just locked up the keyboard. --[[User:Mortar|Mortar]] 18:12, 6 January 2008 (MST)<br />
'''root@dcerouter:~#''' telinit 1 <br />
4. Execute the installer and follow instructions. Ignore the warning about runlevel 1 and don't bother looking for precompiled drivers.<br />
'''root@dcerouter:~#''' sh NVIDIA-Linux-x86-''<version>''-pkg1.run<br />
5. Now it needs to be configured. The recommended and most convenient way is to use the [[AVWizard]]. For more advanced setup, or if the AVWizard for some reason is unable to set your up your screens to your liking, you can configure the ''X-server'' manually by editing the ''xorg.conf'' file directly.<br />
<br />
=== Intel Chipsets ===<br />
There is a renewed interest in the Intel graphics chipsets since Intel released the drivers under the GPL. Currently the Intel driver still cannot support UI2 with Alphablending but they will support UI2 with Overlay very nicely and video performance is excellent. LinuxMCE versions after Beta4 have full support for configuring the Intel driver in the AVwizard.<br />
<br />
From LinuxMCE-0710 Beta4 onwards LinuxMCE will install the newer intel driver by default - so the instructions below are only useful if your still running LinuxMCE-0704.<br />
<br />
==== For LinuxMCE-0704 ====<br />
<br />
You will want to make sure you are using the newer intel drivers from http://packages.ubuntu.com/gutsy/i386/xserver-xorg-video-intel/download for i386. These replace the older i810, etc. drivers and should cover all the modern intel chipsets. The name for this driver is 'intel' and would replace the older 'i810' drivers.<br />
<br />
If you're using i810 driver make sure you add Option "LinearAlloc" "8160" to xorg.conf or video players will crash with X11 error: BadAlloc.<br />
<br />
From man i810:<br />
Option "LinearAlloc" "integer"<br />
Allows more memory for the offscreen allocator. This usually<br />
helps in situations where HDTV movies are required to play but<br />
not enough offscreen memory is usually available. Set this to<br />
8160 for upto 1920x1080 HDTV support. Default 0KB (off).<br />
<br />
=== Via Chipsets ===<br />
Use the Openchrome or Via Unichrome drivers. The Via Unichrome drivers can be downloaded from [http://www.viaarena.com/default.aspx?PageID=2&OSID=45&CatID=3220]<br />
<br />
At the time of this writing (10/04/08), the binary Via Unichrome driver (released december 2007) works best (stable, good 2d and 3d) on my Via Mini ITX with CLE266 integerated graphics system. It is able to run UI2 medium with very good performance. <br />
There is a crash at bootup (with any via driver) if the complete runlevel 2 starts. <br />
This issue can be worked around by booting recovery mode and manually starting only /etc/init.d/kdm as root.<br />
Issue under investigation - will update here when good workaround is done.<br />
Contact zeratul at fastmail.fm for latest status/tips<br />
<br />
'''HOW-TO VIA Openchrome driver for xorg:'''<br><br />
For VIA CX700M2 UniChrome PRO II Graphics (1" VIA units) or mainly via graphics:<br><br />
<br />
''shell into your box and do the following:''<br><br />
apt-get install xserver-xorg-video-via<br />
apt-get install subversion autoconf automake libtool<br />
cd /usr/src<br />
svn checkout http://svn.openchrome.org/svn/trunk openchrome<br />
cd openchrome*<br />
./autogen.sh --prefix=/usr<br />
make<br />
make install<br />
<br />
Now we have to edit /etc/X11/xorg.conf and change the device driver to via openchrome:<br><br />
vi /etc/X11/xorg.conf<br />
Go to<br />
Section "Device"<br />
and change<br />
Driver "vesa" <br />
to<br />
Driver "openchrome"<br />
save and test the compiled new driver with a: <br><br />
X :1<br />
and if your xwindow comes up, you can reboot and have fun<br><br />
--[[User:Burgiman|burgi]] 13:37, 3 March 2008 (PST)<br />
<br />
=== Other Chipsets ===<br />
Please help out by adding more if you can.<br />
<br />
== Configuration ==<br />
The recommended and most convenient way is to use the [[AVWizard]]. For more advanced setup, or if the X-server (and thus also the AVWizard) is unable to start, you can configure the ''X-server'' manually by editing the ''xorg.conf'' file directly.<br />
<br />
=== Getting started ===<br />
Start by making a backup copy of the ''/etc/X11/xorg.conf'' file (even if it doesn't work it might contain settings you could need). In this example we will start from scratch and edit the configuration file step by step to get the main display setup. <br />
<br />
Some of these steps require that there will be no X-server active on the system, the easiest way to achieve this is to boot in ''rescue-mode'', just hit [Esc] when [[Grub]] tells you to during the startup of your machine and select the right line from the menu. Another way is to go to a text-mode console (aka. terminal) with [CTRL]-[ALT]-[F1], [[Logging In|log in]], become root and issue the command:<br />
telinit 1<br />
This wil stop the running X-server and drop you into rescue mode as well. <br />
<br />
One of the advantages is that now you can start and stop the X-server by hand with an alternative configuration file and without having to reboot or even start an entire desktop environment.<br />
<br />
=== Generating a template ===<br />
These instructions were originally written for ATI chipsets, so they might need to be adjusted and updated a bit. Not all of the specific options may be relevant for your chipset. <br />
<br />
'''While there is no (other) X-server running''' you can create a template configuration file by running:<br />
X -configure<br />
This will create a file called xorg.conf.new in your ''home'' directory, test it with the following command and hit [CTRL]-[ALT]-[Backspace] when done:<br />
X -config ~/xorg.conf.new<br />
Within a few seconds a gray bitpattern should show up with an 'X' shaped mouse cursor. If the screen is distorted or reports the refresh rate to be out of range then you will either have to specify the proper refreshrate limitations for your screen or insert "modelines" for the resolution(s) you want to use (see below). <br />
<br />
When you're satisfied you can overwrite ''/etc/X11/xorg.conf'' with this file to make it the default (you did make a backup didn't you?), once you have done that you can use "startx" to test and have the use of your desktop as well. This should at least be enough to allow the use of a graphic configuration tool (like the [[AVWizard]] for instance) to set up your display further. More advanced manual configuration options can be found below.<br />
<br />
Here is an example of such a generated file:<br />
<br />
Section "ServerLayout"<br />
Identifier "X.org Configured"<br />
Screen 0 "Screen0" 0 0<br />
InputDevice "Mouse0" "CorePointer"<br />
InputDevice "Keyboard0" "CoreKeyboard"<br />
EndSection<br />
<br />
Section "Files"<br />
RgbPath "/etc/X11/rgb"<br />
ModulePath "/usr/lib/xorg/modules"<br />
FontPath "/usr/share/fonts/X11/misc"<br />
FontPath "/usr/X11R6/lib/X11/fonts/misc"<br />
FontPath "/usr/share/fonts/X11/cyrillic"<br />
FontPath "/usr/share/fonts/X11/100dpi/:unscaled"<br />
FontPath "/usr/share/fonts/X11/75dpi/:unscaled"<br />
FontPath "/usr/share/fonts/X11/Type1"<br />
FontPath "/usr/X11R6/lib/X11/fonts/Type1"<br />
FontPath "/usr/share/fonts/X11/100dpi"<br />
FontPath "/usr/share/fonts/X11/75dpi"<br />
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"<br />
EndSection<br />
<br />
Section "Module"<br />
Load "extmod"<br />
Load "record"<br />
Load "xtrap"<br />
Load "dri"<br />
Load "glx"<br />
Load "dbe"<br />
Load "GLcore"<br />
Load "type1"<br />
EndSection<br />
<br />
Section "InputDevice"<br />
Identifier "Keyboard0"<br />
Driver "kbd"<br />
EndSection<br />
<br />
Section "InputDevice"<br />
Identifier "Mouse0"<br />
Driver "mouse"<br />
Option "Protocol" "auto"<br />
Option "Device" "/dev/input/mice"<br />
Option "ZAxisMapping" "4 5 6 7"<br />
EndSection<br />
<br />
Section "Monitor"<br />
Identifier "Monitor0"<br />
VendorName "Monitor Vendor"<br />
ModelName "Monitor Model"<br />
EndSection<br />
<br />
Section "Device"<br />
### Available Driver options are:-<br />
### Values: &lt;i&gt;: integer, <f>: float, <bool>: "True"/"False",<br />
### <string>: "String", <freq>: "<f> Hz/kHz/MHz"<br />
### [arg]: arg optional<br />
#Option "ShadowFB" # [<bool>]<br />
#Option "DefaultRefresh" # [<bool>]<br />
#Option "ModeSetClearScreen" # [<bool>]<br />
Identifier "Card0"<br />
Driver "vesa"<br />
''VendorName "ATI Technologies Inc"''<br />
''BoardName "ATI Radeon Xpress 1200 Series"''<br />
''BusID '''"PCI:1:5:0"'''''<br />
EndSection<br />
<br />
Section "Screen"<br />
Identifier "Screen0"<br />
Device "Card0"<br />
Monitor "Monitor0"<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 1<br />
EndSubSection<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 4<br />
EndSubSection<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 8<br />
EndSubSection<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 15<br />
EndSubSection<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 16<br />
EndSubSection<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 24<br />
EndSubSection<br />
EndSection<br />
<br />
Note that the only thing really specific to my setup in this config file is ''BusID'', if you only have one graphics adapter in your system this value can be omitted, otherwise the value(s) can be found with:<br />
X -scanpci<br />
Where each card will need it's own Device Section in the config file. The "VendorName" and "BoardName" settings are just labels and serve no real purpose other then being able to identify this particular device, which is usefull if you have more then one.<br />
<br />
We'll be using this sample configuration as a starting point in the other examples below, the comments (lines starting with ''#'' can be safely removed as well as the ''"Display"'' subsections for the colordepths we don't plan on using.<br />
<br />
=== Refresh rate / ModeLine ===<br />
The easiest way to sort this problem is to let the X-server figure this out by not specifying the limits of your screen. However this often fails, leaving you with an unusable display. Simply look up '''your screen''''s refresh rates in the documentation and add them like this:<br />
<br />
Section "Monitor"<br />
Identifier "Monitor0"<br />
VendorName "Monitor Vendor"<br />
ModelName "Monitor Model"<br />
''HorizSync '''27-102''' # kHz''<br />
''VertRefresh '''50-160''' # Hz''<br />
EndSection<br />
<br />
Alternatively you could specify a "ModeLine" for each resolution you want to use. By using ModeLines you have much finer controll over the timings of the output signal generated by your videocard. The drawback is that the timing values can be hard to get right. <br />
<br />
Search the web for a "modeline generator", and many of these will include instructions on how to add the modeline, but briefly, you just add it to the "Monitor" section. Read the [http://en.wikipedia.org/wiki/Modeline wikipedia entry] to learn how to use modelines. <br />
* http://koala.ilog.fr/cgi-bin/nph-colas-modelines<br />
* http://xtiming.sourceforge.net/cgi-bin/xtiming.pl<br />
* http://www.bohne-lang.de/spec/linux/modeline/<br />
* http://amlc.berlios.de/<br />
* http://www.mythtv.org/wiki/index.php/Working_with_Modelines<br />
If one modeline doesn't work perfectly, try another, perhaps from another generator, because they can vary so much.<br />
<br />
Using the wrong timings could in some (nowadays rare) occasions damage the hardware of your screen, so if it looks garbeled don't leave it like that for hours on end but hit [Ctrl]-[Alt]-[&larr;Backspace] and readjust your settings. Most modern screens however simply report that the signal is out of range if this happens.<br />
<br />
=== Colordepth and resolution ===<br />
Specify the colordepth and resolution(s) you would like to use, like this:<br />
<br />
Section "Screen"<br />
Identifier "Screen0"<br />
Device "Card0"<br />
Monitor "Monitor0"<br />
''DefaultDepth '''24'''''<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 24<br />
''Virtual '''1600 1200'''''<br />
''Modes '''"1600x1200" "1280x1024" "1024x768" "800x600" "640x480" "512x384" "400x300" "320x240"'''''<br />
EndSubSection<br />
EndSection<br />
<br />
As most people will only be using 24 bits anyway, I have removed the other redundant subsections. "Virtual" is the size of your desktop and "Modes" are physical resolutions, you can flip through these by holding [CTRL]-[ALT] and pressing the plus or minus on the numeric keypad. These are just examples, most people will only want to specify the resolution they actually use.<br />
<br />
=== DRI device permissions ===<br />
This section is needed to have the X-server set the proper permissions on the DRI device during startup. Simply add it to the end of the /etx/X11.xorg file if it isn't there already.<br />
<br />
Section "DRI"<br />
Mode 0666<br />
EndSection<br />
<br />
=== Chipset driver ===<br />
Change "'''vesa'''" to "'''fglrx'''" (or "'''ati'''", depending on which drivers you installed earlier), as shown below, the old line is left as a comment in this example for clarity, but it's better to remove it as some scripts seem to find it confusing. For Nvidia chipsets use '''nvidia''' or '''nv''' as the driver names (instead of '''fglrx''').<br />
<br />
Section "Device"<br />
Identifier "Card0"<br />
''# Driver "'''vesa'''"''<br />
''Driver "'''fglrx'''"''<br />
VendorName "ATI Technologies Inc"<br />
BoardName "ATI Radeon Xpress 1200 Series"<br />
BusID "PCI:1:5:0"<br />
EndSection<br />
<br />
If your X-server was running you will have to restart it completely for the changes to take effect, the easiest and most thorough way to do this is to reboot.<br />
<br />
=== Physical display size ===<br />
Like specifying the refresh rate his is optional but sometimes necessary, most of the time it is either detected or some sane defaults are used but sometimes it isn't, which can result in unreadable font sizes.<br />
<br />
Section "Monitor"<br />
...<br />
DisplaySize '''155 95'''<br />
EndSection<br />
<br />
Where you have to replace the numbers with the physical '''width''' and '''height''' of your screen in millimeters (1" = 25mm), feel free to try mine, however these are for a small touchscreen.<br />
<br />
=== Disable composite ===<br />
Aparently the ATI '''fglrx''' driver does not ''yet'' support composite with DRI. So if you are using the fglrx driver, disable it by adding this to the end of the /etx/X11.xorg file if it isn't there already.<br />
<br />
Section "Extensions"<br />
Option "Composite" "Disable"<br />
EndSection<br />
<br />
=== Additional options ===<br />
To be continued, I don't think this is enough to get UI2 completely (either mode) going yet. Feel free to jump in anytime... <br />
<br />
<br />
Things still to sort out amongst others (i.e. what is it, do we need it and what are the settings if any):<br />
<br />
Section "Module"<br />
Load "i2c"<br />
Load "bitmap"<br />
Load "ddc"<br />
Load "freetype"<br />
Load "int10"<br />
Load "vbe"<br />
Load "speedo"<br />
Load "type1"<br />
Load "dbe"<br />
Load "glx"<br />
Load "v4l"<br />
EndSection<br />
<br />
Section "ServerFlags"<br />
Option "AIGLX" "off"<br />
EndSection<br />
<br />
Section "Extensions"<br />
Option "Composite" "Disable"<br />
# Option "RENDER" "true"<br />
EndSection<br />
<br />
Option "PseudoColorVisuals" "off"<br />
Option "OpenGLOverlay" "off"<br />
Option "VideoOverlay" "off"<br />
Option "DesktopSetup" "clone"<br />
<br />
TV-out options, 2nd display, etc.<br />
<br />
<br />
== Troubleshooting ==<br />
<br />
=== X-windows won't start for AVWizard ===<br />
<br />
*One problem on nvidia-cards could be that it does not detect the right monitor.<br />
<br />
::Go to Console 1 ([Ctrl]+[Alt]+1) and edit /etc/X11/xorg.conf (nano -w /etc/X11/xorg.conf). Find the section ::Device with the driver nvidia add the line <pre>Option "ConnectedMonitor" "XXX"<br />
::where XXX is CRT, CRT-0, CRT-1, DVI-0, DVI-1, ...</pre><br />
::Save and exit (nano: Ctrl+x) and restart the computer. In my case it was "CRT-1".<br />
* Screen is black, after install seemed to go okay. You may have even seen the Kubuntu splash screen.<br />
**[[AVWizard]]<br />
<br />
=== X-windows won't start ===<br />
<br />
Reboot into rescue-mode if needed (hit [Esc] when [[Grub]] tells you to), and restore a working copy of your /etc/X11/xorg.conf, or edit it by hand to fix the problem. Test it with the command "X" and press [Ctrl]-[Alt]-[&larr;Backspace] simultaneous to quit (alternative: use "startx" and get the full desktop, if any), then reboot when it works and you're done.<br />
<br />
=== Signal out of range ===<br />
<br />
See ''[[#Refresh rate / ModeLine ]]'' above.<br />
<br />
=== Microscopic fonts in KDE ===<br />
<br />
See ''[[#Physical_display_size]]'' above.<br />
<br />
If the above does not work, probably Xorg is calculating the DPI value in the wrong way.<br />
This can be verified by having a look at the file /var/log/Xorg.0.log related to the MD with this issue searching for the line containing "DPI set to (x , y)",where x and y are values that apply to the specific display.<br />
<br />
If those values are too small, fonts will be displayed accordingly (i.e, VERY small)<br />
<br />
A workaround is to force Xorg to startup with a given DPI value.<br />
<br />
To achieve this the following steps are required:<br />
<br />
* edit the file /usr/pluto/bin/Start_X_Wrapper.sh on your MD where you are facing the font problem<br />
* find the line beginning with xinit<br />
* add "-dpi 96" (without quotes) at the end of this line<br />
* save the file and reboot MD<br />
<br />
Obviously it is possible to set DPI to something different than 96, according to specific needs.<br />
<br />
Please note that after an LMCE update the startup script may be replaced by new ones, so the above workaround may have to be re-applied in order to keep fonts at the desired dimension.<br />
<br />
=== LinuxMCE keeps reconfiguring my display settings ===<br />
<br />
Add a line containing '''exit''' to the top of the ''/usr/pluto/bin/Xconfigure.sh'' file. After you do this you may experience difficulties running the AVWizard again, if so remove this line and add it back again after the wizard is finished.<br />
<br />
For LinuxMCE 710 simply comment out the line that says<br />
. /usr/pluto/bin/X-CleanupVideo.sh<br />
This is the command that gets run that modifies the xorg.conf file on startup. This is different than above because if you put exit at the top your display will not get initialized. And as above if you want to run the AVWizard you will need to uncomment this line.<br />
<br />
== See also ==<br />
* [http://www.mythtv.org/wiki/index.php/Main_Page MythTV wiki] <br />
* MythTV Experience [http://brentlagesse.net/~brent/mythtv.php]<br />
* [[X_Configuration_Scripts]]</div>Burgimanhttp://wiki.linuxmce.org/index.php?title=Display_Drivers&diff=13084Display Drivers2008-05-31T12:28:04Z<p>Burgiman: /* Via Chipsets */</p>
<hr />
<div>{| align="right"<br />
| __TOC__<br />
|}<br />
[[Category: Tutorials]]<br />
[[Category: Hardware| ]]<br />
<br />
An incomplete HowTo on updating LinuxMCE to the latest display drivers and configuring them manually. It could use your help, so if something is different in your situation, please add it.<br />
<br />
'''Note that this should normally not be necessary unless you have specific wishes or trouble getting your display to work properly.''' <br />
<br />
== Installation ==<br />
If the graphical environment cannot start you are likely to see a text screen blinking, this makes it very hard to login, if this is the case you can reboot into "rescue mode" by pressing [Esc] when GRUB tells you to during the boot process and then select it from the menu you will be presented with.<br />
<br />
=== ATI Chipsets ===<br />
The two main ways to install the ATI drivers are described in the [http://wiki.cchtml.com/index.php/Ubuntu_Feisty_Installation_Guide Ubuntu Feisty Installation Guide].<br />
<br />
For more information see also the [http://wiki.cchtml.com/index.php/Main_Page Unofficial ATI Linux Driver Wiki] and you might want to have a look at [http://www.mythtv.org/wiki/index.php/AtiProprietaryDriver AtiProprietaryDriver] in the MythTV wiki as well since LinuxMCE depends on it for viewing TV. MythTV in turn relies heavily on the support of certain features by the graphics drivers. The ATI drivers turn out to be a bit "challenged" in this area to say the least.<br />
<br />
==== Installing The ATI Driver ====<br />
<br />
Here's the procedure I use for setting up an ATI X1250 MD. Currently the the AVwizard in 0710 does not configure ATI cards properly so you need to to do some manual steps to get things working.<br />
<br />
'''Step 1'''<br />
<br />
Add the MD in the normal way (ie plug it into the network and let it add itself). Let it reboot and then it should run the AVwizard. Choose the options you want - output connector, resolution, refresh.... UI2 with Overlay etc etc and complete the wizard. Now the screen will return to a console screen and will after 5-10 mins will try to run the setup Wizard... but the setup Wizard will run very slowly and the video of 'Sarah' will not play smoothly. This is because the ATI drivers are not installed yet and the X driver is set to 'vesa'.<br />
<br />
'''Step 2'''<br />
<br />
From another machine ssh into the partially installed MD using Konsole from the KDE Desktop or a terminal app like Putty under Windows XP. Do the following from the console;<br />
<br />
sudo su - <return><br />
ssh moonNN <return> (**where the NN is the device number for the MD we're configuring**)<br />
<br />
Alternatively do the following from the MD/Core you are configuring;<br />
<br />
Ctrl+Alt+2<br />
<br />
Now login using the login you created when you installed your system ie When you ran the DVD installer or CD installer. Now we're logged into the MD we are configuring as 'root' and we can install the ATI drivers and configure Xorg.conf;<br />
<br />
Firstly make sure our sources.list is up to date:<br />
<br />
apt-get update <return><br />
<br />
Now lets install the ATI driver and packages;<br />
<br />
apt-get install linux-restricted-modules-generic restricted-manager <return><br />
<br />
Answer 'Y' to installing new packages then do the following steps;<br />
<br />
apt-get install xorg-driver-fglrx <return><br />
depmod -a <return><br />
<br />
So far so good... now we have the ATI drivers installed! (the current driver in the repos is not the latest ATI release an updated driver will be packaged soon though). Now we have to configure Xorg to use it! Do the steps below;<br />
<br />
I use the console text editor 'joe' below but you can use whichever you prefer ('nano' is installed by default for example);<br />
<br />
joe /etc/X11/xorg.conf <return><br />
<br />
Now you are editing the xorg.conf of your MD and the only change you need to make is to the 'Device' section. In the 'Device' section you will see a line thats says;<br />
<br />
Driver "vesa"<br />
or<br />
Driver "ati"<br />
<br />
Change the string 'vesa' (or ati) to 'fglrx' which is the name of the ATI driver. The updated driver line should look like below;<br />
<br />
Driver "fglrx"<br />
<br />
Now save the changes you have made to xorg.conf.<br />
<br />
Now reboot the MD from the console with;<br />
<br />
reboot <return><br />
<br />
The MD will now reboot normally and the setup wizard will run again.... but this time the video and the Ui will run smoothly as the ATI driver is installed and confgured.<br />
<br />
Currently the ATI driver will not support UI2 with transparency but it will support UI2 with overlay very nicely indeed. There are two small caveats to running UI2 with Overlay currently with the ATI driver in that the 'Compass Rose' on screen menu for selecting DVD chapters, Lighting levels etc etc and the 'Zoom & Aspect ratio' screen when playing Video do not draw correctly - the bit maps for the menus do not display but the menus do work.<br />
<br />
=== NVidia Chipsets ===<br />
There are several ways to install NVidia drivers, the way described here is meant as a guide to install the very latest drivers from the NVidia website. Note that this way will bypass the LinuxMCE (Kubuntu) packaging system, possibly removing and/or overwriting some of it's files.<br />
<br />
1. Go to a console (text) terminal by holding [CTRL]-[ALT] and pressing the [F1] key simultaneously, log in with the user account you have created during the Kubuntu install and become root, if you haven't done so already. <br />
'''<you>@dcerouter:~$''' sudo -s<br />
2. Download the latest [http://www.nvidia.com/object/unix.html linux drivers from NVidia] (depending [http://www.nvidia.com/object/IO_32667.html on your hardware], one of versions: 100.14.23, 1.0-9639 or 1.0-7185 currently), if you haven't done so already. When you have found the URL for downloading the package on the nvidia site you could download it like this:<br />
'''root@dcerouter:~#''' wget <nowiki>http://us.download.nvidia.com/XFree86/Linux-x86/</nowiki>''<version>''<nowiki>/NVIDIA-Linux-x86-</nowiki>''<version>''<nowiki>-pkg1.run</nowiki><br />
3. Go to runlevel 1 to stop the currently running X-server. <br />
<br />
NB: There was no need for me to run this command as I was already in Level 1 - It just locked up the keyboard. --[[User:Mortar|Mortar]] 18:12, 6 January 2008 (MST)<br />
'''root@dcerouter:~#''' telinit 1 <br />
4. Execute the installer and follow instructions. Ignore the warning about runlevel 1 and don't bother looking for precompiled drivers.<br />
'''root@dcerouter:~#''' sh NVIDIA-Linux-x86-''<version>''-pkg1.run<br />
5. Now it needs to be configured. The recommended and most convenient way is to use the [[AVWizard]]. For more advanced setup, or if the AVWizard for some reason is unable to set your up your screens to your liking, you can configure the ''X-server'' manually by editing the ''xorg.conf'' file directly.<br />
<br />
=== Intel Chipsets ===<br />
There is a renewed interest in the Intel graphics chipsets since Intel released the drivers under the GPL. Currently the Intel driver still cannot support UI2 with Alphablending but they will support UI2 with Overlay very nicely and video performance is excellent. LinuxMCE versions after Beta4 have full support for configuring the Intel driver in the AVwizard.<br />
<br />
From LinuxMCE-0710 Beta4 onwards LinuxMCE will install the newer intel driver by default - so the instructions below are only useful if your still running LinuxMCE-0704.<br />
<br />
==== For LinuxMCE-0704 ====<br />
<br />
You will want to make sure you are using the newer intel drivers from http://packages.ubuntu.com/gutsy/i386/xserver-xorg-video-intel/download for i386. These replace the older i810, etc. drivers and should cover all the modern intel chipsets. The name for this driver is 'intel' and would replace the older 'i810' drivers.<br />
<br />
If you're using i810 driver make sure you add Option "LinearAlloc" "8160" to xorg.conf or video players will crash with X11 error: BadAlloc.<br />
<br />
From man i810:<br />
Option "LinearAlloc" "integer"<br />
Allows more memory for the offscreen allocator. This usually<br />
helps in situations where HDTV movies are required to play but<br />
not enough offscreen memory is usually available. Set this to<br />
8160 for upto 1920x1080 HDTV support. Default 0KB (off).<br />
<br />
=== Via Chipsets ===<br />
Use the Openchrome or Via Unichrome drivers. The Via Unichrome drivers can be downloaded from [http://www.viaarena.com/default.aspx?PageID=2&OSID=45&CatID=3220]<br />
<br />
At the time of this writing (10/04/08), the binary Via Unichrome driver (released december 2007) works best (stable, good 2d and 3d) on my Via Mini ITX with CLE266 integerated graphics system. It is able to run UI2 medium with very good performance. <br />
There is a crash at bootup (with any via driver) if the complete runlevel 2 starts. <br />
This issue can be worked around by booting recovery mode and manually starting only /etc/init.d/kdm as root.<br />
Issue under investigation - will update here when good workaround is done.<br />
Contact zeratul at fastmail.fm for latest status/tips<br />
<br />
'''HOW-TO VIA Openchrome driver for xorg:'''<br><br />
For VIA CX700M2 UniChrome PRO II Graphics (1" VIA units) or mainly via graphics:<br><br />
<br />
''shell into your box and do the following:''<br><br />
apt-get install build-dep xserver-xorg-video-via<br />
apt-get install subversion autoconf automake libtool<br />
cd /usr/src<br />
svn checkout http://svn.openchrome.org/svn/trunk openchrome<br />
cd openchrome*<br />
./autogen.sh --prefix=/usr<br />
make<br />
make install<br />
<br />
Now we have to edit /etc/X11/xorg.conf and change the device driver to via openchrome:<br><br />
vi /etc/X11/xorg.conf<br />
Go to<br />
Section "Device"<br />
and change<br />
Driver "vesa" <br />
to<br />
Driver "openchrome"<br />
save and test the compiled new driver with a: <br><br />
X :1<br />
and if your xwindow comes up, you can reboot and have fun<br><br />
--[[User:Burgiman|burgi]] 13:37, 3 March 2008 (PST)<br />
<br />
=== Other Chipsets ===<br />
Please help out by adding more if you can.<br />
<br />
== Configuration ==<br />
The recommended and most convenient way is to use the [[AVWizard]]. For more advanced setup, or if the X-server (and thus also the AVWizard) is unable to start, you can configure the ''X-server'' manually by editing the ''xorg.conf'' file directly.<br />
<br />
=== Getting started ===<br />
Start by making a backup copy of the ''/etc/X11/xorg.conf'' file (even if it doesn't work it might contain settings you could need). In this example we will start from scratch and edit the configuration file step by step to get the main display setup. <br />
<br />
Some of these steps require that there will be no X-server active on the system, the easiest way to achieve this is to boot in ''rescue-mode'', just hit [Esc] when [[Grub]] tells you to during the startup of your machine and select the right line from the menu. Another way is to go to a text-mode console (aka. terminal) with [CTRL]-[ALT]-[F1], [[Logging In|log in]], become root and issue the command:<br />
telinit 1<br />
This wil stop the running X-server and drop you into rescue mode as well. <br />
<br />
One of the advantages is that now you can start and stop the X-server by hand with an alternative configuration file and without having to reboot or even start an entire desktop environment.<br />
<br />
=== Generating a template ===<br />
These instructions were originally written for ATI chipsets, so they might need to be adjusted and updated a bit. Not all of the specific options may be relevant for your chipset. <br />
<br />
'''While there is no (other) X-server running''' you can create a template configuration file by running:<br />
X -configure<br />
This will create a file called xorg.conf.new in your ''home'' directory, test it with the following command and hit [CTRL]-[ALT]-[Backspace] when done:<br />
X -config ~/xorg.conf.new<br />
Within a few seconds a gray bitpattern should show up with an 'X' shaped mouse cursor. If the screen is distorted or reports the refresh rate to be out of range then you will either have to specify the proper refreshrate limitations for your screen or insert "modelines" for the resolution(s) you want to use (see below). <br />
<br />
When you're satisfied you can overwrite ''/etc/X11/xorg.conf'' with this file to make it the default (you did make a backup didn't you?), once you have done that you can use "startx" to test and have the use of your desktop as well. This should at least be enough to allow the use of a graphic configuration tool (like the [[AVWizard]] for instance) to set up your display further. More advanced manual configuration options can be found below.<br />
<br />
Here is an example of such a generated file:<br />
<br />
Section "ServerLayout"<br />
Identifier "X.org Configured"<br />
Screen 0 "Screen0" 0 0<br />
InputDevice "Mouse0" "CorePointer"<br />
InputDevice "Keyboard0" "CoreKeyboard"<br />
EndSection<br />
<br />
Section "Files"<br />
RgbPath "/etc/X11/rgb"<br />
ModulePath "/usr/lib/xorg/modules"<br />
FontPath "/usr/share/fonts/X11/misc"<br />
FontPath "/usr/X11R6/lib/X11/fonts/misc"<br />
FontPath "/usr/share/fonts/X11/cyrillic"<br />
FontPath "/usr/share/fonts/X11/100dpi/:unscaled"<br />
FontPath "/usr/share/fonts/X11/75dpi/:unscaled"<br />
FontPath "/usr/share/fonts/X11/Type1"<br />
FontPath "/usr/X11R6/lib/X11/fonts/Type1"<br />
FontPath "/usr/share/fonts/X11/100dpi"<br />
FontPath "/usr/share/fonts/X11/75dpi"<br />
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"<br />
EndSection<br />
<br />
Section "Module"<br />
Load "extmod"<br />
Load "record"<br />
Load "xtrap"<br />
Load "dri"<br />
Load "glx"<br />
Load "dbe"<br />
Load "GLcore"<br />
Load "type1"<br />
EndSection<br />
<br />
Section "InputDevice"<br />
Identifier "Keyboard0"<br />
Driver "kbd"<br />
EndSection<br />
<br />
Section "InputDevice"<br />
Identifier "Mouse0"<br />
Driver "mouse"<br />
Option "Protocol" "auto"<br />
Option "Device" "/dev/input/mice"<br />
Option "ZAxisMapping" "4 5 6 7"<br />
EndSection<br />
<br />
Section "Monitor"<br />
Identifier "Monitor0"<br />
VendorName "Monitor Vendor"<br />
ModelName "Monitor Model"<br />
EndSection<br />
<br />
Section "Device"<br />
### Available Driver options are:-<br />
### Values: &lt;i&gt;: integer, <f>: float, <bool>: "True"/"False",<br />
### <string>: "String", <freq>: "<f> Hz/kHz/MHz"<br />
### [arg]: arg optional<br />
#Option "ShadowFB" # [<bool>]<br />
#Option "DefaultRefresh" # [<bool>]<br />
#Option "ModeSetClearScreen" # [<bool>]<br />
Identifier "Card0"<br />
Driver "vesa"<br />
''VendorName "ATI Technologies Inc"''<br />
''BoardName "ATI Radeon Xpress 1200 Series"''<br />
''BusID '''"PCI:1:5:0"'''''<br />
EndSection<br />
<br />
Section "Screen"<br />
Identifier "Screen0"<br />
Device "Card0"<br />
Monitor "Monitor0"<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 1<br />
EndSubSection<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 4<br />
EndSubSection<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 8<br />
EndSubSection<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 15<br />
EndSubSection<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 16<br />
EndSubSection<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 24<br />
EndSubSection<br />
EndSection<br />
<br />
Note that the only thing really specific to my setup in this config file is ''BusID'', if you only have one graphics adapter in your system this value can be omitted, otherwise the value(s) can be found with:<br />
X -scanpci<br />
Where each card will need it's own Device Section in the config file. The "VendorName" and "BoardName" settings are just labels and serve no real purpose other then being able to identify this particular device, which is usefull if you have more then one.<br />
<br />
We'll be using this sample configuration as a starting point in the other examples below, the comments (lines starting with ''#'' can be safely removed as well as the ''"Display"'' subsections for the colordepths we don't plan on using.<br />
<br />
=== Refresh rate / ModeLine ===<br />
The easiest way to sort this problem is to let the X-server figure this out by not specifying the limits of your screen. However this often fails, leaving you with an unusable display. Simply look up '''your screen''''s refresh rates in the documentation and add them like this:<br />
<br />
Section "Monitor"<br />
Identifier "Monitor0"<br />
VendorName "Monitor Vendor"<br />
ModelName "Monitor Model"<br />
''HorizSync '''27-102''' # kHz''<br />
''VertRefresh '''50-160''' # Hz''<br />
EndSection<br />
<br />
Alternatively you could specify a "ModeLine" for each resolution you want to use. By using ModeLines you have much finer controll over the timings of the output signal generated by your videocard. The drawback is that the timing values can be hard to get right. <br />
<br />
Search the web for a "modeline generator", and many of these will include instructions on how to add the modeline, but briefly, you just add it to the "Monitor" section. Read the [http://en.wikipedia.org/wiki/Modeline wikipedia entry] to learn how to use modelines. <br />
* http://koala.ilog.fr/cgi-bin/nph-colas-modelines<br />
* http://xtiming.sourceforge.net/cgi-bin/xtiming.pl<br />
* http://www.bohne-lang.de/spec/linux/modeline/<br />
* http://amlc.berlios.de/<br />
* http://www.mythtv.org/wiki/index.php/Working_with_Modelines<br />
If one modeline doesn't work perfectly, try another, perhaps from another generator, because they can vary so much.<br />
<br />
Using the wrong timings could in some (nowadays rare) occasions damage the hardware of your screen, so if it looks garbeled don't leave it like that for hours on end but hit [Ctrl]-[Alt]-[&larr;Backspace] and readjust your settings. Most modern screens however simply report that the signal is out of range if this happens.<br />
<br />
=== Colordepth and resolution ===<br />
Specify the colordepth and resolution(s) you would like to use, like this:<br />
<br />
Section "Screen"<br />
Identifier "Screen0"<br />
Device "Card0"<br />
Monitor "Monitor0"<br />
''DefaultDepth '''24'''''<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 24<br />
''Virtual '''1600 1200'''''<br />
''Modes '''"1600x1200" "1280x1024" "1024x768" "800x600" "640x480" "512x384" "400x300" "320x240"'''''<br />
EndSubSection<br />
EndSection<br />
<br />
As most people will only be using 24 bits anyway, I have removed the other redundant subsections. "Virtual" is the size of your desktop and "Modes" are physical resolutions, you can flip through these by holding [CTRL]-[ALT] and pressing the plus or minus on the numeric keypad. These are just examples, most people will only want to specify the resolution they actually use.<br />
<br />
=== DRI device permissions ===<br />
This section is needed to have the X-server set the proper permissions on the DRI device during startup. Simply add it to the end of the /etx/X11.xorg file if it isn't there already.<br />
<br />
Section "DRI"<br />
Mode 0666<br />
EndSection<br />
<br />
=== Chipset driver ===<br />
Change "'''vesa'''" to "'''fglrx'''" (or "'''ati'''", depending on which drivers you installed earlier), as shown below, the old line is left as a comment in this example for clarity, but it's better to remove it as some scripts seem to find it confusing. For Nvidia chipsets use '''nvidia''' or '''nv''' as the driver names (instead of '''fglrx''').<br />
<br />
Section "Device"<br />
Identifier "Card0"<br />
''# Driver "'''vesa'''"''<br />
''Driver "'''fglrx'''"''<br />
VendorName "ATI Technologies Inc"<br />
BoardName "ATI Radeon Xpress 1200 Series"<br />
BusID "PCI:1:5:0"<br />
EndSection<br />
<br />
If your X-server was running you will have to restart it completely for the changes to take effect, the easiest and most thorough way to do this is to reboot.<br />
<br />
=== Physical display size ===<br />
Like specifying the refresh rate his is optional but sometimes necessary, most of the time it is either detected or some sane defaults are used but sometimes it isn't, which can result in unreadable font sizes.<br />
<br />
Section "Monitor"<br />
...<br />
DisplaySize '''155 95'''<br />
EndSection<br />
<br />
Where you have to replace the numbers with the physical '''width''' and '''height''' of your screen in millimeters (1" = 25mm), feel free to try mine, however these are for a small touchscreen.<br />
<br />
=== Disable composite ===<br />
Aparently the ATI '''fglrx''' driver does not ''yet'' support composite with DRI. So if you are using the fglrx driver, disable it by adding this to the end of the /etx/X11.xorg file if it isn't there already.<br />
<br />
Section "Extensions"<br />
Option "Composite" "Disable"<br />
EndSection<br />
<br />
=== Additional options ===<br />
To be continued, I don't think this is enough to get UI2 completely (either mode) going yet. Feel free to jump in anytime... <br />
<br />
<br />
Things still to sort out amongst others (i.e. what is it, do we need it and what are the settings if any):<br />
<br />
Section "Module"<br />
Load "i2c"<br />
Load "bitmap"<br />
Load "ddc"<br />
Load "freetype"<br />
Load "int10"<br />
Load "vbe"<br />
Load "speedo"<br />
Load "type1"<br />
Load "dbe"<br />
Load "glx"<br />
Load "v4l"<br />
EndSection<br />
<br />
Section "ServerFlags"<br />
Option "AIGLX" "off"<br />
EndSection<br />
<br />
Section "Extensions"<br />
Option "Composite" "Disable"<br />
# Option "RENDER" "true"<br />
EndSection<br />
<br />
Option "PseudoColorVisuals" "off"<br />
Option "OpenGLOverlay" "off"<br />
Option "VideoOverlay" "off"<br />
Option "DesktopSetup" "clone"<br />
<br />
TV-out options, 2nd display, etc.<br />
<br />
<br />
== Troubleshooting ==<br />
<br />
=== X-windows won't start for AVWizard ===<br />
<br />
*One problem on nvidia-cards could be that it does not detect the right monitor.<br />
<br />
::Go to Console 1 ([Ctrl]+[Alt]+1) and edit /etc/X11/xorg.conf (nano -w /etc/X11/xorg.conf). Find the section ::Device with the driver nvidia add the line <pre>Option "ConnectedMonitor" "XXX"<br />
::where XXX is CRT, CRT-0, CRT-1, DVI-0, DVI-1, ...</pre><br />
::Save and exit (nano: Ctrl+x) and restart the computer. In my case it was "CRT-1".<br />
* Screen is black, after install seemed to go okay. You may have even seen the Kubuntu splash screen.<br />
**[[AVWizard]]<br />
<br />
=== X-windows won't start ===<br />
<br />
Reboot into rescue-mode if needed (hit [Esc] when [[Grub]] tells you to), and restore a working copy of your /etc/X11/xorg.conf, or edit it by hand to fix the problem. Test it with the command "X" and press [Ctrl]-[Alt]-[&larr;Backspace] simultaneous to quit (alternative: use "startx" and get the full desktop, if any), then reboot when it works and you're done.<br />
<br />
=== Signal out of range ===<br />
<br />
See ''[[#Refresh rate / ModeLine ]]'' above.<br />
<br />
=== Microscopic fonts in KDE ===<br />
<br />
See ''[[#Physical_display_size]]'' above.<br />
<br />
If the above does not work, probably Xorg is calculating the DPI value in the wrong way.<br />
This can be verified by having a look at the file /var/log/Xorg.0.log related to the MD with this issue searching for the line containing "DPI set to (x , y)",where x and y are values that apply to the specific display.<br />
<br />
If those values are too small, fonts will be displayed accordingly (i.e, VERY small)<br />
<br />
A workaround is to force Xorg to startup with a given DPI value.<br />
<br />
To achieve this the following steps are required:<br />
<br />
* edit the file /usr/pluto/bin/Start_X_Wrapper.sh on your MD where you are facing the font problem<br />
* find the line beginning with xinit<br />
* add "-dpi 96" (without quotes) at the end of this line<br />
* save the file and reboot MD<br />
<br />
Obviously it is possible to set DPI to something different than 96, according to specific needs.<br />
<br />
Please note that after an LMCE update the startup script may be replaced by new ones, so the above workaround may have to be re-applied in order to keep fonts at the desired dimension.<br />
<br />
=== LinuxMCE keeps reconfiguring my display settings ===<br />
<br />
Add a line containing '''exit''' to the top of the ''/usr/pluto/bin/Xconfigure.sh'' file. After you do this you may experience difficulties running the AVWizard again, if so remove this line and add it back again after the wizard is finished.<br />
<br />
For LinuxMCE 710 simply comment out the line that says<br />
. /usr/pluto/bin/X-CleanupVideo.sh<br />
This is the command that gets run that modifies the xorg.conf file on startup. This is different than above because if you put exit at the top your display will not get initialized. And as above if you want to run the AVWizard you will need to uncomment this line.<br />
<br />
== See also ==<br />
* [http://www.mythtv.org/wiki/index.php/Main_Page MythTV wiki] <br />
* MythTV Experience [http://brentlagesse.net/~brent/mythtv.php]<br />
* [[X_Configuration_Scripts]]</div>Burgimanhttp://wiki.linuxmce.org/index.php?title=Display_Drivers&diff=9446Display Drivers2008-03-03T21:46:28Z<p>Burgiman: /* Via Chipsets */</p>
<hr />
<div>{| align="right"<br />
| __TOC__<br />
|}<br />
[[Category: Tutorials]]<br />
[[Category: Hardware| ]]<br />
<br />
An incomplete HowTo on updating LinuxMCE to the latest display drivers and configuring them manually. It could use your help, so if something is different in your situation, please add it.<br />
<br />
'''Note that this should normally not be necessary unless you have specific wishes or trouble getting your display to work properly.''' <br />
<br />
== Installation ==<br />
If the graphical environment cannot start you are likely to see a text screen blinking, this makes it very hard to login, if this is the case you can reboot into "rescue mode" by pressing [Esc] when GRUB tells you to during the boot process and then select it from the menu you will be presented with.<br />
<br />
=== ATI Chipsets ===<br />
The two main ways to install the ATI drivers are described in the [http://wiki.cchtml.com/index.php/Ubuntu_Feisty_Installation_Guide Ubuntu Feisty Installation Guide].<br />
<br />
For more information see also the [http://wiki.cchtml.com/index.php/Main_Page Unofficial ATI Linux Driver Wiki] and you might want to have a look at [http://www.mythtv.org/wiki/index.php/AtiProprietaryDriver AtiProprietaryDriver] in the MythTV wiki as well since LinuxMCE depends on it for viewing TV. MythTV in turn relies heavily on the support of certain features by the graphics drivers. The ATI drivers turn out to be a bit "challenged" in this area to say the least.<br />
<br />
=== NVidia Chipsets ===<br />
There are several ways to install NVidia drivers, the way described here is meant as a guide to install the very latest drivers from the NVidia website. Note that this way will bypass the LinuxMCE (Kubuntu) packaging system, possibly removing and/or overwriting some of it's files.<br />
<br />
1. Go to a console (text) terminal by holding [CTRL]-[ALT] and pressing the [F1] key simultaneously, log in with the user account you have created during the Kubuntu install and become root, if you haven't done so already. <br />
'''<you>@dcerouter:~$''' sudo -s<br />
2. Download the latest [http://www.nvidia.com/object/unix.html linux drivers from NVidia] (depending [http://www.nvidia.com/object/IO_32667.html on your hardware], one of versions: 100.14.23, 1.0-9639 or 1.0-7185 currently), if you haven't done so already. When you have found the URL for downloading the package on the nvidia site you could download it like this:<br />
'''root@dcerouter:~#''' wget <nowiki>http://us.download.nvidia.com/XFree86/Linux-x86/</nowiki>''<version>''<nowiki>/NVIDIA-Linux-x86-</nowiki>''<version>''<nowiki>-pkg1.run</nowiki><br />
3. Go to runlevel 1 to stop the currently running X-server. <br />
<br />
NB: There was no need for me to run this command as I was already in Level 1 - It just locked up the keyboard. --[[User:Mortar|Mortar]] 18:12, 6 January 2008 (MST)<br />
'''root@dcerouter:~#''' telinit 1 <br />
4. Execute the installer and follow instructions. Ignore the warning about runlevel 1 and don't bother looking for precompiled drivers.<br />
'''root@dcerouter:~#''' sh NVIDIA-Linux-x86-''<version>''-pkg1.run<br />
5. Now it needs to be configured. The recommended and most convenient way is to use the [[AVWizard]]. For more advanced setup, or if the AVWizard for some reason is unable to set your up your screens to your liking, you can configure the ''X-server'' manually by editing the ''xorg.conf'' file directly.<br />
<br />
=== Intel Chipsets ===<br />
There is a renewed interest in the Intel graphics chipsets since Intel released the drivers under the GPL. However, they're still not at the same level as nVidia's and can't do alpha blending.<br />
<br />
You will want to make sure you are using the newer intel drivers from http://packages.ubuntu.com/feisty/x11/xserver-xorg-video-intel. These replace the older i810, etc. drivers and should cover all the modern intel chipsets. The name for this driver is 'intel' and would replace the older 'i810' drivers.<br />
<br />
If you're using i810 driver make sure you add Option "LinearAlloc" "8160" to xorg.conf or video players will crash with X11 error: BadAlloc.<br />
<br />
From man i810:<br />
Option "LinearAlloc" "integer"<br />
Allows more memory for the offscreen allocator. This usually<br />
helps in situations where HDTV movies are required to play but<br />
not enough offscreen memory is usually available. Set this to<br />
8160 for upto 1920x1080 HDTV support. Default 0KB (off).<br />
<br />
=== Via Chipsets ===<br />
Use the Openchrome or Via Unichrome drivers. The Via Unichrome drivers can be downloaded from http://www.viaarena.com/default.aspx?PageID=2&OSID=45&CatID=3220<br />
<br />
<br />
'''HOW-TO VIA Openchrome driver for xorg:'''<br><br />
For VIA CX700M2 UniChrome PRO II Graphics (1" VIA units) or mainly via graphics:<br><br />
<br />
''shell into your box and do the following:''<br><br />
apt-get build-dep xserver-xorg-video-via<br />
apt-get install subversion autoconf automake libtool<br />
cd /usr/src<br />
svn checkout http://svn.openchrome.org/svn/trunk openchrome<br />
cd openchrome*<br />
./autogen.sh --prefix=/usr<br />
make<br />
make install<br />
<br />
Now we have to edit /etc/X11/xorg.conf and change the device driver to via openchrome:<br><br />
vi /etc/X11/xorg.conf<br />
Go to<br />
Section "Device"<br />
and change<br />
Driver "vesa" <br />
to<br />
Driver "openchrome"<br />
save and test the compiled new driver with a: <br><br />
X :1<br />
and if your xwindow comes up, you can reboot and have fun<br><br />
--[[User:Burgiman|burgi]] 13:37, 3 March 2008 (PST)<br />
<br />
=== Other Chipsets ===<br />
Please help out by adding more if you can.<br />
<br />
== Configuration ==<br />
The recommended and most convenient way is to use the [[AVWizard]]. For more advanced setup, or if the X-server (and thus also the AVWizard) is unable to start, you can configure the ''X-server'' manually by editing the ''xorg.conf'' file directly.<br />
<br />
=== Getting started ===<br />
Start by making a backup copy of the ''/etc/X11/xorg.conf'' file (even if it doesn't work it might contain settings you could need). In this example we will start from scratch and edit the configuration file step by step to get the main display setup. <br />
<br />
Some of these steps require that there will be no X-server active on the system, the easiest way to achieve this is to boot in ''rescue-mode'', just hit [Esc] when [[Grub]] tells you to during the startup of your machine and select the right line from the menu. Another way is to go to a text-mode console (aka. terminal) with [CTRL]-[ALT]-[F1], [[Logging In|log in]], become root and issue the command:<br />
telinit 1<br />
This wil stop the running X-server and drop you into rescue mode as well. <br />
<br />
One of the advantages is that now you can start and stop the X-server by hand with an alternative configuration file and without having to reboot or even start an entire desktop environment.<br />
<br />
=== Generating a template ===<br />
These instructions were originally written for ATI chipsets, so they might need to be adjusted and updated a bit. Not all of the specific options may be relevant for your chipset. <br />
<br />
'''While there is no (other) X-server running''' you can create a template configuration file by running:<br />
X -configure<br />
This will create a file called xorg.conf.new in your ''home'' directory, test it with the following command and hit [CTRL]-[ALT]-[Backspace] when done:<br />
X -config ~/xorg.conf.new<br />
Within a few seconds a gray bitpattern should show up with an 'X' shaped mouse cursor. If the screen is distorted or reports the refresh rate to be out of range then you will either have to specify the proper refreshrate limitations for your screen or insert "modelines" for the resolution(s) you want to use (see below). <br />
<br />
When you're satisfied you can overwrite ''/etc/X11/xorg.conf'' with this file to make it the default (you did make a backup didn't you?), once you have done that you can use "startx" to test and have the use of your desktop as well. This should at least be enough to allow the use of a graphic configuration tool (like the [[AVWizard]] for instance) to set up your display further. More advanced manual configuration options can be found below.<br />
<br />
Here is an example of such a generated file:<br />
<br />
Section "ServerLayout"<br />
Identifier "X.org Configured"<br />
Screen 0 "Screen0" 0 0<br />
InputDevice "Mouse0" "CorePointer"<br />
InputDevice "Keyboard0" "CoreKeyboard"<br />
EndSection<br />
<br />
Section "Files"<br />
RgbPath "/etc/X11/rgb"<br />
ModulePath "/usr/lib/xorg/modules"<br />
FontPath "/usr/share/fonts/X11/misc"<br />
FontPath "/usr/X11R6/lib/X11/fonts/misc"<br />
FontPath "/usr/share/fonts/X11/cyrillic"<br />
FontPath "/usr/share/fonts/X11/100dpi/:unscaled"<br />
FontPath "/usr/share/fonts/X11/75dpi/:unscaled"<br />
FontPath "/usr/share/fonts/X11/Type1"<br />
FontPath "/usr/X11R6/lib/X11/fonts/Type1"<br />
FontPath "/usr/share/fonts/X11/100dpi"<br />
FontPath "/usr/share/fonts/X11/75dpi"<br />
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"<br />
EndSection<br />
<br />
Section "Module"<br />
Load "extmod"<br />
Load "record"<br />
Load "xtrap"<br />
Load "dri"<br />
Load "glx"<br />
Load "dbe"<br />
Load "GLcore"<br />
Load "type1"<br />
EndSection<br />
<br />
Section "InputDevice"<br />
Identifier "Keyboard0"<br />
Driver "kbd"<br />
EndSection<br />
<br />
Section "InputDevice"<br />
Identifier "Mouse0"<br />
Driver "mouse"<br />
Option "Protocol" "auto"<br />
Option "Device" "/dev/input/mice"<br />
Option "ZAxisMapping" "4 5 6 7"<br />
EndSection<br />
<br />
Section "Monitor"<br />
Identifier "Monitor0"<br />
VendorName "Monitor Vendor"<br />
ModelName "Monitor Model"<br />
EndSection<br />
<br />
Section "Device"<br />
### Available Driver options are:-<br />
### Values: &lt;i&gt;: integer, <f>: float, <bool>: "True"/"False",<br />
### <string>: "String", <freq>: "<f> Hz/kHz/MHz"<br />
### [arg]: arg optional<br />
#Option "ShadowFB" # [<bool>]<br />
#Option "DefaultRefresh" # [<bool>]<br />
#Option "ModeSetClearScreen" # [<bool>]<br />
Identifier "Card0"<br />
Driver "vesa"<br />
''VendorName "ATI Technologies Inc"''<br />
''BoardName "ATI Radeon Xpress 1200 Series"''<br />
''BusID '''"PCI:1:5:0"'''''<br />
EndSection<br />
<br />
Section "Screen"<br />
Identifier "Screen0"<br />
Device "Card0"<br />
Monitor "Monitor0"<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 1<br />
EndSubSection<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 4<br />
EndSubSection<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 8<br />
EndSubSection<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 15<br />
EndSubSection<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 16<br />
EndSubSection<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 24<br />
EndSubSection<br />
EndSection<br />
<br />
Note that the only thing really specific to my setup in this config file is ''BusID'', if you only have one graphics adapter in your system this value can be omitted, otherwise the value(s) can be found with:<br />
X -scanpci<br />
Where each card will need it's own Device Section in the config file. The "VendorName" and "BoardName" settings are just labels and serve no real purpose other then being able to identify this particular device, which is usefull if you have more then one.<br />
<br />
We'll be using this sample configuration as a starting point in the other examples below, the comments (lines starting with ''#'' can be safely removed as well as the ''"Display"'' subsections for the colordepths we don't plan on using.<br />
<br />
=== Refresh rate / ModeLine ===<br />
The easiest way to sort this problem is to let the X-server figure this out by not specifying the limits of your screen. However this often fails, leaving you with an unusable display. Simply look up '''your screen''''s refresh rates in the documentation and add them like this:<br />
<br />
Section "Monitor"<br />
Identifier "Monitor0"<br />
VendorName "Monitor Vendor"<br />
ModelName "Monitor Model"<br />
''HorizSync '''27-102''' # kHz''<br />
''VertRefresh '''50-160''' # Hz''<br />
EndSection<br />
<br />
Alternatively you could specify a "ModeLine" for each resolution you want to use. By using ModeLines you have much finer controll over the timings of the output signal generated by your videocard. The drawback is that the timing values can be hard to get right. <br />
<br />
Search the web for a "modeline generator", and many of these will include instructions on how to add the modeline, but briefly, you just add it to the "Monitor" section. Read the [http://en.wikipedia.org/wiki/Modeline wikipedia entry] to learn how to use modelines. <br />
* http://koala.ilog.fr/cgi-bin/nph-colas-modelines<br />
* http://xtiming.sourceforge.net/cgi-bin/xtiming.pl<br />
* http://www.bohne-lang.de/spec/linux/modeline/<br />
* http://amlc.berlios.de/<br />
* http://www.mythtv.org/wiki/index.php/Working_with_Modelines<br />
If one modeline doesn't work perfectly, try another, perhaps from another generator, because they can vary so much.<br />
<br />
Using the wrong timings could in some (nowadays rare) occasions damage the hardware of your screen, so if it looks garbeled don't leave it like that for hours on end but hit [Ctrl]-[Alt]-[&larr;Backspace] and readjust your settings. Most modern screens however simply report that the signal is out of range if this happens.<br />
<br />
=== Colordepth and resolution ===<br />
Specify the colordepth and resolution(s) you would like to use, like this:<br />
<br />
Section "Screen"<br />
Identifier "Screen0"<br />
Device "Card0"<br />
Monitor "Monitor0"<br />
''DefaultDepth '''24'''''<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 24<br />
''Virtual '''1600 1200'''''<br />
''Modes '''"1600x1200" "1280x1024" "1024x768" "800x600" "640x480" "512x384" "400x300" "320x240"'''''<br />
EndSubSection<br />
EndSection<br />
<br />
As most people will only be using 24 bits anyway, I have removed the other redundant subsections. "Virtual" is the size of your desktop and "Modes" are physical resolutions, you can flip through these by holding [CTRL]-[ALT] and pressing the plus or minus on the numeric keypad. These are just examples, most people will only want to specify the resolution they actually use.<br />
<br />
=== DRI device permissions ===<br />
This section is needed to have the X-server set the proper permissions on the DRI device during startup. Simply add it to the end of the /etx/X11.xorg file if it isn't there already.<br />
<br />
Section "DRI"<br />
Mode 0666<br />
EndSection<br />
<br />
=== Chipset driver ===<br />
Change "'''vesa'''" to "'''fglrx'''" (or "'''ati'''", depending on which drivers you installed earlier), as shown below, the old line is left as a comment in this example for clarity, but it's better to remove it as some scripts seem to find it confusing. For Nvidia chipsets use '''nvidia''' or '''nv''' as the driver names (instead of '''fglrx''').<br />
<br />
Section "Device"<br />
Identifier "Card0"<br />
''# Driver "'''vesa'''"''<br />
''Driver "'''fglrx'''"''<br />
VendorName "ATI Technologies Inc"<br />
BoardName "ATI Radeon Xpress 1200 Series"<br />
BusID "PCI:1:5:0"<br />
EndSection<br />
<br />
If your X-server was running you will have to restart it completely for the changes to take effect, the easiest and most thorough way to do this is to reboot.<br />
<br />
=== Physical display size ===<br />
Like specifying the refresh rate his is optional but sometimes necessary, most of the time it is either detected or some sane defaults are used but sometimes it isn't, which can result in unreadable font sizes.<br />
<br />
Section "Monitor"<br />
...<br />
DisplaySize '''155 95'''<br />
EndSection<br />
<br />
Where you have to replace the numbers with the physical '''width''' and '''height''' of your screen in millimeters (1" = 25mm), feel free to try mine, however these are for a small touchscreen.<br />
<br />
=== Disable composite ===<br />
Aparently the ATI '''fglrx''' driver does not ''yet'' support composite with DRI. So if you are using the fglrx driver, disable it by adding this to the end of the /etx/X11.xorg file if it isn't there already.<br />
<br />
Section "Extensions"<br />
Option "Composite" "Disable"<br />
EndSection<br />
<br />
=== Additional options ===<br />
To be continued, I don't think this is enough to get UI2 completely (either mode) going yet. Feel free to jump in anytime... <br />
<br />
<br />
Things still to sort out amongst others (i.e. what is it, do we need it and what are the settings if any):<br />
<br />
Section "Module"<br />
Load "i2c"<br />
Load "bitmap"<br />
Load "ddc"<br />
Load "freetype"<br />
Load "int10"<br />
Load "vbe"<br />
Load "speedo"<br />
Load "type1"<br />
Load "dbe"<br />
Load "glx"<br />
Load "v4l"<br />
EndSection<br />
<br />
Section "ServerFlags"<br />
Option "AIGLX" "off"<br />
EndSection<br />
<br />
Section "Extensions"<br />
Option "Composite" "Disable"<br />
# Option "RENDER" "true"<br />
EndSection<br />
<br />
Option "PseudoColorVisuals" "off"<br />
Option "OpenGLOverlay" "off"<br />
Option "VideoOverlay" "off"<br />
Option "DesktopSetup" "clone"<br />
<br />
TV-out options, 2nd display, etc.<br />
<br />
<br />
== Troubleshooting ==<br />
<br />
=== X-windows won't start for AVWizard ===<br />
<br />
*One problem on nvidia-cards could be that it does not detect the right monitor.<br />
<br />
::Go to Console 1 ([Ctrl]+[Alt]+1) and edit /etc/X11/xorg.conf (nano -w /etc/X11/xorg.conf). Find the section ::Device with the driver nvidia add the line <pre>Option "ConnectedMonitor" "XXX"<br />
::where XXX is CRT, CRT-0, CRT-1, DVI-0, DVI-1, ...</pre><br />
::Save and exit (nano: Ctrl+x) and restart the computer. In my case it was "CRT-1".<br />
* Screen is black, after install seemed to go okay. You may have even seen the Kubuntu splash screen.<br />
**[[AVWizard]]<br />
<br />
=== X-windows won't start ===<br />
<br />
Reboot into rescue-mode if needed (hit [Esc] when [[Grub]] tells you to), and restore a working copy of your /etc/X11/xorg.conf, or edit it by hand to fix the problem. Test it with the command "X" and press [Ctrl]-[Alt]-[&larr;Backspace] simultaneous to quit (alternative: use "startx" and get the full desktop, if any), then reboot when it works and you're done.<br />
<br />
=== Signal out of range ===<br />
<br />
See ''[[#Refresh rate / ModeLine ]]'' above.<br />
<br />
=== Microscopic fonts in KDE ===<br />
<br />
See ''[[#Physical_display_size]]'' above.<br />
<br />
If the above does not work, probably Xorg is calculating the DPI value in the wrong way.<br />
This can be verified by having a look at the file /var/log/Xorg.0.log related to the MD with this issue searching for the line containing "DPI set to (x , y)",where x and y are values that apply to the specific display.<br />
<br />
If those values are too small, fonts will be displayed accordingly (i.e, VERY small)<br />
<br />
A workaround is to force Xorg to startup with a given DPI value.<br />
<br />
To achieve this the following steps are required:<br />
<br />
* edit the file /usr/pluto/bin/Start_X_Wrapper.sh on your MD where you are facing the font problem<br />
* find the line beginning with xinit<br />
* add "-dpi 96" (without quotes) at the end of this line<br />
* save the file and reboot MD<br />
<br />
Obviously it is possible to set DPI to something different than 96, according to specific needs.<br />
<br />
Please note that after an LMCE update the startup script may be replaced by new ones, so the above workaround may have to be re-applied in order to keep fonts at the desired dimension.<br />
<br />
=== LinuxMCE keeps reconfiguring my display settings ===<br />
<br />
Add a line containing '''exit''' to the top of the ''/usr/pluto/bin/Xconfigure.sh'' file. After you do this you may experience difficulties running the AVWizard again, if so remove this line and add it back again after the wizard is finished.<br />
<br />
== See also ==<br />
* [http://www.mythtv.org/wiki/index.php/Main_Page MythTV wiki] <br />
* MythTV Experience [http://brentlagesse.net/~brent/mythtv.php]<br />
* [[X_Configuration_Scripts]]</div>Burgimanhttp://wiki.linuxmce.org/index.php?title=Display_Drivers&diff=9445Display Drivers2008-03-03T21:37:49Z<p>Burgiman: /* Via Chipsets */</p>
<hr />
<div>{| align="right"<br />
| __TOC__<br />
|}<br />
[[Category: Tutorials]]<br />
[[Category: Hardware| ]]<br />
<br />
An incomplete HowTo on updating LinuxMCE to the latest display drivers and configuring them manually. It could use your help, so if something is different in your situation, please add it.<br />
<br />
'''Note that this should normally not be necessary unless you have specific wishes or trouble getting your display to work properly.''' <br />
<br />
== Installation ==<br />
If the graphical environment cannot start you are likely to see a text screen blinking, this makes it very hard to login, if this is the case you can reboot into "rescue mode" by pressing [Esc] when GRUB tells you to during the boot process and then select it from the menu you will be presented with.<br />
<br />
=== ATI Chipsets ===<br />
The two main ways to install the ATI drivers are described in the [http://wiki.cchtml.com/index.php/Ubuntu_Feisty_Installation_Guide Ubuntu Feisty Installation Guide].<br />
<br />
For more information see also the [http://wiki.cchtml.com/index.php/Main_Page Unofficial ATI Linux Driver Wiki] and you might want to have a look at [http://www.mythtv.org/wiki/index.php/AtiProprietaryDriver AtiProprietaryDriver] in the MythTV wiki as well since LinuxMCE depends on it for viewing TV. MythTV in turn relies heavily on the support of certain features by the graphics drivers. The ATI drivers turn out to be a bit "challenged" in this area to say the least.<br />
<br />
=== NVidia Chipsets ===<br />
There are several ways to install NVidia drivers, the way described here is meant as a guide to install the very latest drivers from the NVidia website. Note that this way will bypass the LinuxMCE (Kubuntu) packaging system, possibly removing and/or overwriting some of it's files.<br />
<br />
1. Go to a console (text) terminal by holding [CTRL]-[ALT] and pressing the [F1] key simultaneously, log in with the user account you have created during the Kubuntu install and become root, if you haven't done so already. <br />
'''<you>@dcerouter:~$''' sudo -s<br />
2. Download the latest [http://www.nvidia.com/object/unix.html linux drivers from NVidia] (depending [http://www.nvidia.com/object/IO_32667.html on your hardware], one of versions: 100.14.23, 1.0-9639 or 1.0-7185 currently), if you haven't done so already. When you have found the URL for downloading the package on the nvidia site you could download it like this:<br />
'''root@dcerouter:~#''' wget <nowiki>http://us.download.nvidia.com/XFree86/Linux-x86/</nowiki>''<version>''<nowiki>/NVIDIA-Linux-x86-</nowiki>''<version>''<nowiki>-pkg1.run</nowiki><br />
3. Go to runlevel 1 to stop the currently running X-server. <br />
<br />
NB: There was no need for me to run this command as I was already in Level 1 - It just locked up the keyboard. --[[User:Mortar|Mortar]] 18:12, 6 January 2008 (MST)<br />
'''root@dcerouter:~#''' telinit 1 <br />
4. Execute the installer and follow instructions. Ignore the warning about runlevel 1 and don't bother looking for precompiled drivers.<br />
'''root@dcerouter:~#''' sh NVIDIA-Linux-x86-''<version>''-pkg1.run<br />
5. Now it needs to be configured. The recommended and most convenient way is to use the [[AVWizard]]. For more advanced setup, or if the AVWizard for some reason is unable to set your up your screens to your liking, you can configure the ''X-server'' manually by editing the ''xorg.conf'' file directly.<br />
<br />
=== Intel Chipsets ===<br />
There is a renewed interest in the Intel graphics chipsets since Intel released the drivers under the GPL. However, they're still not at the same level as nVidia's and can't do alpha blending.<br />
<br />
You will want to make sure you are using the newer intel drivers from http://packages.ubuntu.com/feisty/x11/xserver-xorg-video-intel. These replace the older i810, etc. drivers and should cover all the modern intel chipsets. The name for this driver is 'intel' and would replace the older 'i810' drivers.<br />
<br />
If you're using i810 driver make sure you add Option "LinearAlloc" "8160" to xorg.conf or video players will crash with X11 error: BadAlloc.<br />
<br />
From man i810:<br />
Option "LinearAlloc" "integer"<br />
Allows more memory for the offscreen allocator. This usually<br />
helps in situations where HDTV movies are required to play but<br />
not enough offscreen memory is usually available. Set this to<br />
8160 for upto 1920x1080 HDTV support. Default 0KB (off).<br />
<br />
=== Via Chipsets ===<br />
Use the Openchrome or Via Unichrome drivers. The Via Unichrome drivers can be downloaded from http://www.viaarena.com/default.aspx?PageID=2&OSID=45&CatID=3220<br />
<br />
<br />
'''How-to VIA Openchrome driver for xorg:'''<br><br />
For VIA CX700M2 UniChrome PRO II Graphics (1" VIA units)<br><br />
<br />
''shell into your box and do the following:''<br><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;apt-get build-dep xserver-xorg-video-via<br><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;apt-get install subversion autoconf automake libtool<br><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cd /usr/src<br><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;svn checkout http://svn.openchrome.org/svn/trunk openchrome<br><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cd openchrome*<br><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;./autogen.sh --prefix=/usr<br><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;make<br><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;make install<br><br />
<br />
''Now we have to edit /etc/X11/xorg.conf and change the Device Driver to via openchrome:''<br><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vi /etx/X11/xorg.conf<br><br />
''Go to'' Section "Device"<br><br />
''and change'' Driver "vesa" <br><br />
''to'' Driver "openchrome"<br><br />
''save''<br><br />
''to test the compiled new driver do a:'' <br><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;X :1<br><br />
''and if your xwindow comes up, you can reboot and have fun''<br><br />
<br><br />
--[[User:Burgiman|burgi]] 13:37, 3 March 2008 (PST)<br />
<br />
=== Other Chipsets ===<br />
Please help out by adding more if you can.<br />
<br />
== Configuration ==<br />
The recommended and most convenient way is to use the [[AVWizard]]. For more advanced setup, or if the X-server (and thus also the AVWizard) is unable to start, you can configure the ''X-server'' manually by editing the ''xorg.conf'' file directly.<br />
<br />
=== Getting started ===<br />
Start by making a backup copy of the ''/etc/X11/xorg.conf'' file (even if it doesn't work it might contain settings you could need). In this example we will start from scratch and edit the configuration file step by step to get the main display setup. <br />
<br />
Some of these steps require that there will be no X-server active on the system, the easiest way to achieve this is to boot in ''rescue-mode'', just hit [Esc] when [[Grub]] tells you to during the startup of your machine and select the right line from the menu. Another way is to go to a text-mode console (aka. terminal) with [CTRL]-[ALT]-[F1], [[Logging In|log in]], become root and issue the command:<br />
telinit 1<br />
This wil stop the running X-server and drop you into rescue mode as well. <br />
<br />
One of the advantages is that now you can start and stop the X-server by hand with an alternative configuration file and without having to reboot or even start an entire desktop environment.<br />
<br />
=== Generating a template ===<br />
These instructions were originally written for ATI chipsets, so they might need to be adjusted and updated a bit. Not all of the specific options may be relevant for your chipset. <br />
<br />
'''While there is no (other) X-server running''' you can create a template configuration file by running:<br />
X -configure<br />
This will create a file called xorg.conf.new in your ''home'' directory, test it with the following command and hit [CTRL]-[ALT]-[Backspace] when done:<br />
X -config ~/xorg.conf.new<br />
Within a few seconds a gray bitpattern should show up with an 'X' shaped mouse cursor. If the screen is distorted or reports the refresh rate to be out of range then you will either have to specify the proper refreshrate limitations for your screen or insert "modelines" for the resolution(s) you want to use (see below). <br />
<br />
When you're satisfied you can overwrite ''/etc/X11/xorg.conf'' with this file to make it the default (you did make a backup didn't you?), once you have done that you can use "startx" to test and have the use of your desktop as well. This should at least be enough to allow the use of a graphic configuration tool (like the [[AVWizard]] for instance) to set up your display further. More advanced manual configuration options can be found below.<br />
<br />
Here is an example of such a generated file:<br />
<br />
Section "ServerLayout"<br />
Identifier "X.org Configured"<br />
Screen 0 "Screen0" 0 0<br />
InputDevice "Mouse0" "CorePointer"<br />
InputDevice "Keyboard0" "CoreKeyboard"<br />
EndSection<br />
<br />
Section "Files"<br />
RgbPath "/etc/X11/rgb"<br />
ModulePath "/usr/lib/xorg/modules"<br />
FontPath "/usr/share/fonts/X11/misc"<br />
FontPath "/usr/X11R6/lib/X11/fonts/misc"<br />
FontPath "/usr/share/fonts/X11/cyrillic"<br />
FontPath "/usr/share/fonts/X11/100dpi/:unscaled"<br />
FontPath "/usr/share/fonts/X11/75dpi/:unscaled"<br />
FontPath "/usr/share/fonts/X11/Type1"<br />
FontPath "/usr/X11R6/lib/X11/fonts/Type1"<br />
FontPath "/usr/share/fonts/X11/100dpi"<br />
FontPath "/usr/share/fonts/X11/75dpi"<br />
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"<br />
EndSection<br />
<br />
Section "Module"<br />
Load "extmod"<br />
Load "record"<br />
Load "xtrap"<br />
Load "dri"<br />
Load "glx"<br />
Load "dbe"<br />
Load "GLcore"<br />
Load "type1"<br />
EndSection<br />
<br />
Section "InputDevice"<br />
Identifier "Keyboard0"<br />
Driver "kbd"<br />
EndSection<br />
<br />
Section "InputDevice"<br />
Identifier "Mouse0"<br />
Driver "mouse"<br />
Option "Protocol" "auto"<br />
Option "Device" "/dev/input/mice"<br />
Option "ZAxisMapping" "4 5 6 7"<br />
EndSection<br />
<br />
Section "Monitor"<br />
Identifier "Monitor0"<br />
VendorName "Monitor Vendor"<br />
ModelName "Monitor Model"<br />
EndSection<br />
<br />
Section "Device"<br />
### Available Driver options are:-<br />
### Values: &lt;i&gt;: integer, <f>: float, <bool>: "True"/"False",<br />
### <string>: "String", <freq>: "<f> Hz/kHz/MHz"<br />
### [arg]: arg optional<br />
#Option "ShadowFB" # [<bool>]<br />
#Option "DefaultRefresh" # [<bool>]<br />
#Option "ModeSetClearScreen" # [<bool>]<br />
Identifier "Card0"<br />
Driver "vesa"<br />
''VendorName "ATI Technologies Inc"''<br />
''BoardName "ATI Radeon Xpress 1200 Series"''<br />
''BusID '''"PCI:1:5:0"'''''<br />
EndSection<br />
<br />
Section "Screen"<br />
Identifier "Screen0"<br />
Device "Card0"<br />
Monitor "Monitor0"<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 1<br />
EndSubSection<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 4<br />
EndSubSection<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 8<br />
EndSubSection<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 15<br />
EndSubSection<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 16<br />
EndSubSection<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 24<br />
EndSubSection<br />
EndSection<br />
<br />
Note that the only thing really specific to my setup in this config file is ''BusID'', if you only have one graphics adapter in your system this value can be omitted, otherwise the value(s) can be found with:<br />
X -scanpci<br />
Where each card will need it's own Device Section in the config file. The "VendorName" and "BoardName" settings are just labels and serve no real purpose other then being able to identify this particular device, which is usefull if you have more then one.<br />
<br />
We'll be using this sample configuration as a starting point in the other examples below, the comments (lines starting with ''#'' can be safely removed as well as the ''"Display"'' subsections for the colordepths we don't plan on using.<br />
<br />
=== Refresh rate / ModeLine ===<br />
The easiest way to sort this problem is to let the X-server figure this out by not specifying the limits of your screen. However this often fails, leaving you with an unusable display. Simply look up '''your screen''''s refresh rates in the documentation and add them like this:<br />
<br />
Section "Monitor"<br />
Identifier "Monitor0"<br />
VendorName "Monitor Vendor"<br />
ModelName "Monitor Model"<br />
''HorizSync '''27-102''' # kHz''<br />
''VertRefresh '''50-160''' # Hz''<br />
EndSection<br />
<br />
Alternatively you could specify a "ModeLine" for each resolution you want to use. By using ModeLines you have much finer controll over the timings of the output signal generated by your videocard. The drawback is that the timing values can be hard to get right. <br />
<br />
Search the web for a "modeline generator", and many of these will include instructions on how to add the modeline, but briefly, you just add it to the "Monitor" section. Read the [http://en.wikipedia.org/wiki/Modeline wikipedia entry] to learn how to use modelines. <br />
* http://koala.ilog.fr/cgi-bin/nph-colas-modelines<br />
* http://xtiming.sourceforge.net/cgi-bin/xtiming.pl<br />
* http://www.bohne-lang.de/spec/linux/modeline/<br />
* http://amlc.berlios.de/<br />
* http://www.mythtv.org/wiki/index.php/Working_with_Modelines<br />
If one modeline doesn't work perfectly, try another, perhaps from another generator, because they can vary so much.<br />
<br />
Using the wrong timings could in some (nowadays rare) occasions damage the hardware of your screen, so if it looks garbeled don't leave it like that for hours on end but hit [Ctrl]-[Alt]-[&larr;Backspace] and readjust your settings. Most modern screens however simply report that the signal is out of range if this happens.<br />
<br />
=== Colordepth and resolution ===<br />
Specify the colordepth and resolution(s) you would like to use, like this:<br />
<br />
Section "Screen"<br />
Identifier "Screen0"<br />
Device "Card0"<br />
Monitor "Monitor0"<br />
''DefaultDepth '''24'''''<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 24<br />
''Virtual '''1600 1200'''''<br />
''Modes '''"1600x1200" "1280x1024" "1024x768" "800x600" "640x480" "512x384" "400x300" "320x240"'''''<br />
EndSubSection<br />
EndSection<br />
<br />
As most people will only be using 24 bits anyway, I have removed the other redundant subsections. "Virtual" is the size of your desktop and "Modes" are physical resolutions, you can flip through these by holding [CTRL]-[ALT] and pressing the plus or minus on the numeric keypad. These are just examples, most people will only want to specify the resolution they actually use.<br />
<br />
=== DRI device permissions ===<br />
This section is needed to have the X-server set the proper permissions on the DRI device during startup. Simply add it to the end of the /etx/X11.xorg file if it isn't there already.<br />
<br />
Section "DRI"<br />
Mode 0666<br />
EndSection<br />
<br />
=== Chipset driver ===<br />
Change "'''vesa'''" to "'''fglrx'''" (or "'''ati'''", depending on which drivers you installed earlier), as shown below, the old line is left as a comment in this example for clarity, but it's better to remove it as some scripts seem to find it confusing. For Nvidia chipsets use '''nvidia''' or '''nv''' as the driver names (instead of '''fglrx''').<br />
<br />
Section "Device"<br />
Identifier "Card0"<br />
''# Driver "'''vesa'''"''<br />
''Driver "'''fglrx'''"''<br />
VendorName "ATI Technologies Inc"<br />
BoardName "ATI Radeon Xpress 1200 Series"<br />
BusID "PCI:1:5:0"<br />
EndSection<br />
<br />
If your X-server was running you will have to restart it completely for the changes to take effect, the easiest and most thorough way to do this is to reboot.<br />
<br />
=== Physical display size ===<br />
Like specifying the refresh rate his is optional but sometimes necessary, most of the time it is either detected or some sane defaults are used but sometimes it isn't, which can result in unreadable font sizes.<br />
<br />
Section "Monitor"<br />
...<br />
DisplaySize '''155 95'''<br />
EndSection<br />
<br />
Where you have to replace the numbers with the physical '''width''' and '''height''' of your screen in millimeters (1" = 25mm), feel free to try mine, however these are for a small touchscreen.<br />
<br />
=== Disable composite ===<br />
Aparently the ATI '''fglrx''' driver does not ''yet'' support composite with DRI. So if you are using the fglrx driver, disable it by adding this to the end of the /etx/X11.xorg file if it isn't there already.<br />
<br />
Section "Extensions"<br />
Option "Composite" "Disable"<br />
EndSection<br />
<br />
=== Additional options ===<br />
To be continued, I don't think this is enough to get UI2 completely (either mode) going yet. Feel free to jump in anytime... <br />
<br />
<br />
Things still to sort out amongst others (i.e. what is it, do we need it and what are the settings if any):<br />
<br />
Section "Module"<br />
Load "i2c"<br />
Load "bitmap"<br />
Load "ddc"<br />
Load "freetype"<br />
Load "int10"<br />
Load "vbe"<br />
Load "speedo"<br />
Load "type1"<br />
Load "dbe"<br />
Load "glx"<br />
Load "v4l"<br />
EndSection<br />
<br />
Section "ServerFlags"<br />
Option "AIGLX" "off"<br />
EndSection<br />
<br />
Section "Extensions"<br />
Option "Composite" "Disable"<br />
# Option "RENDER" "true"<br />
EndSection<br />
<br />
Option "PseudoColorVisuals" "off"<br />
Option "OpenGLOverlay" "off"<br />
Option "VideoOverlay" "off"<br />
Option "DesktopSetup" "clone"<br />
<br />
TV-out options, 2nd display, etc.<br />
<br />
<br />
== Troubleshooting ==<br />
<br />
=== X-windows won't start for AVWizard ===<br />
<br />
*One problem on nvidia-cards could be that it does not detect the right monitor.<br />
<br />
::Go to Console 1 ([Ctrl]+[Alt]+1) and edit /etc/X11/xorg.conf (nano -w /etc/X11/xorg.conf). Find the section ::Device with the driver nvidia add the line <pre>Option "ConnectedMonitor" "XXX"<br />
::where XXX is CRT, CRT-0, CRT-1, DVI-0, DVI-1, ...</pre><br />
::Save and exit (nano: Ctrl+x) and restart the computer. In my case it was "CRT-1".<br />
* Screen is black, after install seemed to go okay. You may have even seen the Kubuntu splash screen.<br />
**[[AVWizard]]<br />
<br />
=== X-windows won't start ===<br />
<br />
Reboot into rescue-mode if needed (hit [Esc] when [[Grub]] tells you to), and restore a working copy of your /etc/X11/xorg.conf, or edit it by hand to fix the problem. Test it with the command "X" and press [Ctrl]-[Alt]-[&larr;Backspace] simultaneous to quit (alternative: use "startx" and get the full desktop, if any), then reboot when it works and you're done.<br />
<br />
=== Signal out of range ===<br />
<br />
See ''[[#Refresh rate / ModeLine ]]'' above.<br />
<br />
=== Microscopic fonts in KDE ===<br />
<br />
See ''[[#Physical_display_size]]'' above.<br />
<br />
If the above does not work, probably Xorg is calculating the DPI value in the wrong way.<br />
This can be verified by having a look at the file /var/log/Xorg.0.log related to the MD with this issue searching for the line containing "DPI set to (x , y)",where x and y are values that apply to the specific display.<br />
<br />
If those values are too small, fonts will be displayed accordingly (i.e, VERY small)<br />
<br />
A workaround is to force Xorg to startup with a given DPI value.<br />
<br />
To achieve this the following steps are required:<br />
<br />
* edit the file /usr/pluto/bin/Start_X_Wrapper.sh on your MD where you are facing the font problem<br />
* find the line beginning with xinit<br />
* add "-dpi 96" (without quotes) at the end of this line<br />
* save the file and reboot MD<br />
<br />
Obviously it is possible to set DPI to something different than 96, according to specific needs.<br />
<br />
Please note that after an LMCE update the startup script may be replaced by new ones, so the above workaround may have to be re-applied in order to keep fonts at the desired dimension.<br />
<br />
=== LinuxMCE keeps reconfiguring my display settings ===<br />
<br />
Add a line containing '''exit''' to the top of the ''/usr/pluto/bin/Xconfigure.sh'' file. After you do this you may experience difficulties running the AVWizard again, if so remove this line and add it back again after the wizard is finished.<br />
<br />
== See also ==<br />
* [http://www.mythtv.org/wiki/index.php/Main_Page MythTV wiki] <br />
* MythTV Experience [http://brentlagesse.net/~brent/mythtv.php]<br />
* [[X_Configuration_Scripts]]</div>Burgiman