Wikibooks
enwikibooks
https://en.wikibooks.org/wiki/Main_Page
MediaWiki 1.47.0-wmf.6
first-letter
Media
Special
Talk
User
User talk
Wikibooks
Wikibooks talk
File
File talk
MediaWiki
MediaWiki talk
Template
Template talk
Help
Help talk
Category
Category talk
Cookbook
Cookbook talk
Transwiki
Transwiki talk
Wikijunior
Wikijunior talk
Subject
Subject talk
TimedText
TimedText talk
Module
Module talk
Event
Event talk
Talk:Main Page/test
1
7072
4640185
4445186
2026-06-13T16:13:14Z
ShakespeareFan00
46022
4640185
wikitext
text/x-wiki
==2007 New main page layout with details of books==
Comments? See also [[Wikibooks:Nearly_complete]], ideally this would be the source for "Some excellent Wikibooks that are complete or nearly complete". [[User:RobinH|RobinH]] 19:46, 18 February 2007 (UTC)
:The problem with the improvements is that they have hiddent the books! [[User:RobinH|RobinH]] 11:45, 19 February 2007 (UTC)
:: The books weren't hidden they were made to show in a fixed area and scroll. I've tried something else now. Each time it loads shows a different good book. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[Image:Yin yang.svg|12px]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 22:58, 19 February 2007 (UTC)
:::I am worried that this approach is hiding what we do at Wikibooks. We create books to be read.
:::Here are some examples of commercial ebook sites:
:::http://www.ebooks.com/
:::http://www.free-ebooks.net/
:::http://www.gutenberg.org/wiki/Main_Page
:::http://www.ebookimpressions.com/
:::They tend to show their books as the most important feature.
:::[[User:RobinH|RobinH]] 11:23, 20 February 2007 (UTC)
:::: I really don't like the way the books are presented. Thats why I changed it previously and was trying different things. I believe the "library catalog" should remain side by side with the welcome box as it was previously. I was trying to make the "featured books" more consistent with how websites such as those listed above do so. None that I could tell, present as many featured books, do so without an image for the book, divide the books into subsections on the front page, or make there list of book categories completely unaccessible without scrolling. In other words, I don't think the changes make it look any more like a professional ebook website.
:::: To me it looks like you may of just simply reverted back to an earlier version. I'm worried that the current state of this module looks unprofessional and wonder whats the points in trying to show our best books if we also don't show our best in designing the front page. I really didn't want to have to say anything like this and I hope it doesn't come off the wrong way. I prefer do or improve than explain why I don't like something. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[Image:Yin yang.svg|12px]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 13:32, 20 February 2007 (UTC)
:::::This is just a test page and the list of books that I have included definitely needs an improved presentation, as you say. At present there are only about 40 books that could qualify as "nearly complete". I would like to suggest that we use this moment, when there are not many good books, to work out how to display books so that readers are attracted to them. In 6 months to a year we will need to have displays of books in the individual departments and only a few featured books on the front page. However, at this moment we have the opportunity to work out how to display individual books on the front page itself. We can then use this method of display later in the individual departments.
:::::So, what I am asking is that you, or someone else who is good at laying things out, should work out a way of displaying individual books. Obviously this should involve a picture and a summary but should be neater and prettier than my crude table! [[User:RobinH|RobinH]] 15:33, 20 February 2007 (UTC)
(reset indent) Derbeth made the following comment:
First of all, the table with "excellent books" (is "excellent" the best word? Aren't we exaggerating?) leaves too much space in left and right; this looks odd. Perhaps the solution is to make a two-column layout to use all of existing space? Look how long is the page now; it should be not like that, especially when category selection is deep on the bottom.
Secondly, I don't think that putting PDF's in front is a good idea. We are wiki and should be focused on wiki materials. PDF's are: inconsistent in look, require user to download a large ammount of data at once, may be seriously outdated and are something "external" to our project (internal links, categories do not work). I think that part of Wikipedia success is that you read and simultaniously fix mistakes you find. Showing out non-editable form of our books would be a shot in our foot in my opinion. So, the order should be the opposite: book titles should lead to books on our wiki (cover pages when possible), and links to PDF versions should be given as an option.
Less important things: table with Wikijunior books has an inconsistent look with the rest of the page. "Search and browse" with category selection together with list of sister projects leave to much white space on left and right. They should be aligned more horizontally; be wider but lower.
Things I particularly like are book descriptions with cover images; this brings some diversity to the main page. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 15:28, 20 February 2007 (UTC)
:Yes, we have to "lay out our stall" to be successful. We need to implement your suggestions:
:1. Replace "excellent etc."
:2. Make the display 2 column
:3. Make the link to the editable version with a "(PDF)" link. ie: "[[Special relativity]] [[Media:special relativity.pdf|(PDF)]]"
:4. Wikijunior should have same layout.
:Good ideas. Unfortunately (or fortunately from my point of view!) I am just about to go on holiday. [[User:RobinH|RobinH]] 15:45, 20 February 2007 (UTC)
== Using columns? ==
I like the idea of using two columns on the main page. Instead of the current setup, we could have the "Welcome!" message on the left, and a list of books on the right (likely a partial, randomly generated list of books, instead of the complete list). At the bottom we could have then the links to our bookshelves, and then the links to the sister projects. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 18:53, 20 February 2007 (UTC)
: I rather see welcome and the bookshelves at the top for the left and right column for the first row, followed by a partial and randomly generated list of books following using two columns followed by the sister projects links last. Neither the welcome nor bookshelves take up much screen space and should be easily accessible from the top. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[Image:Yin yang.svg|12px]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 19:21, 20 February 2007 (UTC)
== Current Version ==
I really like the current version, With the two columns up top, the 2x2 grid of books underneith, and then the sister project links. It looks very good on this screen, but I am currently on a wide-aspect screen, so more things are showing then they would on a smaller screen (the lab on campus has very large monitors). I think we are definately moving in the right direction. All we need now is to write short summaries of all our good books! --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 21:50, 20 February 2007 (UTC)
The current version looks better. However, with only 40 completed books we could, and should, put all of these books on the front page. I have provided an example in the [[Main_Page/test/Humanities_and_arts_department|Humanities and Arts department]] of how the departmental pages might be arranged if only a short listing of books is provided on the main page. Each department would have a full list of its best books up front. Eventually this might be extended into the page for each subject area with only the best at the departmental level. (The list of books in the arts dept is not complete) [[User:RobinH|RobinH]] 11:30, 21 February 2007 (UTC)
:I like that idea alot! every department should contain, right on the bookshelf, listings of the best books. This could include little blurbs like cover images and summaries. If we had a standardized system for displaying these blurbs, it would be a trivial matter for a bot to read them, and create templates for inclusion on the main page. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 14:48, 21 February 2007 (UTC)
::While I'm thinking about it, i'm going to create a suitable template for this. Book blurbs like this could be written in the template, and then all references to that template on the bookshelves could be easily picked out by a human or a bot, for inclusion on the main page. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 14:52, 21 February 2007 (UTC)
:::I like the look of the proposed front page listed here, and i also believe that this is the way forward. I think that giving each bookshelf it's own set of featured books as demonstrated at the arts and humanities departments would be a great help to the project and would ake it more accessible to those who wish to read rather than edit, whilst still maintaining the editor functionality. [[User:Urbane User|<span style="color:black"><b>Urbane User</b></span>]] [[User talk:Urbane User|<span style="color:green"><small>(Talk)</small></span>]] [[Special:Contributions/Urbane_User|<span style="color:green"><small>(Contributions)</small></span>]] 16:10, 21 February 2007 (UTC)
::::I'm only quickly scanning the comments here, but I like Urbane's idea of having some good book for each bookshelf, at least for the most part. I like this page a lot and think it looks nice. I'd have no problem with it becoming the new main page if we could add a few more good books to it. -[[User:Withinfocus|<span style="color:#000000">'''within'''</span>]][[User talk:Withinfocus|<span style="color:#7A7A7A">'''focus'''</span>]] 16:13, 25 February 2007 (UTC)
→ tab reset
I think we should restrict books listed on the main page to one book per department in order to show that Wikibooks has a broad range of textbooks. Each department could pick what books to show on its department page and than one book picked from that list could be used for the main page. Alternatively each time the page is loaded a different book is picked from the books listed on a department page. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[Image:Yin yang.svg|12px]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 16:52, 25 February 2007 (UTC)
:Why? When there are so few completed books we could list them all. [[User:RobinH|RobinH]] 13:28, 13 April 2007 (UTC)
::I have had a go at a layout, attempting to take onboard the comments and criticisms displayd on this page. Could people please take a look and comment. Thanks. It can be found at: [[User:Urbane/Sandbox]]. [[User:Urbane|<span style="color:black"><b>Urbane</b></span>]] [[User talk:Urbane|<span style="color:green"><small>(Talk)</small></span>]] [[Special:Contributions/Urbane|<span style="color:green"><small>(Contributions)</small></span>]] 15:45, 16 April 2007 (UTC)
:::I really like that version! Dedicating the whole right side of the page to completed books, and the left side to navigation is a good idea and it guarantees that books will be immediately visible for the readers. I would like to see the headline changed from "Completed Books" to "Good Books", but that's a minor complaint. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 15:54, 16 April 2007 (UTC)
::::Minor - doesn't render in my firefox at least - I get one column above another one offset (looks good tho) --[[User:Herbythyme|<span style="color:green">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 15:58, 16 April 2007 (UTC)
:::::<s>I'm doing it in firefox too, and I dont see an issue like that. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 16:05, 16 April 2007 (UTC)</s>
:::::I take that back, when i adjust the size of the window it doesnt render properly anymore. Maybe make it a table instead of floating divs? --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 16:06, 16 April 2007 (UTC)
::::::I have converted it to a table, does the page still render incorrectly for you? [[User:Urbane|<span style="color:black"><b>Urbane</b></span>]] [[User talk:Urbane|<span style="color:green"><small>(Talk)</small></span>]] [[Special:Contributions/Urbane|<span style="color:green"><small>(Contributions)</small></span>]] 16:25, 16 April 2007 (UTC)
::::::: It renders fine now. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 16:35, 16 April 2007 (UTC)
::: I think the "completed books", "features books" and "wikijunior book of the quarter" should all be on the right side. Books are always evolving and never in a state of completion. Featured books is the name of the project, so that should be the heading given to it. I think the edit column should be removed. I don't think the link to test2 makes sense, it was never intended to replace the community portal or directed at contributors only as seems to be implied. Other then that I agree it looks good. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[Image:Yin yang.svg|12px]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 16:22, 16 April 2007 (UTC)
:::: Renders fine now - full & windowed (at home, I'll try work tomorrow). The "sister projects" section looks a little odd as it "unbalances" the columns? Good tho --[[User:Herbythyme|<span style="color:green">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 17:03, 16 April 2007 (UTC)
::::Looks good to me as well. Why not transfer it to here and to the main page? [[User:RobinH|RobinH]] 09:42, 18 April 2007 (UTC)
::::: I've gone ahead and transfered the contents of [[Main Page/test2]] to the main page since its not so different from what was already the main page, the basic layout seems to be agreed on and Urbane's version seems to still need some work. At least this way in the mean time there are more featured books on the main page and its only a matter of editing [[Template:Main Page featured books]] to whatever gets agreed to. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[Image:Yin yang.svg|12px]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 12:19, 18 April 2007 (UTC)
::::: ! It looks good! --[[User:Remi0o|Remi]] 12:23, 18 April 2007 (UTC)
::::: Agreed, good change, and it gives us time to really get a better version ready, if we still want to make improvements. Small steps forward are always better then nothing at all. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 12:49, 18 April 2007 (UTC)
kk2zkr8jua6szttmm4rvtsr40c3ta7k
The Linux Kernel/Updating
0
9020
4640241
4632261
2026-06-13T19:15:20Z
Conan
3188
fix Template: prefix in doc links, trim trailing spaces
4640241
wikitext
text/x-wiki
{{status|75%}}
The most of Linux system distributions update the kernel automatically to recommended and tested release.
If you want to research your own copy of sources, compile it and run you can do it manually.
Here is short and fast starting instruction:
git clone <nowiki>git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git</nowiki>
cd linux
cp /boot/config-$(uname -r) .config # reuse current working config
make olddefconfig # configure using current config and default options
make localyesconfig # update current config converting local mods to core
make
sudo make install
Other make targets for configuration
* menuconfig
** requires libncurses5-dev
* gconfig
** requires libglade2-dev
* xconfig
** requires libqt4-dev
📖 References
: {{The Linux Kernel/doc|Installing the kernel from sources, admin guide|admin-guide/README.html#installing-the-kernel-source}}
: {{The Linux Kernel/doc|Kernel Build System|kbuild}}
📚 Further reading
: [https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/managing_monitoring_and_updating_the_kernel/the-linux-kernel#updating-the-kernel Updating the kernel on RHEL 10] [https://canonical-kernel-docs.readthedocs-hosted.com/latest/how-to/develop-customise/build-kernel/ How to build an Ubuntu Linux kernel]
: https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel
💾 Historical:
* https://linuxreviews.org/Kernel_Rebuild_Guide
{{BookCat}}
2m8m1t6cmvpu2iw0157enwor80oxm9y
Aros/User/Docs
0
13106
4640205
4639517
2026-06-13T16:58:36Z
Jeff1138
301139
4640205
wikitext
text/x-wiki
{{ArosNav}}
==What is AROS==
Google translation
[http://translate.google.com/translate?hl=en&sl=auto&tl=de&u=http%3A%2F%2Fen.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DAros%2FUser%2FDocs German], [http://translate.google.com/translate?hl=en&sl=auto&tl=nl&u=http%3A%2F%2Fen.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DAros%2FUser%2FDocs Dutch], [http://translate.google.com/translate?hl=en&sl=auto&tl=fr&u=http%3A%2F%2Fen.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DAros%2FUser%2FDocs French], [http://translate.google.com/translate?hl=en&sl=auto&tl=it&u=http%3A%2F%2Fen.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DAros%2FUser%2FDocs Italian],
[http://translate.google.com/translate?hl=en&sl=auto&tl=da&u=http%3A%2F%2Fen.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DAros%2FUser%2FDocs Danish],
[http://translate.google.com/translate?hl=en&sl=auto&tl=es&u=http%3A%2F%2Fen.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DAros%2FUser%2FDocs Spanish], [http://translate.google.com/translate?hl=en&sl=auto&tl=hi&u=http%3A%2F%2Fen.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DAros%2FUser%2FDocs Hindi], [http://translate.google.com/translate?hl=en&sl=auto&tl=zh-CN&u=http%3A%2F%2Fen.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DAros%2FUser%2FDocs Chinese],
[http://translate.google.com/translate?hl=en&sl=auto&tl=ru&u=http%3A%2F%2Fen.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DAros%2FUser%2FDocs Russian],
[http://translate.google.com/translate?hl=en&sl=auto&tl=pl&u=http%3A%2F%2Fen.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DAros%2FUser%2FDocs Polish], [http://translate.google.com/translate?hl=en&sl=auto&tl=ja&u=http%3A%2F%2Fen.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DAros%2FUser%2FDocs Japanese], [http://translate.google.com/translate?hl=en&sl=auto&tl=ko&u=http%3A%2F%2Fen.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DAros%2FUser%2FDocs Korean],
[http://translate.google.com/translate?hl=en&sl=auto&tl=pt&u=http%3A%2F%2Fen.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DAros%2FUser%2FDocs Portuguese],
*Computer Hardware
*AROS (operating system)
*Applications and Games
*User
[http://www.osnews.com/story/15819 AROS] is one of the intermediate levels between the computer hardware and the user. It is an open-source, clean-room implementation of AmigaOS 3.x that can be run on many different computer architectures. It runs primarily on PC x86 64bit and also PC 32bit hardware but also on motorola 68k and compatibles, some ARM and PowerPC.
This page will cover enough to be able to write the downloaded image to your preferred media, to run a LiveUSB, LiveCD or LiveDVD on your office/home PC (Live meaning you can test without changing your existing setup) and, ultimately, to use it.
Intel / AMD PC hardware support mostly covers the years 2000 to 2010 but work is under way to cover recent PC hardware. At the moment, AROS is '''not''' recommended to be '''installed''' on a working vital data holding machine. Instead, writing to and booting from a '''USB stick''' could be a much better option.
AROS is an hobby OS and can co-exist with Windows(TM), MacOSX(TM), Android(TM) or Linux(TM) and act as an alternative.
Unfortunately, Aros has few developers so upgrades and improvements can take [https://sourceforge.net/p/aros/mailman/aros-cvs/ time to appear].
AROS core is now [http://en.wikibooks.org/wiki/Aros/Developer/IncompleteAPIs ~80%] finished and is usable, so keep in mind that the software is still considered ALPHA/BETA and in development. Currently AROS is fun to play with on a curiosity level, but it is also interesting to program. AROS has some multimedia features and has internet access.
Most importantly, use AROS to its maximum potential as it stands now, find ways to have fun with it and share your experiences.
Good Sites to visit
: [https://www.arosworld.org/home.php Aros World User forum]
: [https://ae.arosworld.org/ Aros Exec site relocated]
: [https://arosnews.github.io/ AROS News]
: [https://www.facebook.com/ArosWorkshop/ Aros Workshop],
: [https://www.osnews.com/topic/amiga-aros/ OSNews]
: [https://www.reddit.com/r/aros/ Reddit]
: [https://archives.arosworld.org Aros Archives]
: [https://aminet.net/ Aminet]
: [http://www.amiga-news.de/en/ English translation of German site]
: [https://aros.sourceforge.io AROS]
: [https://github.com/aros-development-team/AROS Codebase]
: [https://github.com/aros-development-team/AROS/issues Issues] and [https://sourceforge.net/p/aros/bugs/ old defunct bugs site]
: [https://github.com/deadwood2 Deadwood's builds], [https://www.axrt.org/download/aros/v11/ v11 builds], [https://axrt.org/downloads-aros Updated i386 32bit PC builds],
: [https://github.com/ezrec Ezrec x86 m68k mirror of old svn version]
: [https://sites.google.com/view/arosone Aros One x86, x64]
: [https://tinyarosdistro.flazio.com/ Tiny Aros x86 and x64]
: [https://arosnews.github.io/aros-portable/ AROS portable USB3 stick images of hosted Aros One x86 and x64 on debian]
: [http://vmwaros.blogspot.com Icaros Desktop x86 now on sabbatical, very old edition]
: [https://sites.google.com/site/arosaspireone AspireOS, of the netbook Aspire One, very old edition]
: [http://arosalive.blogspot.co.uk/p/10-basic-aros-how-tos-tutorials.html Basic How To guides]
: [http://arosgamer.blogspot.co.uk/ AROS Playground], [http://thewetmachine.net/tag/aros/ Jess Wet Machine], [https://aroshacking.wordpress.com/ Jon Robertson's AROS Experiences and FPC Free Pascal], [],
:[http://www.apollo-accelerators.com/ Apollo Accelerators m68k], [http://www.amigablogs.net/ Amiga Blogs], [http://blog.a-eon.biz/blog/ Trevor Dickinson blog], [http://www.pegasos.org/index.php Genesi activity],
: [https://forum.amiga.org/ Amiga OS AOS 3.x forum]
: [http://eab.abime.net/ EAB Amiga]
: [http://www.amigaworld.net/ AmigaWorld]
: [http://www.ppa.pl/ Polish Amiga Like News]
: [http://www.apollo-core.com/ Apollo Forum]
: [https://amigaalive.blogspot.com/ AmigaAlive]
: [https://www.amigalove.com/software Disk Mags]
: [https://amigachristmastree.ultimateamiga.com/ Xmas Amiga Game Jam]
: [https://www.reddit.com/r/amiga/ Amiga]
== Distributions aka Distros ==
For end users there are distributions (ready made with selected apps aiming to be easy to use), mostly created and maintained by one person in their own workflow/style. They reuse the nightly boot compiles to suit their needs and possibly other end users. You are free to create your own if required.
* For native 64bit Intel/AMD: [https://sites.google.com/view/arosone Aros One x64], [https://tinyarosdistro.flazio.com/ Tiny Aros],
* For native 32bit Intel/AMD which will run on 64bit machines: [https://sites.google.com/view/arosone Aros One x86], [https://www.tinyaros.it/ Tiny Aros],
* For native 68k [https://sites.google.com/view/arosone Aros One m68k], [http://www.aros-platform.de/ AROS Vision],
* For hosted Linux usb drive image [https://arosnews.github.io/aros-portable/ x64 Debian hosted version of Aros One],
* For hosted ARM there is Aeros and wip native RaspberryPi
AROS was originally developed on Linux but can run on an Intel-based Linux distro as an app. As time has gone on, it can be run as an app on many more operating systems (Windows, FreeBSD, Linux and limited on MacOS). This may sound strange: an OS running on top of another OS.
Basically, this is to take advantage of drivers (audio, internet, graphics, etc.) and compiler environments, in the existing OS, with which people may be already familiar. The term we use for what AROS does is "Hosted".
AROS Native is the term coined to describe AROS being run without any OS underneath it. It runs alone just like AmigaOS(TM) did. As this version does not benefit from "Hosted" drivers, dedicated ones have to be ported/written. Hence the smaller range of supported hardware / peripherals. We have other pages highlighting this support
AROS is open source so basically everyone can take part. The source is public on github and there are new commits most days. AROS is automatically compiled daily, result are the nightly builds hosted on Sourceforge. The nightly builds are only used for testing changes, testing software and the starting point for distribution maintainers or even your own distribution. They are very basic, miss some functionality and apps like web browsers and are not suited for end users.
* The [https://sourceforge.net/projects/aros/files/nightly2/ Nightly2], [http://aros.sourceforge.net/download.php nightly builds File Release Service] or [http://aros.sourceforge.net/downloads/ Sourceforge Project Web builds] are made automatically every night directly from the Github and in the past, SVN (Subversion) tree and contain the latest code for the AROS operating system. It should be noted that the builds have not been tested in any way and can be horrible broken.
There are two standards ABIv0 (old) and ABIv1 (newest).
*ABIv1 ABIv11 nightly builds for 64bit PC builds, it is where the most work is done by developers
*ABIv0 is needed for 32bit (which also runs on 64bit) intel / amd distributions
==Media==
AROS media tends to boot in this tier list of media types, first internal HDD SSD, CD DVD drive, and finally usb drive (last two can depend on bios boot order)
* USB .VHD
[https://sites.google.com/view/arosone Aros One x86 and x64], with md5 below
<pre>
7dd7119ab3e56d75ee852c137226b4d7 *ArosOne-USB-v1.2-x86_64-v11.zip
cf906eeaad4a83b3520b1896bdc6b0d3 *ArosOne-USB-v1.1-x86_64-v11.zip
e2eb8fe8cfd61c567b0152a61cf85251 *ArosOne-x86-v2.8-USB-IMG.zip
559909c75c2f56472c74267a7d075355 *ArosOne-x86-v2.7-USB-IMG.zip
93da5898508c1a8c05bb8991ab7bd117 *AROS One Image-USB-2.4.zip
59fcabd7090e47f12d54f7eb78cf0f45 *ArosOne-x86-v2.2-USB-Image.zip
24fb8de726ae8fc5fe5bac6d30f03dc5 ArosOne-x86-v2.0-USB-Image.zip
f3d725e990072edce633b59747911b6b ArosOne-x86-v1.8-USB-IMG.zip
e089a24ae310e92fcc407a0125602ce8 Aros-One x86-IMG-USB-v1.6.zip
</pre>
[https://tinyaros.flazio.com/ Tiny AROS]
22bc993625b7c75b17263c0cc7e7baaa *Tiny Aros_copy.vhd (March 2024)
There is usually a vhd image inside the zip that can be written to USB sticks which is so much faster than the old ISO written to physical CD DVD method. This .vhd can be written to an USB stick / ssd with these pieces of software below but it will erase the previous contents from the usb
Windows - [https://www.raspberrypi.com/software/ RPi Raspberry Imager, use custom and see all files], [https://hddguru.com/software/HDD-Raw-Copy-Tool/ HDD-Raw-Copy-Tool], [https://rufus.ie/ Rufus up to version 3.20 may work with VirtualBox HD vhd images with Win7 but not some Rufus 4.x versions], [https://etcher.balena.io/ Balena Etcher but may spy on you],
Linux - [https://www.raspberrypi.com/software/ Raspberry Imager Ubuntu], Suse Image / Multi writer, dd,
Mac -
* Virtual Machine .ISO or CDs DVDs
The native iso images are currently not compatible with Ventoy, Yumi, MultiBootUSB, Easy2Boot E2B, or similar
<pre>
11c8a147fcad7ecf52ae3a43e1934b69 *ArosOne-DVD-v1.2-x86_64-v11.zip
f93053d3b9ccf304d7e6ac3389e1987b *ArosOne-DVD-v1.1-x86_64-v11.zip
86d808a40dc7be389a758799a9b4f595 *ArosOne-x86-v2.0-ISO-DVD.zip
f1fc8599ef6a39e5df394e0f41d55526 *AROS-One-x86-ISO-DVD-v1.6.zip
</pre>
You can use a virtual emulator like VirtualBox, VMWare to mount the iso image which can then be used to boot and/or install to USB.
no software can write an AROS ISO to a Pendrive. The author of ‘Rufus’ (who used an Amiga 500 as a child) once tried, but when he saw the system composition, he said he was unable to do it.
The solution is to boot the ISO from a VM (WMware, VBox), then install the AROS build on the Pendrive, which will eventually become a Live Pendrive that can be booted on a PC.
The only precaution is that in some cases it is necessary to thoroughly clean the Pendrive of any partitions and remove any bootloader that is not AROS. The Pendrive must remain raw without any partitions.
You can clean the USB stick on a PC with a program that manages hard disks. You need to do a partition wipe. On some USB sticks, you can clean it with InstallAROS.
Previously the only installation option was CD-RW or DVD-RW, since the whole system can be burnt onto a single disk and can be reused when the next version is released. Good branded discs like Taiyo Yuden (later JVC) or Verbatim should be used to reduce frustration later. The days for this media is gone but kept here for information
Since nobody currently sells AROS on any other media, you will need access to a CD/DVD burner to create the installation disk yourself. After it is on a CD or DVD, then access and writing to USB pendrives becomes available (this should be viewed as an outdated or last resort alternative method now), as well as using good USB manufacturers like Sandisk, Kingston, etc. rather than some other no-names.
Try burning it to a CD-RW or DVD-RW using your CD/DVD burning program (most burning software have a burn iso option). The ideal writing speed is 2x or 4x, higher speeds can give errors and problems. Check the writing integrity of your CD or DVD if your software has an option to do so before going any further.
Standalone portable usb cd dvd drives do not boot physical burnt discs, please use an internal ide sata drive instead.
* SD-card
For ARM Pi Aros, copy the files onto a FAT32 formatted SD card.
==Booting==
The LiveUSB, and in the past LiveCD LiveDVD, is designed to trial (test drive) various operating systems without having to install them to your working system.
Since 2011, UEFI was introduced to replace the original PC BIOS which made booting media more confusing. Some changes in the UEFI/bios may be needed
*go into the bios using esc, f2 or f? and disable the Security -> Secure Boot and maybe apply option for Legacy IDE mode
*you may have to press F9, F10 or F12 or p on boot up to present a device boot options like USB or CD/DVD
*disable the Fast Boot config so it would recognize portable DVD-drive and changed the Boot-sequence
Secure boot was introduced by Microsoft and later consortium control what operating systems work with Secure Boot via shims.
For Aros, it is best to disable or be able to change Secure Boot (if you dual boot with Windows this may cause issues with Window boots after)
The grub part of the boot should be fully automatic, and you should see a multiple choice graphic card screen after 10 seconds for USB or over 30s CDs and DVDs.
After the grub graphics choice, AROS takes over the booting and any issues can arise here
=====Advice for various machines=====
Some of the stages involved and shown on the display in a typical AROS boot start up
<pre>
[MultiLoader]
[ELF Loader]
[Boot]
[HPET]
[Kernel:ACPI]
[Kernel:APIC-IA32]
[Kernel:SMP APIC]
[HiddStorage]
ACPI: ????
ACPI Error
[ACPI]AcpiOs????
[BattClock] Got RTC century offset 0x32 from ACPI
[PCI] Scanning bus ?
[AHCI] Sata
[Vesa] only if vesa is chosen as graphics option
[ATA] detect hd & cd drives
[ATA0?] ata-identity
[packet] fat.handler be.handler, etc.
[DOS]
[Storage:Bus]
[Storage:Controller]
[MSS] USB setup
[ehciInit] Port ? maps to controller ?
[I2C]
[ATI]
[drm] nouveau
[AROSTCP] if you have network driver prefs set up to start when booting
</pre>
; If boot fails, please give us some indication (pictures or videos) where the boot stops and the message(s) on screen.
AROS's native SATA/AHCI driver doesn't always work. If you get errors related to ahci.device, try disabling it. At your chosen boot entry in the GRUB menu, Press E, scroll down to the ahci.device entry, and add a # or ; at the start of that line or delete it with Ctrl-K. Then press Ctrl-X or F10 to boot.
If your disk isn't accessible at all with this change, you might need to change the SATA controller to IDE legacy mode in the BIOS: however, making this change will likely cause problems booting Windows on the same machine (if it's already installed). To disable ahci.device permanently, edit the text file "SYS:Arch/pc/grub/grub.cfg", and remove the ahci.device line from all boot entries you intend to use.
SATA AHCI Timeout while waiting for device to complete operations with BIOS SATA entry set to AHCI mode stops at "waiting for bootable media" screen, changing BIOS SATA setting back to IDE mode may allow it to continue booting
The ATA driver doesn't always work. If you get errors related to ata.device, try using the alternative in sys:devs/alt which is an older version. Press E when your chosen boot entry is highlighted in the GRUB menu, scroll down to the ata.device entry, and change it to read "module /Devs/Alt/ata.device". Then press Ctrl-X to boot. To make this change permanent, edit the text file "SYS:Arch/pc/grub/grub.cfg", and change the path to ata.device in all boot entries you intend to use.
Further options (removing the " ") to add to the GRUB menus to disable certain other components for debugging:
<pre>
Disable AHCI "AHCI=disable"
Disable NVME "NVME=disable"
Disable ATA: "ATA=disable"
Disable ATA: "ATA=nopci,nolegacy"
ATA safe mode: "ATA=nodma,32bit"
Disable IDE from SATA: "ATA=32bit,nosata2pata"
VIA / SIS with cdrom read io errors "ATA=nodma,nopoll"
noacpi all [PCI] devices to be invisible to AROS. disk drives work but network, sound won't
Set AHCI "AHCI=force150/force300/force600"
Disable AHCI/SATA: comment out with a # ; or remove ahci.device line with Ctrl-K
Disable USB: comment out # ; or remove pciusb.device and poseidon.library lines with Ctrl-K
Disable native graphics: "nomonitors"
USB3 "USB=xhci"
</pre>
Other useful grub command line options - nomonitors, noacpi, vesahack, nopoll
Press Ctrl and X together (or F10) to exit and boot with the new options. Just experiment with different variations until successful. Those working options will need to be reused with every reboot of AROS until you can edit the grub.cfg and make it permanent i.e. install to hard disk or USB.
* If you use VESA mode, you can see the debug log if you add 'vesahack' to the command line. This will set up split-screen mode. In the upper half you'll see AROS screen, in the bottom - debug log.
* ACPI ie. PCI hardware - If you get crashes at early boot, try adding 'NOACPI' to the command line
If you're having boot issues and have a null modem cable and a spare pc, a boot log is always useful. Edit your grub line to include debug=serial but would try with an with sysdebug=all in the line later as it can cause issues booting on machines with sysdebug=all enabled (corrupts the cpu initialization).
However, if you feel you have found a genuine bug/fault in AROS that needs attention, please use the [http://sourceforge.net/tracker/?atid=439463&group_id=43586&func=browse bug submission form] to record as much information about what happened, why, and what hardware etc. you have so that people may try to assist you
For Virtual machines VMWare VirtualBox, etc., attach and press play to start the ISO image
If booting hasn't worked then it could be down to Bios/UEFI settings or USB3 (2014 onwards)
=====nvme.device=====
Since 2018, nvme drives are standard on most machines
Now as far as hardware goes on a newer machine with an NVME drive you may need to add NVME=disable as the NVME driver could potentially cause lockups.
=====AHCI=====
Starting taking over since 2011 on a lot of machines
* Check that UEFI (replacement for PC BIOS) has options set to remove UEFI SecureBoot option and apply CSM
* SATA drive is set for Legacy or a mixture AHCI/IDE and not AHCI
AHCI sata can be very difficult to get working
Most Windows installs are already set to AHCI sata, changing this to a legacy IDE mode setting can help but please check if Windows will still boot. Some hardware like Lenovo laptops do not always like being set in legacy mode so only use as a last resort and aware of issues that can be caused.
Now as far as hardware goes on a newer machine with an NVME drive you may need to add NVME=disable as the NVME driver could potentially cause lockups.
With a 16C/32T chip machine, disable SMT and it should boot.
=====ata.device for old BIOS's =====
Pre 2010 this was the de facto standard method of providing settings to the computer at a lower level
Some adjustments to the BIOS setup options are necessary (usually by pressing a key like DEL, F1, F2, F12 or ESC, p on the very early boot up of the computer).
*Adjust booting options like moving USB hdd, CDROM higher as it is quite often disabled or placed lower by default, i.e. USB hdd, CD/DVD are placed at the top above the hard drive. Try looking here [http://www.windowsreinstall.com/articles/bios/ Windows] or [http://www.hiren.info/pages/bios-boot-cdrom Bios] or [http://www.wikihow.com/Set-Bios-to-Boot-from-a-CD-ROM Boot] or web search "BIOS BOOT CDROM"
* At the '''SAME''' time, check if the SATA/AHCI option is set to Emulate or IDE Legacy, though this can have '''issues''' with any OS already on the hard disk. If in doubt, do nothing and seek advice.
* check that under BIOS settings you '''DO NOT''' have plug&play OS selected as Aros at this point is unable to route interrupts on its own and needs the BIOS to do that.
'''Save''' options changed at the end.
PCITool can show if the motherboard chipset is in IDE mode.
Class = 0x01 means STORAGE, Subclass = 0x01 means IDE. Also ProductID 0x3a20 resolves to non-AHCI mode in Intel ICH10 documentation.
==Installing==
We have a separate section [https://en.wikibooks.org/wiki/Aros/Platforms/x86_installing here]
We have a specific section for each CPU platform under the Specific platforms in the NavBar navigation bar on the right hand side menu
error code (-6) when using the ahci.device (has writing to disk problem but not reading) is enabled. change this line in your grub and reboot
<pre>
#module /Devs/ahci.device << disable
module /Devs/Alt/ata.device << add this line instead
</pre>
==File structure overview==
AROS' directory structure is mostly identical to AmigaOS directory structure, with some additions.
AROS: or SYS: also known as DH0: (i.e. the drive partition with AROS system) has the following simplified list of the main drawers (Amigas term for directories/folders).
{| class="wikitable"
|boot:
| grub bootloader
|----
|C:
| small apps, where AROS looks first for applications/games but will look at Tools, System afterwards
|----
|Devs:
| .audio, .hidd, network, graphics and other hardware device drivers are stored
|----
|L:
| where .handler files go
|----
|Libs:
| where .library files go
|----
|Prefs:
| applications that adjust or setup AROS functions and capabilities
|----
|S:
| startup scripts (for the aros boot process '''not''' grub) are stored here
|----
|Storage:
| place to keep old or alternative device drivers
|----
|System:
| applications associated with AROS operating system
|----
|Tools:
| extra applications
|----
|Utilities:
| extra applications
|----
|WBStartup:
| copy applications here to autostart with needed icons, drawers, data etc
|----
|}
See [[Aros/User/DOS#Drives.2C_Files.2C_Assigns.2C_Directories|DOS manual: Drives, Files, Assigns, Directories]]
=== Filesystem ===
Whilst the kernel is the heart, the filesystem is the blood of the system they are split into two categories (only a few are supported)
<pre>
Journalling - ZFS XFS ext4 NTFS SFS PFS3
Non-journaling - BtrFS ext2 exFAT FAT32(VFAT) FFS
</pre>
Filesystem options for AROS to install
* SFS default
* Professional File System PFS3 [http://eab.abime.net/showthread.php?t=52234&highlight=pfs3+free&page=13 only on motorola 68k at the moment]
* FFS very old now but left in for legacy usage
Other [https://archives.arosworld.org/index.php?function=browse&cat=driver/filesystem filesystems] for storage purposes
* FAT32 favorite as most OSs support
* NTFS (can lock AROS)
* exFAT
The only filesystems that really NEED defragging (i.e. disk tidy up) are from Microsoft(TM) - exFAT/VFAT/NTFS
*SFS tries to do exactly the same thing, but in certain cases it doesn't do as well as PFS. But you can defrag SFS
*PFS *minimises* the amount of fragmentation, but does not automatically defrags as it saves files to the drive
The setup of the below filesystems is usually done by the distro maintainer but if not....
<pre>
Copy L/exfat-handler L:
DOSDriver or Mountlist entry for an exFAT partition make sure that the FileSystem and Handler are set as follows:
FileSystem = exfat-handler
DosType = 0x46415458
</pre>
<pre>
Copy L/ntfs3g-handler L:
DOSDriver or Mountlist entry for an NTFS partition make sure that the FileSystem and Handler are set as follows:
FileSystem = ntfs3g-handler
DosType = 0x4e544653
Also to make a read-only mount you can set:
Control = ro
</pre>
The Smart File System (SFS) is a journaling filesystem used on Amiga computers and AmigaOS-derived operating systems. It is designed for performance, scalability and integrity, offering improvements over standard Amiga filesystems as well as some special or unique features.
SFS is written in C and was originally created and released as freeware in 1998 by John Hendrikx. After the original author left the Amiga scene in 2000, the source code to SFS was released and its development continued by Ralph Schmidt in MorphOS.
Its development has now forked; as well as the original Amiga version, there are now versions for MorphOS, AROS, AmigaOS 3, and a version for AmigaOS 4, which have different feature sets but remain compatible to each other. Versions for AROS, AmigaOS and MorphOS are based on different branches.
In addition, there is a driver for Linux to read Amiga SFS volumes, GRUB natively supports it and there are free drivers to use it from UEFI. The Linux version is [http://home.elka.pw.edu.pl/~mszyprow/programy/asfs/ independent code].
SFS (Smart File System) partially defragments itself while the filesystem is in use. The defragmentation process is almost completely stateless
AROS SFS version has a 120GB partition size limit on hard disks and DVDs current 4gig size limit.
The sources for the MorphOS 64-bit version of SFS were available but no porting to AROS has happened so far due to endian issues, etc.
SFS Tools
* GUI - arSFSDoctor,
* CLI - sfscheck , [http://www.portacall.org/ sfsundelete], sfsformat, setcache hits a usability ceiling around the 10GB / 100,000 file mark,
sfscheck dh0: seek purge fraglist defragment
If there are two simultaneous file writes in progress and you reboot machine (or it locks up or crashes) you may end up with a corrupted filesystem. Although arSFSDoctor may help, you might have to copy the files to another partition, format the partition with the errors on and copy the files back.
A bit error on the harddisk would give this error.
PFS / SFS are way more advanced and much much faster than the FFS. FFS is supported for legacy reasons only.
The Professional File System (PFS) is a filesystem originally developed commercially for the Amiga and now distributed on Aminet with a 4-clause BSD license. It is a compatible successor of AmiFileSafe (AFS), with an emphasis on added reliability and speed compared to standard Amiga filesystems. It also features multi-user abilities like the older MuFS.
PFS has so many advantages including the important things, speed, the ability to recover all deleted files even simply same name by typing the command ". Deldir" convenient if done in Directory Opus, virtually deleted files are copied normally as if they had never been deleted, other convenience is to not ever invalidate the filesystem, just put it on top of the startup-sequence command "diskvalid", which automatically corrects any irregularities in the system startup; PFS also provides a device for floppy which makes them very fast and takes advantage of the full capacity of the floppy including the area dedicated to the bootloader.
The device is split into two main areas. At the beginning of the device is the metadata section, which consists of a root block, and a generic array of blocks that can be allocated to store metadata. The rest of the device is another contiguous generic array of blocks that can be allocated to store data. The metadata section usually uses a few percent of the device, depending on the size of the device.
The metadata is stored as a tree of single blocks in the metadata section. The entire directory structure is recorded in the metadata, so the data section purely contains data from files. The metadata describes the location of data in files with extents of blocks, which makes the metadata quite compact.
When a metadata update occurs, the system looks at the block containing the metadata to be changed, and copies it to a newly allocated block from the metadata section, with the change made, then it recursively changes the metadata in the block that points to that block in the same way. This way, eventually the root block needs to be changed, which causes the atomic metadata update.
The filesystem is reasonably good at keeping files unfragmented, although there is a defragmentation tool available which will work on an online filesystem ie whilst being used.
It was the first filesystem to introduce the concept of the Recycle Bin natively at filesystem-level to the Amiga, holding the last few deleted files in a hidden directory on the disk root.
PFS version 5.3 was developed in C and a small portion of assembly code by Michiel Pelt. There are endian issues to be overcome and adapting the small amount of m68k to C before use on intel based machines, etc.
Autoupdate of files in a directory is already implemented in Wanderer, but not all file systems handle dos.library/StartNotify() in its full extent. It seems to work correctly in Ram Disk (thanks to AmberRAM handler), and it also works on SFS formatted devices. Other file systems might not yet have it implemented correctly though.
The PC equivalent of the Amiga's RDB is the master boot record (MBR).
===Installing Applications===
The typical means to install applications under AROS/AmigaOS involves simply copying/extracting the archive (.zip .lha .rar .tar.gz) file containing the applications files to your own desired location i.e. drawer/folder. Once extracted, launching it by double clicking on an icon (recommended) or using the shell (alternative). Generally, this is on a separate partition from your AROS system files, however in reality it can be any location - including RAM: if you don't want it staying around too long especially when you switch off.
At some time in the future it may be desirable for AROS to have a package-manager like subsystem able to retrieve information online about packages available for AROS and whether they update anything you currently have installed, however at the moment no such ability exists.
===User Data files===
AmigaOS has no notion of a default location to store user data files, and presently neither does AROS - though it may be desirable at some time to provide a common start location.
For most people, extra small FAT32 NTFS partition(s) as well as the usual Sys: (DH0:) and Work: (DH1:) / Briefcase (DU1:) partitions to store data seems preferable. Especially if a reinstall is ever needed.
===User Environment configuration files===
AmigaOS/AROS stores persistent system configuration data in directory assigned to ENVARC:. This, by default, points to SYS:Prefs/EnvArc.
During boot a copy is made to another assign, ENV:, which is for runtime usage. Changes to the files here will not survive a reboot.
Setting the env variables is generally done by applications themselves, or when necessary by the user using the SetEnv command. SetEnv has a SAVE switch to force the persistent copy in ENVARC: to be written also for when you are sure the change should be permanent.
Under the standard installation of AmigaOS style OSs, ENVARC: is copied to ENV: upon startup, which, if you have a hard drive installation, is in RAM:, hence, ENV: ends up being RAM:Env.
ENVARC: is the Environment Archive, which is the permanent copy of ENV:, which is the Environment. It's roughly like the Registry in Windoze.
Most programs do (and all should) store their settings in ENVARC: somewhere, and load them from ENV:. The effect of this can be seen in the Preference editors. If you Save your preferences, they go in ENVARC: and ENV:. If you click Use, they only go in ENV:. If you reboot, normally, anything saved to ENV: is lost, and is replaced with a copy of what is in ENVARC:.
you can set the default public screen for any tool started from a cli with the PUBSCREEN variable. So open the pubscreen, set PUBSCREEN to the name and start newcli for example, then the new cli window (and all following windows opened from that window) will appear on that public screen.
===Drivers===
All hardware support is placed in the Devs drawer (folder/directory). The network drivers <something.device> go in the Networks sub-drawer. Audio drivers <something.audio> are put in the AHI sub-drawer. Graphics drivers <something.hidd> are put in the Drivers sub-drawer.
==Configuring==
AROS has mainly decided on a MUI-like requester/menu/ clone so changing the background, icons, font, menus can be done with SYS:Prefs/Zune
AROS has several desktop GUI front ends like
* DOpus5 Magellan II, Wanderer and Scalos (medium)
* AROS Workbench, Workbook (smaller)
File / Directory managers like Dopus4, MCAmiga,
App Launch Shortcuts like FKey, Amistart, BoingIconBar, right mouse click on magellan, wanderer desktop, etc.
General usability decisions - Prefs/IControl,
CLI in icon's tooltypes means 'run it as if it was run from shell'
If, on the other hand, the WB parameter (or no parameter) is present in Tooltypes, Wanderer will execute the binary and, if provided, the options included in Tooltypes.
WBxCLI is very useful for adding options to DOS Commands.
Important: AROS has a different way of managing icons. If you have an executable file, you will never be able to add a project icon. AROS will automatically recognise that it is an executable file and will transform the icon into a tool icon.
Most apps can be autostarted by copying into SYS:WBStartup directory folder
e.g. WeatherBar.zip can be downloaded, unzip and the contents of the zip copied to wbstartup folder
ClicktoFront and .info to SYS:WBStartup so always be activated when turning on the computer
or add a text line to user-startup is SYS:S (scripts version of wbstartup)
e.g. standard Amiga / AROS does not allow clicking of background windows to come to the front to make it easy to get to the window you need but it has the ability if these apps are copied again to WBStartUp or are added to SYS:S/user-startup script
run QUIET sys:Tools/Commodities/ClickToFront >Nil:
run QUIET sys:Tools/Commodities/DepthMenu >Nil:
run QUIET sys:Tools/Commodities/Blanker seconds=300 >Nil:
Exchange controls Commodities and can be opened with alt, ctrl, h
Although there are heaps of docks, menus and other launcher programs on the Amiga like OSs, FKey has got to be one of the quickest and less complicated ways to launch programs, and it comes with the OS.
In SYS:Tools/Commodities, the FKey commodity (Ctrl Alt F) allows you to make actions assigned to some combinations of keys
<pre>
ALT TAB Cycle Windows
Cycle Screens
Enlarge Window
Shrink Window
Toggle Window Size
Insert Text
Run Program
Run Arexx Script
</pre>
e.g.
<pre>
LAmiga F1 = Avail Flush
LAmiga F2 = Open Prefs
LAmiga F3 = Finder
Alt Tab = Cycle Windows
LAmiga Tab or M = Cycle Screens
Alt Up arrow = Enlarge Window
Alt Down arrow = Shrink Window
Alt Home = Toggle Window Size
= Insert Text
LAmiga e = Run Program
= Run Arexx Script
</pre>
If your FKey GUI pops up when you start your Workbench up and you don't want it to, click once on the icon, go to the Icons-Information in the menu and make sure it has the tooltype set "CX_POPUP=NO".
Now let's launch it and assign the locale switching. After you double-click on FKey icon, launch the Exchange, choose the FKey from list and click the Show button. This will invoke the FKey window. You can see the ALT TAB in list assigned to window switching. Now enter the first key combination, say, ALT Z and go to the right panel. Choose Launch the program from pulldown menu and enter SYS:Prefs/Input as an argument. Append the USE switch and english preset name to the string as shown:
SYS:Prefs/Input USE SYS:Prefs/Presets/english
Click on the New Button to add the another combination. Now set the combination for your locale as shown above, replacing English name with your preset name. Click New button again and then Save Settings. Now you can use defined combinations to switch the layouts.
Although not needed by most users, the system wide ARexx script capability can manage many file manipulation task(s) but this would work only with those program that support [https://en.wikibooks.org/wiki/Aros/Developer/Docs/Rexx ARexx] like
*Desktop - DOpus5, Scalos
*Dock - FKey,
*Files - Multiview, DOpus4,
*Internet Apps - Odyssey, WookieChat,
*General Apps -
the shell can be modified with escape strings but not needed in most cases
Common Keyboard Shortcuts
<pre>
RAlt Right Alt Key
LAlt Left Alt Key
RWinKey Right Windows Key
LWinKey Left Windows Key
RAmiga Right Amiga Key (if one)
LAmiga Left Amiga Key (if one)
</pre>
;Bootup Options
:Spacebar during boot, enters the bootmenu which allows a boot without startup sequence, etc
;Left Click
:LAmiga = LWinKey = F11
;Right Click
:RAmiga = Help = F12
;Mark
:RAmiga and B
;Cut
:RAmiga and X
;Copy
:RAmiga and C
;Paste
:RAmiga and V
;Search
:RAmiga and S
;Mouse Movement
LAmiga and together with arrow keys - shift as well at the same time as well to move faster
;Mouse Selection
LAmiga and LAlt to select
;Screen Switching
LAmiga and M or N
;HELP key
Can sometimes be mapped to F11 but can be changed via FKey
ComKeyRemapper or AmigaKeyremapper could swap RAmiga to another key press
===DOpus 5 Directory Opus Magellan II===
Dopus 5.x is a whole desktop replacement on the Amiga Workbench (Desktop)
DirectoryOpus app will assign DOpus5: to it's PROGDIR: automatically but if not add the below (edit SYS:System to suit where Dopus5 was installed) to your startup-sequence
<pre>
Assign DOpus5: SYS:System/DOpus5
DOpus5:DirectoryOpus
;DOpus5:C/LoadDB
</pre>
Left mouse button clicked twice on the desktop background brings up the Device List window.
Green strip notifies SRCE (source) and if another is open it will be red for DEST (destination). clicking on the red strip changes to green
Word list of actions with a left mouse click on the DOWN Arrow and directory stuff with < button which mirrors the icons at the top of each lister
single-key hotkeys? exactly the same as in dopus4, edit your functions (button bank, toolbar, menus etc.) and under the flags gadget is a key gadget, just click in it and press the key you want to use.
As for the extra text field... try turning off Extended lister key selection in environment / miscellaneous.
Shift and click on the icon - runs the icon
DOpus5 Magellan 2 Directory folder drawer structure
<pre>
ARexx - Arexx scripts .rexx and .dopus5 to perform tasks
Buttons -
Commands -
Desktop -
Environment - two environment files bundled:
default gets loaded if you run DOpus as a normal app
workbench gets loaded if you run DOpus as a WB Replacement (with LoadDB on startup)
Filetypes -
Groups -
Icons -
Images -
Modules - compiled tasks
Settings -
Sounds -
Themes -
WBStartup - Use this if standard SYS:WBStartup gives cannot wait error messages
</pre>
Settings -> Environment -> Display -> Workbench (Use)
*Settings -> Clock (add to title bar as well as the date)
*Toolbar -> Editor (Right Win Key together with 1) for Copy, Move, Delete, etc above the Device List
*Menu -> (Right Win Key together with 2)
*Buttons -> Editor (Right Win Key together with 3)
*Settings -> Environment (Right Win key together with 4) for Backgrounds, etc
*File Types -> (Right Win key together with 5)
*User Menus -> (Right Win key together with 6)
*Hotkeys -> Setup for quick shortcut keypresses (Right Win Key together with 7)
*Scripts -> (Right Win key together with 8)
*Icon Positioning -> (Right Win key together with 9)
Each Dopus5 theme are stored in a separate directory, named appropriately, which contains further sub directories
* Font (amiga bitmap fonts)
* Screens (jpg or any picture supported by datatypes but not animations)
* Sounds (wav but not iff 8svx )
* Icons (png newicons glowicons )
* Patterns (iff jpg png )
Just use wildcards in background filenames and you get a different picture every reboot
For example, configure in Environment -> Backgrounds -> Desktop something like this:
<pre>
Work:Pictures/Backgrounds/#?
...or
Work:Pictures/back#?.iff
...etc...
</pre>
[https://aminet.net/util/dopus arcdir and themes]
If you want to change the backdrop pic after a period of time, paste below into a text file called dopusrandbg.rexx and place in DOPus5:ARexx
<pre>
/* Changes DOpus background image forever
Start with:
Run >NIL: RX dopusrandbg.rexx
*/
if ~show("L", "rexxsupport.library") then do
if ~addlib("rexxsupport.library", 0, -30,0) then exit 10
end
/* Configure these two lines for your needs: */
minutes=1
picpath="Work:Pics/#?.iff"
address DOPUS.1
do forever
call delay 3000*minutes
dopus set background '"'picpath'"' desktop center custom
dopus refresh background custom
end
</pre>
If you don't want to use/open rexxsupport.library just for DELAY() then use the DOS Wait command
<pre>
/* random diropus backdrop changer */
/* by paul trauth, 1999 */
/* to do: non-repeatable randomness? */
options results
parse arg path
address DOPUS.1
/* get current backdrop pattern so it actually changes */
dopus query background desktop custom
currentpatt=result
lastslash=lastpos('/',currentpatt)
currentpatt=substr(currentpatt,lastslash+1,(pos('"',currentpatt,2)-lastslash-1))
dir=showdir(path,'FILE','/')
num=0
do while dir~=''
where=pos('/',dir)
if where>0 then do
file=left(dir,where-1)
dir=right(dir,length(dir)-where)
end
else do
file=dir
dir=''
end
if left(file,1) ~='.' & file~=currentpatt then
do
pics.num=file
num=num+1
end
end
which=random(0,num-1,time(s))
newbg='"'||path||'/'||pics.which||'"'
dopus set background newbg desktop tile precision exact
dopus set background on
dopus refresh background
</pre>
Clock format commands available are defined by locale. They are:
<pre>
%a - abbreviated weekday name
%A - weekday name
%b - abbreviated month name
%B - month name
%c - same as "%a %b %d %H:%M:%S %Y"
%d - day number with leading 0s
%D - same as "%m/%d/%y"
%e - day number with leading spaces
%h - abbreviated month name
%H - hour using 24-hour style with leading 0s
%I - hour using 12-hour style with leading 0s
%j - julian date
%m - month number with leading 0s
%M - the number of minutes with leading 0s
%p - AM or PM strings
%q - hour using 24-hour style
%Q - hour using 12-hour style
%r - same as "%I:%M:%S %p"
%R - same as "%H:%M"
%S - number of seconds with leadings 0s
%T - same as "%H:%M:%S"
%U - week number, taking Sunday as first day of week
%w - weekday number
%W - week number, taking Monday as first day of week
%x - same as "%m/%d/%y"
%X - same as "%H:%M:%S"
%y - year using two digits with leading 0s
%Y - year using four digits with leading 0s
</pre>
like %a %d-%b-%y %H:%M or
A WB ARexx interface, you could enter a cli command as a menu item to open a WB drawer like this...
RX "address WORKBENCH;WINDOW 'device:drawer' OPEN"
Where device:drawer is replaced by the path of the drawer to open.
The ARexx script would be capable to manage such a task but this would work only with those program that support ARexx
<pre>
dopus addappicon
dopus addtrap
dopus back
dopus checkdesktop
dopus clear
dopus command
dopus desktoppopup
dopus error
dopus front
dopus getdesktop
dopus getfiletype
dopus getstring
dopus matchdesktop
dopus progress
dopus query background, font, palette, pens
dopus read
dopus refresh all, background, icons, lister
dopus remappicon
dopus remtrap
dopus request
dopus script
dopus screen
dopus send
dopus set background, font, palette, pens
dopus setappicon
dopus version
</pre>
<pre>
lister add
lister addstem
lister copy
lister clear value
lister clearcaches
lister close
lister empty
lister findcache
lister getstring
lister iconify
lister new
lister query active all, dest source
lister query abort, busy, case, dirs, display, entries, entry, files, flags, handler, header, hide
lister query label, lock, mode, namelength, numdirs, numentries, numfiles, numseldirs, numselfiles
lister query path, proc, position, seldirs, selentries, selfiles, separate, show, sort,
lister query title, toolbar, value, visible, window
lister read
lister refresh
lister reload
lister remove
lister request
lister set busy, case, dest, display, field, flags, handler, header, hide, label, lock, mode
lister set namelength, newprogress, off, path, position, progress, separate, show, sort, source
lister set title, toolbar, value, variable
lister select
lister wait
</pre>
The '''command''' allows you to call internal DOpus commands from an ARexx script
<pre>
command all
command wait copy
command read s:startup-sequence
command source 12345 makedir name noicon
</pre>
*SFTP secure encrypted comms over internet using libssh2 and zlib (different protocol to the two below) on port 22
*FTPS secured with https like security on port 21
*FTP not secure and unencrypted protocol over internet on port 21 (should not be used today on the internet but for your own server)
===Wanderer ===
Backgrounds icon text sizes, colors, etc. with wanderer prefs in the prefs drawer but cannot use #? or *.* in the backgrounds file entry to randomly choose pictures
Enable the bar, you need to edit the text file ‘statusbar.prefs’. The change is simple: just change “False” to ‘True’.
Prefs/Env-Archive/SYS/Wanderer/statusbar.prefs
Provides a way to hide the old Workbench 3.1 style of windows and screens.
Themes - SYS:Prefs -> Appearance
The default content of Prefs/Env-Archive/SYS/themes.var should be "themes:ice" but can be changed via the theme prefs, please do NOT click the Use button. Its useless. As you know, it will ask for the theme volume. Just pick the theme you want, click on Save, then reboot.
* Decoration is on. Any time trying to change theme, you get: "Please insert volume Theme: in any drive"?
You could check if you find SYS:System/Themes or if it is missing. Then you could open startup-sequence which you can find in drawer "S". There should be a line:
Assign THEMES: SYS:SYSTEM/THEMES >Nil:
This does the trick.
Open a shell and run:
Assign THEMES: SYS:SYSTEM/THEMES
Than start the Theme prefs again... this should work
* The theme is the only thing that could slow the system a bit, but it's not that performance impacting on most uses, and you can switch it of completely. Remove C:Decoration from the bottom of the file sys:s/startup-sequence.
[http://archives.aros-exec.org/index.php?function=browse&cat=graphics/theme ALua/Zulu script] built for faster Wanderer skin management. You can modify config files, install new (wdz format/zipped skin files) and delete skins via the Theme Manager.
[http://sites.google.com/site/arosaspireone/download-1 Global.Prefs]
===Scalos===
[https://web.archive.org/web/20180922220139/http://scalos.noname.fr/ Scalos] is not an OS replacement, it's a Workbench replacement. It replaces the desktop and graphical file management components.
Scalos is 100% Workbench replacement with most functions working like the original Workbench ones. Undo and Redo available for most window and icon operations. Fully multitasking so every window has its own task. While loading icons, any window function (e.g. Drag&Drop) is available.
24bit color support with window patterns - Unlimited and easily configurable via tooltypes. Optimised backgroundpatterns routine so patterns can be tiled, centred or even scaled to fit into the windows. Live updating window scrolling - Supports middle mouse button panning and drawer (folder) windows can be iconified on the desktop.
Icon imagetypes with all types are supported such as backfill or complement. Configurable surrounding iconborder. Icon support also visually highlights files which are soft-links in the file system. Icon dragging is more stable and far less flickery on graphics cards. Whilst dragging, icons are displayed with text and they can become transparent over anything where they can be dropped.
Single-window lasso mode, with scrolling window contents invoked by dragging mouse with configurable qualifier key. Text icon lasso selection used to ignore "Name column selects text icons" flag. Support for backfilled thumbnail icons, with selectable color and transparency. Added option to always generate square thumbnail icons with preview icons for images - Thumbnails can be permanently saved in icons.
Supports PNG icons with alpha channel and real transparency and displays OS3.5 GlowIcons and are all scalable. Iconborders with variations (normal, shadowed, outlined).
Completely configurable, filetype-specific user-definable popup menus and tooltips. Plugin system to exchange or add features and can enhance the Workbench and make it more configurable.
Filetype plugins to display filetype-specific information. - Currently, EXIF information viewer for JPEG images is included. Plugin included for 100% support of OS3.9 Workbench features. Plugin included for AREXX API compatible to OS3.9 Workbench.
Online update with updater.module
Scalos works also as a Workbench replacement. In this case the 'emulation mode' has to be set by using Scalos' own version of LoadWB and offers
* Scalos uses the Workbench Screen for its windows instead opening a new one
* AppIcon, AppMenuItem, AppWindow functions are redirected to Scalos
* all Programs placed in "WBStartup" should start
* The Screen will be reopened in case of changes in ScreenMode and Palette settings
<pre>
v1.0 (V39.201) - November 1999
v1.1 (V39.212) - December 1999
v1.2b (39.220) - June 6, 2000
v1.2d (39.222) - 2000 (latest public beta executable)
v1.3 (40.7) (beta) - August 2, 2001
v1.3 (40.22) - September 25, 2002
v1.4 (40.32) (beta) March 31, 2005
v1.6 (41.4) - March 27, 2007
v1.7 (41.5) - August 12, 2007
v1.8 (41.6) - March 12, 2009
v1.9 (41.7) (beta) - March 15, 2010
v1.9 (41.8) (RC1) - August 25, 2012 open source
v1.9.2 (41.10) Deadwoods' AROS late 2022 32bit and 64bit build unifying the code base of ` for AROS x86 ABIv0, AROS x86_64 ABIv11 and AROS m68k
</pre>
Distros may have Scalos files under SYS:System/Scalos or Extras:Scalos. Known [https://github.com/deadwood2/AROS/issues/75 bug list],
Certain files like Menu13.prefs, Palette13.prefs, Pattern.prefs and scalos.prefs need to be in SYS:Prefs/Env-Archive/Scalos they can be found in Scalos:Storage/envarc and country drawer
or run the "Scalos Menu" preferences program. Note if already setup with sub-menu entries and then re-save your menu prefs as it will now generate a new/overwrite prefs file called "Menu13.prefs" in "envarc:scalos/". The same is also required for the new Palette prefs update, click 'Save' and a "Palette13.prefs" file will be saved in to "envarc:scalos/" directory.
<pre>
ASSIGN Scalos: SYS:xxx/xxx DEFER
ASSIGN Libs: Scalos:Libs add
;ASSIGN SYS:Devs/Datatypes Scalos:Devs/Datatypes add
Assign Theme: Scalos:Themes/Default_Theme add
Assign Locale: Scalos:Locale add
Protect Scalos:Tools/browse.script s add quiet
Protect Scalos:Tools/OpenShell s add quiet
Protect Scalos:Tools/run.script s add quiet
run Scalos:Tools/LoadWB
;Scalos:Scalos
</pre>
Add the above to SYS:S/startup-sequence or SYS:S/user-startup '''before any Wanderer entries'''
In the prefs drawer (folder) is the big prefs app Scalos_Prefs which covers these user setup areas
<pre>
About Scalos
Paths - should be preset
Startup - WBStartup drawer contents should auto run on each startup
Desktop - edit titlebar, icon layout and in misc, auto leave-out (drag icon to desktop)
Icons -
Drag and Drop -
Windows -
Text Windows - in misc, drawer sorting at start of listing if needed
TrueType Fonts - use Truetype fonts rather than system ones
Miscellaneous -
Plugins - after adding oop/title_clock.plugin %ti %da does not work, maybe needs ASCII .prefs added
Modules - ??
Menu - setup for MainMenu and PopupsMenu with New Menu, RE Name, Key: shortcut, Command Properties
FileTypes - already added def_Project icons and def_Disk (hdd sdd cd dvd etc) support
PopupMenu - tweak how popups appear
Pattern - Wallpaper backgrounds with Type DE, each pattern in the list can be edited, Save as Pattern.pre
Palette - change the color of things , Save as Palette.pre
</pre>
Scalos_Prefs - Pattern - Minimum options to be changed are
*DE Desktop/Background
*SC Screen
*TW Window/TextBackground ie Text listing showing if icon type not recognised
*IW Window/Background ie Icons showing
Workflow - In "Pattern List" tab, select New - choose a picture, highlight in list, click in number box under New button and slide to another number, click on "Defaults" tab and adjust Pattern numbers slider to choose right picture for each of the above options - Click "Pattern List" tab to check eveything is OK and click Save
Pattern List tab on Patterns Page - Allows you to compile a list of pictures (one at a time rather than a whole folder e.g. with #? or *.*), assigning a number Nr to one or more of them for easy reference. Using this number you will be able to assign the pictures to specific windows on the Defaults tab Page. If multiple pictures have the same number, one of the pictures will be chosen randomly. This will allow you to have random desktop pictures, random window backdrops etc.
Defaults tab on Patterns Page - Here you can set the defaults for the background pictures for the Desktop, Screen, Window and/or Text Mode throughout Scalos.
Randomize every time [check box] - Usually Pictures with the same number will be randomly selected as soon as the configuration loads. If this option is set, the picture will be selected as soon as a window with the same number assignment is opened.
*Fit size: The picture will be resized to the dimension of the new window.You *MUST* have set GUIGfx on. asyncron layout: Pictures will be loaded and rendered while the windows opens (Like original Workbench). If this function is 'off', pictures will always be loaded before opening the windows.
*Use friendbitmap : The picture is present twice in memory for best speed. This option has no effect if V43 picture.datatype or GUIGfx are used. Always relayout: If "Fit size" is set, the picture will be scaled everytime the window's dimensions change.
*Randomize everytime: Usually Pictures with the same number will be randomly selected as soon as the If more pictures have the same number, one of them will be chosen randomly.
Patternlist New/Delete : Add a new picture. After that you should assign a number to it. The picture will be rendered as tiles. configuration loads. If this option is set, the picture
Asyncron-Task priority: You can set the CPU priority for the Task if "asyncron layout" is set.
<pre>
Desktop: Number of the Picture for the main window.
Screen: Number of the picture for the Scalos-Screen.
Window: Number of the picture for the Scalos-windows.
TextMode: Number of the picture for the Scalos-windows in Text Mode.
</pre>
Popup Menu preferences fully configurable menus (includes ToolsDaemon and ParM launch apps import), including support for context-sensitive Popup menus configs for top pull down menus for apps, etc.
Workflow - Scalos_Prefs then Menu, New Item, New Command add name at top then in Command Properties e.g. add Workbench and location e.g. DOpus:DOpus4 for apps Command for c apps or Rexx for scripts or Plugin for or AmigaDos for modules
<pre>
DESCRIPTION NAME/A This is the title that is displayed in the top line of any popup menu
INCLUDE NAME/A Name of file to be included. Path can be relative to "Scalos:FileTypes"
POPUPMENU Starts the popup menu description section for this filetype.
</pre>
The following Subcommands are allowed inside popup menus:
<pre>
SUBMENU "NAME/A"
ENDSUBMENU
MENUENTRY "NAME/A,KEY/K,DEFAULTACTION/S"
ENDMENUENTRY
INTERNALCMD "NAME/A"
WBCMD "NAME/A,STACK/K/N,WBARGS/S,PRI=PRIORITY/K/N"
AREXXCMD "NAME/A,STACK/K/N,WBARGS/S,P=PRIORITY/K/N"
CLICMD "NAME/A,STACK/K/N,WBARGS/S,P=PRIORITY/K/N"
ICONWINDOWCMD "NAME/A"
PLUGINCMD
MENUSEPARATOR
ENDPOPUPMENU
TOOLTIP
ENDTOOLTIP
</pre>
<pre>
Starts the tooltip description section for this filetype. The following Subcommands are allowed inside popup menus:
GROUP "ORIENTATION/K"
ENDGROUP
MEMBER "HIDE/K"
ENDMEMBER
HBAR
STRING "ID/K,TEXT/K,SRC/K,TEXTPEN/K,HALIGN/K,STYLE/K,FONT/K,VALIGN/K"
SPACE "SIZE/N/A"
DTIMAGE "FILENAME/A"
</pre>
Each theme drawer (folder) has these further folders
<pre>
About -
Desktop -
FileTrans -
FileType -
Icons -
Menu -
Modules -
PointerIcons -
Prefs -
Sound -
Window -
</pre>
*Plugins
<pre>
devicefilter.plugin
persist.plugin should a crash or reboot occur - next time Scalos started, all windows re-opened
title_clock.plugin add digital clock to title see more below
title_envvar.plugin %ev, which can be used to display the value (a string) of the variable in the titlebar
title_freepens.plugin
volumegauge.plugin
wb39.plugin
wbrexx.plugin plugin adds a Workbench 3.5+ compatible AREXX interface to Scalos internals
xtwindows.plugin left or right ALT or left or right SHIFT keys when open/close windows
filetype.plugin then run FileTypes-prefs and customize the filetypes (eg import from a DefIcons-brainfile)
menu.plugin
</pre>
*Modules - delete, empty_trashcan, execute, find, format_disk, information, iconproperties, newdrawer, reboot, rename, systeminfo, windowproperties
*Tools - scripts like LoadWB, quit.rexx, open_volume.rexx,
In Scalos_Prefs->Filetype->Recognition you can define the filetypes and on "Action" you define specific context menu for all filetypes defined in recognition (similar to magellan)
there is the same you must show all first (list is only limited) so you created a file type AAABBB, you need to have def_AAABBB icon
Associating files with "Scalos_FileTypes" is very simple, practically it is very similar to Dopus4, first you create the Def_icons to assign to the file type (will be seen automatically ), then run "Scalos_FileTypes" you add the extension, fill in the descriptor (MATCH or PATTERN etc..) and save
then you create a appropriate entry in the list and rename it, if def icon exists it is shown. Below you can define how files are identified. I use "pattern", similar to magellan to identify file by ending. Then you click on the shown icon and define in it what program is used when you double-klick on it and save it. On the tab action you can define popup menu for it.
defined all archive types from XAD in "filetypes". If you change to "action" and click on "archive" you can define the context menu that is shown if you do not define a specific context menu for a filetype
Reset to Default in Scalos_Prefs resets all settings so BEWARE
<pre>
The Scalos desktop screen titlebar may be configured using the main Scalos Preference program. This oop/time_clock plugin adds some additional placeholders:
%ti, displays the current time in the default Locale format. e.g. "10:43:37"
%da, displays the date in the default Locale format. e.g. "Saturday 14 July 2001"
Using the supplied prefs program for the plugin, or editing the ASCII file ENVARC:Scalos/title_clock.prefs you can use the following standard Amiga Locale values to change the formatting
%a - abbreviated weekday name
%A - weekday name
%b - abbreviated month name
%B - month name
%c - same as "%a %b %d %H:%M:%S %Y"
%C - same as "%a %b %e %T %Z %Y"
%d - day number with leading 0s
%D - same as "%m/%d/%y"
%e - day number with leading spaces
%h - abbreviated month name
%H - hour using 24-hour style with leading 0s
%I - hour using 12-hour style with leading 0s
%j - julian date
%m - month number with leading 0s
%M - the number of minutes with leading 0s
%n - insert a linefeed
%p - AM or PM strings
%q - hour using 24-hour style
%Q - hour using 12-hour style
%r - same as "%I:%M:%S %p"
%R - same as "%H:%M"
%S - number of seconds with leadings 0s
%t - insert a tab character
%T - same as "%H:%M:%S"
%U - week number, taking Sunday as first day of week
%w - weekday number
%W - week number, taking Monday as first day of week
%x - same as "%m/%d/%y"
%X - same as "%H:%M:%S"
%y - year using two digits with leading 0s
%Y - year using four digits with leading 0s
like %d %m %y or %a %d %B %Y %p
</pre>
Shutdown -> right mouse button Scalos, About, Reboot, Shutdown
ToolTypes can be added to the Scalos.info icon like
*SCALOS_PATTERNNO=<number> : background image matching the number
*SCALOS_NOTEXT : The Icon will be drawn without Text.
*SCALOS_NODRAG : The Icon will not be draggable. Its position will be fixed.
*Module iconproperties - Added SCALOS_BROWSERMODE tooltype support
runcommand parameters... in which case:
<pre>
%p = parameters
%w = directory path
%d = device-name
%% = literal percentage token
</pre>
With the help of the wbrexx.plugin Scalos gains support for more of the compatible arexx API
If an arexx command produces an error you will find the error code placed in the WORKBENCH.LASTERROR variable.
ACTIVATEWINDOW
<pre>
/* Activate the root window */
ADDRESS workbench
ACTIVATEWINDOW root
/* Activate the "Work:" partition's window if already open*/
ACTIVATEWINDOW "Work:"
</pre>
CHANGEWINDOW
<pre>
/* Change the root window; move it to position 10,30. * and change its size to 200100 pixels */
ADDRESS workbench
CHANGEWINDOW root LEFTEDGE 10 TOPEDGE 30 WIDTH 200 HEIGHT 100
/* Change the currently active window */
CHANGEWINDOW active 20 40 200 100
</pre>
Most of Scalos' issue are due to the flexibility of its' user configuring nature but if
The sort menu plugin needs to be ported from ASM to C.
IIRC Scalos has a command line option to fully replace Workbench/Wanderer.
The Theme: assign is used by both Wanderer and Scalos but I didn't have any problems using both at the same time.
The Program will be started from the Shell.
If "WB Args" is set, with the Argument "%p" will be replaced by the path of the activated Icons. The Program will started with the specified Stack value.
IconWindow: Scalos opens the window of the specified path.
PlugIn: Starts a Scalos Menu-PlugIn.
If a Menu Item with empty name is specified, Scalos displays a separator line.
It's possible to Drag&Drop an Icon in the Configuration Window. All values will be set accordingly. Entries may be dragged across the list.
Mac-like selection : This function activates a multiselection method used on MacOS or Win95. Don't have to hold down shift to drag them. Clicking on an already activated icon will
not deselect all other icons.
MMB move: The window contents may be moved using the middle mouse button.
WindowPopup title only: PopupMenu for windows can be opened only on window's title bars.
FullBench: Screen-Titles removed and Main Window set Full Size.
Scalos Prefs. Go to Settings->Scalos->Prefs and then the Misc section. Remove the tick against Full Bench. If you've enabled it, the titlebar will disappear when you select backdrop.
Default Icons saveable : The icons which Scalos generates if "show all files" is enabled, can now be saved
using "snapshot" menu option. load DefDisk first : Try to read the icons first from the DefIcons Path before using disk info.
Hide hidden files : If this function is activated all files or directories where the "hide" flag is set will not be shown.
Many of my Icons display more than once on the screen, while on the workbench all seems ok.
The Workbench filters double displayed icons, Scalos does not. Solution: please edit the ".backdrop" file and clear double lines.
Background images not scaled. GUIGfx option not set or guigfx.library and/or render.library not installed.
If working with CD's causes crashs or Scalos doesn't work correctly.
Most Filesystems doesn't support the ExAll function correctly. Disable "Use ExAll" in Scalos prefs.
Scalos doesn't start any program in the WBStartup. WBStartup Path may be set wrongly or Scalos was not started in Emulation Mode (LoadWB etc)
Some programs will not startup with error message "has not returned, wait some more"? and "unable to open your tool"
need a def_icon with the same name predefined, then create an appropriate entry in the list and rename it, if def icon exists it is shown. Below this can define how files are identified.
* either "pattern", similar to magellan to identify file by ending
* or
Then click on the shown icon and define in it what program is used when you double-click on it and save it. On the tab action you can define popup menu for it. All in all handling is of course different to magellan but can do similar
For the RAM Icon, to obtain this you have only to copy the icon in the Icon Path as "RAM.info" or "Ram Disk.info". All functions will automatically be performed
sometimes cut into half or quarters when scrolled off screen or drawers moved - settings issue probably
Sometimes leaves initial drawer window imprint on desktop when moved - settings issue
Scalos AROS released a [https://github.com/deadwood2/contrib/tree/master/scalos new build V2022-07-21] with the following changes noted:
<pre>
Fixed:
Numerous crashes when working on 64-bit with 64-bit heap
Wrong background color of Scalos logo on Scalos splash window
Backgroung image of Scalos splash window and Scalos About window is not visible
Icon labels on desktop and in drawer windows are displayed using Topaz instead of Arial font
Font.prefs are not being loaded on 64-bit
Font.prefs are being wrongly saved on 64-bit
scalos.prefs are not being loaded on x86 and x86_64, scalos is using always default preference
scalos.prefs are being saved on x86 and x86_64 in format not compatible with m68k
NewPopupmenu.prefs is wrongly written
Plugins are not loading at Scalos startup
wbrexx.plugin is crashing at startup on 64-bit
Multiple controls missing on Scalos Prefs/Icons page
System crash when clicking on def icon image on FileTypes Prefs/Recognition page
Status bar, control bar, buttons sometimes don't have images displayed
Buttons in Scalos About window have white corners rendered where they should be transparent
Crash when leaving out an icon
Crash when adding a User-defined Button to Control bar without setting it's properties in Scalos Prefs
Crash when removing any button from Control bar in Scalos Prefs
Scalos Prefs allows editing TTEngine font properties when TTEngine is not present causing crash in Icons/Labels and Text Windows/Fonts pages
deficons.prefs are not being loaded on x86 and x86_64
Reset to default in FileType Prefs and Save does not save preferences
Won't fix:
Scrollbars visible on titles of TrueType Fonts, PopupMenu, Menu, FileTypes, Pallette and Pattern pages of Scalos Preferences
Not fixed:
Wrong rendering on DualPNG icons
Refreshing drawer windows is slow
Starting Prefs/Locale or Prefs/Input from Scalos causes other preferences to fail
Desktop wallpaper is damaged where Splay window was displayed
When started from Wanderer, after saving Scalos Prefs, reload does not re-open main Scalos window
Difference in behavior between Cleanup from popup menu and Cleanup from top menu - possibly due to missing plugin, check Cleanup association in Menu Prefs
</pre>
===DOpus 4 Directory Opus===
Copy DOpus4 app to WBStartup directory folder so it starts on boot up each time
Another method is add the below to the bottom of the user-startup script in S: drawer/directory
<pre>
run DOPUS:DirectoryOpus -i >NIL
</pre>
makes DOpus starts up in Iconified state at the top of Wanderer's screen. Left click on this to highlight and right mouse click to open.
Just click on the sides of either outer edges of DOpus windows and it will display the parent device/volume list.
DOpus saves it features in a CFG file which can be edited to suit anyones' needs by reading the [http://archives.aros-exec.org/index.php?function=browse&cat=utility/filetool Dopus Manual] which is in Guide format.
===AmiStart===
Auto generates the apps menu but scans the drive each time - AmiStart can choose apps you are not interested
* how to disable annoying zune/mui 'bubbles'?
try a right-click on AmiStart and release on Global settings. Then click on the bubbles gadget. Move the Show Bubbles slider all the way to the left.
===BoingIconBar===
User chooses the apps to add to the dock at the centre bottom of the screen but has to be done manually, please use Save afterwards
Or easier edit the text file of SYS:Prefs/Env-Archive/iconbar.prefs and save
<pre>
SYS:System/Shell
SYS:Tools/DOpus4/DOpus4
SYS:Utilities/Editor
SYS:System/SysMon
SYS:System/Scout
Work:Extras/Internet/OWB/OWB
Work:Extras/Graphics/Lunapaint
Work:Extras/Graphics/ZunePaint
AROS:Tools/MPlayer/MPlayer
Extras:Internet/AmiFox/AmiFox
</pre>
right mouse click on bottom edge of screen where boingiconbar shows - select settings which opens BoingIconBar Preferences to add apps
If no dock showing Add, to add apps click Add Program and search for the executable
another method is to drag icons to ends of the bar and move them on the Bar using the Prefs/BoingIconBar
===Icons===
Icons are typically now .png pictures renamed as .info e.g. so Office application name would have a Office.png renamed as Office.info or MyApp.png as MyApp.info, etc.
Leave Out menu option to leave app icon on desktop
To select multiple icons and save their positions, click on the first icon and after while you hold the Shift key down select further icons and don't release it before SnapShot is finished. You can also select a whole group of icons by pressing the LMB at the top left of the icons and while keeping the LMB down moving the power towards the bottom right. A expanding bounding box will appear and all the icons within it will be selected.
Clean Up menu option (right mouse button -> Icons) rearranges icons in a drawer or disk window into a neater condition. To use, open the window to rearrange and select Clean Up. To keep the icons in the new positions, select all the icons (shift key or mouse selection) and select 'Snapshot' and then Window and then again with All.
In DOpus5, Scalos, wanderer, most files have an icon file associated with it. To change the default tool, select Icon menu, Information, and change the default tool string. For example, you could use Multiview, Editor and so on for most text, graphics and some sound files as long as the appropriate Datatype classes are installed. For scripts, set the tool to C:IconX
C:Join Image1.png Image2.png TO MyFile.info
is enough to make a dual state icon from two png images. You can then use Wanderer's menu Icon/Information on it to edit its fields and tooltypes.
[http://www.amiga.org/forums/archive/index.php/t-46881.html Amiga OS 3.x AfA icons thread], [http://eab.abime.net/showthread.php?t=66213 Later DualPNG and OS4 icons thread] and [http://archives.aros-exec.org/share/graphics/icon/ Alternative Icons sets] like [http://www.amiga-look.org/artwork/classic-wb-png-iconset-l ClassicWB]
[http://www.masonicons.info/6.html AISS toolbar images] unpack unarc them into RAM: and copy Images directory to SYS:Prefs/Presets/
AISS icons are looked for in PROGDIR:, PROGDIR:Images, SYS:Prefs/Presets/Images and then in TBImages: according to Open Amiga guidelines.
there is Demos/iconscale which could be launched from S:User-Startup with two arguments, telling it the horizontal and vertical size. IE something like
Demos/iconscale 40 40
It will shrink icons... not sure if it will be very nice though. it doesn't work for the icons on the main desktop.
there is an option to scale an icon to a bounding box afair, try iconsize followed by two numbers, like:
iconsize 32 32
Is there any way in AROS to change an icon type from Project to Tool or vice versa?
Either the SIT option of [http://archives.aros-exec.org/index.php?function=showfile&file=utility/workbench/ ProcessIcon], or the TYPE option of HandleInfo (not sure if this one works at all, please test with care).
processicon sys:pathoftheicon SIT=Project
SIT Set type of ICON. Allowed types are: "Disk", "Drawer", "Tool", "Project", "Garbage", "Device", "Kick" and "AppIcon".
Btw, are your icons, the #?.info files, writable, is the W flag set ?
===Fonts===
Install the #?.ttf files to SYS:Fonts/TrueType. Use SYS:System/FTManager to "Install Font" each #?.ttf file which will generate associated #?.otag and #?.font in SYS:Fonts. Use SYS:Prefs/Fonts to change system fonts and SYS:Prefs/Zune to change others.
To achieve our goal we will use the Setup Locale, Input, Zune and Fonts, as well as The FTManager.
Begin
The first step you should do is to get the system to know that we speak and write in another language. What you need to do is to open the setup program and choose Locale country, and list "preferred languages" to put it first and then English. If you want the tab "Time Zone" and select city of residence to set the clock correctly. Of course we save our changes and continue opening the setup program Input. This sets the keyboard language as our beginning. When the language layout was created there was no option to switch to Aros keyboard (layout switching), so to write in the language you had to hold down Alt, something you encounter in other functions. This time working with the team of Aros to create a new keyboard layout to replace the old so we can get rid of the button Alt. For now though let only selected this layout and do not turn the switch on the keyboard.
Custom Keyboard Layout
[http://repo.or.cz/w/AROS.git/tree/HEAD:/workbench/devs/keymaps keymaps are in place but unfortunately when they are not, then indeed things become a bit 'low-level' as it involves redefining some tables with values that match your keyboards]
only need to add your compiled table as new keymap.
So taking a little peek here shows that it should be possible to compile using
gcc -opc105_tr pc_105.c -nostdlib
where the pc105_gr/pc_105.c needs to be replaced with your own adjusted keymapname/c-file
[https://en.wikiversity.org/wiki/Enabling_Greek_Characters_on_Your_Keyboard General overview of Greek letters on keyboards]
Installing fonts
*[http://aminet.net/package/util/wb/EPAGrWb System jaggy]
*Outline resizable .font .otag
In this step you need to download some fonts that can support the encoding in our system. The easiest way is to run the script "Download Fonts" you'll find in the folder OWB. This script downloads from the Internet, and unpacks some fonts for OWB web browser, which is placed under the folder Fonts:TrueType. But as these can only be used by OWB and not the system, which unfortunately does not see. To make them available to the rest of the system, open the program FTManager, you will find the folder AROS: System /. From there select the field "Codepage" option "ISO-8859-7" and list the font "Arial" and "Regular" form in which you must double-click with the mouse. In the window that appears, select the bottom right the checkbox "Anti-aliasing" button and then "Install". Immediately folder Fonts: created files "arialregular.font" and "arialregular.otag", which are necessary in order to see the system font. Do the same steps if you wish for other fonts.
Final stages
After completing the above, open the folder AROS: Prefs / and run the program settings Fonts. In the new window, select the fields "Icons" and "Screen" as the font "ArialRegular" to the size you want. In the field "System" to give "s_courier", which, however, because it is not True Type Font support Antialising, and may seem a little broken. You can also use the CourierNew, if you have installed the above procedure. After you save the changes and open the Zune program settings. In this set the "ArialRegular" font fields in tabs "Windows" and "Groups", and save the changes. Reboot the system. To make sure that the above worked properly run NoWinED, which you will find under the folder AROS: Tools /. If that everything is working correctly you will see the menu and the settings window with Greek letters. You can also write in the language using the button Alt. Second program that you can try, which is fully localized, is WookieChat, which you will find in the folder AROS: Extras / Networking. And in this place all the menu and settings window works.
===Windows===
*Intuition
The window you position and resize, you right click on that windows title bar and in the dropdown menu you snapshot from there. Right click to show menu -> Window -> Snapshot Windows or All but it will NOT work if that folder has no icon (e.g. Disk.nfo) attached to it. You need a folder icon. The window information gets saved in it.
As for maximising the window using a shortcut key - Alt and up arrow key
The AROS-Shell windows can be moved, resized by editing sys:s/icaros-sequence
<pre>
; run shell
if ${Icaros/autoshell} EQ true
run QUIET c:newshell >NIL:
EndIF
</pre>
; slimmer right aros the screen
run QUIET c:newshell con:0/150//300/ >NIL:
; top right corner scr-x scr-y win-x win-y
run QUIET c:newshell con:600/150//300/ >NIL:
*Zune - AROS version of MUI
Magic Menu type functionality is implemented in IControl preferences editor: in the frame called Menus, switch type from Pull-Down to Pop-Up and/or iControl just tick the sticky menu option.
Windows outside screens causing a problem either uncheck "Offscreen move" for windows in IControl prefs editor. Or use FKey commodity and define two key shortcuts:
* the first using the command "cycle windows" (for example ALT TAB);
* the second using the command "rescue window" (for example ALT F5).
Now you can cycle windows until the one you want to rescue, and then "rescue" it: it will move back inside your screen.
How to save the window size on wanderer (snapshot all, snapshot windows)
Same for icon position on wanderer, can't save the position. Icon position cannot be saved yet, but you should be able to save the window position and size. sys:prefs - wanderer icon has option to save window size on exit but just for dh0. To get saving working on (DH1: Extras:) partitions try deleting the dh1 disk.info file, then reboot. The system should create a new dh1 icon.
* how to set up permanently 'view all files'?
As for viewing all files, removing disk.info for that disk did the job
* how to list and kill processes (xkill would be useful) ?
sys:Extras/System/Scout can kill apps
sys:Tools/Commodities/Exchange can remove available commodities
* how to restore 'go up' button in wanderer window? (it doesn't show up anymore).
If you're using Icaros, go to the theme prefs and make sure that decoration is checked. Also, some themes do not use a parent button, so try another theme. You may have to restart Aros before the theme will change.
* Is it really safe to turn off (hardware button) computer at any time (worried about USB hard disk)
yes you can turn off the computer IF none of the drives are in progress (i.e. writing). Best to use Wanderer menu option Quit otherwise
===Printing===
This is still work in progress
print from my AROS box!
<pre>
1. installed printfile ( http://www.lerup.com/printfile/ ) on my Windows XP computer
2. set up the print spooler option, and used ghostscript filter for ps files
3. made the spool folder accessible from ftp (setting up ftp server on Windows)
4. send the ps file from my AROS box to the ftp server using curl (curl -T filename ftp://windows.box.adress --user username:password)
</pre>
It's a bit complicated but it works!
*Postscript
Best to set Printer Prefs in the Prefs drawer to print-to-file or parallel/USB port
Save document in postscript or convert picture/text to postscript
Print using compatible [http://en.wikibooks.org/wiki/Aros/Platforms/AROS_USB_support#printer.class_-_PostScript_3_and_internal_ghostscript_drivers Ghostscript printer] or Postscript printer
*GutenPrint
Some work has been done
;There are no individual drivers yet for HP's Photosmart, EPSON's EPL, CANON's, Lexmark, CUPS PPD, etc.
===Files===
====File endings and datatypes====
* Check if the file has his own .info icon file with a tool set to open it. IIRC this has higher priority over the def_XYZ.info file association.
* In ENVARC:SYS/def_Text.info or whatever def_ file needs changing, use Wanderer's menu Icon -> Information and change the def_XYZ.info there. If you're on ABIv0 and want it to be applied immediately, you might have to copy it to ENV:SYS/ (or to reboot).
* Identifying file types by file ending is only a fallback. Far better it is to search for magic words, for flac files this would be "flaC" according to this [http://flac.sourceforge.net/documentation_format_overview.html documentation].
For instance, to open PDFs with arospdf not localised in the default drawer of Icaros (Work:Extras/Applications/arospdf) but localised in a custom drawer in AROS. The default tools are defined in the icons in sys:prefs/env-archive/sys e.g. def_PDF.
File type identification is done by datatype descriptors which you can find in Devs/Datatypes. The AROS build system has a tool which creates such datatype descriptors.
'''Changing of default tools of existing icons is easy as shown above. Adding of new file types is not hard, but needs knowledge of the AROS build system.'''
The enduser way would be to download the attached file, which contained two executables:
1) createdtdesc, to make a new datatype description
2) examinedtdesc, to read/show existing datatype descriptions
use 2 to get an idea on how it things are currently done in aros by providing this executable a file from the drawer sys:devs/datatypes/ (alternatively you can find the original .dtd files here).
use 1 to make your new datatype. Use the accompanied FORMAT file (also here) to read how to make your own datatype descriptor. use 2 to get hints from other datatype descriptors.
Note:
When creating a new descriptor would advise against using the pattern property, but instead use the default pattern of #? and create a Mask that matches your filetype. This requires some research in order to discover how your filetype can be recognized properly. Of course with making something like a descriptor for an ascii textfile, you would fallback to using the pattern (e.g. #?.text as the filetype cannot be determined easily otherwise).
<pre >
# name - choose wisely and informative. also used for icon's name.
# version - choose as you like as long as it complies with version rules
# basename - the 'root' datatype class. be aware that e.g. it can influence behaviour. for example when choosing binary and using tool multiview in project icon, the file will be viewed as binary file (choosing sound would tell mulitview to view the file as a soundfile). So this can influence the underlying tool being used. Could become messy if users started to modify the tool manually.
# pattern - This is the file pattern match e.g. #?.text
# Mask - A mask to identify the file. Requires knowledge of the actual file structure. For example 'M' 'Z' for an msdos executable.
# GroupdID - not supported (AROS native) files - use syst as that would be the least intrusive in case an AROS tool/program tries to load such datatyped file.
# ID - In your case, the first four characters of the name at subchapter 1 (in lower case) (or less if name is shorter).
# flags - How the mask needs to be interpreted. In your case would be mostly DTF_BINARY in combination with (wanted or not) DTF_CASE (to tell if mask used letters are case sensitive or not)
# priority - the priority of how the type is handled so that on datatype could have precedence over another? In any case, document tells it to be mostly 0.
</pre >
Now that you know each field and what it does (more or less), you write this fields in a text file for your own invented datatype, save it and create the actual dt with the tool in 1. in the end the created dt must reside in sys:devs/datatypes/ drawer.
Then you would create a default icon in sys:prefs/Env-archive/SYS drawer. Don't forget to reboot or copy .info file to ram:env/sys in order to test. also don't forget to set which tool to start f.e. c:lx or dh4:emulators/mycoolemulator
To test, open Wanderer then show all files and doubleclick on a file of type you just created. Alternatively you could use the 'open' command from shell (with file of datatype you just created as parameter).
And as a last note. it would perhaps be welcome to have a program like xicon and/or runprglist for AROS (unfortunately both without source, but something similar could be created for AROS).
Sounds complicated ?
Perhaps... but OS like windows needs a complete registry to be able to do things like this. And yes, i am aware windows has gui tools that does it (more or less) for you (by manipulating the registry). Same could be done for AROS (without integrating a registry in AROS that is ).
Would that suffice ?
red1+2: typos, reformatting.
disclaimer: please note that using these tools can screw up your currently installed support for datatypes when used incorrectly. Do not use if you do not understand what you are doing. Use at own risk.
==Network Connection==
AROS currently only has one real choice for TCP/IP networking - AROSTCP. This is a port of the AmiTCP package from AmigaOS (TM), with a number of enhancements/fixes from AROS developers.
Please use Prefs/Network to set up wired, wireless or USB networking
Non USB wifi is easier, USB wifi can be an annoyance - remember to save whilst in prefs
===Wired===
=====IPv6=====
No support so far
128bit IPv6 address packet
<pre>
Local FD::/8
Global 2000::/3
64:ff9b::/96
</pre>
NAT64 translates IPv6 to IPv4
DNS64
OS routing works with
<pre>
MacOS Ventura
Windows 11 with cloud account
Ubuntu Jammy Jellyfish
Android 10 (block google dns)
</pre>
====IPv4====
The top half of the IPv4 Configuration tab on the Network Prefs deals with the network card/USB and the lower half the router part.
[[File:AROS Wanderer Network Prefs DHCP.png|thumb|DHCP Settings]]
'''Upper part of IPv4 tab'''
* Click Add on the top right of the Prefs which opens a window called '''Interface'''
* Enter Name as net0 (but can be anything as long as it is consistently used in other sections)
* check mark on Active
* select device to be used using the '''right hand-side gadget''' of the box where the device name will go
* set Unit to 0
* IP Mode is default set to '''Get address from DHCP'''
* IP Mode set to Manual if DHCP does not work automatically
From the shell CLI, ifconfig -a
Under net0: section, inet starting 192.168.x.xxx
* inet or '''Address''' of network card
* netmask convert to decimal so 0x'''ffffff7f''' becomes 255.255.255.247 which is used to adjust the above '''Address''' into
* broadcast 192.168.xxx.xxx
click OK
[[File:AROS Wanderer Network Prefs Manual.png|thumb|Manual Settings]]
'''Lower part of IPv4 tab'''
* IP Mode Get address from DHCP (default)
* or changing to Manual if automatic DHCP set up does not work
* '''Gateway''' (Router Internal LAN-IP) (Default Route) = 192.168.0.1 (D-Link Netgear), 192.168.1.1 (Linksys 3com), 192.168.2.1 (SMC Microsoft), 192.168.1.254 (Belkin), 192.168.123.254 (USRobotics) else check with your router manual
* first DNS = use 208.67.222.222 (opendns) or Gateway number above (to test web browser access to router) or 212.50.160.100 (google) i.e. or whatever your ISP needs you to set
* second DNS = use 208.67.220.220 (opendns) or Gateway number above (to test web browser access to router) or 213.249.130.100 (google) i.e. or whatever your ISP needs you to set
* At the bottom of IPv4 tab, check mark the '''Start networking during system boot''' option
* Save and reboot (sometimes Network restart fails, so reboot every time to be sure)
'''an alternative way''' to AROS ifconfig -a, other OSs have similar for the same internet connection. Another connection will have different settings.
e.g. From [http://www.ncsu.edu/resnet/windows/ipconfig/ Windows], '''ipconfig /all'''
and note down the IP, subnet mask, default gateway, and DNS servers values and put these values in "manually" into AROS Network prefs.
e.g. From Linux via dhcp router have a look at etc./dhcpc/dhcpcd-eth0.info
* for manual input look at /etc/networks (IP or Gateway) and /etc/resolv.conf (DNS)
Please note that all in one routers (wired+wireless) or separate routers may need different settings
IPv4 involves routing (192,168.x.x), firewall, NAT
===Wireless===
[[File:MyArosWirelessSetup.png|thumb|Setting up]]
[[File:MyArosWirelessTCP.png|thumb|Shell commands to work out what is happening]]
We must first make certain you have a Atheros 5k chip inside acting as the wireless wifi option. Open PCITool in Tools directory. Down left hand side are a series of numbers 0.00.0 etc. Click on some at the bottom and hopefully one of them will say Atheros AR5??? or AR242?.
or a Realtek RTL8187B, we can check using Prefs/Trident as this one is USB based
There are many similarities with the above Wired set up so please read the above section as well
* open Network/Prefs
* In '''IPv4 Configuration''' tab - click Add - enter net0 / active tick / #?.device / Unit 0 / IP Mode = manual (important if default DHCP does not work automatically)
Make sure that any extra network names (e.g. eth1 or net1) should be deleted. If net0 already st previously, change net0 so that it shows associated with the appropriate device name like atheros5000.device or realtek8180.device. Having two entries here will cause sub-net problems.
* Go to '''Wireless''' tab and click on "Add" button.
* Insert network name (SSID your wireless network name use wirelessmanager to get it), select right "encyption" that is most likely "WPA".
* Key Type set as "Passphrase". i.e. type in your password for your router (aka access key).
* Unselect (no tick) "hidden" if it is selected, then apply. You may have to tick it if wireless does not work.
* Finally, Save and '''reboot'''.
For the best chance of success, set networking to start at boot, and then reboot with the USB adapter plugged in.
===USB Ethernet===
Open SYS:Prefs/Network and in the IPv4 Configuration tag (top table covers your usb stick)
* click Add button
* set Name as net0
* Tick Active box
* enter the usb-ethernet.device e.g. dm9601eth.device, usbpegasus.device or usbasixeth.device use SYS:c/devlist, '''Scout''' or trident prefs to get the correct spelling
* set Unit to 0 (which is usual but check the messages from the bottom of the Trident prefs whilst plugging the device in to determine the unit number otherwise)
* IP Mode is set to Get address from DHCP (make sure your router is set right for that)
'''or manual'''
* IP Address of network card, i.e. 192.168.0.xx or 192.168.1.xx (xx being greater than 1)
* Subnet netmask = 255.255.255.0
* click OK
There can be sometimes be boot failures when using USB ethernet - plug the USB device in after boot and save the network prefs to make it work again.
Lower part of IPv4 tab covers the router information
* IP Mode Get address from DHCP
'''or if manual settings'''
* Gateway (IP Address of router) = usually 192.168.0.1 or 192.168.1.1 but see router manual to make sure.
* first DNS = use 8.8.8.8, 208.67.222.222 (opendns) or 212.50.160.100
* second DNS = use 8.8.4.4, 208.67.220.220 (opendns) or 213.249.130.100
===USB Tethering via Android smartphone===
Go to AROS Network Prefs (IPv4 configuration tab) and write type in "usbrndis.device" in the "device" textfield of "Interface" sub-window, which appears when you add a new device (or modify an existing one). Select "Start Network during system boot" and saved the configuration, the Connection is immediate no reboot is needed.<br>
usbrndis.device is a resident device (virtually always there) in fact, a driver is not present in DEVS:Networks <br><br>
Plug in USB cable, go to Android settings and enable "USB Tethering" <br>
A reboot should not be necessary.
When restarting AROS, the Smartphone deactivates the connection and to access the network again have to reactivate it before starting the browser.
===Solving Issues===
[[File:MyArosTCP.png|thumb|Aros network setup diagnostics - why does it not work?]]
* In Network Preferences, have '''only one''' item in the IPv4 Configuration tab
* If using manual settings, make sure all numbers are correct, especially for IP address of the card/usb (changing the last number in chain of four)
* For any USB based networking, it is often necessary to save in Prefs/Network, reboot AROS and network support can begin
* For wired, make sure that the LAN-cable is plugged in before starting the computer
* If wireless, try getting closer to the router.
* Switch off the encryption option from your router then try wifi, if successful then your ip/dns is ok. If not then your ip/dns settings are most probably wrong or need to use one or more opendns numbers
* Replace detachable wireless antenna (best wireless option to buy if you can) with a stronger antenna ie. 5 dBi or 7 dBi
* Try with another computer/laptop/machine
Program Error C:WirelessManager
* Test with another OS
* Check that Wifi works before changeover (if possible)
* Check that socket and card are working
* Check if card is too new for laptop (date code on card MMYY blue askey date 2005-2007 etc)
Are you connecting with the Router ?
Check with protection off e.g. wps and wep to see if it makes a difference.
For USB wireless - stopping and starting may be needed...
<pre>
; $VER: AROSTCP-startnet 1.0 (01/08/06)
; AROSTCP-startnet (c) The AROS Dev Team.
;
Run <NIL: >NIL: AROSTCP
WaitForPort AROSTCP
If NOT Warn
; echo "Stack online"
Else
echo "Wait for Stack Failed"
EndIf
; stop and restart
execute "sys:system/network/AROSTCP/s/stopnet"
Run <NIL: >NIL: AROSTCP
WaitForPort AROSTCP
If NOT Warn
; echo "Stack online"
Else
echo "Wait for Stack Failed"
EndIf
run <NIL: >NIL: wirelessmanager realtek8180.device
</pre>
What IRQ number is assigned to the device? You can check with Tools/PCITool?
It's possible the BIOS hasn't set the right IRQ number. If you have a Linux CD/DVD handy, could you check if it boots with the options "acpi=off noapic nolapic"?
If the following does nothing, this will help us figure out why networking doesn't start automatically at boot
open a shell and run the following commands:
<pre>
echo ${AROSTCP/AutoRun}
echo ${AROSTCP/WirelessAutoRun}
echo ${AROSTCP/WirelessDevice}
</pre>
Please report the output, typically it will look like this
# True (explanation this variable is related to the "Start networking during system boot" checkbox in network prefs)
# True ()
# Devs:networks/atheros5000.device unit 0
If there's a problem with the AROSTCP package. What's the output of this?
ENV:sys/packages/AROSTCP
should return a string = Sys:System/Network/AROSTCP
By the way, a quicker way to check networking is working would be to run some shell commands such as:
<pre>
ping www.google.com
ifconfig net0
</pre>
The best way to list the available networks and diagnose / troubleshoot problems with connecting to a wireless network is to run WirelessManager manually. First uncheck the "Start networking during system boot" box in the Network prefs app, then save and reboot. Then run this in a shell:
C:wirelessmanager atheros5000.device verbose
or
C:wirelessmanager realtek8180.device verbose
and capture the output
If the above does not help, could you edit the file SYS:System/Network/AROSTCP/S/Package-Startup, and change ">NIL:" to ">T:wifi.log" on the WirelessManager line and add this as well Wait 5?
<pre>
if ${AROSTCP/WirelessAutoRun} eq "True"
Run QUIET "C:WirelessManager ${AROSTCP/WirelessDevice} >T:wifi.log"
wait 5
EndIf
</pre>
Then save, reboot and post the log file (T:wifi.log) here.
<pre>
c:wirelessmanager atheros5000.device verbose
Initializing interface 'atheros5000.device:0' conf 'ENV:Wireless.prefs' driver 'default' ctrl_interface 'N/A' bridge 'N/A'
Configuration file 'ENV:Wireless.prefs' -> 'ENV:Wireless.prefs'
Reading configuration file 'ENV:Wireless.prefs'
Line: 1 - start of a new network block
ssid - hexdump_ascii(len=7)
65 63 68 65 6c 6f 6e echelon
PSK (ASCII passphrase) - hexdump_ascii(len=14): [REMOVED]
key_mgmt: 0x2
PSK (from passphrase) - hexdump(len=32): [REMOVED]
Priority group 0
id=0 ssid='echelon'
Then it just sits there. Not sure what a normal dump looks like, I don't see anything that looks wrong in the configuration.
</pre>
looks like the driver isn't working with that card. Has anyone else successfully used that exact model number (AR2413)?
<pre>
Initializing interface 'atheros5000.device:0' conf 'ENV:Wireless.prefs' driver 'default' ctrl_interface 'N/A' bridge 'N/A'
Configuration file 'ENV:Wireless.prefs' -> 'ENV:Wireless.prefs'
Line: 1 - start of a new network block
ssid - hexdump_ascii(len=7):
65 63 68 65 6c 6f 6e echelon
PSK (ASCII passphrase) - hexdump_ascii(len=14): [REMOVED]
key_mgmt: 0x2
PSK (from passphrase) - hexdump(len=32): [REMOVED]
Priority group 0
id=0 ssid='echelon'
*** [wpa_sm_init] sm->pmksa=02c66fd4 ***
Own MAC address: 00:01:36:15:ae:0c
RSN: flushing PMKID list in the driver
Setting scan request: 0 sec 100000 usec
EAPOL: SUPP_PAE entering state DISCONNECTED
EAPOL: Supplicant port status: Unauthorized
EAPOL: KEY_RX entering state NO_KEY_RECEIVE
EAPOL: SUPP_BE entering state INITIALIZE
EAP: EAP entering state DISABLED
EAPOL: Supplicant port status: Unauthorized
EAPOL: Supplicant port status: Unauthorized
Added interface atheros5000.device:0
State: DISCONNECTED -> SCANNING
Started AP scan for wildcard SSID
MLME: starting scan
MLME: scan channel 1 (2412 MHz)
sana2: sending MLME frame
Then it stops. Does this mean the router is not authorizing this NIC?
IRQ 4 (A)
</pre>
apparently locking up when the first frame is sent (a scan request).
<pre>
Devs/Networks/atheros5000.device:0
Initializing interface 'Devs/Networks/atheros5000.device:0' conf 'ENV:Wireless.prefs' driver 'default' ctrl_interface 'N/A' bridge 'N/A'
Configuration file 'ENV:Wireless.prefs' -> 'ENV:Wireless.prefs'
Reading configuration file 'ENV:Wireless.prefs'
Line: 1 - start of a new network block
ssid - hexdump_ascii(len=12):
41 69 72 4c 69 6e 6b 35 39 33 30 30 AirLink59300
PSK (ASCII passphrase) - hexdump_ascii(len=8): [REMOVED]
key_mgmt: 0x2
PSK (from passphrase) - hexdump(len=32): [REMOVED]
Priority group 0
id=0 ssid='AirLink59300'
*** [wpa_sm_init] sm->pmksa=0224e444 ***
Own MAC address: 00:1f:e1:42:e3:7a
RSN: flushing PMKID list in the driver
Setting scan request: 0 sec 100000 usec
[eloop_reg_timeout] Timeout is at 1317686594.160000
EAPOL: SUPP_PAE entering state DISCONNECTED
EAPOL: Supplicant port status: Unauthorized
EAPOL: KEY_RX entering state NO_KEY_RECEIVE
EAPOL: SUPP_BE entering state INITIALIZE
EAP: EAP entering state DISABLED
EAPOL: Supplicant port status: Unauthorized
EAPOL: Supplicant port status: Unauthorized
[eloop_reg_timeout] Timeout is at 1317686595.060000
[eloop_reg_timeout] Timeout is at 1317686604.060000
Added interface Devs/Networks/atheros5000.device:0
[eloop_run] Starting
State: DISCONNECTED -> SCANNING
Starting AP scan for wildcard SSID
MLME: starting scan
[eloop_reg_timeout] Timeout is at 1317686594.160001
MLME: scan channel 1 (2412 MHz)
[eloop_reg_timeout] Timeout is at 1317686594.193000
sana2: sending MLME frame
[eloop_reg_timeout] Timeout is at 1317686594.233000
MLME: scan channel 2 (2417 MHz)
[eloop_reg_timeout] Timeout is at 1317686594.253000
sana2: sending MLME frame
[eloop_reg_timeout] Timeout is at 1317686594.293000
MLME: scan channel 3 (2422 MHz)
[eloop_reg_timeout] Timeout is at 1317686594.333000
sana2: sending MLME frame
[eloop_reg_timeout] Timeout is at 1317686594.373000
MLME: scan channel 4 (2427 MHz)
[eloop_reg_timeout] Timeout is at 1317686594.393000
sana2: sending MLME frame
[eloop_reg_timeout] Timeout is at 1317686594.433000
MLME: scan channel 5 (2432 MHz)
[eloop_reg_timeout] Timeout is at 1317686594.473000
sana2: sending MLME frame
[eloop_reg_timeout] Timeout is at 1317686594.513000
MLME: scan channel 6 (2437 MHz)
[eloop_reg_timeout] Timeout is at 1317686594.553000
sana2: sending MLME frame
[eloop_reg_timeout] Timeout is at 1317686594.573000
MLME: scan channel 7 (2442 MHz)
[eloop_reg_timeout] Timeout is at 1317686594.613000
sana2: sending MLME frame
[eloop_reg_timeout] Timeout is at 1317686594.653000
MLME: scan channel 8 (2447 MHz)
[eloop_reg_timeout] Timeout is at 1317686594.693000
sana2: sending MLME frame
[eloop_reg_timeout] Timeout is at 1317686594.713000
MLME: scan channel 9 (2452 MHz)
[eloop_reg_timeout] Timeout is at 1317686594.753000
sana2: sending MLME frame
[eloop_reg_timeout] Timeout is at 1317686594.793000
MLME: scan channel 10 (2457 MHz)
[eloop_reg_timeout] Timeout is at 1317686594.833000
sana2: sending MLME frame
[eloop_reg_timeout] Timeout is at 1317686594.853000
MLME: scan channel 11 (2462 MHz)
[eloop_reg_timeout] Timeout is at 1317686594.893000
sana2: sending MLME frame
[eloop_reg_timeout] Timeout is at 1317686594.933000
MLME: scan channel 12 (2467 MHz)
[eloop_reg_timeout] Timeout is at 1317686594.973000
sana2: sending MLME frame
[eloop_reg_timeout] Timeout is at 1317686595.013000
MLME: scan channel 13 (2472 MHz)
[eloop_reg_timeout] Timeout is at 1317686595.033000
sana2: sending MLME frame
[eloop_reg_timeout] Timeout is at 1317686595.073000
EAPOL: disable timer tick
EAPOL: Supplicant port status: Unauthorized
MLME: scan channel 14 (2484 MHz)
[eloop_reg_timeout] Timeout is at 1317686595.113000
sana2: sending MLME frame
[eloop_reg_timeout] Timeout is at 1317686595.153000
MLME: scan channel 1 (2412 MHz)
[eloop_reg_timeout] Timeout is at 1317686595.193000
sana2: sending MLME frame
[eloop_reg_timeout] Timeout is at 1317686595.213000
MLME: scan channel 2 (2417 MHz)
[eloop_reg_timeout] Timeout is at 1317686595.253000
sana2: sending MLME frame
[eloop_reg_timeout] Timeout is at 1317686595.293000
MLME: scan channel 3 (2422 MHz)
[eloop_reg_timeout] Timeout is at 1317686595.333000
sana2: sending MLME frame
[eloop_reg_timeout] Timeout is at 1317686595.353000
MLME: scan channel 4 (2427 MHz)
[eloop_reg_timeout] Timeout is at 1317686595.393000
sana2: sending MLME frame
[eloop_reg_timeout] Timeout is at 1317686595.433000
MLME: scan channel 5 (2432 MHz)
[eloop_reg_timeout] Timeout is at 1317686595.473000
sana2: sending MLME frame
[eloop_reg_timeout] Timeout is at 1317686595.493000
MLME: scan channel 6 (2437 MHz)
[eloop_reg_timeout] Timeout is at 1317686595.533000
sana2: sending MLME frame
[eloop_reg_timeout] Timeout is at 1317686595.573000
MLME: scan channel 7 (2442 MHz)
[eloop_reg_timeout] Timeout is at 1317686595.613000
sana2: sending MLME frame
[eloop_reg_timeout] Timeout is at 1317686595.653000
MLME: scan channel 8 (2447 MHz)
[eloop_reg_timeout] Timeout is at 1317686595.673000
sana2: sending MLME frame
[eloop_reg_timeout] Timeout is at 1317686595.713000
MLME: scan channel 9 (2452 MHz)
[eloop_reg_timeout] Timeout is at 1317686595.753000
sana2: sending MLME frame
[eloop_reg_timeout] Timeout is at 1317686595.793000
MLME: scan channel 10 (2457 MHz)
[eloop_reg_timeout] Timeout is at 1317686595.833000
sana2: sending MLME frame
[eloop_reg_timeout] Timeout is at 1317686595.853000
MLME: scan channel 11 (2462 MHz)
[eloop_reg_timeout] Timeout is at 1317686595.893000
sana2: sending MLME frame
[eloop_reg_timeout] Timeout is at 1317686595.933000
MLME: scan channel 12 (2467 MHz)
[eloop_reg_timeout] Timeout is at 1317686595.973000
sana2: sending MLME frame
[eloop_reg_timeout] Timeout is at 1317686595.993000
MLME: scan channel 13 (2472 MHz)
[eloop_reg_timeout] Timeout is at 1317686596.033000
sana2: sending MLME frame
[eloop_reg_timeout] Timeout is at 1317686596.073000
MLME: scan completed
</pre>
Is your network hidden? If so, did you enable the 'Hidden' checkbox in the network prefs? What distro version are you using?
<pre>
"ENV:sys/wireless.prefs" looks like this:
network={
ssid="testadhoc"
key_mgmt=NONE
wep_key0="12345"
wep_tx_keyidx=0
}
</pre>
If your router doesn't broadcast its SSID (hidden), you need to add this option to the network block of the wpa_supplicant.conf on your aros machine and make changes after # Example blocks:
scan_ssid=1
Here's a full description of all the [http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/wpa_supplicant.conf config file options].
<pre>
ap_scan=1
network={
ssid="YOURESSID"
scan_ssid=1
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP
group=CCMP
psk=YOURPASSWORD
}
</pre>
<pre>
filter_ssids=1
ap_scan=2
network={
ssid="REMOVED"
scan_ssid=1
bssid=REMOVED
priority=100
mode=0
proto=RSN
key_mgmt=WPA-PSK
auth_alg=OPEN
pairwise=CCMP
group=CCMP
psk=REMOVED
}
</pre>
Error 6: Couldn't resolve host name.
Check Scout -> Devices and look at the device that you are using, in the OCnt column it should state 2 which means AROSTCP and Wirelessmanager are both accessing this driver. If 0 or 1, then uncheck the checkbox in Network prefs for starting networking at boot, save and reboot. Then run this is the shell:
C:WirelessManager realtek8180.device unit 0
some quirks setting up the wireless network as well
1) it's far better setting up either the wired OR the wireless network adapter as net0:, or weird things happen
2) it's better using fixed IP on the local network instead of DHCP
3) network setting must be placed in network setting panel in /prefs, using the wirelessmanager helped me finding available SSIDs, but not actually connecting to them
once done, reboot.
If previous setup is proving problematic
<pre >
SYS:Prefs/Env-Archive/Wireless.prefs
SYS:Prefs/Env-Archive/Zune/OWB.config
SYS:Prefs/Env-Archive/Zune/global.config
SYS:Prefs/Env-Archive/AROSTCP/WirelessDevice
SYS:Prefs/Env-Archive/AROSTCP/db/Interfaces
</pre >
Make a copy of these files and restore in case of problems.
Please try this test to check if you can connect to your router, ie established that the WiFi layer is working
̊̊̊̊Boot with networking disabled, by make sure that "Start networking at boot" in Network Prefs is unchecked (no tick).
̊ Run this in a shell: C:WirelessManager atheros5000.device VERBOSE
̊If the output of that command is too long to summarise here, you can redirect it to a file by adding >RAM:wifi.log to the end, then attach or paste that file here.
try running "status" in the shell and check that AROSTCP is listed/running
If AROStcp is not showing, then AROSTCP is not running. attempted to start it by clicking Use or Save in network prefs, or checking the "start networking at boot" box or typing into a shell.
Execute SYS:System/Network/AROSTCP/s/startnet
(run Status again afterwards).
The "cannot resolve hostname" will appear if you are blocked on the wifi network by the router as well as aros not being able to assign correct network address.
One way of testing this might be to disable the firewall in the router. you might also check the router how it sees the attempts aros do to speak to it. The easiest way to do that would be to manually give aros an IP number in the routers accepted range. and see if it shows up at all within the router.
Tests that can be undertaken to determine correct settings and functions
pciinfo
sanautil -d broadcom4400.device status
<pre >
ping <router-address> e.g. 192.168.0.1 (aka inet) or 80.237.146.33 (www.amiganews.de)
ifconfig net0
ifconfig net0 up
extras:networking/utils/sanautil/sanautil -d atheros5000.device status
WirelessManager atheros5000.device verbose >RAM:wifi.log
;to send the log to RAM disk to be read easier or if detected,
Run WirelessManager atheros5000.device >NIL:
Run WirelessManager atheros5000.device ssid="mynet1" >NIL:
C:WirelessManager realtek8180.device unit 0
</pre >
Please look at the task list in Scout, and check if WirelessManager and AROSTCP are running. Also look at the device list in Scout to check if realtek8180.device is open.
start tools/debug/sashimi, maybe it shows some debug messages when disconnection happens.
Firstly, let's take a look at what your setup most likely looks like, assuming you use a router. See diagram below:
<pre>
Internet <---------> home router <---------> computer
-----------external IP------------------internal IP-------------
</pre>
Okay, so what am I trying to show you with that diagram. A few things. Firstly, the IP address that connects you to the Internet is not the same one that connects you to your router. What happens is that your computer doesn't have a direct connection to the Internet, instead your router connects to the Internet, and your computer connects to the router.
You can see the external and internal IP addresses in these example settings...
* Default Gateway : 76.91.64.1 (external IP for ISP/Internet host)
* IP Address : 76.91.71.184 (external IP for home router)
* IP Address : 192.168.0.1 (internal IP for home router)
* Address = 192.168.0.161 (internal IP for computer)
As you can see, there are two internal IP addresses and two external IP addresses. This is because there is a client/server relationship, effectively one address is for the service (server) and one address is for the device trying to access that service (client).
The server addresses in your case are 76.91.64.1 (your ISP's address, serving the Internet), and 192.168.0.1 (your home router's address, serving your home network). The term gateway applies here, they are your gateway to those services.
Subnet masks are used along with IP addresses to determine which IP addresses are allowed access to a network. I did learn the more in-depth rules about subnet masks once (watched a CCNA vid), but I've forgotten about it. The basic level of understanding you'll need is easy to remember though. A subnet mask value of 255 means that portion of the IP address must stay constant, whereas a subnet value of 0 means any unassigned value up to 255 is allowed in the IP address.
By far the most common subnet value is 255.255.255.0. What this means is that the first three parts of the IP address you use to connect to a service must stay the same as the server/gateway address, and only the last section can change.
So if your router's internal IP address is 192.168.0.1, and the subnet mask is 255.255.255.0, the only addresses that will be allowed to be used on that network are between 192.168.0.2 and 192.168.0.255 (I think 192.168.0.0 is reserved for other uses).
Final point to make is about DHCP (a.k.a. dynamic IP) vs static IP. A server/router using DHCP gives a device that connects to it an address within the acceptable range. It usually starts with the lowest numbered free address, so with your router it'll give the first device that connects to it 192.168.0.2, the next device 192.168.0.3, and so on. Static IP addresses are where you set the IP address you want to connect with in advance.
When using static IP addresses on a router where DHCP is active, it's good to use a high number to avoid conflicts with other devices that are connected to your network, to reduce the risk that both devices will try using the same IP. That's why your current choice of 192.168.0.161 is good, unless you have over 159 devices connected on your current network!
Okay, so what's the next step. Well, if you can use ping, I'd suggest pinging 192.168.0.1. If you get a positive response it means you're connected to your router, if you don't get a response it means the connection between your router and your computer is at fault.
Documentation on configuring the AROSTCP environment further can be found [http://en.wikibooks.org/wiki/Aros/User/Networking here]
===File Sharing===
As AROS knows only a few filesystems (FFS, OFS, SFS, PFS (amiga only), FAT12, 16, 32, Microsoft NTFS (windows), UDF (Blu-ray)).
The others in regular use like MacOSX hfs+, Linux ext2/ext3 and ext4, Haiku BeFS provide a problem in transferring files.
Linux can access SFS partitions but it needs to be compiled. The latest full source are [http://home.elka.pw.edu.pl/~mszyprow/programy/asfs/ here]. It compiled fine with a 2.6.30 kernel in Puppy Linux 4.31.
An alternative, is to use a FAT32 partition to share. Setup first with a 2G FAT32 partition for sharing, and the rest of the space as SFS for an Aros install. It works very well.
Files could be transferred via TCP internet network.
====SMB2/3====
With Windows you can share one folder or all folders of the "Public" user.
On Windows what is important is to enable sharing (Network and Sharing Center).
AROS Mountlist should look lke this
<pre>
Handler = L:smb2-handler
StackSize = 65536
Priority = 5
GlobVec = -1
ACTIVATE=1
Startup = "smb://UserAcc:password@PCShare/Sharefolder"
</pre>
which could also be
"smb://UserPC:password@192.168.x.x/Public"
or
"smb://UserPC:password@Name-PC/Public"
so
"smb://UserPC:password@192.168.1.158/Folder"
or
"smb://UserPC:password@Name-PC/Folder"
After you have configured a share generates a DOSDrivers it is named "SMB0" which includes the setting, and at each reboot it is Mounted. You can still delete the DOSDriver by hand, is located in Storage/DOSDrivers, the file "ServerAutoMounts", in ENV:AROSTCP which indicates the DOSDriver to be mounted, should also be deleted.
The per-mount files are written to ENV:SMB or SYS:Storage/DOSDrivers. There is also additional file ENV:AROSTCP/ServerAutoMounts which states what will be presented to the end user.
====Old SMBFS====
e.g. to connect to a NAS share such as \\NASBOX\Shared use -:
SMBFS WORKGROUP=<YOUR WORKGROUP NAME> VOLUME=<AROS volume name to use>: SERVICE=<UNC Path to connect to>
SMBFS WORKGROUP=MYNET VOLUME=Shared: SERVICE=//NASBOX/Shared
And you will then have an icon appear on your desktop for the volume name you have chosen.
You can put the above script into wbstartup or
give it an icon, change it to a 'project' and give it the default tool c:iconx
Open a shell and type copy sys:script.info "sys:wbstartup/YOURSCRIPTNAME.info"
This should create an icon for your script file.
Now right-click on your script and select 'information'.
Change 'tool' to 'project', put 'c:iconx' into the 'default tool' box, click save
The reason being that scripts need to be opened with 'execute SCRIPTNAME' (or 'iconx') whereas the programs started from wbstartup are opened using 'run PROGRAMNAME'. It's the same as trying to start a command-line tool from the workbench by double-clicking it.
====Setup ISO images within AROS====
Use [http://archives.aros-exec.org/index.php?function=browse&cat=driver/storage DiskImage] which supports many cd image formats ISO, CCD, MDF/MDS, CUE/BIN, NRG and UIF. To mount CD or DVD images use below....
<pre >
# Rename your iso 'Unit0' (note no extension).
# Do 'View/All files' on you Aros partition. You should now see a folder called 'Diskimages'. Copy your renamed iso to there.
(Alternatively, you could type at the shell 'assign FDSK: xxx', where xxx is the location of your iso.)
# From the shell, type 'mount CD0:' and the iso should appear on the Wanderer desktop. You can now access it like a real disk.
</pre >
assign devname: dismount
Assign DOSVOLUME: remove
[http://aminet.net/package/disk/misc/unmount-0.1 unmount] most filesystems work but SFS lacks support for ACTION_DIE packet
If you are using an IcAros install, the startup scripts are set up to wipe the Diskimages directory on boot, so its worth keeping a second copy of the iso somewhere else. Alternatively, you could set up extra mountlists for additional iso images. I've made a file called iso1 in the Aros:devs directory that contains the following text:
<pre>
/* Entry for ISO image */
ISO1:
FileSystem = cdrom.handler
Device = fdsk.device
Unit = 1
LowCyl = 0
HighCyl = 0
Surfaces = 1
BlocksPerTrack = 1
DOSType = 0x41434400
Activate = 1
#
</pre>
Then I just need an iso called 'Unit1' (corresponding to the 'Unit = 1' entry in the mountlist) in Diskimages (or wherever I assign FDSK: to) and to mount I type in at the shell:
Mount iso1: from devs:iso1
Of course, if you create mountlists for ISO2, ISO3:, etc. (with the corresponding change to the 'Unit = ' line) you can have as many isos mounted as you wish. I just call mine ISO1: etc. to distinguish them from the real CD drives
==Video Guides==
Video demonstrations and tutorials covering:
:00. '''Introduction'''
::[https://www.youtube.com/@jamesmattson6813/videos Various Aros Installs],
::[https://www.youtube.com/embed/j8EmSEby0Rg AROS repo in gource, view of AROS dev commits from 1997 to 2025], [http://www.youtube.com/watch?v=Vx_zqlBow40&feature=related Gource view of AROS 1997 up to 2009],
::[http://www.youtube.com/watch?v=s1RsvEm7UrU Why an Amiga OS in 2011],
::[https://www.youtube.com/watch?v=1W886mheV74&pp=ygUPYW1pZ2EgYXJvcyAyMDI2 Johan Grip on early days of AROS x86], [https://www.youtube.com/watch?v=mXaKDhtTTqQ&t=14s&pp=ygUPYW1pZ2EgYXJvcyAyMDI2 Michel Schulz on Aros and PiStorm],
:01. '''Installation'''
::[https://www.youtube.com/watch?v=M7YjufrJqDs Aros One install], [https://www.youtube.com/watch?v=iIMguHTdC5E Aros One USB install], [https://www.youtube.com/watch?v=ZNXauy5m5Wc Aros One install], [http://vimeo.com/11013489 Modify Grub boot],
::[http://www.youtube.com/watch?v=wyQVeyXIywc&feature=channel iMica Silent Pt3], [http://www.youtube.com/watch?v=o2AnkoflY14 Wipe whole drive and Install - warning loss of data on drive],
::[http://www.youtube.com/watch?v=OVXm6_-witQ VirtualBox install], [ VMware install],
::[http://www.youtube.com/watch?v=0k2PEmT8I14 Broadway AROS Install],
::[https://www.youtube.com/watch?v=PtDiXhjSIfs Is Aros Icaros a choice?],
::[ driver install],
::[http://www.vimeo.com/10491104 HDAudio install but needs account], [],
:02. '''Amiga Basics'''
::[http://www.youtube.com/watch?v=TY8mWxwzH5o Screens tutorial],
::[https://m.youtube.com/user/AMIGASYSTEM/videos General], [ Dos Scripts tutorial], [http://www.youtube.com/watch?v=hPT7SmVEpjc OS 1.2], [http://www.youtube.com/watch?v=n6kX3FqH8Ww&feature=related OS 1.3],
:03. '''Customisation demos'''
::[https://www.youtube.com/@AMIGASYSTEM/videos Prefs tutorial], [ Decoration tutorial], [http://www.youtube.com/watch?v=Dn5C8G3aDXU Scalos],
:04. '''Setting up''' internet access and surfing the web, FTP, IRC and Mail apps
::[ Network Prefs], [ AirCOS tutorial], [ jabberwocky tutorial],
:05. '''Native bundled Games and Applications'''
::[http://www.youtube.com/watch?v=aYlFv2B-VXc 3D Games], [http://www.youtube.com/watch?v=MXK7wwhd-R0 Latest Games], [http://www.youtube.com/watch?v=RUgiVThv23Q&feature=mfu_in_order&list=UL PrBoom GL], [http://www.youtube.com/watch?v=0s7u8TPy7V4 Assault Cubes], [http://www.youtube.com/watch?v=fih6aCXKeqs Cube 2], [http://www.youtube.com/watch?v=-X0ay0MGOms DosBox on Aros], [http://www.youtube.com/watch?v=7nKduDjf14k Oct 2010],
::[http://www.youtube.com/watch?v=FziV2z_uxnQ Apps Pt 1], [http://www.youtube.com/watch?v=xs37_nfa5CI Apps Pt 2], [http://www.youtube.com/watch?v=Bn59_VvbQR0&feature=related Apps Pt 3],
::DOpus4 [http://www.youtube.com/watch?v=aSRybWjrrME DOpus 4],
::Milkytracker [http://www.youtube.com/watch?v=VxBOEPzpdKg&feature=related Laying Down Base Tracks],
::[http://www.youtube.com/watch?v=k2uKQ0-ieOE Audio Evolution 4 in action], [http://www.youtube.com/watch?v=Zq4r9k0_jZI Quick Videos],
::[http://www.youtube.com/watch?v=gGKCFZcIc0I&feature=related ScreenRecorder], [http://www.youtube.com/watch?v=974c2e-Fqak&feature=related TV out Tests],
::[http://www.youtube.com/watch?v=fjq8ct5d5IY AmiFIG], [http://www.youtube.com/watch?v=h0rHvPhYJo4&feature=youtu.be ZuneFIG],
::[http://wiki.povray.org/content/Documentation:Tutorial_Section_1 POVray Tutorial 1],
::[http://www.youtube.com/watch?v=Jk-ZNLfJsvQ pt 1, jan. 2008], [http://www.youtube.com/watch?v=nWRy33g1R7Y pt 2, feb. 2009], [http://www.youtube.com/watch?v=r5PbhCtm4vE pt 3, feb. 2010],
::[https://www.youtube.com/watch?v=G7_FJUoQ89o Hollywood programming], [], [], [],
::[], [], [],
::[], [], [],
::[], [], [],
:06. '''Commercial software available'''
::[http://www.youtube.com/watch?v=fKXY9B4R43s AntiryadGX 3D Game Editor],
::[http://www.youtube.com/watch?v=TMS9NDzwm5U BOH indie Game],
:07. '''Running classic amiga apps and games'''
:: Amiberry [], [],
::[http://vmwaros.blogspot.com/2008/11/introducing-amibridge.html Intro Amibridge], [http://www.youtube.com/watch?v=ee2PWvCZeLo Old Amiga Apps], [http://www.youtube.com/watch?v=ee2PWvCZeLo Why Janus UAE is good],
::[https://www.youtube.com/watch?v=VhlsNSYSuDg DPaint tutorial]
::[http://vmwaros.blogspot.com/2009/11/can-icaros-play-my-amiga-games-and-why.html Play Amiga Games], [http://www.youtube.com/watch?v=XTaZCNOvCnE],
::[http://www.youtube.com/watch?v=tMehS77LXQ4 Pagestream Introduction], [http://www.youtube.com/watch?v=284-w3hTzII Pagestream Tutorial 1], [http://www.youtube.com/watch?v=mlwEGwhZzl4 Pagestream Tutorial 2],
::[http://www.youtube.com/watch?v=iIcrIjPOctc Catweasel Mk4 PCI Part 1] and [http://www.youtube.com/watch?v=BaitHeL6bEA Part 2],
:08. '''Misc and History'''
::[http://www.youtube.com/watch?v=d6mDXKU29w0 Mum uses old AmigaOS Workbench 1.1 (1986)], [http://www.youtube.com/watch?v=DaRkacQ-YMg Why an Amiga 500 (1987)], [http://www.youtube.com/watch?v=k5CYsgVCzYY an Amiga 2000 (1987)],
:09. '''Misc Shows and Events'''
::[http://www.youtube.com/watch?v=klgVSWKs4kE VCF 2010], [https://www.youtube.com/watch?v=eQ3d5qR-Hv8 24:06 Jason McMullan at amiwest 2012 about AROS], [https://www.youtube.com/watch?v=jpQO7XSfAv4 Aros SMP multi core amiwest 2013], [], [https://www.youtube.com/watch?v=gFRtAAmiFbE ], [https://www.youtube.com/watch?v=DjdUEyjx8GM ], [https://www.youtube.com/watch?v=ydYDqZQpim8 ], [], [https://www.youtube.com/@uminekoshouten/featured ], [https://www.youtube.com/shorts/NfoY023w-vE ],
:10.
::[https://www.youtube.com/shorts/6qJTNW4-6GY ]
===History===
The project was originally started by a small group of Amiga [http://www.amigahistory.co.uk/aros.html enthusiasts] in 1995. These individuals were mainly computer-based college university students at the start, though that student trend has diminished since. An interview with Aaron Digulla [http://arosshow.blogspot.com/2006/12/interview-with-aaron-digulla-who.html here]
* 1992 Commodore folds
* 1996-1998 much of the early years was concerned with exec, dos and intuition libraries.
* Early 1999, Haage & Partner used parts of the AROS code in AmigaOS 3.9.
* March 2001, floppy disk images of AROS became available.
* Early 2002, AROS changed its name from Amiga Replacement Operating System to Amiga Research Operating System
* June 2002, AROS devs decided to use Zune (MUI 3.8 rewrite) as the GUI system.
* November 2002, Eric Schwartz drew Kitty for AROS usage.
* Early 2003, AROS.org underwent a graphics facelift.
* Late 2003, GCC C compiler arrived.
* Early 2004, Aros-Exec opened.
* Early 2005, Aros Max bootable CD arrived.
* Late 2005, SFS filesystem ported and allowed fast access to apps and network support arrived
* Early 2007, AROS.org underwent another graphics facelift.
* Mid-2007, AROS changed to AROS Research Operating System after A.Inc. sued Hyperion with a trademark violation.
* Late 2007, the hard disk installer added and VmwAROS (later called Icaros Desktop) distro launched.
* Early 2009, Our first usable web browser (OWB)
* September 2010, first wireless support appears and AspireOS started as a distro
* Early 2012, the first paper-cut bugfix and Fab's Odyssey Web Browser ported
* Early 2014, backport of most features of ABIv1 into mainstream everyday use (Icaros 2.0 and above)
* 2015 work started on using the extra cores of the PI 2
* Early 2017, work started on utilising the addition cores on modern CPUs starting with the 64bit x86 version
* Mid-2017, m68k port optimized for the Vampire 2 / Apollo accelerators (68080 AMMX FPGA)
* 2018 The old AROS Exec website closed and a new one opened
* 2019 AROS One distribution started and now with USB install version
* Early 2021, backport of more features of ABIv1 into mainstream everyday ABIv0 (Aros One 1.5 and above)
* 2025 year of 64bit pc builds and porting 32bit applications to 64bit ABIv11
===Bounties===
To help inspire developers with both ideas and monetary incentives, rewards are offered for the successful completion of "bounties" (requests for missing/new functionality) chosen by the community and handled by [http://power2people.org power2people] (formerly done by TeamAROS). A monthly option is [http://www.power2people.org/funds/aros/ here].
Future goals for AROS include expanding its underlying retargetability to support even more diverse architectures, provide memory protection features and user level file security, SMP and many other wonderful features missing from AmigaOS — while still providing as much source level compatibility as is possible (however it is accepted that to achieve some goals code certain things may require a little recoding).
[http://www.ohloh.net/p/aros/contributors Developers] come and go as with any open source effort and we would like to thank them for their efforts...
;1996-2000:In DigullaA (coordinator), GripJ, TempletonI (BSD), SchulzM, RittauS, voordenDagL, HolmM, JohanssonT, VanIngelgomH, SteigerwaldM, BortasP, deJongK, AlfredssonJ, InnocentiB,
;2001-2005:In [http://chodorowski.com/adam/aros.html ChodorowskiA], StegerG, BergerS, HeutlingS, AlemagnaF (gcc), VerhaegenS (rexx), KielH, MatheussenKS (CAMD), SzczygielskiP, ErikssonP, LeCorfecD (Zune), BauerS (Zune), FurlongW, GustafssonJ, AndrewsN, CafferkeyN, GierichM (jpeg), PattonJ, ParsonsM, DietrichJ, SeilerT, BischoffL, LorentzenNH, AdamO, BerglundH, SmithP, HolmenD, BlomM,
;2006-2010:In FedinP, RusslerM, SzymczykS (owb), SmiechowiczK (openGL), WeissM, NorrisR, BrunnerO, WiszkowskiT, GreppinA, [http://www.fukt.bsnet.se/~bearsoft/ Bearsoft Björn Screwelius], ErbY, CharletF, HodgesC, [http://aros-exec.org/modules/newbb/viewtopic.php?topic_id=4819&forum=18&post_id=43103#forumpost43103 HokstadV], McMullanJ (m68k), WilenT (m68k),
;2011- :In MuijzenbergPHvanden, ALB42, JonesEM, weiju, DizzyofCRN, wawa, miker,
* 1996 - The linux hosted version for i386 was the first to arrive
* 1998 - i386, The native version for i386-based PC AT computers and compatibles.
* 2004 - x86/64, The native version for 64-bit (x86_64, amd64) PC computers.
* 2008 - sam440/ppc, The native version for Sam440EP, Sam440EP Flex and Sam460ex computers.
* 2009 - efika, The native version for PowerPC Efika computers.
* 2010 - m68k, The native version for m68k Amigas or WinUAE
* 2013 - raspi/armfh, early native version for ARMv6 based Raspberry Pi computers.
* 2017 - x86/64bit smp
Debugging capture serial debug at all (especially with sysdebug=all or --sysdebug=all) to see it displayed on screen
* yes, usb -> rs232 adapters can work most of the time, some of the cheapest ones are not fully compatible with all rs232 devices to capture to another device
* you will need a null modem cable (or a null modem adapter usually female to female) in addition to the usb -> rs232 adapter (usb adapter is a normal modem ie. the pins are not crossed over)
Normal modem cable - straight connection DCE
<pre>
Pin 2 -> Pin 2 RXD
Pin 3 -> Pin 3 TXD
Pin 5 -> Pin 5 GND
</pre>
Null modem cable connections DTE
<pre>
Pin 2 -> Pin 3
Pin 3 -> Pin 2
Pin 5 -> Pin 5
</pre>
(9pole SUB-D)
<pre>
serial ser: (amiga/aros) tty2 tty1USB0 (linux) COM1 (windows) (depends on the os being used)
speed baud transfer rate 9600 38400 lower baud might be more successful
data bits 8
stop bits 1
parity none
handshaking flow control - none xon/xoff (most likely) rts/cts dsr/dtr (pins not connected so should not work)
</pre>
*You cannot use compiled aros X86-64 bit software (when ready) on aros X86 32bit. PPC compiled software on X86 and so on.
*68k is tested with the UAE emulator (WinUAE) but some tests are done on native 68000 based Amigas and others.
*PPC support is very limited to certain devices.
If you use the WBStartup, you have to delete the other icons in the folder (readme etc..) and you have to add in the Icon Tooltype the parameter DONOTWAIT
If you use user-startup instead, you need to add the attached command "after assignment to LUA"
C:WBRun DH1:Extras/Utility/WeatherBar/WeatherBar >NIL:
Change the command to match your WeatherBar path.
<pre>
PATH sys:Utilities/WeatherBar ADD
run >nil: lua:amilua weatherforecast.lua
</pre>
To enter data your Country or City, ist with city_id numbers can be found [http://bulk.openweathermap.org/sample/city.list.json.gz here] or you need to go to [https://www.bbc.com/weather BBC Weather], once you type the name of your city or town in the appropriate tab, and press enter, the 7 numbers to be added in the "WeatherBar" will appear on the Browser url address bar above
Unicode v16.0 emojis are not supported but [https://github.com/jens-maus/libcodesets codesets.library] provides
<pre>
internally supported (hardcoded) charsets/codesets are: (conversions are possible from and to each codeset):
AmigaPL – Polish (Amiga)
Amiga-1251 – Cyrillic (Amiga)
ISO-8859-1 – Western European
ISO-8859-1+Euro – West European (with EURO)
ISO-8859-2 – Central/East European
ISO-8859-3 – South European
ISO-8859-4 – North European
ISO-8859-5 – Slavic languages
ISO-8859-9 – Turkish
ISO-8859-15 – West European II
ISO-8859-16 – South-Eastern European
KOI8-R – Russian
UTF-8 – Unicode
In addition, external charset table files can be stored in LIBS:Charsets or loaded by an application from PROGDIR:Charsets. The charset files included with this distributions are:
IBM866 – Cyrillic (cp866)
ISO-8859-7 – Greek (LatinGreek)
ISO-8859-10 – Nordic (Latin 6)
windows-1250 – Central/East Europe (Windows)
windows-1251 – Cyrillic (Windows)
windows-1252 – West European (Windows)
</pre>
Icaros 2.3 USB image needs a header stripped so it can work correctly
dd bs=512 skip=1 status=progress if=icaros_light_2-3-0_pendrive.bin of=/dev/sdxy && sync
Scalos
<pre>
-------------------------------
{ "STRING", "ID/K,TEXT/K,SRC/K,TEXTPEN/K,HALIGN/K,STYLE/K,FONT/K,VALIGN/K",
HALIGN LEFT | CENTER | RIGHT
VALIGN TOP | CENTER | BOTTOM
STYLE NORMAL | BOLD | ITALIC | BOLDITALIC
FONT // font specification - format: "fontname.font/size"
-------------------------------
arguments for STRING SRC
"diskstate",
"diskusage",
"diskusagefree",
"diskusageinuse",
"diskusagepercent",
"fibfilename",
"filecomment",
"filedate",
"fileprotection",
"filesize",
"filetime",
"filetypestring",
"iconname",
"linktarget",
"plugin" pluginname <optional plugin arguments>
"versionstring",
"volumecreateddate",
"volumecreatedtime",
"volumeordevicename",
-------------------------------
arguments for HIDE
"novolumenode",
"isempty" (some STRING)
-------------------------------
all internal commands:
"about",
"backdrop",
"cleanup",
"cleanupbyname",
"cleanupbydate",
"cleanupbysize",
"cleanupbytype",
"clearselection",
"clone",
"close",
"copy",
"cut",
"delete",
"emptytrashcan",
"executecommand",
"formatdisk",
"iconify",
"iconinfo",
"lastmsg",
"leaveout",
"makedir",
"open",
"parent",
"paste",
"putaway",
"quit",
"redraw",
"redrawall",
"rename",
"reset",
"selectall",
"showallfiles",
"showonlyicons",
"shutdown",
"sizetofit",
"snapshot",
"snapshotall",
"snapshotwindow",
"unsnapshot",
"update",
"updateall",
"viewbydate",
"viewbyicon",
"viewbysize",
"viewbytype",
"viewbytext",
</pre>
{{status|50%}}
{{BookCat}}
k06a0y35cc7ogdt5o0q3dcvgablbjvg
Wikibooks talk:What is Wikibooks?/Archive 1
5
15455
4640082
4628615
2026-06-13T12:50:15Z
ShakespeareFan00
46022
4640082
wikitext
text/x-wiki
== Adding clauses ==
I'd like to add a few clauses
#A place to dump stuff from Wikipedia. Just because an article written at Wikipedia, or any other Wikimedia project, is not consistent with that project's goals does not mean it is accecptable content for Wikibooks. Before moving the content here, please check to see if it falls under any of the other clauses in this document first.
#A free wikiwiki host. If your group would like to have a wiki, there are many free wiki hosts, or feel free to download MediaWiki and set up your own. If you need help, please read our wikibook on [[Wiki Science]].
#A vehicle for advertising and self-promotion. We don't need books or modules on items just because a contributor is associated with them. Please note Wikibooks does not endorse any business and it does not set up affiliate programs.
Perhaps some are cruel, but we need to control our content. [[User:Gentgeen|Gentgeen]] 00:55, 8 Oct 2004 (UTC)
I'd like to suggest "A place for primary research such as proposing theories and solutions, original ideas, defining terms, coining words, etc. If you have done primary research on a topic, publish your results in normal such as proposing theories and solutions, original ideas, defining terms, coining words, etc. If you have done primary research on a topic, publish your results in normal peer-reviewed journals, or elsewhere on the web." (as from [[Wikipedia:What Wikipedia is not]]) [[User:Dysprosia|Dysprosia]] 01:58, 8 Oct 2004 (UTC)
::I'm fine with all four suggestions. [[User:TUF-KAT|TUF-KAT]] 05:17, 8 Oct 2004 (UTC)
::Sound good to me. You could add some text to the "no dumps from Wikipedia" along the lines that some material at Wikipedia (such as cookbook recipes) were dumped here for a reason: The Wikibooks Cookbook made more sense as a place to organize them than did Wikipedia. - [[User:Marshman|Marsh]] 01:46, 14 Oct 2004 (UTC)
::The first three look fine. The proposal about original research on Wikibooks might need to involve others from the following pages. It doesn't matter to me, but it looks like some in the Wikimedia community want a place to do collaborative research. See: [[Wikiresearch]] ; http://meta.wikimedia.org/wiki/Wikiresearch ; is [[Wiki Science]] considered original research ; an Oct 7 edit added text at [[Wikiversity]] that said it was for research also. [[User:Liblamb|liblamb]] 14:26, 15 Oct 2004 (UTC)
::: Wikipedia is not a place for original research and neither should Wikibooks be a place for original research also. A seperate project will need to be created for that if the demand is high enough. Perhaps Wiki Science needs to go also, if it is indeed original research. [[User:Dysprosia|Dysprosia]] 01:29, 16 Oct 2004 (UTC)
::::Yes, original research should not go here. If it's sound research, it should be published/peer reviewed etc, and if the author(s) want it to be freely available, then WikiSource is the appropriate location, not here. [[User:TUF-KAT|TUF-KAT]] 20:12, 16 Oct 2004 (UTC)
:Proposed addition to first point:
:*(Attempt one) A place to dump stuff from Wikipedia without consideration of the content, structure, and accessibility of pages within Wikibooks.
:*(Attempt two) A place to dump stuff from Wikipedia without consideration of the context into which it will be dumped.
:[[User:Liblamb|liblamb]] (signed for liblam by [[User:Gentgeen|Gentgeen]] after investigating page history)
::I like liblam's attempt one to clairify the first point. [[User:Gentgeen|Gentgeen]] 22:06, 30 Oct 2004 (UTC)
:::I wasn't very clear with respect to this but I would think my attempt #1 would be the first sentence and Gentgeen's #1 other sentences would follow. [[User:Liblamb|liblamb]] 21:22, 1 Nov 2004 (UTC)
I've added my points 2 and 3, and Dysprosia's point about primary research. Point one will have to wait until the exact wording is ironed out. [[User:Gentgeen|Gentgeen]] 22:13, 30 Oct 2004 (UTC)
== fiction ==
there should be a place for fiction on wikimedia; fiction books seem as though they should be here. I would like to strike #4 from the record. +sj+
: Wikimedia - possibly. Wikibooks - no. Wikibooks has and always should be an organization oriented to education. [[User:Dysprosia|Dysprosia]] 09:56, 28 Dec 2004 (UTC)
:: That's not in line with how wikibooks as a project was founded... at least as far as [[User:Maveric149|mav]] is concerned. And that's not how I have understood the purpose of Wikibooks. I appreciate your enthusiasm for textbooks, but if you want to change the original intent of this project, you should at least recognize that it has not always been the way you perceive it. [[User:Sj|Sj]] 22:52, 2 Feb 2005 (UTC)
:::I always intended for Wikibooks to be a place to develop educationally-oriented materials. Just about any finite-sized non-fiction reference/textbook, manual or study guide should be welcome here. Wikifiction / Wikinovels would make for an interesting project, but I'm not sure if that fits with the goals of the foundation and thus may need to be hosted elsewhere. --[[User:Maveric149|mav]] 04:27, 5 Feb 2005 (UTC)
== copyrighted content ==
this is obvious; we can get rid of #2 as it is more fundamental than a "what this is not" item. +sj+
:Nothing is so obvious that it can't be clearly stated. [[User:Gentgeen|Gentgeen]] 05:41, 5 Feb 2005 (UTC)
== speculative, subjective, and non-verifiable information ==
One of the important ways in which the wiki process works is by peer-review correcting information that is "wrong." As a result, I think that wikibooks should not contain texts that are purely speculative and non-verifiable in nature. We are not trying to gather information that someone has simply acquired through their own experience and speculation, especially if that information cannot be proven wrong because it is essentially subjective in nature. I think there should be a clause forbidding purely speculative and non-verifiable information as the basis for a text. If the information cannot be refined through research and verification, it does us no good to construct it through a wiki. Here is my proposed clause:
* A place for texts based on speculative, subjective, and otherwise non-verifiable information. If it is impossible for the information in the text to be "wrong," then it is also impossible for it to be refined or corrected. It is, however, usually possible to reframe the text or its information so that it is verifiable: by establishing it as a perspective, and explaining whose perspective it is.
[[User:Jun-Dai|Jun-Dai]] 20:29, 10 Feb 2005 (UTC)
== Real-life course materials ==
I found and removed the following:
:Wikibooks is also not a place to publish administrative materials relating to real-world courses, including course outlines, scoring rubrics, or assignment material. Wikibooks is not affiliated with any institution of learning, and does not endorse any institution.
I wonder: why not? Aren't we specifically trying to create materials that can actually be used in schools? If useful course outlines, assignments, etc., can be made available here without copyright problems, then why not?
If people think I'm mistaken, then obviously the quote should be moved back into the article.[[User:Dovi|Dovi]] 09:58, 19 May 2005 (UTC)
The idea is that Wikibooks should not be used as a course website, despite our intentions of being an instructional resource. In the past, teachers have made their students take up Wikibooks accounts for the sole purpose of collaborative work on one of their school projects, as well as posting their course timetables, grades, and stuff like that. We can claim that it is against our policy to do so as it is original research, and using Wikibooks as a web hosting service. [[User:KelvSYC|KelvSYC]] 04:51, 21 May 2005 (UTC)
:Aha, I see what you mean. On the other hand, a ''general'' sample/example of a course outline could make the wikibook more useful. And assignments - these include study questions, which we explicitly want. So it sounds like the criterion should be: Might the outlines/assignments be useful to ''anyone'' studying/teaching the topic, or ''only'' to a specific school (which is taking advantage of Wikibooks' hosting).
:Another thought: Perhaps even school-specific uses should be OK on a user page, as long as the volume remains within reason? [[User:Dovi|Dovi]] 19:47, 21 May 2005 (UTC)
:: Yeah, maybe that needed reworking - as an educational resource, we need sample outlines and sample questions just for the fact that it is, but we need a clearly-defined line to determine what is acceptable and what is abusing WB as a free hosting service. [[User:KelvSYC|KelvSYC]] 05:49, 23 May 2005 (UTC)
: That is what the Wikiversity will be used for, not wikibooks. We don't want competing communities.--[[User:Dragontamer|Dragontamer]] 10:15, 3 December 2005 (UTC)
== Wikibooks is not a repository of links ==
'''Wikibooks is not a repository of links''' is not official policy, as it is on Wiktionary, Wikinews, and Wikipedia, according to this page. It probably should be. Please discuss. [[User:Uncle G|Uncle G]] 15:18:46, 2005-08-20 (UTC)
:I want to wade in on this topic. This is a solution in search of a problem from my viewpoint right now in terms of Wikibooks. Most massive lists of links that I've seen added were blatant spam and vandalism, where the links were simply off topic and legitimate for removal simply for that reason alone. On the other hand, massive lists of links to be used for bibliographic references of a subject in a Wikibook can and should be encouraged, particularly when content from those other websites were used directly in the creation of the Wikibook and the list of links is large simply because the Wikibook has a correspondingly large amount of content that needs to be referenced to original sources.
:Most other abuses of this sort can be dealt with through other policies here on Wikibooks anyway. A Wikibook that is just a list of links would have to be removed because it is "developing a new Wikimedia project", like a Wiki competitor to the Open Directory Project. Other clauses in this official policy may also be cited as legitimate reasons to remove content like this.
:Basically, I fail to see a reason why this even needs to be official policy unless there are some clear examples of how somebody was abusing Wikibooks in this manner that couldn't be taken care of through other means. There is no reason for preemptive measures or policies that will never need to be invoked. --[[User:Robert Horning|Rob Horning]] 15:49, 26 October 2005 (UTC)
== Wikibooks is not censored for the protection of minors ==
'''Wikibooks is not censored for the protection of minors''' is not official policy, as it is on Wiktionary, Wikinews, and Wikipedia, according to this page, despite our [[Wikibooks:content disclaimer]]. It probably should be. Please discuss. [[User:Uncle G|Uncle G]] 15:18:46, 2005-08-20 (UTC)
:I agree. As part of our policy changes moving forward we should sync up with practices of the other wiki's. [[User:Mshonle|MShonle]] 15:07, 31 August 2005 (UTC)
::If somebody creates a Wikibook about sex issues (sexual impotancy, theraputic research concepts, frank discussion about sexual habits in a clinical setting), it may not be appropriate for minors but I don't think it should be banned from Wikibooks. Outright pornography should be banned, as should books like the [[Manual of Crime]] that encourage people to break the law. Things like erotic literature and a neo-NAZI promo book would be dealt with through other parts of the deletion policy (no fictional content and no original research, respectively). I don't know of any current Wikibook that really tries to push the line here, but I do think eventually there will be some that try to get right to the line on this idea but not cross it.{{pbri}}[[Wikijunior]] and the related wikibooks clearly should have censoring in regards to appropriate content for minors as that is the target for those books. A Wikijunior book about sexuality, for example, is just going over the top and inviting criticism (although a resource to discuss sexuality to minors would be IMHO something very welcome). I'm not sure where the line should be here on topics like this. I've had people critical of the image of Venus (Roman goddess) because it shows a woman's bare breast. I consider that to be art, but that is my own opinion of the subject. --[[User:Robert Horning|Rob Horning]] 17:56, 25 October 2005 (UTC)
:I agree, non-censorship should be an official position (with a possible exception of the wikijunior area). Its not a good idea to start the slide down the censorship road begin. You wouldn't believe how extreme some parents get over what other people's children shouldn't be exposed to.--[[User:Javariel|Gabe Sechan]] 18:12, 15 November 2005 (UTC)
::But we should include a statement that says "Pages marked with the prefix '''Wikijunior:''' will be censored for minors. Other pages will not be." After all, why have a wikijunior at all if it isn't appropriate for children? --[[User:Whiteknight|Whiteknight]] <sub>[[User talk:Whiteknight|T]]</sub><small>[[Special:Contributions/Whiteknight|C]]</small><sup>[[Special:Emailuser/Whiteknight|E]]</sup> 19:23, 22 November 2005 (UTC)
:::Except Wikijunior pages are not marked with the prefix "Wikijunior:", they just have Wikijunior as the first word, it is not its own namespace. --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 19:30, 22 November 2005 (UTC)
::::Thanks for the correction, but that doesnt change the fact that wikijunior books are designed for children, and therefore they should be censored for children. --[[User:Whiteknight|Whiteknight]] <sub>[[User talk:Whiteknight|T]]</sub><small>[[Special:Contributions/Whiteknight|C]]</small><sup>[[Special:Emailuser/Whiteknight|E]]</sup> 21:04, 22 November 2005 (UTC)
:::::As long as anyone can edit a Wikijunior page, there is no way to censor such pages for children. --[[User:Kernigh|Kernigh]] 03:25, 27 November 2005 (UTC)
::::::That point not withstanding, when a wikijunior book is seen to be unappropriate for children, the wikibooks community should make a special effort to fix that. otherwise, why have wikijunior at all? --[[User:Whiteknight|Whiteknight]] <sub>[[User talk:Whiteknight|T]]</sub><small>[[Special:Contributions/Whiteknight|C]]</small><sup>[[Special:Emailuser/Whiteknight|E]]</sup> 18:07, 27 November 2005 (UTC)
== Wikibooks is not a dictionary ==
This section is IMHO not clear enough and encouages people to add things like [[Body parts slang]] to Wikibooks. To avoid abiguity on this issue, we need to emphasis that it would be easier and more appropriate to put even dictionary subsets, like the "Hacker's Dictionary" or "Medical Dictionary" on Wiktionary directly as well. Wikitionary is set up better to deal with content of this nature, and IMHO material of this nature needs to stay there. This comes up in repsonse to [[Body parts slang]] where an argument in the [[VfD]] discussion was to this current description that seems to encourage dictionary-like books even though the title reads Wikibooks is not a dictionary. Where do we draw the line? A glossary that is an appendix to a book I feel is just fine, as is a technical reference manual that has a huge number of terms. A book that has as its primary focus to be a dictionary or encyclopedia IMHO should not be on Wikibooks but rather portals on Wiktionary and Wikipedia respectively. Any other thoughts? --[[User:Robert Horning|Rob Horning]] 00:12, 30 October 2005 (UTC)
:I suggest adding that Wikibooks is not a thesaurus. The reason for this is [[wiktionary:Wiktionary:WikiSaurus]]. <s>Here is a proposed text: "#'''Wikibooks is not a thesaurus.''' Thesaurus entries belong at [[wiktionary:Wiktionary:WikiSaurus|WikiSaurus]]."</s> Now that I know that Wiktionary has a thesaurus, I will not support thesaurus entries on Wikibooks. --[[User:Kernigh|Kernigh]] 01:33, 30 October 2005 (UTC)
:I put a proposed policy text at [[User:Kernigh/thesaurus]] --[[User:Kernigh|Kernigh]] 05:30, 30 October 2005 (UTC)
::I '''love''' the text as you have ammended it. I move to turn this into a formal vote to accept or reject this wording change as below. Feel free to rule this vote out of line and abort the vote if you want to make more substantial changes to the wording. --[[User:Robert Horning|Rob Horning]] 01:24, 31 October 2005 (UTC)
:[[User:Lord Voldemort|Lord Voldemort]] made a minor edit to [[User:Kernigh/thesaurus]], changing a "become" to "be". It matters not to me which of these two words is used. --[[User:Kernigh|Kernigh]] 16:45, 18 November 2005 (UTC)
Do you support the change to '''Wikibooks is not a dictionary''' to read [http://en.wikibooks.org/w/index.php?title=User:Kernigh/thesaurus&oldid=268457 as found on this page]?
Voting will take place between now and December 1st, 2005 before becoming official policy.
===Support===
#[[User:Robert Horning|Rob Horning]] 01:24, 31 October 2005 (UTC)
# Better late than never, eh? --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 19:27, 14 November 2005 (UTC)
#--[[User:Javariel|Gabe Sechan]] 18:14, 15 November 2005 (UTC)
#(either "become" or "be" version) [[User:Kernigh|Kernigh]] 16:45, 18 November 2005 (UTC)
===Oppose===
== Is a cookbook a text book? ==
"This is for textbooks" was recently added in the "What Wikibooks is" section. Is the [[Cookbook]] a textbook? [[User:Liblamb|liblamb]] 19:16, 14 November 2005 (UTC)
*Well, we are still waiting to hear back from Jimbo on the direction of Wikibooks. There should be an answer later. <small>Hopefully not too much later.</small> --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 19:29, 14 November 2005 (UTC)
*Recipes are lists of instructions for making things, so that our [[Cookbook]] and [[Bartending]] wikibooks are instructional should be self-evident. However, if controversy arises, I suggest posing the following questions:
**What sort of textbook does one expect someone learning to be a chef, at catering school, to use? (Hint: {{#isbn:0609609718}}, {{#isbn:0471417750}})
**What sort of textbook does one expect someone learning to be a cocktail bartender to use? (Hint: {{#isbn:0312252862}}, {{#isbn:1571459545}}, {{#isbn:0471227218}})
**Why would Wikibooks ''not'' be in the business of providing free textbooks in such fields?
* [[User:Uncle G|Uncle G]] 21:10, 14 November 2005 (UTC)
*Jimbo said cookbook is ok, but he gave quite strange explanation: we can be classes teaching cooking so this book is textbook. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 21:53, 14 November 2005 (UTC)
**It's not really that strange. It's the very point that I made above. [[User:Uncle G|Uncle G]] 11:38, 15 November 2005 (UTC)
::The only problem I have then, is what couldn't there be a class about? What if there was a class on Mass Media and Propaganda, and one of the textbooks was that White-Power module? It is just a sketchy line. I guess we need to look at things on a case-by-case basis. --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 15:28, 15 November 2005 (UTC)
:::The edits of concern here are [http://en.wikibooks.org/w/index.php?title=Wikibooks%3AWhat_is_Wikibooks&diff=281320&oldid=281147 two edits by Derberth]. Preceding it is an [http://en.wikibooks.org/w/index.php?title=Wikibooks%3AWhat_is_Wikibooks&diff=281147&oldid=265973 edit by Jimbo Wales].
:::Before edit of [[User:Jimbo Wales|Jimbo Wales]], policy incorrectly claimed that most non-fiction books were acceptable. (This is incorrect because the same policy has a long list of "What Wikibooks is not".) After Jimbo Wales, but before Derbeth, it claimed, "This is for textbooks". After first edit of [[User:Derbeth|Derbeth]], it claimed, "This is for textbooks - understood by book that could possibly be used by a [[wikt:college|college]] for teaching a subject." Then Derbeth rewrote it to say "A textbook is a book which is actually usable in an existing [[wikt:class|class]]." This includes essentially all instructional material. (Somewhere, there is a class on how to play video games.) --[[User:Kernigh|Kernigh]] 03:54, 16 November 2005 (UTC)
:::By "class" I meant "a group of similar objects"... --[[User:Kernigh|Kernigh]] 04:11, 16 November 2005 (UTC)
: In case someone might think I made this edit without justification: http://en.wikibooks.org/w/index.php?title=Help:How_to_start_a_book&diff=prev&oldid=281044 - I just copied the words of Jimbo. My first edit was an attempt to write it in other words, but I reverted it because I realised it changed meaning of the paragraph. I'm not native American, so I'm not familiar with US educational system - I think this can justify my mistake. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 09:52, 16 November 2005 (UTC)
:::I am changing my position. I am disagreeing with wording "not joke books" because I voted Keep on [[Jokebook]] over at [[WB:WIW]]. This particular wording was written by [[User:Jimbo Wales]] at [[Help:How to start a book]], and copied to enforced policy by [[User:Derbeth]].
:::I have marked the section as disputed, given the previous version (though not any in-between versions like I might want), and replaced the duplicate wording at [[Help:How to start a book]] with a link to this policy. --[[User:Kernigh|Kernigh]] 02:22, 21 November 2005 (UTC)
:::[[User:Jimbo Wales|Jimbo Wales]] [http://en.wikibooks.org/w/index.php?title=Wikibooks%3AWhat_is_Wikibooks&diff=290679&oldid=290677 removed] my marking of the section as disputed. I had already changed my vote of [[WB:WIW]] on [[Jokebook]] to be delete. However, I still disagree with the text "not joke books", as inserted by [[User:Derbeth|Derbeth]] (copied from an edit by [[User:Jimbo Wales|Jimbo Wales]] to a non-policy page).
:::I would support a "joke book" that ''explains how to joke and instructs the reader in joking''. I would not support [[Jokebook]], which contains a large list of "jokes", some of which are original research. --[[User:Kernigh|Kernigh]] 02:10, 27 November 2005 (UTC)
== No original research ==
IMO, "No original research" is appropriate for wikipedia, but not so appropriate here. One of Wikibooks' great strengths is its capacity to be more current than any printed reference texts. It would be a great shame to limit it to reproducing preexisting textbooks.<br>An example of original research that (IMO) should be hosted by Wikibooks is documentation for newly-created software. Ironically, the "No original research" rule means that a textbook on use of the Wikimedia software shouldn't be hosted on Wikibooks!<br>I doubt this is what was intended, and IMO the "No original research" rule should be replaced with a rule that reflects what '''was''' intended. Jun-Dai's "Wikibooks should not contain texts that are purely speculative and non-verifiable in nature" above would seem an appropriate replacement. [[User:Irrevenant|Irrevenant]] 11:56, 16 November 2005 (UTC)
*[[Wikibooks:no original research|no original research]] is appropriate here. It simply needs to be somewhat ''weaker'' in certain respects. The major purpose of the policy is to exclude things which have not been peer reviewed and incorporated into the corpus of human knowledge, and which have yet to gain any traction in the world outside of their creators or founders, such as new religions, crackpot science theories, new languages, new philosophies, radically new and idiosyncratic interpretations of history, and the like. We want to exclude most such things from Wikibooks just as they are excluded from Wikipedia. (Wikibooks is not the place for writing a grammar book on one's own constructed language, for example, or for propounding the theory that the universe is a plutonium atom.){{pbri}}However, the point that we certainly ''should'' allow textbooks to be written in newly formed areas of study is a good one. If, for example, the field of computer science expands to include a new area, we shouldn't be creating impediments that prevent Wikibooks from being able to be the ''first'' to have a textbook covering it. Verifiability does not cut the mustard as a criterion for that, though, and the rule that you mention is unsuitable. Vast swathes of {{#isbn:0136386776}} and {{#isbn:0201896834}} — standard textbooks in their field — would not satisfy a verifiability criterion, as they describe and document systems that were invented by their authors. [[User:Uncle G|Uncle G]] 13:21, 16 November 2005 (UTC)
:: I don't think who invented the systems is relevant - so long as they're freely or widely available, the average user can confirm that the software does what the book says it does. ie. it's verifiable. (This means no books on proprietary software that hasn't been released yet, which is the sort of thing you're trying to keep out with "No original research" anyway). [[User:Irrevenant|Irrevenant]] 21:30, 16 November 2005 (UTC)
:The few cases where this has been an issue have generally been cleaned up quickly. Yes, some Wikibooks have been deleted due to this policy. The most glaring example was when a laboratory was literally placing their measurement results (I believe it was a chemical laboratory, but I may be mistaken) as a lab notebook on Wikibooks. They did intend to have the results not only public but available under the GFDL, so it wasn't a problem for the lab. The problem was the original research issue, which this clearly was. We did find a Wikicity that was willing to take the data, so it wasn't "lost", but it is no longer a part of Wikibooks. Your proposed change would have actually encouraged more Wikibooks of this nature, which frankly we are not prepared to deal with and can't evaluate.
:: That's the key phrase - if we can't evaluate it, then it fails the verifiability test and won't be included anyway. "Verifiable" should probably be clarified to indicate that it means by a typical wikibooks user though (as opposed to, say a multi-million dollar physics lab). [[User:Irrevenant|Irrevenant]] 21:30, 16 November 2005 (UTC)
:There is also the issue of psuedo science individuals like Richard Hogland (not that he has added anything here on Wikibooks that I'm aware of). There have, however, been several attempts to put in Wikibooks that espouse some more esoteric scientific philosophies, and in this case it is much more polite to suggest that original research is not appropriate for Wikibooks than to say they are a quack and we think their research has no merit. Again, there is an Academic Research Wikicity that not only handles this, but has the people capable of assisting individuals who do this sort of research, including UFO researchers and paranormal investigators. Think "Ghost Busters" in real-life, and they do exist.
:A textbook about the use of Wikimedia software is appropriate, but a running bug report about trying to fix MediaWiki software would not. That bug list is an example of original research. I think you are confusing the two issues here. It has nothing to do with the "newness" of the idea. The software architechture document about MediaWiki software is not appropriate on Wikibooks either, because that is original research. A comparison study about different Wiki software packages is also original research. Writing a book about Wiki software is not.
:: Would you seriously want to prevent a wikibook on using wikis from including a comparison of features? To me this is an "against" for No Original Research, not a "for". [[User:Irrevenant|Irrevenant]] 21:30, 16 November 2005 (UTC)
:Let's take another view of this. If I create a cold-fusion power cell, there are several books I could write about the topic. Original research is publishing actual research notes about how I built the power cell, and what kinds of power readings I got from various experiments I conducted on that power cell. I could also talk about what my theories about how this works, even doing citations from other fusion research. That would still be original research, however. If on the other hand I wrote a "how-to" book on the best way to operate a cold-fusion power cell, that would not be original research. Writing a literature survey about cold-fusion would also be appropriate for Wikibooks, especially if it cites original research that has been published elsewhere. Your proposed policy change would challenge these secondary books from ever being written and you could shut down the writing of any Wikibook that follows a theory that you or a large group of Wikibook participants don't agree with.
:: You say you want to avoid "pseudo science" wikibooks, but you don't want to "shut down the writing of any Wikibook that follows a theory that you or a large group of Wikibook participants don't agree with". That's what the verifiability test is all about. If you come up with a better rule to weed out pseudo-science, I'd be happy to hear it.[[User:Irrevenant|Irrevenant]] 21:30, 16 November 2005 (UTC)
:I'll be the first to admit that the "original research" clause in the policies is very subjective, and there are cases where it is difficult to draw the line. Still, by keeping the original research exclusion policy it makes it easier to keep some books that we simply don't have people here that can evaluate the validity of the claims. The emphasis here is that we are trying to write textbooks for educational environments. Original research strongly distracts from this original goal, which is the primary reason this exclusion exists. --[[User:Robert Horning|Rob Horning]] 13:43, 16 November 2005 (UTC)
== Proposals for major changes: overreaction? ==
Some quotes follow. My ([[User:Kernigh]]) emphasis is '''bold'''.
* [[Wikibooks:Staff lounge|Staff lounge]] Speedy Deletion Warning thread
** ''In the next 24 to 48 hours, I will delete a variety of pages from Wikibooks which are a clear and simple violation of our charter. [[Jokebook]], [[Getting a date]], [[Naturism]] are all not textbooks and need to be moved to another site. There may be more. --[[User:Jimbo Wales|Jimbo Wales]] 17:27, 13 November 2005 (UTC)''
** '''''It isn't an order. It's 100% consistent with policy.''' --[[User:Jimbo Wales|Jimbo Wales]] 21:01, 13 November 2005 (UTC)''
** ''We have to change our guidelines for new pages. To see what is valid, check [[Wikibooks:What is Wikibooks#What Wikibooks]] includes - this is Jimbo's opinion on our mission. '''I understand that this will cause major changes to Wikibooks''' - it is possible, that we will have to '''move away all computer games bookshelf''' (but not through speedy deletion as much of this material shows high quality). --[[User:Derbeth|Derbeth]] talk 21:50, 13 November 2005 (UTC)''
** '''''I think we should have a concept submittal process for new books.''' Nobody wants to spend a lot of time writing a book for it to later be deleted. Wikibooks would get a lot more action if speedy deletion were not always hanging over author's heads.'' --[[User:Zephram Stark|Zephram Stark]] 22:09, 13 November 2005 (UTC)
** ''This could affect almost all of Wikibooks. So under '''this new enforcement of policy''', what are we to do with Wikibooks:How-tos bookshelf, for example. They are not really textbooks. --[[User:Lord Voldemort|LV]] (Dark Mark) 15:55, 14 November 2005 (UTC)''
** '''''I would strongly suggest that Jimbo try to trust the Wikibooks community a little bit.''' We did delete the White Power Wikibook, and most other patent nonsense does need to go as well. --[[User:Robert Horning|Rob Horning]] 18:14, 14 November 2005 (UTC)''
** ''One of the problems here is that books like Jokebook have been allowed to persist on Wikibooks for some time. Going through the history of this Wikibook you can see that the first edit was November 2004. '''That means it has been on here for some time and until now never challenged.''' --[[User:Robert Horning|Rob Horning]] 05:59, 15 November 2005 (UTC)''
* [[Wikibooks:Staff lounge|Staff lounge]] GnuFU thread
** '''''A manual for use of productive software can be considered a "textbook or manual", as per enforced policy. Strategy guides for games, i think, are the only software manuals that need to be worried.''' --[[User:Whiteknight|Whiteknight]] TCE 15:15, 16 November 2005 (UTC)''
* [[Wikibooks talk:Policy/Vote]] What are we using this page for? thread
** '''''Get rid of proposed policies.''' Either get formal approval to enforce or get rid of it. The place to approve the text of the proposal is '''[[Wikibooks talk:Policy/Vote|here]]'''. ...I think it is time to seriously "clean house" here. --[[User:Robert Horning|Rob Horning]] 17:08, 15 November 2005 (UTC)''
** '''''It does seem like I arrived just in time to witness a massive change in the Wikibook structure.''' --[[User:Lord Voldemort|LV]] (Dark Mark) 19:35, 16 November 2005 (UTC)''
Overreaction? Is there a massive change? Speedy deletions for [[WB:WIW]] exclusions are already [[Wikibooks:deletion policy|deletion policy]]. Someone moved [[Jokebook]] to [[WB:VFD]], and I moved [[Getting a date]], and there is nothing strange about that. Maybe proposed policies will become enforced or rejected, but I already expect that to happen. The recent changes to [[Wikibooks:Votes for deletion]] were only minor.
The one major change might be game guides. I have created [[Wikibooks:Game manual guidelines]] and [[Wikibooks talk:Game manual guidelines]]; this needs discussion. --[[User:Kernigh|Kernigh]] 00:06, 17 November 2005 (UTC)
:Ummm... there is not much of an overreation. Do you realise how much here on Wikibooks is not a text book? There is not even such a thing as a "Deletion policy". That page isn't even an enforced policy. People at Wikipedia send stuff here because they don't understand what WB ''is''. There is a major change going on. If things like Jokebook are to be deleted, which have been here basically forever, how can there not be a major change. Actually enforcing policy ''is'' a major change. Like I said, I contacted Jimbo at WP and am waiting to hear back about what Wikibooks actually is. --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 15:40, 17 November 2005 (UTC)
::This is Jimbo stirring up the pot. He is in a position to "clean house" that the rest of us can't be, simply by being the CEO of the Wikimedia Foundation (aka Benevolant Dictator and God of Wikimedia). I disagree with him on some points, but if he wants to refocus Wikibooks to become more textbook oriented, I am not only willing to aquiese into this point, but I'm also willing to enforce a revised Wikibooks philosophy that follows that line of reasoning. The big problem is that it is going to mean the deletion of a large portion of Wikibooks, including the alienation of many users here who have made very reasonable and meaningful contributions to Wikibooks. I also want consistant policies rather than having to rely on whatever Jimbo feels isn't appropriate at the moment, which is not a good way to run a project like this. That is why we need to have a policy overhaul, so these books that Jimbo doesn't want can be accomodated through policy rather than one person's opinions, even if it is the Wikimedia project's founder and initial financer (the true measure of why he has the political power on these projects that he has). --[[User:Robert Horning|Rob Horning]] 16:33, 17 November 2005 (UTC)
:::Right, except he owns Wikibooks, and can therefore tell us what he wants it to be. If people want to start their own wiki to house all of the newly deleteable material, there is nothing stopping them. But Jimbo set up Wikibooks to be a place for ''textbooks'' and I am inclined to follow his desires on this issue and enforce his decrees, even if that means going against what the community-at-large feels is right. This is his website, he gets to make the rules. If he says, "only textbooks", then we should have only textbooks. It is his perogative. --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 16:50, 17 November 2005 (UTC)
::::I take exception to this point. Jimbo does not own wikibooks or wikimedia- the wikimedia foundation owns it. THe wikimedia foundation isn't a codename for Jimbo, its everyone who works on a project it runs. Jimbo deserves respect for starting and financing the project, and his opinion definitely holds more weight than a normal contributor. But that does not mean his wishes override the voice of the community. That is NOT his perogative. And people believing it is the founders perogative has killed many good projects in the past when the founder has been wrong. If Jimbo thinks we need major content deletion, this is something that needs to be discussed among the community and most likely the board.
::::That said, people are probably overreacting. He called for the deletion of 3 specific books, not entire shelves like the game books section. If he wants more deleted, I'm sure he'll tell us and we can discuss it then. --[[User:Javariel|Gabe Sechan]] 17:12, 17 November 2005 (UTC)
:::::Okay, then I would urge Jimmy Wales, not Jimbo Wales to pull all funding from the Wikibooks project and we'll see if it is his perogative or not. He established the Wikimedia Foundation, and I imagine he could cause its dissolvement if he chooses. He didn't just point to three books and say they need to go. He pointed out the fact that things which are not textbooks have no place on Wikibooks. "The Wikimedia Foundation is everyone who works on a project it runs"? So WoW, Wikipedia is Communism, Mr. Treason, and every other vandal or troll is a member? --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 17:18, 17 November 2005 (UTC)
::::::He can't legally do that- wikimedia foundation is a non-profit corporation, it isn't his money anymore. In addition, I'm not sure that he provides the majority of current funding- remember that fundraising drive a few months back? You did contribute, right? I know I sure did.
::::::Communism? No a democracy. Or a republic if you prefer- we vote for a board. Elections were in July or August I think. Every registered account got a vote. If we wanted, we could have voted even Jimbo out. We didn't, and it was probably a good thing- he's run wikimedia well. But that does not mean every decision he makes is right, or that he gets to arbitrarily set any and all policies. The board (of which he is a member) can of course do that by vote- but the end result of going that route is a fractured contributor base, loss of contributors, forks, and eventually stagnation for the project. Been there, done that, not a good option. Major policy changes/decisions need to be discussed to avoid such situations. --[[User:Javariel|Gabe Sechan]] 17:45, 17 November 2005 (UTC)
:::::::<s>Actually, not Communism but a Facist dictatorship instead. Jimbo doesn't even hide from that fact.</s> The charter of the Wikimedia Foundation is set up that he can't be voted out from his position. All the elections are about is to elect two members of a five seat board. Jimbo has indicated that eventually he wants to see all of the board members be up for election, but that is for some distant future event. The ultimate issue here is that we are all volunteers here and if Jimbo gets too arbitrary and harsh that we can all simply leave. This has been a problem for other internet communities when arbitrary decisions get handed out, and that is a problem. Worse, that the Wikibooks community could split and fork the content in a major way, with a new group running the whole thing from somewhere else. Jimbo is smart enough that he doesn't want to force that to happen again, as it already did happen with the Spanish Wikipedia some time ago. I would like to stay within the Wikimedia community if I can, but if arbitrary decisions start to get handed out more often, a split will happen. So far Jimbo has proved to be a generally hands-off manager except in extreme circumstances, and most other decisions about the governance are through participatory democratic discussion. Not even republican representative governance but pure democracy where you govern through your level of participation. --[[User:Robert Horning|Rob Horning]] 19:09, 17 November 2005 (UTC)
:::::::::I do apologize to Jimbo over the fact that I called him a dictator after the mold of some truly evil regimes in the past. I can't take back what I said. Well, with admin status I suppose I could delete the words and everything in the history that has this text, but I won't right now mainly through practicallity and that the damage has been done. Jimbo does have some sort of dictitorial authority if he chooses it, but has generally shown considerable restraint in the past and the present. Indeed, Jimbo has been hammered on many fronts lately, and I'm sorry that this whole issue came up at all. My main beef with Jimbo was over how he handled this, not what he did. He also apologized formally, and I want to recipricate that apology as well. There is some sort of internet law that talks about discussions that invoke Nazism..... --[[User:Robert Horning|Rob Horning]] 02:39, 14 December 2005 (UTC)
:::::::I never said it was communism. And guess what, until another member of the board shows up to dispute what Jimmy has said, I am going to assume that he speaks for the entire Board. Normally he notes if an opinion he has is as a regular, everyday contributor. He did no such thing in this instance, so I assume he speaks on behalf of the entire Board. --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 18:38, 17 November 2005 (UTC)
::::The hardest part of this whole movement is trying to separate out the "textbooks" from the books that have information and instructive value, but can't be used in a structured class environment. When i was younger, i loved to read about the games I was playing, and try to become a better player. I once bought a SimCity 2000 strategy guide that was bigger then the mathbook i was using in school at the time. I read that book cover to cover, and it included alot of interesting information, not only on how to play the game, but also how some of the algorithms worked, and it included interesting commentary from the game designers about how the game was made. Yes, no educational institution with any worth will teach a class about how to play a videogame. '''There are, however, prospective students out there who want to learn these subjects.''' I don't think we should make wikibooks cater only to subjects where teachers are available, but instead we should include subjects where there are willing and eager students. I personally think it is much more important to cater to available students then it is to cater to available teachers. --[[User:Whiteknight|Whiteknight]] <sub>[[User talk:Whiteknight|T]]</sub><small>[[Special:Contributions/Whiteknight|C]]</small><sup>[[Special:Emailuser/Whiteknight|E]]</sup> 17:13, 17 November 2005 (UTC)
:::::Wikibooks was established as a resource and repository of educational '''textbooks''', not jokebooks, not game guides, etc. Somewhere along the line someone corrupted the integrity of WB by leaving all this in here. Jimbo says that is not what WB is for, therefore I am inclined to let him have his website have what it was designed to have. Let someone else start a wiki for game-guides etc. --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 17:22, 17 November 2005 (UTC)
::::::I'm all for dumping some trash like the jokebook (where half the "jokes" aren't funny anyway), but i think that the wikibooks charter and [[WB:WIW]] ''should be expanded'' to include all textbooks, instructional guides, and manuals. We can't focus only on subjects that educational institutions are willing to teach, but instead we should focus on subjects where students are willing to learn. Everybody benefits from that system. --[[User:Whiteknight|Whiteknight]] <sub>[[User talk:Whiteknight|T]]</sub><small>[[Special:Contributions/Whiteknight|C]]</small><sup>[[Special:Emailuser/Whiteknight|E]]</sup> 17:34, 17 November 2005 (UTC)
:::::I think Whiteknight is right. I think no things like "Jokebook" should exist on Wikibooks, but we cannot ignore computer manuals. I don't know if Jimbo would qualify [[Blender 3D]] as a wikibook, but in my opinion, we should have such books, because people need them. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 18:20, 17 November 2005 (UTC)
==== Wikibooks is more than just textbooks ====
To suggest that Wikibooks is only for textbooks, I would strongly suggest that you look at the archives of [[Wikibooks:Mailing lists|the original discussion that created this Wikimedia project]] in the first place.
Now I will not disagree that one of the motivations behind the creation of Wikibooks is to write textbooks, and that should be the primary focus. There seems to be a whole lot of misunderstanding here however that it was just for textbooks in the beginning. Keep in mind the history of this project, where it was really an outgrowth of both Project Sourceburg (now Wikisource) and Wikipedia. Sourceberg was in part an attempt to add source materials, and the name was to remember Project Gutenberg and the original sources there. The name was discontinued, but the iceberg anaology from the name remains even today with the current icon for that project, with more subtle meaning that there is more to the project than just raw text sources.
Originally there was a general intent to try and encompass all human knowledge with Wikimedia projects. That feeling and intent is really what is at stake here and more. Issues like the NPOV and "Original Research" tenants were mainly a method adapted to try and keep the most extreme issues under control, where there is now more contention on Wikipedia about the abbreviation of computer memory usage (MiB vs. MB) than for the biography entry on George W. Bush. Especially if the topic wasn't offensive to most Wikimedia users, the subject was to remain on some Wikimedia project. Of course offensive has a POV issue, but even controvercial issues have their place and several potentially graphic issues like the [[w:Nazi extermination camp|Nazi Death Camps]] have well written articles about the subject that maintains a NPOV approach.
Generally speaking, whenever there was a recurring topic that didn't seem to fit within the project, it was moved onto another domain with a whole new Wikimedia sister project that was started. This was particularly the case with things like Wikiquote, Wiktionary, and Wikinews, all of which are spin-offs from Wikipedia. Even here on Wikibooks we have Wikiversity that is likely going to be a brand-new Wikimedia project. Interesting ideas like Wikidata and Wikiscores (working with music) are still being developed but may still become future Wikimedia projects.
We are now at a cross roads here. Do we start to really narrow the definition of Wikibooks or do we try to expand that definition to include more non-fiction content? Keep in mind that even the non-fiction distinction was a very recent change, and that there was fictional content on Wikibooks as well until recently, and some people still try to add some every once in awhile. Are we prepared as a community to throw away all non-textbook book-length content and declare that other non-fiction content should not be permitted on any Wikimedia project at all? There is no other real home within the Wikimedia sister projects for this content.
I have been carrying on with some threads on Foundation-l about the future of Wikibooks, mainly with a proposal that Wikibooks somehow turn into a sort of incubator website for future Wikimedia projects. We already have mini-project situations here for each seperate Wikibook, and except for some heartburn in trying to get it going on its own domain we have been successful with things like Wikiversity. I still think Wikibooks is a good place for new Wikimedia project ideas and for some experimentation, but the general concensus on that mailing list and among Foundation board members is to create a whole new incubator project seperate from all other Wikimedia projects.
Wikicities is really quite a different beast all together, but it does muddle up the waters some. Wikicities has nothing to do with the Wikimedia Foundation other than it is governed by two members of the Wikimedia Foundation board. Some content has been recently moved to Wikicities (especially fictional content), but the current attempts at policy change are to move a massive portion of Wikibooks over to several projects there, and IMHO really muddle the distinction between Wikimedia projects and Wikicities. I still don't know if this is intentional on the part of Jimbo or not, as he is to get some extra money indirectly into his own pocket due to this move.
Jimbo has not been participating on the discussions too much with Wikibooks. I don't blame him, because Wikimedia users keep distracting him with so many other issues that I would be overwhelmed with some of the stuff he does. He is also the P.R. point man for all of the Wikimedia projects, going to several conferences and meeting with members of the international press. Still, even for a very active user on Wikibooks (or worse on Wikipedia), you can't keep up with all of the discussions on every topic. Wikibooks has been evolving, and some of that has to do with trans-wiki efforts from other Wikimedia projects as well. Books like [[Muggles' Guide to Harry Potter]] are not strictly textbooks, but I think have a very useful place here and are even beneficial to an educational environment. I think Jimbo has missed this transformation of Wikibooks from a simple place for textbooks to become a fairly large library of non-fiction material. His changes of Wikibooks policy, especially on this page, were very much out of line and otherwise against published policy and the formal disclaimer at the top of the page. To quote '''"Except for minor edits, please make use of the discussion page to propose changes to this policy."''' Jimbo did not make a minor edit, but a major policy change here, and completely without anything on this discussion page. He only informed the community that he made the change after the fact, and until now nobody has challenged him on that point directly. I guess I am doing that now. Why was this change made and is this something that we as a community really want to have happen? --[[User:Robert Horning|Rob Horning]] 04:02, 20 November 2005 (UTC)
:[[Muggles' Guide to Harry Potter]] can be used in existing school classes on literature; it ''is'' a textbook. (The Harry Potter books themselves are textbooks, but they would go on Wikisource if not copyrighted.) The [[Wikibooks:How-tos bookshelf|How-tos bookshelf]] consist of textbooks; for example [[Sword construction]] can be used in school classes on metalworking. The [[Wikibooks:Computing bookshelf|Computing bookshelf]] consists of textbooks; for example [[Using KDE]] can be used in school classes on desktop computing. None of these seem to be problems.
:But perhaps there is a problem here. [[Wikibooks:Computer and video games bookshelf|Computer and video games bookshelf]] is large, and there are classes (groups) of video game players, but there are no ''school classes'' for video game players. There might be other parts of Wikibooks like this. Still, if [[wiktionary:class|class]] can mean group, category, instead of ''school class'', there is no problem with [[WB:WIW]], or is there? [[Freeware]] is a useful project, but I proposed deleting it because it is a macropedia. Are there many Wikibooks like [[Freeware]]?
:The reason why I have little trouble with Jimbo's edit is because Wikibooks already excludes most non-fiction books: previously published works (Wikisource), encyclopedias, macropedias, dictionaries, original research, and especially soapboxes. --[[User:Kernigh|Kernigh]] 17:54, 20 November 2005 (UTC)
::As far as computer game classes, there is a whole PhD program that was mentioned on Foundation-l, and I've even seen B.S. programs in computer game design. While I will admit that these "textbooks" are more about how to play the game than trying to understand the theory underneath the game, I've also seen that done, and something a "hardcore" game player should try to figure out as well. I have also advocated that a good CS program should involve at least for beginning undergrads some game design theory as well, as it teaches some good programming habits that can be very useful in later work.
::As you've pointed out, there are some significnat restrictions on what we allow here anyway, and as I've pointed out things like [[White Heritage Society]] and [[Kabbalah]] violate several previous policies, most prominent in these cases was a blatant copyright violation from content published elsewhere. The [[w:White nationalism]] article, however, shows some balance and NPOV treatment. I mention this especially, because Jimbo suggested this Wikibook was vandalism and the user that created this Wikibook should have been banned. Just where do we draw the line here? Could this Wikipedia article be expanded to become a Wikibook? Why or why not? Existing policy suggests that it perhaps could be expanded.
::The big problem I have with Jimbo's edit was a complete disregard with the community in general, and the opinion that we as admins are somehow getting lax with our duties, without trying to see what we are trying to accomplish here. After bringing this issue up on Foundation-l, there is yet to be even a single supporter of Jimbo, which IMHO is particularly surprising given the make up of the regular participants there. More to the point, if I had made similar changes to this page I would hope that it would have created a similar firestorm of protest, as I've done when [[User:Lord Voldemort]] changed the copyright violation policy. I've made mistakes here, and I've admitted them when I've done so. I have, however, been very careful with high-profile pages and have tried to get community concensus first if I make a big change. That was not done here at all, and in some ways Jimbo's silence on this issue after the firestorm is just making things worse. --[[User:Robert Horning|Rob Horning]] 19:00, 20 November 2005 (UTC)
:::I am very concerned about the definition of Wikibooks. I have a starter project going here that is not strictly speaking a textbook, but is of interest to educators, is based on verifiable fact, lends itself to widespread participation, and lends itself to NPOV. It appropriately includes reference to me, but as it grows from a stub to a real book, my name is just one among many appropriately listed. I think it is an asset to Wikibooks that will eventually draw considerable positive attention to the Wikibooks site and to Wiki in general. I guess someone could argue that it is a macropedia. I'm not calling attention to the particular wikibook, as I don't want to make it a center of controversy. I would like to be able to go forward without risking deletion. I just want to know a real set of rules. I will obey them. '''''Can we get this resolved???? Soon????''''' [[User:Frog One|Frog One]] 16:19, 22 November 2005 (UTC)
::::Yeah... Wikibooks is in a very dilapidated state at the moment. There is so much missing right now and until this is all settled, working on questionable modules may be all for naught. --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 16:40, 22 November 2005 (UTC)
:Archives at [http://mail.wikipedia.org/pipermail/foundation-l/ foundation-l] and [http://mail.wikipedia.org/mailman/listinfo/textbook-l textbook -l]. --[[User:Kernigh|Kernigh]] 02:29, 21 November 2005 (UTC)
:This is a sorry state of affairs, and we certainly do need to sort this all out so people can get back to regular contributions without fear of deletion. I recommend perhaps that we should go back to the drawing board, get all the important people that we need to get involved, and redraft [[WB:WIW]], to say exactly what it should say, with no omissions and no ambiguities. Barring a complete rewrite, it does need some kind of overhaul. Until we can get it sorted out, we should suspend all VFD discussions (except for the most heinous and unreasonable violations), to prevent unnecessary casualties. We should ask jimbo to come back and help with our discussions, but if he stays absent, we need to write up a complete policy ourselves. We should also try to get input from as many stewards, beauracrats (sp?) and admins as possible, because these are the people that will need to enforce whatever policy we finally adopt. I will be more then happy to start a new discussion page to discuss the different changes that need to be made in [[WB:WIW]] --[[User:Whiteknight|Whiteknight]] <sub>[[User talk:Whiteknight|T]]</sub><small>[[Special:Contributions/Whiteknight|C]]</small><sup>[[Special:Emailuser/Whiteknight|E]]</sup> 19:09, 22 November 2005 (UTC)
::I concur with suspending the VfDs. We need to have established, firm policies before we can really move forward. How it got to this sorry state I do not know, but we ''do'' need to have more input from Jimmy and the rest of the Board. I truly feel that for a lot of the modules, this is a VERY important discussion. --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 19:19, 22 November 2005 (UTC)
=== Headless chickenism ===
A lot of running around like headless chickens, crying that we need to make up entirely new policies, has been sparked by [http://en.wikibooks.org/w/index.php?title=Wikibooks:What_is_Wikibooks&diff=281147&oldid=265973 this edit]. This policy now sports a dispute notice, and people have decried Jimbo's change in the direction of Wikibooks.
''Jimbo has made no such change.''
[http://en.wikibooks.org/w/index.php?title=Wikibooks:Staff_lounge&diff=prev&oldid=281215 Jimbo clearly stated himself] that his objections to the three books that he intended to delete were 100% consistent with existing policy. He isn't changing policy, and isn't changing the focus of Wikibooks. What he's doing, and what that edit means, is easily understood once one understands one very pertinent fact:
''Jimbo's idea of what a "bookshop" is isn't the same as other editors' ideas of what a "bookshop" is.''
Once one realizes this, what Jimbo is saying when he says that "most books that you might expect to find in the non-fiction section of [... a] bookshop are not acceptable" turns out to be exactly the same as what [[User:Aya|Aya]] is saying when [http://en.wikibooks.org/w/index.php?title=Wikibooks:About&diff=208003&oldid=203428 he wrote] that "any book you might expect to find in the non-fiction section of [... a] bookshop is acceptable". There are (at least) two different sorts of bookshops that have non-fiction sections:
*In the non-fiction section of a '''mass-market bookshop''', where the target market is the populace at large, one predominantly finds things such as encyclopaedias, dictionaries, atlases, almanacs, maps, biographies, autobiographies, philosophical/religious/political tracts, tourist and travel guides, entertainment reviews and guides, [[w:coffee table book|coffee table book]]s, and only a small fraction of the whole that targets the education market. Most of the books in the non-fiction section of such a bookshop ''are not'' appropriate for Wikibooks, as per Jimbo.
*In the non-fiction section of a '''university bookshop''', where the target market is students, one predominantly finds things such as [[w:CliffsNotes|CliffsNotes]] for set texts, textbooks for sciences and humanities, tutorials, manuals, study guides, and instructional and educational material in general; and the part that comprises the non-education-market material is a small fraction of the whole. Most of the books in the non-fiction section of such a bookshop ''are '' appropriate for Wikibooks, as per Aya.
There is no actual disagreement in terms of what belongs on Wikibooks, no dispute, and no change of focus. I am confident that Jimbo, Aya, and most editors here ''all'' agree that Wikibooks is not, and never has been, the place for encyclopaedias, dictionaries, atlases, almanacs, maps, biographies, autobiographies, philosophical/religious/political tracts, tourist and travel guides, entertainment reviews and guides, coffee table books, and other non-fiction books that aren't specific to the education market. Indeed, most of these are specifically excluded by policy (such as "Wikibooks is not an encyclopaedia") that is pretty much undisputed. The disagreement lies in the preconception of what one might expect to find in the non-fiction section of a bookshop, because there are different sorts of bookshops, targetting different markets. The disagreement isn't over what is appropriate to Wikibooks. The disagreement is over what one finds in bookshops. ☺
Given that, the very least that we need to do is specify the type of bookshop when explaining things this way. My opinion is that we shouldn't discard the metaphor. Thinking of Wikibooks as "Wikiversity's free university bookshop" is a fairly good rule of thumb, and worth mentioning in some way, albeit with the caveat that the analogy is not an exact one, given that even university bookshops cater for the extra-curricular needs of their customers and sell ''some'' non-educational and non-instructional non-fiction material that is not appropriate for Wikibooks.
However, Wikibooks is not in a dilapidated state, and there is no need for sudden and drastic overhaul. There is no need for running around like headless chickens.
[[User:Uncle G|Uncle G]] 18:43, 23 November 2005 (UTC)
*Jimbo made some recent remarks at staff lounge where he said specifically that wikibooks needs to become more serious. Prior to jimbo's recent remarks (all of them within the last week), the general attitude here on wikibooks was a relaxed one: nonfiction books from ''any bookstore'' were acceptable, so long as they werent blatant violators of other policies. Now, keeping in mind that we all need to take this project more seriously, we either need to start interpreting currently-written policy more strictly, or we need to rewrite the ambiguous parts of policy to be very absolute on what does and does not belong here. Until we have an unambiguous, straight-forward definition of what wikibooks is, we will find ourselves running around like headless chickens, trying to interpret what different clauses mean, and trying to decide if individual modules do or do not fit into that policy. --[[User:Whiteknight|Whiteknight]] <sub>[[User talk:Whiteknight|T]]</sub><small>[[Special:Contributions/Whiteknight|C]]</small><sup>[[Special:Emailuser/Whiteknight|E]]</sup> 14:18, 25 November 2005 (UTC)
*[[User:Uncle G|Uncle G]] above : ''I am confident that Jimbo, Aya, and most editors here all agree that Wikibooks is not, and never has been, the place for encyclopaedias, dictionaries, atlases, almanacs, maps, biographies, autobiographies, philosophical/religious/political tracts, tourist and travel guides, entertainment reviews and guides, coffee table books, and other non-fiction books that aren't specific to the education market.''{{pbri}}I disagree with this. Among other things, I think that Wikibooks should include [[Wikibooks:Travel Guides bookshelf|travel guide]]s, <s>and it should also include books that are not specific to the education market, such as [[Guide to UNIX]] and the other books on the [[Wikibooks:Computing bookshelf|computing (with software) bookshelf]].</s> --[[User:Kernigh|Kernigh]] 05:25, 4 December 2005 (UTC) <small>(I thought "instructional market" was different from "educational market", but that is obviously false... --[[User:Kernigh|Kernigh]] 23:32, 6 December 2005 (UTC))</small>
**Travel guides are what [[w:Wikitravel|Wikitravel]] is for, and are not in any way targetted at the education market (People don't use travel guides in order to ''learn''.); and, contrary to your assertion, the [[Guide to UNIX]] is educational market material, being exactly the sort of instructional and educational text that one finds students buying and employing in Computing courses. (Hint: {{#isbn:0070254923}}) [[User:Uncle G|Uncle G]] 17:01, 4 December 2005 (UTC)
***Oops. People who want to read computing guides are in the education market. I striked that part of my comment. Though Wikitravel is another travel guides wiki, I would think that one uses travel guides to learn about places that one might visit. --[[User:Kernigh|Kernigh]] 20:32, 4 December 2005 (UTC)
***I have used travel guides to learn. Short of buying a plane ticket, how else are you going to learn about modern day culture in distant places? Saying it should go on wikitravel instead is fine with me, but remember they aren't a wikimedia project and don't have our funding. Would we be prepared to change that and take them if they were to go under? --[[User:Javariel|Gabe Sechan]] 17:35, 5 December 2005 (UTC)
*Where do you draw the line, exactly, between a text that would be suitable in a humanities class (studies in culture or religion), and a book that is deemed to be a "travel guide"? books about the socio-economic climate of a particular region should be here, so should books about the culture of a given area (art, philosophy, food), so long as they are expository books. Books about "where to find the best parties in country X" should not be here. Many travel guides could easily be hit with a {{tl|cleanup}} tag, to be converted into the first type. All they need is a little TLC --{{User Whiteknight Sig|Whiteknight}} 19:11, 5 December 2005 (UTC)
== Clarify soapbox? ==
I'm wondering if we should clarify ''soapbox'' point. I recently has a discussion with user starting book promoting secession of New York city from the USA. I argumented this is a soapbox, he said soapbox clause only affects commercial advertising. Maybe we should clarify it or add other entry like ''Wikibooks is not for writing manifestos''? --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 11:30, 21 November 2005 (UTC)
:That is a good point, the term "soapbox" is far too vague. We could include an all-encompassing phrase like "Wikibooks is not a soapbox for the dissemination of political or religious propaganda. Wikibooks is also not a commercial advertising venue. Wikibooks is for factual information, not debate or argument. Wikibooks should not be used to promote a political agenda, a religious agenda, or a commercial agenda." That would get the point across, but is a litter verbose. --[[User:Whiteknight|Whiteknight]] <sub>[[User talk:Whiteknight|T]]</sub><small>[[Special:Contributions/Whiteknight|C]]</small><sup>[[Special:Emailuser/Whiteknight|E]]</sup> 12:44, 21 November 2005 (UTC)
That's good but we should also cover cases like books "Why you should use solar power?" or "Use only Free Software!" (these are only my examples, such books haven't been created). --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 17:32, 21 November 2005 (UTC)
:Both of those examples seem to me to violate either the "no political propaganda" or "no commercial propaganda". Also, both of your two examples, as soon as you put forth one opinion over another, violate the NPOV clause. --[[User:Whiteknight|Whiteknight]] <sub>[[User talk:Whiteknight|T]]</sub><small>[[Special:Contributions/Whiteknight|C]]</small><sup>[[Special:Emailuser/Whiteknight|E]]</sup> 19:27, 21 November 2005 (UTC)
:If there are no objections, I would like to update the "soapbox" clause to state: "Wikibooks is not a soapbox for the dissemination of political or religious propaganda. Wikibooks is also not a commercial advertising venue". I think this statement encompasses everything that the original clause intended, but is less vague and more useful in enforcing policy. --[[User:Whiteknight|Whiteknight]] <sub>[[User talk:Whiteknight|T]]</sub><small>[[Special:Contributions/Whiteknight|C]]</small><sup>[[Special:Emailuser/Whiteknight|E]]</sup> 19:18, 22 November 2005 (UTC)
I agree with this proposal. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 22:32, 22 November 2005 (UTC)
:::'''Oppose''' this change, if you meant to replace the entire soapbox section with only those two sentences.
:::I propose combining the old version and the new version, like this: "Wikibooks is not a soapbox for the dissemination of political or religious propaganda. Wikibooks is also not a venue for commercial advertising or self-promotion. We don't need books or modules on items just because a contributor is associated with them. Please note Wikibooks does not endorse any business and it does not set up affiliate programs."
:::As for "Why should you use solar power?", it could become "What are the benefits of solar power?" or "Benefits and disadvantages of solar power". "Use only Free Software!" is not appropriate here (neither is "Read only Free Textbooks!"). --[[User:Kernigh|Kernigh]] 05:07, 23 November 2005 (UTC)
::::Good point. I wasnt planning to change the entire wording, just adding in some new clarifications on the point. If anybody can think of a good way to mix all the old and the new, let us know! --[[User:Whiteknight|Whiteknight]] <sub>[[User talk:Whiteknight|T]]</sub><small>[[Special:Contributions/Whiteknight|C]]</small><sup>[[Special:Emailuser/Whiteknight|E]]</sup> 14:37, 23 November 2005 (UTC)
One way is to take most of the points that are in Wikipedia's "Wikipedia is not a soapbox" policy that were missing here, and add them — as I just have. ☺ [[User:Uncle G|Uncle G]] 17:20, 23 November 2005 (UTC)
:Excellent. --[[User:Whiteknight|Whiteknight]] <sub>[[User talk:Whiteknight|T]]</sub><small>[[Special:Contributions/Whiteknight|C]]</small><sup>[[Special:Emailuser/Whiteknight|E]]</sup> 18:43, 23 November 2005 (UTC)
:I think copying this paragraph from Wikipedia would be fine, we propably only have to shorten "self-promotion" clause. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 18:59, 23 November 2005 (UTC)
:::Copying enforced policy from Wikipedia is only acceptable if the edit is minor, or if there is consensus. ''Please understand that consensus at Wikipedia does not imply consensus at Wikibooks.'' In this case, though, the edit seems consistent with existing policy, and the only part that I might disagree with is the sentence, "See [[Wikibooks:No original research]]," because it explicitly tells me to go see a nonexistant page. I have no problem with [[WB:WIW#Wikibooks is not a place to publish original works]] where the "no original research" red link is simply embedded in the text. --[[User:Kernigh|Kernigh]] 01:59, 27 November 2005 (UTC)
== Allow me to clarify one thing ==
The nonfiction section of the bookstore contains all manner of things which are perfectly valid but which are not in any way shape or form textbooks. They are not NPOV, they are polemics. They contain original research. They are most often the unique perspective of a single author expressing a point of view or calling for some action by the general public.
I do not view any of my work here as in any way changing the charter or mission of Wikibooks, although it is of course perhaps a refocussing on what it is we are doing here. We are not a general repository for all sorts of nonfiction books, nor should we be.
I apologize especially to Robert Horning who seems to feel I have moved too quickly, but the point is: we are at a point where we can get major support for Wikibooks, or we are at a point where we can screw that up. The way to get major support, the way to make Wikibooks as successful as wikipedia, is with a clear mission that can be supported by a huge variety of people. Speedy deleting things which are clearly in violation of our mission is something that should have been done more aggressively a long time ago.
Many Wikibookians have given up and gone away after losing battles against Wikipedians who were (quite justifiably, from their perspective) just trying to make some crap go away from Wikipedia. The Wikibooks community has been too small to resist such things. Well, now I'm here to tell you that it is time for this community to come into its own and I will defend you on that.
And as with Wikipedia, the community is defined by the mission, rather than the other way around. We know what we're here to do: revolutionize education by providing freely licensed alternatives to proprietary textbooks. The vast majority of the work at Wikibooks is exactly that. But we've been lax about enforcing policies because we were a young project and so on. But we're about to get huge international exposure and attention, and we need to be ready for it.
--[[User:Jimbo Wales|Jimbo Wales]] 17:32, 25 November 2005 (UTC)
:''The nonfiction section of the bookstore contains all manner of things which are perfectly valid but which are not in any way shape or form textbooks.'' I disagree with part of this.
:Most of the nonfiction books from the store are textbooks. For example, many books with original research, or advocating some political view, can be used by students at universities or outside of school. In a strict sense, these books are made with [[wikt:text|text]] (''A written passage consisting of multiple glyphs, characters, symbols or sentences'') and qualify as textbooks.
:However, this site Wikibooks has important policies which ban many textbooks. Even before [[User:Jimbo Wales|Jimbo Wales]] edited this policy this month, we already had policies like Wikibooks is not an encyclopedia, Wikibooks is not a soapbox, Wikibooks uses neutral point of view, Wikibooks is not a free web host. This effectively excludes most nonfiction textbooks. Wikibooks should keep these policies, because they help the community write good textbooks. --[[User:Kernigh|Kernigh]] 03:15, 27 November 2005 (UTC)
== "Joke books" and "random books on any subject you like" ==
I had labeled "What Wikibooks includes" as a disputed section, but [http://en.wikibooks.org/w/index.php?title=Wikibooks%3AWhat_is_Wikibooks&diff=290679&oldid=290677 it was removed]. I dislike that my marker of dispute was removed.
Since the only wording I actually disagreed with was "not joke books", I have made [http://en.wikibooks.org/w/index.php?title=Wikibooks%3AWhat_is_Wikibooks&diff=296766&oldid=296764 another edit to that section] which I think is more consistent with existing policy. (As I recall, the "not joke books" wording was introduced by [[User:Jimbo Wales|Jimbo Wales]] to a help page, and [[User:Derbeth|Derbeth]] moved the wording from the help page to this enforced policy page.) My edit removes my reason to dispute the wording.
Instead of "not joke books", I say "a collection of jokes like Lollerpedia", which is more specific, and does not prevent Wikibooks from containing instructional material on how to joke.
As for "random books on any subject you like", that is confusing because Wikibooks does not exclude every book on a subject that someone likes. So I inserted "because of the list of exclusions in this policy", to be consistent with [[Wikibooks:What is Wikibooks#Wikibooks is not a general repository for nonfiction works]]. --[[User:Kernigh|Kernigh]] 06:48, 2 December 2005 (UTC)
: Jimbo probably does not wish for it to be advertised as something disputed. I can see why, and I would rather have the official policy to err on the safe side (the side that throws away more) than the invite everyone in side. Any active wikibookian will know that it is disputed right now, and we don't want to add more people like me who just came in not knowing about all this. --[[User:Dragontamer|Dragontamer]] 10:32, 3 December 2005 (UTC)
== Lets focus on the important aspects of the debate ==
I propose that we should not be so focused on the why wikibooks was created, but instead we should be focused on what is better for wikibooks's future. Additionally, lets stop arguing what definitions of words like "textbook" are and get on to something like "What do the Games and Computer Games Bookshelves offer to wikibooks and the wikibook community" and its opposite: "What is the disadvantage to having thse bookshelves on wikibooks"
From there, lets draft policy. --[[User:Dragontamer|Dragontamer]] 11:04, 3 December 2005 (UTC)
== The blurred line, yet again ==
To my knowledge, "cookbook" style books are accepted here, correct? By cookbook, i mean stuff like if I were to start a book akin to the style of these:
*[http://cl-cookbook.sourceforge.net/ Lisp Cookbook]
*[http://www.oreilly.com/catalog/cookbook/ perl cookbook]
*Linux Cookbook
*[http://aspn.activestate.com/ASPN/CodeDoc/Inline/C/C-Cookbook.html C Cookbook]
*[[Cookbook | And of course, our (classic) Cookbook]]
And so forth, it is 100% inside policy (and if not, it should be). And yet, when I look at the Jokebook incident, the Jokebook truely was like one of these kind of "cookbook" style books (A book that is not how-to nor instructional, but really just a bunch of organized random ideas on a single subject). Not to raise old blood on the issue, but I think it is something that should be clarified that is not with the current policy. Using arguments from the Jokebook thing, a cookbook-style book is neither instructional (it doesn't tell you how to cook) nor does it tell you how to create your own recipies.
And some other ideas of some cookbook style books (to show how blurry the line really is):
* RPG Damage Algorithm cookbook (includes algorithms from a multitude of games; from Maple Story, Pokemon and Dragon Warrior algorithms, to D&D and other paper/pencil RPGs)
* Programming Gem cookbook (perl cookbook, etc. etc)
* Collection of Exercizes, or workout routines.
* Book of Magic Tricks
* Common attacks across fighting Games (most fighting games for example have down-forward 'A' as a basic combo attack)
* Book on Graphical User Interphase Design Patterns; Menu on the top, Tabs, how to use each effectivly.
* An OOP "Design Patterns" book for programmers... Factory Design, etc. etc.
* Common Phrases of a language
* Book of known Proverbs ? <--- (imagine wikiquote didn't exist for this one for a sec) Arguably allows one to create opennings in essays or themes when writing. :-p
* Video game ideas ? <--- would fail because of "No origonal works" probably, but still something IMO worth bringing up
* Of course, the Jokebook ??
There is obviously a "line" somewhere, as the Jokebook was taken out while the Cookbook remains (whether or not I think it was a good idea is a non-issue; I wasn't active here at that time). I just want to bring up: Where is this line drawn? I can seriously find an argument on each one of these book ideas for why they should be allowed on Wikibooks with the current policy (stemming from allowing a cookbook to stay)
PS: This is not an issue of the Jokebook itself, just a much broader issue that I feel has been brought out by it. Nor do I think that all of those ideas should be allowed on wikibooks. (I dont think "Common attacks in Fighting games" should be allowed, for example) But I can find an argument for each one if I wanted to. (A book on Common Attacks is necessary for a video game designer because it gives what most video gamers see as the "standard", and thus you can create a better game by learning the "standard" from a Common Attacks reference book) We need to find a way to not allow anyone to just tag "cookbook" to the end of the title and claim it is within the bounds of policy. (Ex. The Joke Cookbook)
PPS: Somewhere down the line, a "Cookbook" turns into a "Dictionary". Maybe we should start there ?? --[[User:Dragontamer|Dragontamer]] 23:18, 13 December 2005 (UTC)
: Irony: [[Fighting_Game_Moves]]. NO! I DID NOT START THIS IN ANY WAY!!!
: I figure this is quite funny though :-/ Oy... back to the drawing board :( --[[User:Dragontamer|Dragontamer]] 23:47, 13 December 2005 (UTC)
== Wikibooks is not a free wiki host or webspace provider ==
Generally speaking the User pages have been allowed considerably more lattitude than most of the rest of Wikimedia pages, but there is one point I wanted to bring up:
Wikipedia has a specific clause in [[w:Wikipedia:What Wikipedia is not]] that specifically governs the use of user pages as part of a soapbox as well. Specifically I'd like to add this policy to Wikibooks as well:
===Wikibooks is not a free host or webspace provider===
You may not host your own website, blog, or wiki at Wikibooks. If you are interested in using the [[w:wiki|wiki technology]] for a collaborative effort on something else, even if it is just a single page, there are many sites that provide wiki hosting (free or for money). You can also [http://wikipedia.sourceforge.net/ install wiki software] on your server. (See the [[Wiki Science]] wikibook for information on doing this.) Wikibooks pages are not:
# '''Personal homepages.''' Wikibookians have their own personal pages, but they are used for information relevant to working on free textbooks and other content on Wikibooks. If you are looking to make a personal webpage unrelated to textbook work (e.g. posting your résumé), please make use of one of the many free homepage providers on the Internet.
# '''File storage areas.''' Please upload only files that are used (or will be used) in textbook modules; anything else will be deleted. If you have extra relevant images, consider uploading them to the [[commons:|Wikimedia Commons]], where they can be linked from Wikibooks or any other Wikimedia project.
----
Anyway, what does the Wikibooks community think of this change? (feel free to make modification of the above section as necessary) I've seen a few user pages that have been abused already on Wikibooks, and this is more to CYA any attempt by an admin to cull out things that should have been deleted but were moved to the user pages instead to avoid deletion. --[[User:Robert Horning|Rob Horning]] 03:09, 14 December 2005 (UTC)
:I was under the impression that we already had a similar policy on the books. maybe i was wrong. I agree with the text above, although i have no idea what the acronym "CYA" means. --{{User Whiteknight Sig|Whiteknight}} 04:32, 14 December 2005 (UTC)
::'''CYA''' - Cover Your Ass(etts). Basically, if there is a formal dispute you can say "see here, I am just following policy". By custom there has been almost no policing of the User space area at all, but perhaps that does need to change. --[[User:Robert Horning|Rob Horning]] 18:11, 17 December 2005 (UTC)
::I don't know what I think about the second point there. Why shouldn't I be able to upload an image to use on people's user pages? Or an image in a user page template? I don't necessarily know what to think of this second point. The first point seems okay, though. --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 14:48, 14 December 2005 (UTC)
:::He makes a point. Even Jimbo has a self-portrait in his user page. We have to come to terms with the fact that the user pages are going to be used as autobiographical pages, with information that doesn't directly pertain to the wikibooks project. The user pages will have to be examined on a case-by case basis to determine if they violate the "wikibooks is not a free web host" policy. We should also come up with a policy for action that we can take if a user is abusing their user pages. Do we ban a helpful user who is abusing their user namespace? do we simply delete bad user pages outright? do we VfD? --{{User Whiteknight Sig|Whiteknight}} 15:09, 14 December 2005 (UTC)
::::While this is just an update to existing policy, I think this wording is considerably more clear and direct. Generally, the policy of giving some huge lattitude to the users here on their "home page" is generally a good one. One particular case I saw that promted me was with [[Business ideas]] that was subject to a VfD, but was moved to a sub-page of a user page instead. I'm not trying to redo the VfD for this particular module, but in general I see this as a huge potential area for abuse and I would strongly discourage anybody else from doing something like this. A "wikibook in progress" that is kept in the user space IMHO would be just fine. All I'm asking is to give some "teeth" to this policy and hopefully explain what the difference between hosting bad content (like moving [[Jokebook]] to my private user space to avoid a VfD) and some development ideas for future use as a legitimate Wikibook. --[[User:Robert Horning|Rob Horning]] 18:37, 14 December 2005 (UTC)
::::: Eww, that could be a problem. How about as a general rule, user-pages should not be longer than xxx bytes long? then again... well, how about simply "Wikibooks user pages should not be used as a personal homepage??" Seems like a simple definition.--[[User:Dragontamer|Dragontamer]] 22:14, 14 December 2005 (UTC)
----
I was unaware that Wikipedia [[Wikipedia:Wikipedia:Wikipedia is not#Wikipedia is not a free host or webspace provider|was banning]] images for use only on project or user pages instead of articles. I already knew that Commons in [[Commons:Commons:Criteria for inclusion|their criteria for inclusion]] allows such images.
If we want to require that all images for project and user pages be at Commons, perhaps we should put such a requirement in our [[Wikibooks:Image use policy]] first before stating it in this page. --[[User:Kernigh|Kernigh]] 05:48, 17 December 2005 (UTC)
== Wikibooks is not Wikipedia ==
There seems to be some confusion for some newcommers. I think this needs to be clarified. The rules and regulations at Wikipedia may be similar here, but not exactly the same as one here... I am not to apt with the rules over at Wikipedia, so maybe a list of major rule differences could help out. --[[User:Dragontamer|Dragontamer]] 12:54, 14 December 2005 (UTC)
:Currently there are probably too many major differences in policy. (Have you seen my user page?) Our time would probably be better spent updating and initiating policy rather than pointing out differences at this point. Just my thoughts. --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 14:50, 14 December 2005 (UTC)
::We do have a [[Wikibooks:Comparison of other Wiki projects]] page, however I would like to create a WikiNode page like [[Wikipedia:Wikipedia:WikiNode]] to compare the projects. As for policies, I was thinking of converting [[MetaWikipedia:Policy]] into a summary of policies at various projects. --[[User:Kernigh|Kernigh]] 06:08, 17 December 2005 (UTC)
::: And also [[M:Wikinode]], please; moved from the en:Wikipedia. [[User:Sj|Sj]] 20:47, 16 February 2006 (UTC)
== Wikibooks is not a seed for another wikisite ==
Wikibooks is for books and book-like materials. Some even argue that Wikbooks is only for textbooks that can be used in educational classes (even though that would easily wipe out half of the current wikibooks...) but all that aside, lets get this point clear: You should not be aiming to create a "sub-webpage" on wikibooks. Wikibooks is for books, not websites. --[[User:Dragontamer|Dragontamer]] 18:28, 27 December 2005 (UTC)
::We do already have [[Wikibooks:What is Wikibooks#Wikibooks is not for developing new Wikimedia projects]], which covers this pretty good already, although some clarification could happen. The section on [[Wikibooks:What is Wikibooks#Wikibooks is not a free wiki host or webspace provider|Wikibooks is not a free wiki host or webspace provider]] also does a pretty good job of covering the "free wiki hosting" problem as well. Wikibooks should be for non-fiction books that don't mirror existing Wikimedia projects. The rest of this page is mainly refining and giving specific examples of that concept. What is too bad is that the foundation still doesn't have a seed wiki, dispite a call for such a project for the past several months. It would have its own rules, but there is a need for a developer to be bold and start the project. --[[User:Robert Horning|Rob Horning]] 18:42, 27 December 2005 (UTC)
:::I attempted [http://en.wikibooks.org/w/index.php?title=Wikibooks%3AWhat_is_Wikibooks&diff=320485&oldid=318795 an edit]. If you only want to clarify policy, instead of changing policy, try editing the policy. --[[User:Kernigh|Kernigh]] 00:58, 28 December 2005 (UTC)
== New clause? ==
I would like to add something to basically say:
:''Wikibooks is not a list of random facts.''
An exception would be in the case for an appendix to a current module. Any thoughts? --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 20:21, 10 February 2006 (UTC)
== Original Research vs. Practical Knowledge (in how-to books) ==
Just curious how the NOR clause is applied to how-to books. For example, if I were to write a book on how to build greenwood fencing with a chainsaw and jute rope, I wouldn't be able to provide sources, except maybe give the name of the old man who taught me to do it. Similarly most of the garden techniques I plan to write about were passed on verbally and/or learned through the doing.
There seems to be a sort of academic bias in that rule. Is it meant to apply to everything? Seems to me that one of the best ways wikibooks can be used is to have them as a reserve of this kind of practical knowledge that doesn't necessarily exist in textbooks or journals. Is this really a sticky point? [[User:SBJohnny|Johnny]] 18:35, 15 February 2006 (UTC)
:You might still be surprised at how many references you can come up with. I would agree that most How-to books are going to be practical implementation type books, like [[How to build a deck]] (one I've thought about trying to write myself). Still, you can reference building codes, recommended safty precautions, and manufacturer websites about materials. The same can be said about the above proposed Wikibook about Greenwood fencing, and reference any sort of fire retardant or other materials that can be used to help make the fence safer and may even be legally required if you build it.
:You are not going to find a scholarly reference for every statement that you make in the writing of the book, but perhaps we should say something like every How-to book should be verifiable.
:Keep in mind that the real reason (looking both ways to make sure I don't get shot doing this) for the ''No Original Research'' clause is to make sure we can keep off UFO and Perpetual Energy people off of Wikimedia projects. On the other hand, if you write a Wikibook called [[How to Build a Practical Time Machine]], you had better make sure that the thing can work. I would '''love''' to see some pictures for something like this. (Yes, [[w:John Titor|Mr. Titor]] is welcome to try.) Perhaps verifiability is the real key here that we need to work with. --[[User:Robert Horning|Rob Horning]] 01:07, 16 February 2006 (UTC)
::An interesting thought comes to mind then: practical knowledge, known by the doing, would then also be verifiable by the doing. A difference of theoria vs. praxis? (Aristotle would surely be thrilled). That would certainly make sense, as the users of these books are more likely to be out doing something than sitting in a library (though they might do that too, if google fails them).
::I don't think it should be necessary to hunt down references just for the sake of having them. That's the beauty of wiki after all. For example, in the fence zoning question: I wouldn't know anything about that, because those sorts of regulations don't apply to farms, but someone else might know about them, and add it in. [[User:SBJohnny|Johnny]] 10:24, 16 February 2006 (UTC)
:::I wouldn't necessarily rule out fence zoning for farms either. I know that there are fencing requirements in some rural areas, particularly along major highways and near wilderness areas... to keep livestock from damaging either automobilies or native animal sanctuaries respectively. --[[User:Robert Horning|Rob Horning]] 15:40, 10 March 2006 (UTC)
I think this rule should be relaxed on Wikibooks. (Ditto the statement about 'not being a repository for non-fiction', which is very vague and occasionally used to attack any book the attacker does not like.) [[User:Sj|Sj]] 04:53, 10 March 2006 (UTC)
:Here is a rule I try to apply in terms of a "stink test" to see if content is reasonable on Wikibooks: Can I edit the content with major revisions (subject to reasonable research and common sense), merging it with other similar content? How upset would the author be if I substantially changed the whole order of things and even removed points that were more opinion rather than factual?
:The arguments that are used to by the author to keep me from doing these sort of edits will also determine where outside of Wikibooks the content really belongs. If it is a historical text in public domain, it belongs on Wikisource. If instead it is a lecture or a presentation of scholarly research, and they ask you to only do minor edits for proofreading but leave the structure and ideas alone, it would be considered original research, or perhaps an editorial. The whole issue of editorials on Wikinews is something that still comes up from time to time, as it is a major feature for most media outlets, even though there are plenty of places to do that with blogs. If instead the content is a narritive and offers completely made up characters (see [[Hud and Hel]] as an example), this is clearly fiction. I have seen all of these types of content added to Wikibooks, with occasionally a surprising response from a contributor who wrote the text with an offer to substantially rework the content and make it into a real textbook instead. If it is a bunch of text that is going to be reworked, putting NPOV or cleanup tags is a more reasonable thing to do. Wikibooks editors are not really equiped to evaluate original research and needs a specialized group of individuals to see if it is a reasonable sort of research that should be presented. And you open the Pandora's Box to paranormal and psuedoscience research as well. Even opening up original research a crack is going to have to define what the next line is that should not be crossed.
:BTW, the "not being a repository for non-fiction" was an invention of Jimbo, and I don't really understand or know what point he was trying to make here. Originally the statement was that Wikibooks was "for any kind of content that you would find in the non-fiction section of a bookstore". Jimbo didn't like that statement thinking it was overly broad, notwithstanding the other exlusions like original research, NPOV, and not duplicating other Wikimedia projects. Jimbo is trying to make this more oriented toward actual textbooks, and based on his pronouncements that seems to be the direction that Wikibooks is going toward. Unfortunately that does kill some non-fiction content that otherwise would be fine to keep in Wikibooks. Note the [[Jokebook]] and the current VfD to remove the last vestiage of that content from Wikibooks. --[[User:Robert Horning|Rob Horning]] 15:40, 10 March 2006 (UTC)
::Well (waxing philosophical, political, and pragmatic again), while I really admire the ambition to use wikimedia to grow books to be used in actual classrooms, I have a skeaking suspicion that in most places where a computer is available in the classroom, there will also be politics and politicians working against their adoption. Things could change on that note, but I think it's more likely that someone would download a wikibook on how to insulate a house or grow a garden than to teach their children basic chemistry. Wikibooks as textbooks seems to me more an ideal we should try to approach than an immediate goal. I assume that wikibooks is not on a deadline?
::The how-to books -- if well written and well supported (with as many writers editors as possible) -- could go a long way towards establishing the reliability of other projects here. [[User:SBJohnny|Johnny]] 20:54, 10 March 2006 (UTC)
:::In terms of K-12 instructors accepting content from Wikibooks, it really helps if you can say the content meets formal standards, and if you can quote chapter and verse from the standards guidelines for a particular state, that would give you a huge leg up over other content from major commercial textbook publishers. Especially if you quote curriculum standards for small states like South Dakota, Arkansas, or Utah where major commercial publishers generally don't target specific guidelines and most teachers only make due as best as they can. Writing a textbook for these markets would be a dream come true for many instructors. Major markets like Florida and California are more likely to have a textbook written specifically for their state guidelines. If you could get a Wikibook into even a handful of actual instructors in this manner, I think you would have a synergy effect with Wikibooks that would be incredible and you might see some real academic publishing of textbooks here.
:::On the other hand, I think you are perhaps right that at least in the short term you will find How-to books as the primary market that would be useful for Wikibooks, simply because most of these books require only practical knowledge to write and would have an audience that would be interested in reading them. Books like [[Blender 3D: Noob to Pro]] is a clear example of this, where the content is not only mirrored but has also been forked. BTW it also deserves the Book of the Month status, and is IMHO one of the best books of its kind bar none, especially for using Blender. There are several other Wikibooks that target MMORPG environments, and that is a natural experience where many of the potential consumers of that content would not only look at Wikibooks as a natural home, but it might even give credibility to the quality of the content. There was a drive to remove content of this nature from Wikibooks, but I fail to see what policies it really is violating, and the motivation for creating new policies that would specifically exclude it. As an example of content like this, see [[RuneScape]] --[[User:Robert Horning|Rob Horning]] 09:33, 11 March 2006 (UTC)
41eq2rojbkcd21pha2dgci7ur9gvalt
The Linux Kernel
0
17309
4640292
4529584
2026-06-14T10:06:17Z
Conan
3188
index: socket access -> sockets in matrix
4640292
wikitext
text/x-wiki
{|style="width:100%; text-align:center;border-spacing: 0; color:black;border: 0" cellpadding=5pc
|+<big>API and internals visual reference</big>
|-
|<small>[[/About|<div style="color:black"><div style='text-align:left'>about</div><div style='text-align:right;color:black'>functionalities→</div><div style='text-align:left;color:black'>layers↓</div></div>]]</small>
|bgcolor=#fee|'''[[/Human interfaces/|<small>human<br>interfaces</small>]]'''
|||bgcolor=#edf| '''[[/System|system]]'''
|||bgcolor=#ffd|'''[[/Multitasking/|multitasking]]'''
|||bgcolor=#bfd|'''[[/Memory|memory]]'''
|||bgcolor=#cef|'''[[/Storage|storage]]'''
|||bgcolor=#dff|'''[[/Networking|networking]]'''
|
|-style=""
|bgcolor=#cff|'''User space<br>interfaces'''
|bgcolor=#edd| [[/Human_interfaces#Text interfaces|text interfaces]]
|bgcolor=#cff| ||bgcolor=#cdf|[[/System#System interfaces|system interfaces]]
|bgcolor=#cff| ||bgcolor=#eed|[[/Multitasking#Execution|execution]]
|bgcolor=#cff| ||bgcolor=#aee|[[/Memory#Processes|processes]]
|bgcolor=#cff| ||bgcolor=#aef|[[The_Linux_Kernel/Storage#Files_and_directories|file system]]
|bgcolor=#cff| ||bgcolor=#bff|[[/Networking#Sockets|sockets]]
|bgcolor=#cff|
|-style=""
|bgcolor=#adf|'''virtual'''
|bgcolor=#dcd| [[/Human_interfaces#Security|security]]
|bgcolor=#adf|
|bgcolor=#abe| [[The Linux Kernel/System#Virtualization|virtualization]]
|bgcolor=#adf| ||bgcolor=#bbc|[[/Multitasking#Threads_or_tasks|threads]]
|bgcolor=#adf| ||bgcolor=#9ed|[[/Memory#Virtual_memory|virtual memory]]
|bgcolor=#adf| ||bgcolor=#8cf|[[/Storage#Virtual File System|Virtual<br>File System]]
|bgcolor=#adf| ||bgcolor=#9df|[[/Networking#Address_families|address families:<br>inet, unix]]
|bgcolor=#adf|
|-style=""
|bgcolor=#99c|'''[[w:Bridge pattern|<span style="color:black">bridges</span>]]'''
|bgcolor=#cbb| [[/Debugging|debugging]]
|bgcolor=#99c|
|bgcolor=#aad| [[The Linux Kernel/System#Driver Model|Driver Model]]
|bgcolor=#99c| ||bgcolor=#cbc|[[/Multitasking#Synchronization|synchronization]]
|bgcolor=#99c| ||bgcolor=#acc colspan=5|
{|style="width:100%"
|bgcolor=#aca|[[/Memory#Memory_mapping|memory<br>mapping]]
|bgcolor=#acb|[[/Storage#Page_cache|page cache]]<br>[[/Memory#Swap|swap]]
|bgcolor=#acd colspan=2 |[[/Networking#Network_storage|network storage]]
|}
|bgcolor=#99c|
|-style=""
|bgcolor=#79a|'''logical'''
|bgcolor=#baa|[[/Human_interfaces#Multimedia subsystems|multimedia<br>subsystems]]
|bgcolor=#79a| ||bgcolor=#99c|[[/Modules/|modules]]
|bgcolor=#79a| ||bgcolor=#aaa|[[/Multitasking#Scheduler|Scheduler]]
|bgcolor=#79a| ||bgcolor=#8b9|[[/Memory#Logical_memory|logical memory]]
|bgcolor=#79a| ||bgcolor=#7ac|[[/Storage#Logical file systems|logical<br>file systems]]
|bgcolor=#79a| ||bgcolor=#8bb|[[/Networking#Protocols|protocols]]
|bgcolor=#79a|
|-style=""
|bgcolor=#788|'''device<br>control'''
|bgcolor=#a99|[[/Human_interfaces#HID|{{abbr|HID|human interface devices}}]]<p>[[/Human_interfaces#Input_devices|input]]</p>
|bgcolor=#788| ||bgcolor=#88a|[[/System#Peripheral_buses|buses]], [[The_Linux_Kernel/PCI|PCI]]
|bgcolor=#788| ||bgcolor=#999|[[/Multitasking#Interrupts|interrupt core]]
|bgcolor=#788| ||bgcolor=#7a7|[[The Linux Kernel/Memory#Page Allocator|Page Allocator]]
|bgcolor=#788| ||bgcolor=#69a|[[/Storage#Block_device_layer|block devices]]
|bgcolor=#788| ||bgcolor=#7a9|[[/Networking#Network_device_interfaces|network interfaces]]
|bgcolor=#788|
|-style=""
|bgcolor=#676|'''hardware<br>interfaces'''
|bgcolor=#877|[[/Human_interfaces#HI_device_drivers|HI drivers]]
|bgcolor=#676| ||bgcolor=#889|[[/System#Hardware_interfaces|hardware<br>interfaces]]<p>[[/System#Booting_and_halting|[re]booting]]</p>
|bgcolor=#676| ||bgcolor=#887|[[/Multitasking#CPU_specific|CPU specific]]
|bgcolor=#676| ||bgcolor=#686|[[/Memory#Pages|pages]]
|bgcolor=#676| ||bgcolor=#689|[[/Storage#Storage_drivers|storage<br>drivers]]
|bgcolor=#676| ||bgcolor=#798|[[/Networking#Network_drivers|network<br>drivers]]
|bgcolor=#676|
|- bgcolor=#575 style="color:#ddd"
|
{|bgcolor=#666 style="text-align:center;border-spacing: 0; margin:auto;" cellpadding=5pc
|<span style="color:#ddd">'''electronics'''</span>
|}
||
{|bgcolor=#666 style="text-align:center;border-spacing: 0; margin:auto;" cellpadding=5pc
|[[w:peripherals|<span style="color:#ddd">user<br>peripherals</span>]]
|}
|bgcolor=#575| ||
{|bgcolor=#666 style="text-align:center;border-spacing: 0; margin:auto;" cellpadding=5pc
| [[w:I/O|<span style="color:#ddd">I/O</span>]] <br>[[w:Advanced_Configuration_and_Power_Interface|<span style="color:#ddd">ACPI</span>]]
|}
|bgcolor=#575| ||
{|bgcolor=#666 style="text-align:center;border-spacing: 0; margin:auto;" cellpadding=5pc
|[[w:CPU|<span style="color:#ddd">CPU</span>]]<br><small><small><span style="color:#ddd">regs</span> [[w:Advanced_Programmable_Interrupt_Controller|<span style="color:#ddd">APIC</span>]]</small></small>
|}
|bgcolor=#575| ||
{|bgcolor=#666 style="text-align:center;border-spacing: 0; margin:auto;" cellpadding=5pc
|<span style="color:#ddd">memory</span><br><small><small>[[w:RAM|<span style="color:#ddd">RAM</span>]] <span style="color:#ddd">MMU</span></small></small>
|}
|bgcolor=#575| ||
{|bgcolor=#666 style="text-align:center;border-spacing: 0; margin:auto;" cellpadding=5pc
|<span style="color:#ddd">storage</span><br><small><small>[[w:Serial ATA|<span style="color:#ddd">SATA</span>]] [[w:NVM Express|<span style="color:#ddd">NVMe</span>]]</small></small>
|}
|bgcolor=#575| ||
{|bgcolor=#666 style="text-align:center;border-spacing: 0; margin:auto;" cellpadding=5pc
|[[w:Network interface controller|<span style="color:#ddd">NICs</span>]]<br><small><small>[[w:Ethernet|<span style="color:#ddd">Ethernet</span>]] [[w:Wi-Fi|<span style="color:#ddd">Wi-Fi</span>]]</small></small>
|}
|bgcolor=#575|
|}
== Contents ==
{{reading level|advanced}}
{{prerequisite|Linux Basics|C Programming}}
* [[/About/|About the book]]
* '''[[/Human interfaces/]]'''
** about HID, media, v4l, UVC, ALSA, console, input, cdev, security
* '''[[/System/]]'''
** about booting, [[/System#Devices|devices]], [[/System#Buses:_Input,_PCI_and_USB|buses]], [[The_Linux_Kernel/PCI|PCI]], interfaces, '''[[/Syscalls/]]''', /sys, /proc, [[/System#Modules|modules]], [[/Updating|updating]] and [[/Human_interfaces#Debugging|debugging]]
* '''[[/Multitasking/]]'''
** about processes, threads, scheduling, [[/Multitasking#Synchronization|synchronization]], [[/Multitasking#Interrupts|interrupts]]
* '''[[/Memory/]]'''
** about address spaces, memory allocation, memory mapping, VM, pages, data types, swap
* '''[[/Storage/]]'''
** about block devices, filesystems, VFS, ext3, disk cache, SATA, SCSI,
* '''[[/Networking/]]'''
** about network drivers, Ethernet, sockets, TCP/IP, NFS
*[[/External links/]]
__NOTOC__ __NOEDITSECTION__
{{Alphabetical|L}}
{{Shelves|Linux}}
{{status|50%}}
qi6buigdlp57gmjfyx5wa9x9k5mjdfq
Aros/Platforms/x86 support
0
22115
4640101
4639178
2026-06-13T14:56:26Z
Jeff1138
301139
4640101
wikitext
text/x-wiki
Google translation into [http://translate.google.com/translate?hl=en&sl=auto&tl=de&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support German], [http://translate.google.com/translate?hl=en&sl=auto&tl=fr&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support French], [http://translate.google.com/translate?hl=en&sl=auto&tl=nl&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Dutch], [http://translate.google.com/translate?hl=en&sl=auto&tl=it&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Italian], [http://translate.google.com/translate?hl=en&sl=auto&tl=es&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Spanish], [http://translate.google.com/translate?hl=en&sl=auto&tl=hi&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Hindi],
[http://translate.google.com/translate?hl=en&sl=auto&tl=zh-CN&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Chinese Simplified],
[http://translate.google.com/translate?hl=en&sl=auto&tl=pl&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Polish],
[http://translate.google.com/translate?hl=en&sl=auto&tl=ru&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Russian],
{{ArosNav}}
[[#Audio Chipsets]]
[[#Graphic GFX Chipsets]]
[[#Future]]
==x86 Native Environment==
AROS should run on almost any i386 PC hardware so long as the CPU is newer than an i486, and has a "Floating Point Unit (FPU)". Ideally around 700Mhz and above with at least 256MB of memory is recommended for desktops and around 1GHz and at least 256MB for laptops/notebooks/netbooks. For web browsing, etc above 1GB is usually needed and offers the option to run web browsers, media players and other hard disk heavy usage from RAM: disk.
Motherboards supported
* Most Intel mobos are supported (Skt 775 is ok but newer is better) - additional pci / pci-e cards may be needed for networking, audio, etc
* AMD based socket 939 am2 am2+ am3+, fusion and am4 ryzen based systems work but additional pci / pci-e cards may be needed
Supported graphics cards (gfx)
* Nvidia 2D and 3D 2005-2017.
64bit AROS Nouveau covers '''2D''' 8xxxgs and higher to GTX 900s and '''3D''' from .
32bit AROS supports '''2D''' from TNT through to fermi gtx5xx and '''3D''' acceleration fx5xxx to gtx4xx.
* Intel GMA 2D and 3D 2006-2009.
'''2D''' for many old netbooks and motherboards. '''3D''' for many early netbooks and motherboards
* AMD/ATI 2D only and '''no 3D'''. 1999-2005.
Desktop ie external monitor support only (no laptop internal support) for very early Radeon 7000 through to x600. Experimental 2D version for up to HD3xxx came later
* VESA 2D fallback modes for all graphic cards (GPUs) and with [http://www.youtube.com/watch?v=HKCHZFYj9Kk screen dragging].
It's worth noting however that support isn't guaranteed. Nor will potential power of a card reflect its performance under AROS.
Sound wise there are
* HDaudio support for onboard intel and AMD netbooks, ultrabooks, notebooks and motherboards (2005 to 2020)
* some AC97 codec support for very old motherboards and laptops (ie pre 2004)
* PCI and some PCI-E C-Media CMI8738 for desktop plugin cards
* PCI Creative Soundblaster EMU10K1 cards [http://amigaworld.net/modules/news/article.php?storyid=2512 SBLive]
* PCI semi professional some early VIA Envy24 desktop sound cards
* PCI Sound Blaster 128 aka SB16
Supported [http://en.wikibooks.org/wiki/Aros/Platforms/x86_Network_support network] which could be desktop, laptop, etc
* PCI-E Realtek rtl8169 which also includes the rtl8111 and rtl8110
* PCI Realtek rtl8139 and includes rtl8101 and rtl8100
* PCI intel pro100
* Broadcom 44xx 10/100 integrated in laptops around 2005
* VIA 10/100
* 3com Etherlink 10/100
* Realtek rtl8029 10mbit
Wireless wifi
* atheros 5000 wireless
*realtek 8187 usb
It is very hard to recommend a completely supported motherboard because as soon as newer motherboards arrive so their features change subtly, often introducing non supported parts like ethernet and audio. It is a moving target.
* mini-itx motherboard will only get you 1 pci or pci-e slot
* micro mATX or uATX will have more, typically 2 pci-e or pci slots which helps if any onboard features are not supported.
* full atx will have more slots available
'''N.B''' It is frustrating when a piece of hardware is not supported. Hardware documentation can run to over 100 pages and a lot of hardware do not have any public documentation anyway. Chips from different manufacturers for sound, graphics, SATA, etc. vary just as much, unless they follow a standard such as [https://github.com/acidanthera/AppleALC/wiki/Supported-codecs HDAudio codecs], AHCI etc.
Coding drivers is a far cry from Hello World programs or even a port of existing software. If you do actually want to try then get a hold of documentation on the relevant hardware and start there. Alternatively you could try to find some '''BSD''', MIT or MPL licence drivers as a point of reference. Please , do not think you can just adapt strings in a driver for different strings, it does not work that way. You will '''need''' to start from scratch for each new bit of hardware. Device driver programming require '''embedded''' skills, like manipulation of bits within registers, good debugging skills, dealing with interrupts, lots of patience, etc.
The following specific chipsets and drivers are also available - use Tools/PCITool to confirm Vendor and Product IDs - Please let us know any mistakes or any information to be added, to this General Chat list on [https://arosworld.org/ AROS World]
: Brief Timeline
: 2000-12-06 HIDD first mouse.hidd completed ([http://msaros.blogspot.com/ Michal Schulz])
: 2001-03-31 BOOT first boot from floppy disk with IDE device
: 2001-10-30 BOOT first cd bootable version
: 2002-01-27 HIDD first pci.hidd added (Michal Schulz)
: 2002-04-13 BOOT software HDToolBox added ()
: 2003-04-03 HIDD vesa2.hidd graphic modes added ()
: 2004-03-08 HIDD new pci and ata (pata) devices worked on (Michal Schulz)
: 2004-03-17 HIDD nVidia 2D driver appears (Michal Schulz)
: 2005-01-05 AHI AHI v6 audio system ported (Martin Blom)
: 2005-01-06 AHI SBLive SoundBlaster Live driver ported (Georg Steger)
: 2005-02-04 AHI AC97 playback only driver added (Michal Schulz)
: 2005-06-27 NIC amiTCP stack ported with 3com, NE2000, prism2 drivers (Neil Cafferkey)
: 2005-08-25 NIC nForce2 support added (Michal Schulz)
: 2005-12-24 NIC Intel Pro100 network driver added (Neil Cafferkey)
: 2006-03-25 HIDD ATI radeon 2D driver added (Michal Schulz)
: 2007-03-06 HIDD vesa 1.0 video driver added (Pavel Fedin)
: 2007-03-08 HIDD dospackets and FAT filesystem (Rob Norris)
: 2007-03-21 HIDD usb initial commit (Michal Schulz)
: 2007-10-01 BOOT Installer added (Neil Cafferkey)
: 2007-11-29 PORT 64bit x86 added (Michal Schulz)
: 2008-04-12 BOOT GRUB2 added (Alain Greppin and Nick Andrews)
: 2008-08-26 NIC RTL8139 added ([http://kalamatee.blogspot.com/ Nick Andrews])
: 2008-10-22 PORT to SAM440ep (ppc) (Michal Schulz)
: 2009-02-25 PORT to efika (ppc) (Michal Schulz)
: 2009-05-18 HIDD poseidon usb2.0 stack ported to AROS (Chris Hodges)
: 2009-11-18 NIC RTL8169 network driver arrived (Nick Andrews and [http://pagesperso-orange.fr/franck.charlet/oldnews.html Franck Charlet])
: 2009-12-23 AHI HDAudio based Atom CPU and netbook audio driver arrived (Davy Wentzler)
: 2010-03-09 BOOT USB pendrive stick booting available (Neil Cafferkey)
: 2010-05-26 HIDD Intel GMA900 2D graphics card support (Michal Schulz)
: 2010-09-03 NIC Wireless PCI based NIC arrived (Neil Cafferkey)
: 2011-04-30 HIDD Nvidia 2D and 3D nouveau graphics card support (Deadwood)
: 2011-08-30 HIDD Radeon 2D enhanced AMD driver arrives (Bearsoft)
: 2011-09-17 NIC Wireless USB realtek arrives (Neil Cafferkey)
: 2011-12-09 HIDD Intel 945G 3D Gallium graphics support (Sami)
: 2013-02-25 AHI AC97 VIA 686 audio support (Davy Wentzler and Neil Cafferkey)
: 2013-03-31 PORT early Raspberry PI native support (Nik Andrews)
: 2014-01-16 AHI Envy24 audio chipset support (Davy Wentzler and Neil Cafferkey)
: 2017-02-17 PORT Symmetric MultiProcessing smp added for x86 64bit (Michal Schulz)
: 2018-10-20 PORT Big Endian ARM
: 2021-11-26 NIC Broadcom 44xx ethernet (Neil Cafferkey)
: 2023-01-12 NIC Nvidia MCP61 ethernet (Neil Cafferkey)
: 2025-11 HIDD xHCI USB3 and isoc (Nik Andrews)
[[#top|...to the top]]
===Audio Chipsets===
'''If sound beeps in AHI prefs after Music set then some support is there. Select more than one channel for multiple audio streams, set frequency up to 44 kHz or higher and set the volume if not already set. Ensure you set the music unit 0 to 3 which allows the extra features of the audio card like microphone, line-out, etc).'''
====1996-2000 sb128.audio aka SB16 PCI====
*2021 5.27
as per CREATIVE's website, the model number is the first two digits on the front and first two digits on the back. my card says CT4810 and 161TK110B 995; this translates to CT4816 as the model.
The original AudioPCI 3000 card with the ES1370 had a master clock crystal for 44.1 kHz (22.5792 MHz), used an AKM codec (AK4531, non-AC97) and had 4 channel output; Creative later modified the design with a crystal for 48 kHz (24.576 MHz) and Sigmatel AC97 codec (a CT4700 SB128 with a CT5507 chip, AK4531, 22.5792 MHz crystal and TDA7360 speaker power amp). The issue with these cards involved never quite eliminate the effects of resampling on the 64V, it also shows signs of undersized coupling caps. These Ensoniq cards automatically engaged headphone amplifier (with a 4565 opamp).
Porting involved [http://repo.or.cz/w/AROS.git/commit/b60abd12967144a844980c422ea9e99c056eabca 40897], [http://repo.or.cz/w/AROS.git/commit/b7d6511fca6430a63fbaaa390b4f51bf0203a460 40898 configure], [http://repo.or.cz/w/AROS.git/commit/f51034cd22759a4ec3a2547bddb3a7169d956eaa 40900 bugs], [http://repo.or.cz/w/AROS.git/commit/4f43fc38e3489ea45d12b7b5ba6fff50b69c5746 40901 further bugs], [http://repo.or.cz/w/AROS.git/commit/d23c78aec75f049484b6916d27b6804ce858bb2c 40913 memory IO fixes], [http://repo.or.cz/w/AROS.git/commit/d256860fe3035016952e88d143c6f2611997f2f3 40914 irq fix].
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| Ensoniq AudioPCI 1000
| 0x1274
| 0x5000
|
| {{unk}}
| {{unk}}
| untested - es1370 (u?) AK4531 (u?)
|-
| Ensoniq AudioPCI
| 0x1274
| 0x5000
| 0x00
| {{yes}}
| {{maybe}}
|
|-
| CT4700 Sound Blaster PCI 64 (audioPCI 3000)
| 0x1274
| 0x5000
| 0x7c
| {{yes}}
| {{maybe}}
| works - opamp JRC4565(u?) [http://en.wikipedia.org/wiki/Ensoniq_ES1370 es1370] (u?)
|-
| CT4750 Sound Blaster 64/PCI
|
|
|
| {{unk}}
| {{unk}}
| untested - 4565-1056W (u1) stac9708t(u2) [http://arstechnica.com/civis/viewtopic.php?f=6&t=916891 ct5880-dcq] (u3) 24wc012 (u4)
|-
| CT4751 (SB128PCI)
| 0x1274
| 0x8001
|
| {{unk}}
| {{unk}}
| untested - [http://en.wikipedia.org/wiki/Sound_Blaster#Ensoniq_AudioPCI-based_cards es1371] (u?)
|-
| CT4810 Creative AudioPCI64V
| 0x1274
| 0x1371
| 0x06
| {{yes}}
| {{maybe}}
| works
|-
| CT4811 (SB Vibra 128)
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4812 (Vibra 128)
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4813
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4815
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4816 es1373 (vibra 128)
|
|
|
| {{unk}}
| {{unk}}
| untested but this card has creative's ES1373 as the main chip(U1). it is also different from the other CT4810 (vibra128) in that it does not have a second chip in U2 position. Also there is only one jumper JP1 (2X3).
|-
| CT5801 HP
|
|
|
| {{unk}}
| {{unk}}
| untested - es1373 (u3)
|-
| CT5803 Gateway
| 0x1274
| 0x1371
| 0x08
| {{yes}}
| {{maybe}}
| works 4565-0005b jrc (u1) 4297a-jq ztae0c0002 (u2) es1373 (u3)
|-
| CT4740
| 0x1274
| 0x1371
| 0x08
| {{yes}}
| {{yes}}
|
|-
| CT5805 Compaq OEM Premier Sound Presario 7
|
|
|
| {{unk}}
| {{unk}}
| untested - es1373 (u3)
|-
| CT5806 (Sound Blaster AudioPCI 128D)
|
|
|
| {{unk}}
| {{unk}}
| untested - 4297A-JO EP (u?) ZTAPWC9933 (u2) es1373 (u3)
|-
| CT5807 Dell OEM Dimension 8100
|
|
|
| {{unk}}
| {{unk}}
| untested - es1373 (u?)
|-
| CT5808
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4730 Sound Blaster AudioPCI 64V Ectiva EV1938
| 0x1102
| 0x8938
|
| {{unk}}
| {{unk}}
| untested
|-
| CT5880 on various motherboards
| 0x1274
| 0x5880
|
| {{unk}}
| {{unk}}
| untested [http://www.xbitlabs.com/articles/mainboards/display/ga-6rx.html Gigabyte GA-6RX] (VIA ApolloPro 266 2001], Gigabyte GA-6VM7-4E mobo, [http://active-hardware.com/english/reviews/mainboard/ga-7vtx.htm Gigabyte GA-7VTX] (KT266 2001), Gigabyte [http://www.amdboard.com/gigabytega7vtxh.html GA-7VTXH] (KT266A 2001), [http://www.amdboard.com/gigabytega7vrxp.html Gigabyte 7VRXP] mobo (KT333 2002), MSI MS-6309, MS-6318, MS-6337 (815E Pro), MS-6339 (850Pro) and MS-6340, PCChips Motherboard M571 TXPRO, Soltek SL-65ME+,
|-
| VMware Virtual Workstation(TM)
| 0x1274
| 0x1371
| 0x02
| {{Yes|but not Hi-Fi modes}}
| {{maybe}}
| works
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
<pre>
Revision 0x04 = ES1371 REV_ES1373_A
Revision 0x06 = ES1371 REV_ES1373_B
Revision 0x07 = ES1371 REV_CT5880_A
Revision 0x02 = CT5880 REV_CT5880_C
Revision 0x03 = CT5880 REV_CT5880_D
Revision 0x04 = CT5880 REV_CT5880_E
Revision 0x09 = ES1371 REV_ES1371_B
Revision 0x00 = EV1938 REV_EV1938_A
Revision 0x08 = ES1371 REV_ES1373_8
</pre>
====1999-2001 via-ac97.audio====
*2021 5.10
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| <!--Description-->694X with 686A KT133 PM133 or 693A with VT8231
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3058
| <!--Revision-->
| <!--Playback-->{{Yes| }} redirects earphones correctly
| <!--Recording-->{{Yes| }}
| <!--Comments-->audio controller works but depends on the underlying invisible codec used see AC97 section
|-
| <!--Description-->686B KT133A with VT8231
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3058
| <!--Revision-->0x50
| <!--Playback-->{{Yes|}} reroutes ear pieces right
| <!--Recording-->{{Yes|}}
| <!--Comments-->audio controller works but depends on the underlying codec used see AC97 section below
|-
| <!--Description-->686C
| <!--Vendor ID-->0x1106
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->untested
|-
| <!--Description-->KM266 or KT266 with VT8233, KT266A with VT8233A, VT8233C
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3059
| <!--Revision-->0x10
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->KM333 KT333 with VT8235
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3059
| <!--Revision-->0x30
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
| <!--Description-->KM400 KT400 with VT8237, KT600 with VT8237R,
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3059
| <!--Revision-->0x40 0x50 0x60
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
|}
====1998-2003 emu10kx.audio - Creative Labs SoundBlaster Live! and Audigy====
*2021 6.5
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| PCI512 CT4790 (emu10k1)
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested (1st Gen)
|-
| Live CT4620
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Live CT4760
| 0x1102
| 0x0002
| 0x07
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| playback works
|-
| Live Value CT4670
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| works plays stereo (2nd Gen)
|-
| Live Value DELL CT4780
| 0x1102
| 0x0002
| 0x06
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| plays/records stereo - untested 4.1mode
|-
| Live Value Compaq CT4830
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{Maybe}}
| <!--Recording--> {{unk}}
| not working
|-
| Live Value CT4831
| 0x1102
| 0x0002
| 0x00
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Live Value CT4832
| 0x1102
| 0x0002
| 0x07
| <!--Playback--> {{yes}}
| <!--Recording--> {{partial|Line-In only}}
| works
|-
| Live Value CT4832
| 0x1102
| 0x0002
| 0x08
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| works
|-
| Live Value HP CT4870
| 0x1102
| 0x0002
|
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| Works
|-
| Live Value Gateway CT4871
| 0x1102
| 0x0002
|
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Live! Platinum 5.1 SB0060
| 0x1102
| 0x0002
| 0x00
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
| plays audio/records, untested 5.1 (3rd Gen)
|-
| Live 5.1 SB0100 -SFF
| 0x1102
| 0x0002
| 0x00
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| works
|-
| Live 5.1 Player SB0220
| 0x1102
| 0x0002
| 0x0a
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
| plays audio/records stereo, untested 5.1
|-
| Live 5.1 Digital SB0228
| 0x1102
| 0x0002
| 0x0a
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
| working
|-
| Audigy SB0090 (emu10k2)
| 0x1102
| 0x0004
|
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| <!--Description-->Audigy SB0230
| <!--Vendor ID-->0x1102
| <!--Product ID-->0x0004
| <!--Revision-->0x03
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Yes|Mic only}}
| <!--Comments-->5th Dec 2012 - untested optical tos link. contains also IEEE1394/Firewire (untested)
|-
| Audigy 2 Platinum 6.1 SB0240 SB0250 EMU10K2.5
| 0x1102
| 0x0004
| 0x04
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| works
|-
| Audigy 2 PRO SB0280 EMU10K2.5
| 0x1102
| 0x0004
|
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Audigy 2 ZS SB0350
| 0x1102
| 0x0004
| 0x04
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
|
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| Live 5.1 DELL SB0200 SB0203 emu10kx
| 0x1102
| 0x0006
| 0x0
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
|
|-
| Live 24bit SB0410
| 0x1102
| 0x0007
| 0x
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Live 24bit DELL SB0413
| 0x1102
| 0x0007
| 0x
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy LS SB0310
| 0x1102
| 0x0007
| 0x0
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy SE 7.1 SB0570
| 0x1102
| 0x0007
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 2 ZS SB0320 SB0360 (PRO)
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 2 VALUE SB0400
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 4 VALUE SB0610
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 4 PRO SB0380
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| EMU E-MU 0404 PCI (not USB) EM8852
| 0x1102
| 0x000
| 0x0
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver but linux support needs firmware
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
the green jack is for the main speaker pair AND headphones, so manual switching will be required
If your card is wired for the "AC97" standard, then it's up to your headphone jack to switch the green speaker output in and out
the headphone jack has Normally-closed contacts that will open on insertion, which breaks the signal path back to the sound card (FP_RETURN)
====2000-2010 cmi8738.audio - C-Media====
*2021 5.20
;Read [http://amigaworld.net/modules/news/article.php?storyid=2512 more] and imported on [http://repo.or.cz/w/AROS.git/commit/aff741d60160c6a9d7d39c9e004a25ea3aa13847 20th July 2011] and [http://alsa.opensrc.org/Cmipci alsa docs].
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| Audiotrak MAYA EX5
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| cmi8738-sx 4ch
| 0x13f6
| 0x0111
| 0x10
| <!--Playback-->
| <!--Recording-->
| untested
|-
| e3dx hsp56 CMedia 8738-sx 4ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| EDio SC3000D 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Genius SoundMaker Value PCI C3DX
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Guillemot Maxi Sound Muse
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Hercules Gamesurround Muse LT
| 0x13f6
| 0x0111
| 0x10
| <!--Playback--> {{yes}}
| <!--Recording--> {{no}}
|
|-
| Hercules Gamesurround Muse XL LT 5.1
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Inno audio extreme 5.1 cmi8738/lx pci 6ch
| 0x13f6
| 0x0111
| 0x
| <!--Playback-->
| <!--Recording-->
| untested
|-
| M-Audio (Midiman) DiO 2448
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Sabrent SBT-SP6C 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| StarTech PCISOUND4CH 8738sx 4ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Sweex SC012 CMI8738-lx 4ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Terratec 5.1 PCI
| 0x13f6
| 0x0111
| 0x10
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Terratec Aureon Fun 5.1
|
|
|
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| Has SPDIF
|-
| Trust Sound Expert Digital Surround 5.1 (cm8738-mx 6ch)
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Turtle Beach Riviera CMI8738-MX 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| XSonic CMI 8738 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->CMI8738 6ch PCI-E PCI Express version
| <!--Vendor ID-->0x13f6
| <!--Product ID-->0x0111
| <!--Revision-->0x10
| <!--Playback-->{{Yes|}}
| <!--Recording-->{{Maybe|}}
| <!--Comments-->Chinese based card with playback tested so far
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
====2001-2005 ac97.audio====
*6.4 27-12-2008
The AC97 chips were designed to be pinout interchangeable so that the sound support could change easily and quickly without motherboard redesigns
the green jack is for the main speaker pair AND headphones, so manual switching will be required
If your card is wired for the "AC97" standard, then it's up to your headphone jack to switch the green speaker output in and out, the headphone jack has Normally-closed contacts that will open on insertion, which breaks the signal path back to the sound card (FP_RETURN)
The ProductID and VendorID are for the audio controller only - the important additional codec is '''NOT''' so easily identified.
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| <!--Description-->Avance Logic (now Realtek) ALC100 and ALC101 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->ALC200 and ALC201 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->ALC201A and ALC202 and ALC202A codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->ALC650
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| <!--Comments-->most Nforce2 boards plays audio only - Abit NF7, Asus A7N8X, MSI K7N2, Epox 8RDA+, DFI
|-
| <!--Description-->ALC850 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{No}}
| <!--Comments-->no support for via P4P800 chipset on ASUS A8V-E SE Deluxe mobo - ICaros 1.3
|-
| <!--Description-->Realtek ALC653 codec and ALC655 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested Acorp 7NFU400
|-
| <!--Description-->Realtek ALC658 codec ALC658D
| <!--Vendor ID-->0x8080
| <!--Product ID-->0x24c5
| <!--Revision-->0x0
| <!--Playback-->{{Yes|Prefs Music and Units 0-3 set volume control - playback}}
| <!--Recording-->{{No}}
| <!--Comments-->MSI Motherboard on NB 22-09-2012
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->AD1881 SoundMAX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->Analog Devices first AC97
|-
| <!--Description-->AD1881A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Yes}}
| <!--Revision-->
| <!--Comments-->works with VIA Controller - untested Intel etc
|-
| <!--Description-->AD1881B
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1885 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{No}}
| <!--Comments-->Playback only with issues on D845HV but not working on MS-6367 because Units 0-3 have masked volume control
|-
| <!--Description-->AD1886
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1887
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->ADI AD1888 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{no}}
| <!--Recording-->{{No}}
| <!--Comments--> Icaros 1.51
|-
| <!--Description-->AD1980 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->AD1981A codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested IBM X30
|-
| <!--Description-->Analog Devices SoundMax(TM) AD1981B codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| <!--Comments-->plays back only on IBM T41 Thinkpad
|-
| <!--Description-->AD1985 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{No}}
| <!--Comments-->not working ahi prefs freezes on D865GLC mobo ([http://www.xbitlabs.com/articles/multimedia/display/int-sound2_3.html ]
|-
| <!--Description-->AD1986 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{No}}
| <!--Comments-->untested [http://uk.ts.fujitsu.com/rl/servicesupport/techsupport/Boards/Motherboards/Fujitsu/D1931/D1931.htm D1931] but works (Acer Aspire 3610 laptop)
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->Crystal Semiconductors CS4205, CS4202 codecs
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Cirrus Logic CrystalWare 4236
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->Cirrus Logic CrystalClear SoundFusion CS4297 CS4299 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested IBM T23
|-
| <!--Description-->conexant Cx20468-31 codec (id 30)
| <!--Vendor ID-->0x103c
| <!--Product ID-->0x3085
| <!--Revision-->
| <!--Playback-->{{No|AC97 appears in AHI Prefs}}
| <!--Recording-->{{No}}
| <!--Comments-->Tested AspireOS 1.8 on Gateway W322
|-
| <!--Description-->ESS Technology ES1921 AC'97 2.1
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->CMI 6501 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested on ASROCK SKT-AM2 AM2NF3-VSTA
|-
| <!--Description-->codec CMI9738
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->codec CMI9739
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->C-Media CMI 9739A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments--> untested on EPoX 8RDA3+
|-
| <!--Description-->CMedia CMI 9761A codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested ASRocK K7NF2-RAID
|-
| <!--Description-->C-Media CMI9880
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->National Semi conductor (now TI) LM4540, LM4543, LM4545, LM4546, LM4548, LM4549, LM4550 LM4560
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->STAC9708T codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->SigmaTel (now IDT) C-Major STAC 9460 (D/A only), 9461, 9462, 9463, 9200, 9202, 9250, 9251, 9220, 9221, 9223, 9750
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AKM (Asahi Kasei Microsystems) AK 4540, 4543, 4544A, 4545
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->codec VT1616 (VIA Six-TRAC Vinyl Audio)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->VIA VT1612, VT82C686
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->ESStech ESS ES1968 maestro-2
| <!--Vendor ID-->0x125d
| <!--Product ID-->0x1968
| <!--Revision-->0x
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->ESStech ESS ES1978 maestro2e
| <!--Vendor ID-->0x125d
| <!--Product ID-->0x1978
| <!--Revision-->0x
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->ESStech ESS ES1988 maestro3 allegro-1 codec
| <!--Vendor ID-->0x125d
| <!--Product ID-->0x1988
| <!--Revision-->0x12
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->Yamaha AC97 ymf-743 YMF752 YMF753 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->{{No}}
| <!--Comments-->untested ymf-753
|-
| <!--Description-->YMF724 YMF744 YMF-754 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| SIS 7018 / Trident 4dwave DX/NX / ALi 5451
| 0x1039 (0x1023 Trident)
| 0x7018 (0x2000 Trident DX) (0x2001 Trident NX)
| 0x02
| <!--Playback-->{{No}}
| <!--Recording-->{{No}}
| no support - introduced early 2000s
|-
| SIS 7012
| 0x1039
| 0x7012
|
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| working through 1 speaker only took over from SIS7018 (2002 onwards)
|-
| <!--Description-->Wolfson (now Cirrus Logic) WM9701, WM9701A (AC'97 1.03 spec), WM9703, WM9704 (AC'97 2.1), WM9705, WM9706, WM9707, WM9708
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->WM9709, WM9710, WM9711, WM9712, WM971
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->first Microsoft(TM) Xbox DAC sound chip (AC Link compliant D/A converter)
|-
| <!--Description-->Wolfson WM9717
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| Parallels
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested
|-
| VirtualBox
|
|
|
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| working
|-
| VirtualPC
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested
|-
| <!--Description-->Intel 82801AA Proxmox
| <!--Vendor ID-->0x8086
| <!--Product ID-->0x
| <!--Revision-->
| <!--Playback-->{{unk| }}
| <!--Recording-->{{unk| }}
| <!--Comments-->
|-
|}
====2005-20xx HDAUDIO.audio====
*6.36 2025 [https://github.com/aros-development-team/AROS/commit/43b33a9280b10963ca659de2cc3d1cf289b43a87 reset handler]
*6.35 202 []
*6.34 2019 AROS One 1.5 upwards
*6.29 2018
*6.27 2017 update
*6.25 2014 used for most Icaros 2.x
*6.20 July 2012
*6.17 Nov 2011
*6.15 Jun 2011
*[http://www.clusteruk.com/SitePortalPage.aspx?siteid=1&did=109 6.13] Sep 2010
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="5%" |Vendor ID
! width="5%" |Product ID
! width="5%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| <!--Description-->ALC260
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| <!--Description-->ALC262
* ALC262-VD2-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->LQFP-48
|-
| ALC268 codec
| 0x
| 0x
| 0x
| <!--Playback-->{{Yes|Version 6.17 Acer AOA110 and AOA150 netbooks), works (Dell Mini Inspiron 9 and 10v, }}
| <!--Recording-->{{Yes|Version 6.17 remove QUERY and select 'Mic 1' as input. Tested with 6.15 as well using QuickRecord and AE 4.0.23 under Icaros 1.4.}}
| <!--Comments-->AHI UNITS and Music are set to: hdaudio:HiFi 16 bit stereo++ / Frequency 48000 Hz, Volume +0.0 dB. The hdaudio.config in SYS:Prefs/Env-Archive is WITHOUT the QUERY-line. After changing and saving the config-file turn off and start again the computer. Switch from internal loudspeaker to headphone you must turn off the music before plug in the headphone-cable, otherwise there is no output on the socket. Back from line-out to internal speakers it is the same.
|-
| [http://blog.foool.net/wp-content/uploads/linuxdocs/sound.pdf Linux docs ALC269]
* ALC269Q-GR
* ALC269QSRS-GR
* ALC269W-GR
| 0x
| 0x
| 0x
| <!--Playback-->{{Maybe| }}
| <!--Recording-->{{Unk| }}
| <!--Comments-->TQFP 48 pin Power IC Chip From [https://patchwork.kernel.org/project/alsa-devel/patch/1408118123-15849-1-git-send-email-tiwai@suse.de/ ALC269 & co have many vendor-specific setups with COEF verbs, result in the codec stalling]
|-
| [http://www.alsa-project.org/db/?f=0321f8479fd670cd510f9912b1120fe7edcf2e07 ALC269VB]
* ALC269Q-VB5-GR
* ALC269Q-VB6-CG
* ALC269Q-VB6-GR
| 0x10ec
| 0x0269
| 0x100004, 0x100100, 0x100202
| <!--Playback-->{{Maybe|some versions work}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* v1 works Asus eee PC netbook 901/1000HA 1005HA/1008HA, 1001P,
* v2 maybe working Lenovo S9 S10 S10-2 S10-3 under HDAudio version 6.13
* v3 maybe dell wyse 7010
|-
| [http://alsa-project.org/db/?f=9c1746c5957b0ce72ff9cfffa312e97d14baf785 ALC269VC aka ALC3202]
* ALC269Q-VC2-GR
* ALC269Q-VC3-GR
| 0x10ec
| 0x0269
| 0x100203,
| <!--Playback-->{{Maybe|some versions work}}
| <!--Recording-->{{Unk}}
| <!--Comments-->SMT SMD QFN-48 -
* v1 unknown
* v2 unknown
* v3 x230, dell wyse,
|-
| ALC272
* ALC272-VA4-GR
| 0x10ec
| 0x0272
| 0x0
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Unk}}
|
* works Acer AOD150 and Acer AOD250 works [http://amigaworld.net/modules/newbb/viewtopic.php?topic_id=33755&forum=28#616910 Samsung NP-NC10], works Samsung NF210-A02] netbooks,
|-
| <!--Description-->ALC273
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| <!--Description-->ALC270
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC282
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x
| <!--Revision-->
| <!--Playback-->{{No|Version 6.17}}
| <!--Recording-->{{No|Version 6.17}}
| <!--Comments-->needs retest
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC660 ALC660-VD
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes| }}
| <!--Recording-->
| <!--Comments-->
* works asus F9s, F9e
* untested asus w7j, M51SN, A6Tc, A8Sr,
|-
| <!--Description-->ALC661-GR (2011)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| ALC662
| 0x1043
| 0x82a1
| 0x0
| <!--Playback-->{{Yes|Version 6.17 if QUERY added to top of hdaudio.config}}
| <!--Recording-->{{No|Version 6.17 not working for eee pc 900}}
|
* works Asus eee PC netbook 700/701/900, Atom 270 and 330 mobos, odd clicks (D410 NM10 PineTrail),
|-
| <!--Description-->[http://outpost.fr/rmaa/ALC663.htm ALC663]
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0861
| <!--Revision-->
| <!--Playback-->{{No|Version 6.13}}
| <!--Recording-->{{Unk}}
| <!--Comments-->not bad output like headphone amp part of the codec actually works well but messed up by undersized coupling capacitors to actually support such a low impedance
* not working Asus n50vn x71vn,
|-
| <!--Description-->ALC665
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC666
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC667
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC668
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC670
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->ALC880
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->some 915 and 925 chipset mobos
|-
| <!--Description-->ALC882M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| Realtek ALC883 ALC883-GR ALC883D-GR ALC883DTS-GR ALC883DD-GR codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe|some early versions work }}
| <!--Recording-->{{Unk| }}
| 2005 to 2007 HD Audio codec untested (Asus ),
|-
| Codec ALC885
| 0x10ec
| 0x0885
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
|-
| ALC888
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
|
|-
| ALC888s
* ALC888S-VD2-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}} MSI Wind U90/U100,
| <!--Recording-->{{Unk}}
| LQFP-48
|-
| ALC888b
| 0x8086
| 0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| untested (D510 NM10 Dual Core PineTrail mobo),
|-
| ALC888-VD
| 0x8086
| 0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| untested
|-
| ALC889A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes|works if QUERY added to the top of hdaudio.config in Prefs drawer/directory}}
| <!--Recording-->{{Unk}}
|
|-
| ALC889 Gr
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}} with crackles
| <!--Recording-->{{Unk}}
|
|-
| ALC889
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
| Tested with MSI H55 board
|-
| ALC887 ALC887-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
|
* working on ASUS P5KPL/EPU and Gigabyte GA-E350N-Win8 Rev1.0
|-
| ALC887-VD-CG
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0887
| <!--Revision-->0x100302
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}} Subsystem Id: 0x1458a002
|
|-
| ALC887-VD
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0887 0x1458
| <!--Revision-->0xa002
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{Unk}} index = 2
| ALC887 does not have any volume control ability on the mixer NIDs, so put the volume controls on the dac NIDs instead
* working with intermittent corrupting pop popping skipping stuttering sound issues MSI 760GM-P23 (FX),
* not working Gigabyte H61MA-D3V, AT3IONT-I Deluxe,
|-
| ALC887-VD2
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
| 3jacks
|-
| ALC887-VD2-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
|-
| ALC887-
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
|
|-
| ALC892-CG rev
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| 2011 48-pin LQFP Green package -
|-
| ALC892 ALC892-DTS-CG rev
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
| 2009 introduced
* works
* not working
* untested
|-
| ALC892 rev
| <!--Vendor ID-->0x0x10ec
| <!--Product ID-->0x0892
| <!--Revision-->0x100302
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| 2014
|-
| Realtek ALC886-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| LQFP-48
|-
| Codec ALC861 ALC861-VD
| 0x10ec
| <!--Product ID-->0x0663
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
|
* not working Toshiba Tecra A7
|-
| <!--Description-->ALC1200
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| ALC898
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
| not working
|-
| <!--Description-->ALC1500
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC3232 (aka ALC292)
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0292
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC3234 aka ALC255
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0255
| <!--Revision-->003
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC3287 aka ALC257
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes| }}
| <!--Recording-->{{no| }}
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->AD1882
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1883 HD Codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1884
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| Analog Devices SoundMAX AD1981
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| IBM Thinkpad T60,
|-
| AD1984 hp-m4 codec
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
* audio not working on Lenovo X61, Thinkpad T61,
|-
| AD1986
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
|
|-
| AD1988
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
|-
| <!--Description-->AD1988A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->Cirrus Logic CS4207
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->
| <!--Recording-->
|
|-
| <!--Description-->Cirrus Logic CS4208
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->
| <!--Recording-->
|
|-
| <!--Description-->Conexant CX20549 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe|very very very low volume}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested Fujitsu Amilo SI 1510 1520 no datasheet for the general public
|-
| <!--Description-->Conexant CX20549-12Z codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested HP 530
|-
| <!--Description-->Conexant CX20561 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* working lenovo x200s
* untested Lenovo Essential G555 Notebook, HP Pavilion dv6700,
|-
| <!--Description-->Conexant CX20582 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX2059x CX20590 CX20594-21Z codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX20585 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* working Lenovo Thinkpad T410,
|-
| <!--Description-->Conexant CX20672 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX20671 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX20751-21Z codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes| }}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| <!--Description-->Conexant CX11852 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX11880 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant after 2015 up to 2018 CX7501 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{no|no driver codec}}
| <!--Recording-->{{no|no driver codec}}
| <!--Comments-->Conexant bought by synaptics 2019
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->C-Media CMI9880 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->Gigabyte GA-8GPNXP
|-
| <!--Description-->Silicon Labs 3054
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| VIA 1708A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| untested,
|-
| VIA VT1708B
| <!--Vendor ID-->
| <!--Product ID-->
| 0x0010
| <!--Playback-->{{No|VIA PicoITX}}
| <!--Recording-->{{Unk}}
|
|-
| VIA 1708S
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
|
|-
| <!--Description-->VT2021 10ch
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->Gigabyte Z77MX-D3H, GA-H61M-S2H S2P,
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Creative CA0110-IBG
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->SigmaTel STAC 9220 9221 9223 8ch (7+1)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| <!--Comments-->ECS 945GCT/M-1333 (version 3.0),
|-
| IDT SigmaTec [http://explorer.cekli.com/articles/pdf/hd-audio STAC9227] /28/29/30 codec
| <!--Vendor ID-->0x8384
| <!--Product ID-->0x7626
| <!--Revision-->0x0002
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Unk}}
|
* works HP Compaq mini 110
* untested HP Pavilion HDX9000 CTO Notebook, Intel DG33TL mobo, Dell E520, Intel DP35DP mobo, Dell E6410 Laptop,
|-
| IDT (formerly SigmaTel) IDC STAC 9271/71D
| <!--Vendor ID-->0x8384
| <!--Product ID-->0x7626
| <!--Revision-->0x0002
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
|
|-
| <!--Description-->IDC STAC 9272 9273 9274
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->Intel D5400XS,
|-
| <!--Description-->IDT 92HD73C
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes}}
| <!--Recording-->
| <!--Comments-->headphones only Asus AT4NM10 mobo
|-
| <!--Description-->IDT 92HD75B
| <!--Vendor ID-->0x111d
| <!--Product ID-->0x7608
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* working [http://koti.kapsi.fi/jvaltane/aros/hdaudio/ HP Compaq Mini 700 Netbook - feedback required]
* untested HP Mini 5103 and 5102, HP Compaq 610, HP ProBook Laptop 4520s 4525s 6450b 6550b 6555b, HP EliteBook 2540p 2740p 8440p, Mobile Workstation 8540w 8740w, Pavilion NoteBook DV8,
|-
| <!--Description-->IDC 92HD81XX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC 92HD83XX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC STAC 92HD89XX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Wolfson (now Cirrus Logic) WM8850
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Wolfson WM8860
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->Intel High Definition Audio Revision 1.0. - 4-Channel DAC, 4-channel ADC. - DAC sampling
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
Using Prefs/AHI ensure you set the music unit and at least Units 0 (where most audio comes from) in top left drop down menu to HDaudio - HIFI in the section below. Set Units 1 or 2 to microphone or other outputs. Plus allow more than one channel for multiple audio streams and set frequency up to 44 kHz or higher on the right hand side of the ahi prefs. If sound beeps when you press the test button then all should be OK.
Output <- Codec <- Audio Controller (HDA) <-> Computer
codecs and exact hardware identifier. As mentioned above, HDA is only part of the work here, it gets the audio out of the main chipset in digital format (on a bus called I2S). This is not enough, there is another step needed which is routing that I2S signal to the output, converting it to actual audio, amplifying it, etc. This is handled by a separate chip called a "codec". Sometimes it is initialized by the BIOS, but this is not always the case.
Most audio drivers are made up of two parts a [http://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio.txt Controller + a Codec]. The ProductID and VendorID are for the audio controller only - the important additional codec is '''NOT''' so easily identified.
Some newer versions of codecs are missing at the moment.
Things to try if sound not working
* try to connect something to the audio jack, maybe it is not playing on internal speakers or vice versa
* make sure you try and select all music units e.g. unit0, unit1....
* even if PCI ID's are in Prefs/Env-Archive/HDaudio.config, this doesn't mean it is working, it is the codec that matters
* it might be internally muted
<pre>
add debug=memory to grub boot line - continue booting with F10
Open a shell
Tools/Debug/Bifteck > RAM:audio.txt
</pre>
or
<pre>
Open a shell
Tools/Debug/Sashimi > RAM:audio.txt
Run ahi prefs
Click test tone button
Stop sashimi with Ctrl-C
</pre>
If the boot sound is enabled, you have to use Bifteck to capture AHI debug output. In the GRUB menu, press E on your selected entry, then add "debug=memory" to the options (alongside ATA=, vesa= etc.). Then F10 or Ctrl-X to boot. Once booted, run Tools/Debug/Bifteck again.
or
* try adding QUERYD to the start of ENVARC:hdaudio.config file (also known as Prefs/Env-Archive/) ie. on the first line
* '''OR''' try removing QUERY and QUERYD from the start of the hdaudio.config file
* Reboot
* open a shell
* type: sys:tools/debug/sashimi > ram:debug.txt
* open ahi prefs
* select one of the audio modes - HIFI or otherwise
* press the 'test sound' button
* press ctrl-c in the shell
* post the results to Aros-World
The HD Audio standard was designed to be hardware pinout interchangeable so that the sound support could change easily and quickly. HDA is a standard around particular chips. Each kind of chip has a certain number of DACs and pins, and even the same chip could be hooked up in different ways on different motherboards. The chips are programmable and the operating system can adjust how things are routed. Some pins aren’t even hooked up, so it makes no sense to route sound to them. Also some pins have sensors that can tell when something is plugged in, so that for example the speakers in a laptop can be muted when headphones are plugged in. Pins are also grouped, so for example all the outputs for a 5.1 sound system are grouped. Generally the HDA driver in the operating system is supposed to read the pin set up and figure out a reasonable way to set things up, and disconnected pins should be ignored, etc.
HDAudio standard has headphones on a separate DAC, and it's up to the driver.. it can even send different audio to the headphones without interrupting the main (green) outputs
====Envy24 series ====
A little history. VIA bought the ICE created Envy chipsets [http://www.via.com.tw/en/products/audio/controllers/comparison_controller.jsp VT1712] first. A few years later, they created several cheaper variants VT1724 (mixer missing), VT1721 (low end cut down), VT1720 (embedded on motherboard) and lastly the VT1723 (no support apart from Windows Envy24DT like SYBA SD-PEX63034).
There are PCI Express versions appearing.
The Envy24 is the base product that was originally designed by ICEnsemble, and it supports multi-channel hardware mixing, which is great for professional use. The HT version removes the hardware mixer (unimportant for non-professional uses). The [http://www.avsforum.com/t/364771/envy24ht-s-the-definitive-source HT-S] version is almost exactly the same as the HT, it just uses cheaper DACs. The PT version is exactly the same as the HT-S version, it is just the edition used for on-board audio on motherboards.
N.B. [http://www.soundonsound.com/sos/dec04/articles/pcnotes.htm PCI slot identification] and [http://hsi.web.cern.ch/HSI/s-link/devices/s32pci64/slottypes.html 3.3v PCI].
=====[http://www.opensound.com/readme/README.Envy24.html envy24.audio] - [http://www.anime.net/~goemon/alsa/ VT1712] =====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Playback
! Recording
! Comments
|-
| M-Audio Delta 66 - Rev B 1999
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested AK4524VF CS8404A-CS - needs Delta Series break out box with D-sub lead -
|-
| [http://ixbtlabs.com/articles/maudioaudiophile/index.html Audiophile 2496] Rev A 2000
| 0x14
| 0x
|
| <!--Playback-->{{unk| }}
| <!--Recording-->{{unk| }}
| works audio out on - I2S stereo codec AKM AK4528VF with the 24bit/96kHz DAC and ADC; CS8427 digital transceiver
|-
| [http://ixbtlabs.com/articles/maudioaudiophile/index.html Audiophile 2496] Rev B 2003
| 0x14
| 0x
|
| <!--Playback-->{{Yes }}
| <!--Recording-->
| works well - I2S stereo codec AKM AK4528VF with the 24bit/96kHz DAC and ADC; CS8427 digital transceiver
|-
| M-Audio Delta 410 - 2001 2001 REV-B
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested for D-A AK4529VQ converters with CS8427-CS 5532 1158B or Event Echo Gina 20-Bit Multitrack Interface Breakout Box -
|-
| M-Audio Delta 1010
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested AK5383 and AK4393 - 25 pin dsub -
|-
| M-Audio Delta 1010LT 1010E
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested for D-A AK4529 converters with 2 XLR Microphone inputs with pre amps
* be aware of redesign in 2007 - possible issues
|-
| M Audio Delta 44 - Rev A 2002 - Rev B 2003 - Rev D 2003
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested ICE1712G AK4524VF needs breakout box with 15 pin D-sub lead -
|-
| M-Audio Delta 66 Rev E 2006 - Omni Studio
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested needs break out box with 15 pin D-sub lead -
|-
| <!--Description-->M-Audio Delta DiO 2496
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| Terratec EWX24/96
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| [http://ixbtlabs.com/articles2/terratecdmx6fire/index.html TerraTec 6fire DMX 24/96]
| <!--Vendor ID-->0x1412
| <!--Product ID-->0x1712
| <!--Revision-->0x02
| <!--Playback-->{{No|tried line 1-2 3-4 5-6 7-8 }}
| <!--Recording-->{{No| }}
| untested - AKM and codec
|-
| <!--Description-->Terratec EWSA88MT
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| [http://lists.freebsd.org/pipermail/freebsd-multimedia/2007-March/006087.html Audiotrak Prodigy HD2] 24/96
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Audiotrak (ESI) Maya 1010 1010L
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| EMU 1212M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| EMU 1616M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| <!--Description-->Terratec EWS 88MT EWS 88D
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Hoontech Soundtrack DSP 24
Soundtrack DSP 24 Value
Soundtrack DSP 24 Media 7.1
Event Electronics EZ8
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Digigram VX442
Lionstracs
Mediastation
Terrasoniq TS 88
Roland/Edirol DA-2496
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
=====envy24ht.audio - VIA VT1724=====
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| ESI Juli@
| 0x3031
| 0x4553
| 0x0
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Yes}}
| reported working years ago [http://envy24.svobodno.com/ Envy24HT-S] - AKM 4358 DAC - AKM 4114/4112 DIT
|-
| ESI Juli@ Ego Igo rev K
| 0x3031
| 0x
| 0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| AK4358? DAC - AK4114 AK4112 DIT
|-
| [http://ixbtlabs.com/articles2/multimedia/m-audio-revolution51.html M-Audio Revolution 5.1]
| 0x1412
| 0x3631
| 0x0
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| reported working years ago but discontinued - (Envy24GT) - 3ch AKM 4358 DAC - ADC AKM 5365 -
|-
| [http://ixbtlabs.com/articles2/m-audio-revolution71/index.html M-Audio Revolution 7.1] 24/192
| 0x1412
| 0x3630 0x1724
| 0x0
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| not working - illegal semaphore - 6ch ADC AKM AK4355 24-bit 192 kHz - 2ch DAC AKM AK4381 24-bit 192 kHz - ADC AKM AK5380
|-
| Terratec Aureon Sky 5.1
| 0x153b
| 0x1147
| 0x
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - discontinued
|-
| [http://ixbtlabs.com/articles2/terratec-aureon71/index.html Terratec Aureon Space 7.1]
| 0x153b
| 0x1145
| 0x0
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - Wolfson WM8770 DAC, AC'97 codec SigmaTel STAC9744
|-
| Terratec Aureon Universe 7.1
| 0x153b
| 0x1153 (rev x) 0x1724 (rev3)
| 0x0
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| not working - semaphore error on rev 3 - DAC ADC
|-
| Terratec Phase 22
| 0x153b
| 0x1150
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - Envy24HT-S - AK4524
|-
| Terratec Phase 28
| 0x153b
| 0x1149
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - Envy24HT-S - AK4524
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Playback
| Recording
| Revision
| Comments
|-
| Audiotrak (ESI) Prodigy 7.1
| 0x4933
| 0x4553
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - Wolfson WM8770 and AC'97 SigmaTel STAC9744 codec
|-
| Audiotrak (ESI) Prodigy 7.1 LT
| 0x3132
| 0x4154
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver -
|-
| [http://ixbtlabs.com/articles2/sound/audiotrak-prodigy192.html Audiotrak (ESI) Prodigy 192] 24/96
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - STAC9460S codec
|-
| <!--Description-->Echo Layla 24/96
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
| [http://www.bit-tech.net/custompc/labs/80752/hercules-gamesurround-fortissimo-4.html Hercules Gamesurround Fortissimo 4]
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - Wolfson WM8776 Codec and WM8766 DAC
|-
| [http://ixbtlabs.com/articles2/multimedia/m-audio-audiophile192.html M-Audio Audiophile Delta AP 192k]
| 0x1412
| 0x3632
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - Stereo ADC AKM AK5385A 24-bit 192 kHZ - 8-channel DAC AKM AK4358 24-bit 192 kHz - AKM 4114/4112 DIT
|-
| ONKYO SE-150PCI
| 0x160b
| 0x0001
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver
|-
| <!--Description-->ESI Waveterminal 192x
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
| <!--Description-->Quartet
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments--> - AKM 4114/4112 DIT
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
|}
====hdmiaudio.audio - hdmi no support====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Comments-->
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->ATI R6xx HDMI Audio codec support output
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x9840
| <!--Revision-->
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->Not detected
|-
| <!--Description-->NVidia HDMI
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Intel Series 6 CougarPoint HDMI codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Intel HDMI
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|}
[[#top|...to the top]]
===Graphic GFX Chipsets===
[https://gallium.readthedocs.io/en/latest/systems.html PCIe based] graphic chipset is defacto on 64bit AROS and recommended on 32bit.
AGP works on 32bit but faster transfers through the AGP slot are only available on a few supported motherboard chipsets
* Faster AGP Working = SIS 650 board, Intel 865pe AGP slot on MSI 6788-050,
* Not Supported = NForce2 chipsets, most Intel 815/820 chipsets, VIA chipsets, ALi chipsets,
The fallback for all graphics modes is vesa if any native support does not work. There is a choice of very low resolution vga as the last resort
2D tests performed with [http://download.aros3d.org/software/gfxbench.zip gfxbench] in the shell type gfxbench > out.txt (40 seconds blank screen is part of the test), via FreeDoom via limit-removing engine like odamex, chocolate or vanilla doom -timedemo demo1 or doom2 -timedemo demo1, doom.exe -iwad doom2 -file mymap.wad, Duke DNRATE 640x480 windowed
3D tests performed with Demos/Mesa/ , Cube 1080p, Cube 2 windowed not fullscreen 1920 x 1025, Quake3 ~ cl_drawFPS 1, Xonotic , [http://shinh.skr.jp/sdlbench/showtestgl.cgi test gl],
HDMI, DVI and DisplayPort monitors have a native resolution of 480p, 720p, 1080i, 1080p and up
* HDMI 1.2 720p res.
* HDMI 1.3 1080 resolution
* HDMI 1.4 above 1080 res.
* HDMI 2.0
* HDMI 2.1
* HDMI 2.2 ultra96
* GPMI
====vga.hidd====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Comments
|-
|
| 0x
| 0x
| 0x0
| Generic VGA Driver, limited to 640x480 in 16 colours - no 3D support
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Comments-->
|-
|}
====vesa.hidd====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Comments
|-
|
| 0x
| 0x
| 0x0
| 2D support for VBE1, VBE2 and VBE3 (most cards) - various resolutions and 24bit colour - no 3D support
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Comments-->
|-
|}
[[#top|...to the top]]
====[[w:en:Intel GMA|Intel GMA]]====
DVI output is not supported at the moment.
If having problems:
* Ensure the latest version is being used.
* Set GMA_MEM to 128 or 256 to test
* Try the FORCEGMA ToolType for 2D, and try the FORCEGALLIUM ToolType for 3D acceleration after 2D is verified to work. ToolTypes should be applied to the Devs/Monitors/IntelGMA monitor icon.
If still having problems:
* At GRUB boot screen edit boot line and add option: debug=memory
* Boot.
* Use shell command: tools/debug/bifteck > RAM:debug.txt
* And post [GMA MONITOR DETECTION] and other related debug lines
{| class="wikitable sortable" width="90%"
! width="5%" |Description
! width="5%" |Vendor ID
! width="5%" |Product ID
! width="3%" |Rev
! width="5%" |2D
! width="5%" |3D
! width="5%" |Analog Output
! width="5%" |Digital Output
! width="5%" |Laptop LCD
! width="30%" |Comments
|-
| 910GL 82910GL GMCH + ICH6
| 0x8086
| 0x2582 0x2592
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| 910GML 82910 GML GMCH + ICH6 Mobile
| 0x8086
| 0x2582 0x2592
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| may need to add forceGMA to grub boot line to work
|-
| 915G 82915G GMCH + ICH6-M
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
|
|-
| 915GL 82915GL GMCH
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
|
|-
| 915GV 82915GV GMCH
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Yes|}}
| <!--3D-->{{No|}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{N/A}}
| HP DC5100 small form factor
|-
| 915GM GMA900
| 0x8086
| 0x
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| tunnel gearbox }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes}}
| asus eee pc 900
|-
| 915GMS
| 0x8086
| 0x
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| tunnel }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes| }}
|
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| [http://www.notebookcheck.net/Intel-Graphics-Media-Accelerator-950.2177.0.html 945GU] - 133 MHz (Lake port for Intel A100 and A110)
| 0x8086
| 0x2772
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| Fujitsu LifeBook U1010,
|-
| 945GMS - 166 MHz / 250 MHz (1.05V)
| 0x8086
| 0x27a2
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes}}
| Dell D430
|-
| 945GSE - 166 MHz (for Atom)
| 0x8086
| 0x27ae
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Yes|[http://www.x.org/wiki/GalliumStatus]}}
| {{Yes}}
| {{No|dvi port}}
| {{Yes| }}
| for atom motherboards and most 2008/2009 netbooks
* 3D Works - AOA110 AOA150, Dell Mini 9, Samsung NC10, Toshiba NB100,
|-
| 945G 82945G GMCH + ICH7
| 0x8086
| 0x27a6
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| untested 2D and 3D
|-
| 945GC 82945GC MCH
| 0x8086
| 0x27a6
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| untested 2D and 3D
|-
| 945PM
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| Dell D420, Compaq nc6400,
|-
| 945GMS - 250 MHz Calistoga
| 0x8086
| 0x
| 0x0
| <!--2D--> {{Yes}}
| <!--3D--> {{Yes|most models}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes}}
|
* 3D Works Dell Latitude 2100, HP Compaq nc6320, Lenovo 3000, Lenovo T60, Samsung Q35, Dell D620, Dell D820,
* 3D untested Toshiba Satellite L100-120, Toshiba Portege M400,
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
|
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GMA 3100 G31
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works 2D but no 3D
|-
| GMA 3100 G33
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works 2D but no 3D
|-
| [http://en.wikipedia.org/wiki/Intel_GMA GMA 3150] netbooks and nettops
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works 2D but no 3D. no vga, dvi or hdmi output for nettops
|-
| <!--Description--> G965
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments-->
|-
| <!--Description--> Q965
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x2992
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{No}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments--> Only tested with VGA output.
|-
| 965GM X3100 (500 MHz)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| some support 2D but no hardware 3D - could not get it to work with VGA or dvi output
* untested Apple MacBook Air, Lenovo Thinkpad X300, Dell Inspiron 1525, Toshiba M9,
|-
| 960GM X3100 (400 MHz)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
|
|-
| 965M X3100 (400 MHz)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| Dell D830,
|-
| 965PM ??
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| Toshiba A9 works with limited 2D acceleration but no hardware 3D
|-
| GL965
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works with limited 2D acceleration but no hardware 3D
|-
| GM965
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works with limited 2D acceleration but no hardware 3D
|-
| GMA X3500 G35
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->X4500M G41 G43 G45 (400Mhz) Mobile 4 Series
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x2a42 0x2a43
| <!--Revision-->0x07
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue--> {{No|}}
| <!--Digital--> {{No|}}
| <!--Laptop LCD--> {{Yes| VESA}}
| <!--Comments-->works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->GMA 4500M HD (533 MHz)
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments-->works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->GMA 4700M HD (640MHZ)
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x2a42
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments-->works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
====[http://nouveau.freedesktop.org/wiki/FeatureMatrix nouveau].hidd (nvidia pci, agp, pci-e desktop)====
PCIe based nvidia graphics (gfx 8xxx) are the base level for 64bit AROS but earlier models still has some support on 32bit AROS
*Desktop, more likely hit rather than miss on early nvidia on Aros 32bit but on Aros 64bit ...
*Laptop, limited support for '''very''' early non-optimus (i.e. just Nvidia gfx only so no Intel and nvidia gfx combinations on 32bit but on 64bit ...)
Please note that the nouveau project is reverse engineering a nvidia graphics driver but takes time because of [https://nouveau.freedesktop.org/ nVidia's closed firmwares], etc
* 2026-06 - DEVS Nouveau.hidd Gallium.hidd Softpipe - LIBS Gallium GLU 20.0 Mesa OpenCL
* 2011-10 - DEVS 6.11 Nouveau.hidd 7.4 Gallium.hidd 9.4 Softpipe - LIBS 2.3 Gallium 1.3 GLU 19.0 Mesa OpenCL 1.x
* 2011-04 - DEVS 5.31 Nouveau.hidd 7.3 Gallium.hidd 9.3 Softpipe - LIBS 2.2 Gallium 1.1 GLU 18.0 Mesa OpenCL n/a
Nouveau support for AROS is limited to OpenGL 2.1 compliance on 32bit even for modern GL4 capable GPUs but on 64bit ...
On Aros 32bit OpenCL supports the NV50 (8000 9000) cards, less support in NVC0 fermi cards (300 upwards)
On Aros 64bit
ADoom3 graphic details ultra, benchmark while playing press the "`" key and type "Timedemo demo1" in the console
{| class="wikitable sortable" width="90%"
! width="5%" | Graphic Card
! width="5%" | Aros 32bit 1024 x 768
! width="5%" | Aros 32bit 800 x 600
! width="5%" | Aros 32bit 640 x 480
! width="5%" | Aros 64bit 1024 x 768
! width="5%" | Aros 64bit 800 x 600
! width="5%" | Aros 64bit 640 x 480
|-
| NV50 Asus EN8400GS SILENT/P/512M PCIe (G98) || || || || || ||
|-
| Gigabyte 8500GT 256M || 42,6 || 57,2 || 68,6 || || ||
|-
| NV96 (G96) Geforce 9500GT 512M || 43 || 53 || 57 || || ||
|-
| NV96 (G96) 9600GT || || || || || ||
|-
| NVA3 (GT215) GT240 || || || || || ||
|-
| NVA5 (GT216) Palit GT220 Sonic 512M || 39,7 || 55,8 || 63,7 || || ||
|-
| NVA8 (GT218) gt210 || || || || || ||
|-
| NVA8 (GT218) ION2 || || || || || ||
|-
| NVC3 (GF106) GT440 GTS 450 || || || || || ||
|-
| NVCF (GF116) NVC0 Fermi GTX 550Ti or GTS 450 v2 || || || || || ||
|-
| NVC8 (GF110) 580GTX || || || || || ||
|-
| NVE0 Kepler GT630 || || || || || ||
|-
| NVE6 (GK106) Kepler GTX660 || || || || || ||
|-
| NV110 Maxwell GTX 750 || || || || || ||
|-
| NV126 (GM206) GTX950 upwards no reclocking || N/A || N/A || N/A || poor || poor || poor
|-
| NV160 family (Turing) GTX 1650 and RTX 2000 upwards with GSP firmware || N/A || N/A || N/A || unknown || unknown || unknown
|-
| HostGL Ryzen 5 4600H - Nvidia 1650 - Linux mint 21.1 || 150fps || 154fps || 155fps || || ||
|-
| NVA8 (GT218) || || || || || ||
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| width="5%" | Graphic Card
| width="5%" | Aros 32bit 1024 x 768
| width="5%" | Aros 32bit 800 x 600
| width="5%" | Aros 32bit 640 x 480
| width="5%" | Aros 64bit 1024 x 768
| width="5%" | Aros 64bit 800 x 600
| width="5%" | Aros 64bit 640 x 480
|}
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|-
| <!--Description-->tnt1 (nv04) tnt2 (nv05) m64 value (1998)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|very slow}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| NV04 Riva TNT TNT2 Fahrenheit freezes on via motherboard chipset so rename agp.hidd in SYS:Devs/Drivers or Monitors
|-
| <!--Description-->tnt vanta lt (nv06) 1998 /9
| 0x10de
| 0x002c
| 0x15
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|slow}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| <!--Description-->Geforce 256 (nv10) (2000)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|slow }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| untested Geforce256
|-
| <!--Description-->Geforce 2 Geforce 3 Geforce 4 (nv20) 2000 / 2
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|slow }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| works for some PCI and AGP Geforce2 Geforce3 Geforce4
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| Geforce FX5200 nv34 (2003)
| 0x10DE
| 0x0322 0x
| 0xA1
| <!--2D-->{{Maybe| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->{{Maybe|VGA15 }}
| <!--Digital-->{{Maybe|DVI}}
| <!--Laptop LCD-->{{N/A}}
| NV30 GeForce 5 FX Rankine Hardware OpenGL 1.5 - slower than GF MX 4000 for 2D - max 1024 x768
* not working [https://eab.abime.net/showthread.php?t=92328&page=8 mobos with VIA chipsets 2018]
* working (MSI 0x9174) the previous nouveau 5.x driver
* Others work with 6.x series XFX PV-T34K-NA, ASUS V9520-X/TD
|-
| Geforce FX5500 (nv34) (2003)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{Maybe| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| works
|-
| Geforce 5100 (NV34)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce FX 5200LE (NV34)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5200 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce FX5600 (nv31) (2004)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Maybe| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| works
|-
| GeForce FX 5600 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5600SE
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5600XT
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce FX5700 (nv36) (2004)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes|some}}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{Maybe| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5700VE
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5700 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5700LE
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5800 (NV30)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5800 Ultra (NV30)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900 (NV35)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900XT
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900ZT
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5950 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce 5xxx
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
|
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| Geforce 6200 (nv44) (2005)
| 0x
| 0x00F3 0x014F
| 0x0
| <!--2D-->{{Yes|5.28 Pixel Text}}
| <!--3D-->{{Maybe| use 5.28}}
| <!--Analogue-->{{Yes|VGA15 and s-video - plain 4pin cable lead will work with 7pin}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| NV40 GeForce 6 GeForce 7 Curie AGP Hardware OpenGL 2.1 needing previous 5.x version as regression arose 2011-10
|-
| Geforce 6200 (nv44a) (2006)
| 0x
| 0x0221
| 0x0
| <!--2D-->{{Yes|5.28 Pixel Text }}
| <!--3D-->{{Yes|}}
| <!--Analogue-->{{Yes|VGA15}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| Hardware OpenGL 2.1, PCI version tested OK in 2014-01-02 - Icaros 1.5.2
* not working
*working
|-
| GeForce 6200 with Turbo Cache (NV43)
| 0x
| 0x0161
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce 6200SE with Turbo Cache (NV44)
| 0x
| 0x0162
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce 6200 LE
| 0x10de
| 0x0163
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| PCI-E
|-
| GeForce 6600 LE
| 0x
| 0x00F4 0x0142
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6600
| 0x
| 0x00F2 0x0141
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| 2006 PureVideo HD 1 or VP1 re-used the MPEG-1/MPEG-2 decoding pipeline from FX
|-
| Geforce 6600gt (nv4x) (2005)
| 0x
| 0x00F1 0x0140
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Yes| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| OpenGL tests -
|-
| Geforce 6800 (nv40) (2005)
| 0x
| 0x0041 0x00C1 0x00F0 0x0211
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Yes| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 XE (NV4x)
| 0x
| 0x0043
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 LE
| 0x
| 0x0042 0x00C2 0x0212
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 GT (quadro fx 1400)
| 0x
| 0x0045 0x0046 0x0215
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 6800 GS
| 0x
| 0x0047 0x00C0 0x00F6
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 GTS NV40
| 0x
| 0x0040 0x0F9
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 6800XT
| 0x
| 0x0044 0x0048 0x00C3 0x0218
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6600 VE
| 0x
| 0x0143
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6500 NV44
| 0x
| 0x0160
| 0x0
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6250
| 0x
| 0x0169
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 6xxx
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GeForce 7800 GTX
| 0x
| 0x0090 0x0091
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| tunnel gearbox cube cube2 25}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> 256MB DDR3 - 1 6pin psu connector -
* not working asus en7800gtx/2dhtv/256m/osp/a -
* Works XFX PV-T70F-UDD7 Works in steve jones' scrap pc aros build 2010 2 DVI-I ports
* Untested
|-
| GeForce 7800 GT
| 0x
| 0x0092
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7600gt (G8 ) (nv4 ) (2006)
| 0x
| 0x02E0 0x0391
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL 2.1
* not working
* working
|-
| GeForce 7800 SLI
| 0x
| 0x0095
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GTX
| 0x
| 0x0290
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GT GTO
| 0x
| 0x0291
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GS
| 0x10de
| 0x0292
| 0x0a1
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working
* Works with a few glitches with XFX Pine 0x2218
|-
| GeForce 7950 GX2
| 0x10de
| 0x0293 0x0294
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| GeForce 7950 GT
| 0x
| 0x0295 0x02E4
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GS
| 0x
| 0x02E3
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7600 GS
| 0x
| 0x02E1 0x0392
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7650 GS
| 0x
| 0x0390
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7600 LE
| 0x
| 0x0394
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7800GS (G8 ) (nv4 ) (2006)
| 0x
| 0x0093 0x00F5
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working
* works if AGP motherboard chipset is supported - Hardware OpenGL 2.1
|-
| GeForce 7100 GS
| 0x
| 0x016A
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7350 LE
| 0x
| 0x01D0
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7300le (G8 ) (nv4 ) (2006)
| 0x
| 0x01D1
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7300SE 7200GSGF-7200GS-N-B1 variant (G72)
| 0x10de
| 0x01D3
| 0x0a1
| <!--2D-->
| <!--3D-->
| <!--Analogue-->{{Unk|1x DVI, 1x VGA, 1x S-Video}}
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2007 40W pci-e 1.0 VP1 no unified shaders -
* not working Asus on via chipset (2015),
* works Asus on intel chipset (2015),
|-
| Geforce 7300gt (G8 ) (nv4 ) (2006)
| 0x
| 0x0395 0x0393
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working
* works
|-
| GeForce 7300 GS
| 0x
| 0x01DF
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7500 LE
| 0x
| 0x01DD
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7xxx
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GeForce 8800 Ultra (NV50 family)
| 0x
| 0x0194
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NV50 GeForce 8 to GeForce 200s opengl 3.x - max res - 80nm technology - PureVideo HD 2 or VP2 Nvidia VDPAU Feature Set A (absent from ultra and some 8800gt?) added a dedicated bitstream processor (BSP) and enhanced video processor for H.264, VC-1 acceleration
|-
| Geforce 8800gts (nv50) (G8x) (2007)
| 0x
| 0x0400 0x0600 0x0193
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2007 200w openGL3 openCL - 2x6pin psu
* not working 0x0193 models (2015) on via chipsets,
* works
|-
| Geforce 8800gtx (nv5 ) (G8x) (2007)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2008 200W 1x 6pin connector,
* not working
* working
* untested XFX PV-T88P-YDF4, Alpha Dog Edition runs extremely hot - Gigabyte GV-NX88T512H,
|-
| GeForce 8800 GT
| 0x
| 0x0602 0x0611 0x0193
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->DVI up to 2500 x 1600
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - 6pin psu power connector required
* not working
* untested Asus EN8800GT/HTDP/256M EN8800GT/HTDP/512M EN8800GT/G/HTDP/512M
* works
|-
| GeForce 8800 GT (G92)
| 0x10de
| 0x0611
| 0x0a2
| <!--2D-->{{Yes|6.11 Pixel Text}}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{N/A}}
| <!--Digital-->{{Yes}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3 pci-e 2.0 8800GT 512MB on Icaros 2.0.3 [[File:8800GT aros heads.png|thumb|8800GT]] [[File:8800GT aros tails.png|thumb|8800GT detail]]
|-
| Geforce 8600gt (nv5 ) (G8x) (2007)
| 0x
| 0x0401 0x0402
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res
* not working
* works
|-
| GeForce 8500 GT
| 0x
| 0x0421
| 0x0
| <!--2D-->{{Yes| some color }}
| <!--3D-->{{yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL tests - max opengl 3.x but 2.1 offered - max res
* not working
* works Gigabyte 8500 GT,
|-
| GeForce 8800 GS
| 0x
| 0x0606 0x060D
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res
|-
| GeForce 8600GS
| 0x
| 0x0403
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 3.x VP3 offers complete hardware-decoding for all 3 video codecs of the Blu-ray Disc format: MPEG-2, VC-1, and H.264 - Nvidia VDPAU Feature Set B
|-
| GeForce 8300 GS
| 0x
| 0x0423
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res
|-
| Geforce 8400gs G98GS (end 2007) GT218 (2009)
* Rev2 with 8/16 cores and 128-512MB of DDR2 or GDDR3 memory.
* Rev3 with 8 cores and 512MB-1GB of DDR3 memory (based on Tesla 2.0)
| 0x
| 0x0424 0x0422
| 0x0
| <!--2D-->{{Yes|Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 490 gearbox 505 Cube 135 Cube2 55 quake3 }}
| <!--Analogue-->{{Yes|works digital part of DVI but nothing from any display port}}
| <!--Digital-->{{Yes|output on digital 24 pin array of DDWG's DVI and hdmi}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 50W openGL 3.1 openCL - case single slot - one single-link DVI digital output, supporting up to one 1920x1080 resolution display - analog resolution 640 x 480 to 1024 x 768 16 and 24 bit color - [http://www.phoronix.com/scan.php?page=article&item=nouveau_comp_2011&num=19 runs a little hotter than expected] - G98 VP3 pci-e 2.0 512MB DDR2 -
* not working
* works Asus EN8400GS SILENT/P/512M PCIe (G98),
|-
| Geforce 8400gs (nv50) (G86) (mid-2007)
* Rev1 with 16 cores / 256MB of DDR2 memory.
| 0x
| 0x0404
| 0x0
| <!--2D-->{{Yes|Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 490 gearbox 505 Cube 135 Cube2 55 quake3 }}
| <!--Analogue-->{{Yes|works but not tested thru 4 pins of analog signal of DVI plug}}
| <!--Digital-->{{Yes|output on digital 24 pin array of DDWG's DVI and hdmi}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2008 50W openGL 3.1 openCL - case single slot - one single-link DVI digital output up to 1920x1080 resolution display - analog resolution 640 x 480 to 1024 x 768 16 and 24 bit color - [http://www.phoronix.com/scan.php?page=article&item=nouveau_comp_2011&num=19 runs a little hotter than expected] - G86 VP2 128MB -
* not working XFX PV-T86S-YAJG NVIDIA GeForce 8400 GS 512MB DDR2, Sparkle 8400GS 512MB SX84GS512D2L-DPP,
* works Asus EN8400GS SILENT/HTP/256M SILENT/HTP/512M/A,
|-
| GeForce 8400 SE
| 0x
| 0x0420
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 2.x openCL
|-
| NVidia Quadro NVS290 DMS-59
| 0x
| 0x0403
| 0x0
| <!--2D-->{{no| }}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk|DMS-59 socket}}
| <!--Digital-->{{unk|DMS-59 }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2008 21W - G86S (G86-827-A2) - 16 shading units, 8 texture mapping units, and 4 ROPs. NVIDIA has paired 256 MB DDR2 - PCIe 1.0 x16 Low Profile -
|-
| Geforce Quadro FX 4600 (SDI), 5600
| 0x
| 0x
| 0x0
| <!--2D-->{{Partial|VESA 2d}}
| <!--3D-->{{no| }}
| <!--Analogue-->{{partial| }}
| <!--Digital-->{{partial| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GeForce 9800 GX2 (NV50 family)
| 0x
| 0x0604
| 0x0
| <!--2D-->{{Partial|VESA }}
| <!--3D-->{{no| }}
| <!--Analogue-->{{Partial| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 150w - 65nm technology
|-
| GeForce 9800 GTX
| 0x10de
| 0x0612
| 0x0a2
| <!--2D-->{{Yes| }}
| <!--3D-->{{Maybe|6.11 }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 2x6pin psu -
* not working xfx on via chipset (2015),
* works xfx on chipset intel ,
|-
| GeForce 9800 GTX+
| 0x10de
| 0x0613
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res 2560 x 1920 - case dual slot - 26amp 12v rail on computer psu if 2x6pin connectors needed - 55nm version of the G92 chip - will not work with PCI-e 1.0a slots -
* not working
* works on a few models
|-
| Geforce 9800gt (nv50) (G92a) (2008)
| 0x10de
| 0x0614
| 0x0xa2
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel 495 gearbox 513 Cube 156 Cube2 120 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{partial| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL 3.1 openCL 1.x - case dual slot - 600w 26amp on both 12v rails for 2x6pin psu on gfx card - no fan control - some come with 1x6pin - renamed version of the venerable GeForce 8800 GT - randomly works
* not working Gainward 512M untested
* working Gainward CardExpert (0x0401) Green Edition NE39800TFHD02-PM8D92 1024MB (no 6pin)
|-
| Geforce gf9600 9600gt (nv5 ) (G9x) (2008)
| 0x10de
| 0x0622
| 0x0a1
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel 493 gearbox 675 Cube Cube2 100 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL 3.2 openCL but no fan control - case dual slot - 1 6pin pcie psu connector - 500 Watt or greater power supply with a minimum of 26 Amp on the +12 volt rail - Max Analog: 2048x1536 and Max Digital: 2560x1600 (Dual Link DVI Only) - PCI Express® 2.0 / 1.1 Support - g96 gpu randomly works -
* not working bfg tech ocx,
* works gigabyte gv-n96tsl-512i -
|-
| Geforce gf9500 9500gt (nv5 ) (G9x) (2008)
| 0x10de
| 0x0640
| 0x0a1
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel 480 gearbox 500 Cube Cube2 64 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.2 - case single slot - 350 Watt/400 Watt or greater power supply with a minimum of 18 Amp/22 Amp on the +12 volt rail - Max Analog: 2048x1536 and Max Digital: 2560x1600 (Dual Link DVI Only) - PCI Express® 2.0 / 1.1 Support -
* not working zotac zone fanless, Gainward USA NE29500THHD01-PM8796, PNY G9500GN2E50X+0TE,
* works xfx xne-9500t-td01-pm8596 1024mb ddr2,
|-
| GeForce 9600 GS
| 0x
| 0x0623
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res - will not work with PCI-e 1.0a slots -
* not working
* works
|-
| GeForce 9600 GSO
| 0x
| 0x0610
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res - G92 chopped down - 9600GSO is re-badged 8800GS both very power hungry cards -
|-
| GeForce 9300 GS
| 0x
| 0x06E1
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 opengl 3.x - max res
|-
| Geforce 9400 GT (nv5 ) (G86S) (2008)
| 0x
| 0x
| 0x0
| <!--2D-->{{partial|}}
| <!--3D-->{{unk|}}
| <!--Analogue-->{{unk|1x DVI, 1x VGA, 1x S-Video}}
| <!--Digital-->{{unk|1x DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 50W opengl 3.x - max res
|-
| Geforce 9xxx (nv5 ) (G9x) (2008)
| 0x
| 0x
| 0x0
| <!--2D-->{{unk|}}
| <!--3D-->{{unk|}}
| <!--Analogue-->{{unk|}}
| <!--Digital-->{{unk|}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 opengl 3.x - max res
|-
| <!--Description-->
NV84 (G84) GeForce 8600 (GT, GTS, M GT, M GS), 8700M GT,
NV92 (G92) GeForce 8800 (GT, GS, GTS 512, M GTS, M GTX)
GeForce 9600 GSO, 9800 (GT, GTX, GTX+, GX2, M GT, M GTX)
NV96 (G96) GeForce 9400 GT, 9500 (GT, M G), 9600 (M GS, M GT),
NV86 (G86) GeForce 8300 GS, 8400 (GS, M G, M GS, M GT), 8500 GT
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NVA0 (GT200) GeForce GTX (260, 275, 280, 285, 295)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->GeForce GTX 280 (NV50 family)
| <!--Vendor ID-->
| <!--Product ID-->0x05E1
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res PureVideo HD 4 (Nvidia Feature Set C or "VDPAU Feature Set C), VP4 added hardware to offload MPEG-4 Advanced Simple Profile (original DivX and Xvid)
|-
| <!--Description-->GeForce GTX 260
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x05E2
| <!--Revision-->
| <!--2D-->{{partial|Vesa}}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> 2 6pin - psu pci express 2.1 -
|-
| Geforce GTS250 250GTS (g92b) (2009)
| 0x10de
| 0x0615
| 0x0a2
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 486 gearbox 508-642 Cube Cube2 80 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> 2x6pin psu VP2 - pci-e 2.x - case dual slots - 738m 1gb ddr3 -
* not working Zotac branded version GDDR3 -
* works PNY gs-250x-zdfl and Gigabyte ??, BFG Tech RGTS2501024OCE, palit ne3ts250fhd52-pm8a92 with 2x6pin on top and hdmi output port,
|-
| <!--Description-->GeForce GT 240 (GT215 family)
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0ca3
| <!--Revision-->0xa2
| <!--2D-->{{Maybe|use VESA}}
| <!--3D-->{{No|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->late 2009 openGl 3.2 - case dual slots - no 6pin psu required with VP4 - All are pcie 2.1 cards and may not work in 1.0a slots -
* not working
* DDR3 with 512MB or 1GB -
* DDR5 -Asus ENGT240 - XFX Pine GT240XYHFC 0x3001 - Gigabyte GV-N240D5-512I rev 1.0 - Zotac AMP! with HDMI 1.3a with DisplayPort 1.1, Dual Link DVI -
* works
|-
| <!--Description-->GT220 (GT216) G220
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0a20
| <!--Revision-->0xa2
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Yes}}
| <!--Digital-->{{Yes|DVI }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> Icaros 2.0.3 GeForce GT220 1GB[[File:GT220 aros heads.png|thumb|GT220]][[File:GT220 aros tails.png|thumb|GT220]]
* untested NVIDIA Quadro® 400 512MB DDR3 GT216 DP DVI, AFox AF220 1Gb DDR3,
|-
| Geforce GT220 220GT G94 Tesla (g92b)
| 0x10de
| 0x0a20
| 0xa2
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 490 gearbox 505 cube 150 cube2 50 Quake3 }}
| <!--Analogue-->{{Unk|1x DVI, 1x VGA}}
| <!--Digital-->{{Yes|DVI but not 1x HDMI }}
| <!--Laptop LCD-->{{N/A}}
| 58W pci express 2.0 cards DDR3 - case single slot -
* not working ASUS ENGT220/DI/1GD2(LP)/V2 -
* works - gainward card expert 0x0401 GDDr3 512MB -
|-
| <!--Description-->GT210 GT 210 210GT G210 based on Tesla 2.0 GT218S GT218-300-A2 variant, GT218-300-B1
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0a65
| <!--Revision-->0xa2
| <!--2D-->{{Yes|6.11 Pixel Text}}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{Unk|1x DVI, 1x VGA}}
| <!--Digital-->{{Maybe|DVI out works but not hdmi or 1x DisplayPort}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 31W OpenGL 3.3 pci-e 2.0 cards - single slot -
* working GT218 based Asus EN210 based silent low profile large passively cooled -
* untested MSI GeForce 210 1GB DDR3 PCIe N210-MD1GD3H/LP,
* not working
|-
| <!--Description-->Quadro NVS 295 (256 MB GDDR3), NVS 450 (256M/512 MB DDR3)
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x
| <!--Revision-->
| <!--2D-->{{yes| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->
| <!--Digital-->{{partial|2 or 4 dp ports}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 25w low performance - G98s with 8 shading units, 4 texture mapping units, and 4 ROPs on PCI-Express 1.0 x16 -
*not working some NVIDIA Quadro NVS 295 2 dp ports (DELL, HP),
*working
|-
| <!--Description-->GT310 Tesla 310, 315, GT 320, GT 330 GT 340
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{Maybe|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2010 50w OpenGL 3.3 openCL all similar in performance to GT2xx except gt31x (poor)
|-
| <!--Description-->Quadro NVS310 NVIDIA NVS 310
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital--> 2 dp
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2012 25w GF119S (GF119-825-A1) 48 shading units, 8 texture mapping units, and 4 ROPs on PCI-Express 2.0 x16 - 512 MB DDR3 - PureVideo VP5 VDPAU Feature Set D -
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description--> GTX 470, GTX 480 GF10 GF10* core (NVC0 family)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{Maybe| tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2010 215w 2x6 plugs - NVC0 family (Fermi) GF100 (GF100-275-A3) Fermi 448 shading units, 56 texture mapping units, and 40 ROPs with 1,280 MB GDDR5 - OpenGL4.5 OpenCL1.1 Tessellation - case dual slots -
|-
| Geforce GTX460 460GTX (G104) 256bit, 1GB v2 192bit and GTX 465
| 0x10de
| 0x0e22
| 0xa1
| <!--2D-->{{Maybe|VESA }}
| <!--3D-->{{Maybe| tunnel gearbox cube 055-111 cube2 50}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVC0 family (Fermi) OpenGL 4.x but - 2x6pin psu - case dual slots -
* not working evga 768MB GDDR5 192bit 01G-P3-1373-ER or 01G-P3-1372-TR
* works 1GB GDDR5 256bit 01G-P3-1371-ER
|-
| <!--Description-->Geforce GTX 460SE 192bit
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0e23
| <!--Revision-->0x91 or 0xa1
| <!--2D-->{{Yes| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->{{Yes| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> nouveau 6.11 - 2 6pin psu needed - case dual slots -
* not working
* works EVGA 01g-p3-1366-b6 et 1024MB p1041 -
|-
| Geforce GT450 GTS450 450GTS GF106
| 0x10de
| 0x0dc4
| 0x0a1
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel gearbox cube cube2 50 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes|DVI }}
| <!--Laptop LCD-->{{N/A}}
| 2010 Hardware OpenGL 4.2 but nouveau at 3.3 - most need 1x 6pin psu - case dual slots -
* not working
* DDR3 1 or 2GB - Palit NEAS450NHD41F,
* GDDR5 512Mb or 1GB - MSI MPN N450GTSM2D1GD5OC, Asus MPN ENGTS450DI1GD5,
* works Gainward Card Expert NE5S4500FHd51,
|-
| <!--Description-->GT 440 GF108 chipset or better OEM GF106
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 6.11 Pixel Text}}
| <!--3D-->{{Maybe| tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGl 4.1 opencl 1.x - no 6 pin psu - 96 cuda cores 128bit - case dual slots -
* not working
* OEM
* GDDR5 512MB to 1GB ASUSTeK ENGT440/DI/1GD5
* GDDR3 Asus 1gb to 2gb,
* works
|-
| <!--Description-->GT430 430GT (GF108)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|6.11 Pixel Text}}
| <!--3D-->{{Maybe|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->ddr3 memory 64bit or 128bit - buggy await new revision of driver
* not working
* works
|-
| <!--Description-->nVidia Quadro FX1800 768MB GDDR3 Full Height Graphics Card Workstation
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 6.11 Pixel Text}}
| <!--3D-->{{no|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->{{Maybe|DVI-I 2xDP}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->59W 768 MB GDDR3 memory using a 192-bit memory interface - OpenGL 3.3 -
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GTX 590 Fermi
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->OpenGL4.4 OpenCL 1.1 - GDDR5 - 6pin and 8pin psu connectors - 512 cuda - case dual slots -
* not working
* works
|-
| <!--Description-->GTX 580,
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->PureVideo HD 5" or "VP5" (Nvidia Feature Set D or VDPAU Feature Set D) 4k UHD 3840 × 2160 H.264 decode -
|-
| <!--Description-->GTX 570,
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{Maybe|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working Zotac GTX 570, Gainward GTX560TI/570 Phantom,
* works gigabyte, evga
|-
| <!--Description-->Geforce 5xx 560gtx Fermi GTX 560,
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->opengl 4.x - 2 6pin psu - 384 cuda cores - case dual slots - will not work with PCI-e 1.0a slots -
* not working Asus ENGTX560 DC/2DI/1GD5,
* Ti LE 448 cuda GDDR5 320bit
* Ti 256bit
* works
|-
| <!--Description-->GTX 560 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working evga GTX 560Ti 01GP31560KR - Gainward GTX560TI/570 Phantom,
* works
|-
| <!--Description-->GTX 550 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x1201
| <!--Revision-->
| <!--2D-->{{Maybe|VESA Doom Doom2 Duke }}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->can hang on boot up on I2C Init or suffer random lockups on OpenGL apps - most need 1 6pin min 400W 24A on the +12V1 / +12V2 dual 12V rails of the computers' power supply unit - 192 cuda cores - case dual slots used - will not work with PCI-e 1.0a slots -
* not working eVGA GeForce GTX 550 Ti (1024 MB) (01GP31556KR) -
* untested asus Extreme, eVGA GeForce GTX 550 Ti (1024 MB) (01GP31557KR) - -
* works
|-
| <!--Description-->GT 545 and OEM GF116
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 4.2 opencl 1.x - GDDR5 with OEM only -
|-
| <!--Description-->GT530 OEM
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 6.11 Pixel Text}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->96 cuda cores - 1GB or 2GB DDR3 128bit
|-
| <!--Description-->GT520 520GT
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->untested 48 cuda cores - DDR3 64bit
|-
| <!--Description-->510, GT 530
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D 6.11 Pixel Text}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> ddr 3 - 50w max -
|-
| <!--Description-->GT610 Fermi GF119
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVS 315 300 GF119S
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{No|VESA}} needs special dms-59 cable
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 fermi 315 PNY VCNVS315-T 1Gb DDR3 but needs special dms-59 cable -
|-
| <!--Description-->GT630 GF108 Fermi
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->not accelerated 2015 - like the GT730 below - 96 cuda cores whilst kepler version has 384 - 128bit to keplers' 64bit bandwidth - kepler has 2GB DDR3
* not working Gigabyte
* DDR3
* GDDR5
* works
|-
| <!--Description-->Geforce GT 730
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe| use VESA 6.11 Pixel Text}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> fermi version has 96 cuda cores 128bit GF108
* not working Asus
* works
|-
| <!--Description-->nVIDIA Quadro 4000
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}} 2 dp ports
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->142W 2Gb GDDR5 - PCI Express 2.0 x16 ; full Height card with 1x 6-Pin PCIe power need - CUDA Cores 256 - OpenGL 4.5
|-
| <!--Description-->nVIDIA Quadro 5000
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2011 200W 2.5Gb GDDR5 320 bit - PCI Express 2.0 x16 full Height card with 2x 6-Pin PCIe power need -
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce GTX Titan GeForce GTX Titan Black GeForce GTX Titan Z
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVE0 family (Kepler) GeForce 600 GeForce 700 GeForce GTX Titan Kepler
|-
| <!--Description-->GeForce GTX 780 GeForce GTX 780 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->PureVideo HD 6" or "VP6" (Nvidia Feature Set E or VDPAU Feature Set E) significantly improved performance when decoding H.264 and MPEG-2
|-
| <!--Description-->GeForce GTX 770
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->opengl 4.4 opencl 1.1
|-
| <!--Description-->GeForce GTX 760 GeForce GTX 760 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce GT 740
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce GT 730 Kepler
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> two versions fermi 96 cores 128bit GF108 and kepler 384 cores 64bit GK208
|-
| <!--Description-->680gtx GK104 core gtx680 680m
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVE0 family (Kepler)
|-
| <!--Description-->GTX 690 Kepler NVE0
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->pci-e 3.0, OpenGL 4.4 OpenCL 1.1
|-
| <!--Description-->GTX 670
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GTX 660 GTX 660 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GTX 650 GTX 650 Ti GTX 650 Ti Boost
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVE0 family (Kepler) most need 1 6pin psu
* not working asus ENGTX560 DC/2DI/1GD5
* works
|-
| <!--Description-->Geforce GT 640
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* 128bit DDR3
* 192bit DDR3 1.5 to 3GB 50W
* 128bit GDDR5 75W
|-
| <!--Description-->GT 620 GT 640
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce 750ti, GeForce 900
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->[https://nouveau.freedesktop.org/FeatureMatrix.html NV110] Maxwell -
|-
| <!--Description-->Nvidia GTX 750
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x1381
| <!--Revision-->0xa2
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->2026 nvidia test
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->GM206 2nd gen maxwell PureVideo HD 7" or "VP7" (Nvidia Feature Set F or VDPAU Feature Set F) adds full hardware-decode of H.265 HEVC Version 1 (Main and Main 10 profiles and full fixed function VP9 (video codec) hardware decoding
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Quadro K620 quadro p620 2gb gddr5 128bit and quadro p1000 4gb gt1030 30w
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 50w slim low profile -
|-
| <!--Description-->GeForce gtx 1060, GeForce 1070
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NV130 Pascal
|-
| <!--Description-->gtx 1050ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->NV130 family (Pascal)
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV132 (GP102) NVIDIA Titan (X, Xp), GeForce GTX 1080 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV134 (GP104) GeForce GTX (1070, 1080)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV136 (GP106) GeForce GTX 1060
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV137 (GP107) GeForce GTX (1050, 1050 Ti)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV138 (GP108) GeForce GT 1030
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NV162 (TU102) NVIDIA Titan RTX, GeForce RTX 2080 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV164 (TU104) GeForce RTX (2070 Super, 2080, 2080 Super)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2020 NV160 family (Turing) unified gsp-rm firmware - best starting point for Vulkan support
|-
| <!--Description-->NV166 (TU106) GeForce RTX (2060, 2060 Super, 2070)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV168 (TU116) GeForce GTX (1650 Super, 1660, 1660 Ti, 1660 Super)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV167 (TU117) GeForce GTX 1650
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->gtx 1650ti super
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2018 old style
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NV172 (GA102) GeForce RTX (3080, 3090)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 av1 decoding ampere
|-
| <!--Description-->NV174 (GA104) GeForce RTX (3060 Ti, 3070, 3080 Mobile)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->NV170 family (Ampere)
|-
| <!--Description-->NV176 (GA106) GeForce RTX (3050, 3060)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV177 (GA107) GeForce RTX 3050
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NV192 (AD102) GeForce RTX 4090
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV193 (AD103) GeForce RTX 4080
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->NV190 family (Ada Lovelace)
|-
| <!--Description-->NV194 (AD104) GeForce RTX (4070, 4070 Ti)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV196 (AD106) GeForce RTX 4060 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV197 (AD107) GeForce RTX 4060
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
|}
==== nouveau mobile integrated ====
If you purchased a notebook with an NVidia sticker on it, most of the time you have a optimus based one, ie Intel CPU+GPU melded with Nvidia GPU, Optimus was slated at one point to go into desktop PCs but the industry ended up rejecting that concept
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|-
| GeForce 6100 nForce 405
| 0x
| 0x03D1 0x0242
| 0x0
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
|
|-
| <!--Description-->GeForce 6100 nForce 400
| <!--Vendor ID-->
| <!--Product ID-->0x03D2
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce 6100 nForce 420
| <!--Vendor ID-->
| <!--Product ID-->0x03D5
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce 6150 LE
| <!--Vendor ID-->
| <!--Product ID-->0x0241
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6150SE nForce 430
| 0x
| 0x03D0
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| working
|-
| <!--Description-->GeForce 6150
| <!--Vendor ID-->
| <!--Product ID-->0x0240
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7150M / nForce 630M
| <!--Vendor ID-->
| <!--Product ID-->0x0531
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7000M / nForce 610M
| <!--Vendor ID-->
| <!--Product ID-->0x0533
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7050 PV / NVIDIA nForce 630a
| <!--Vendor ID-->
| <!--Product ID-->0x053A 0x053B
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Geforce IGP 7025 nForce 630a
| 0x
| 0x053E
| 0x0
| <!--2D-->{{Yes|some}}
| <!--3D-->{{Yes|some}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No| }}
| some support on some chipsets
|-
| GeForce 7100 / nForce 630i (C73)
| 0x10de
| 0x07e1
| 0x0a2
| <!--2D-->{{Maybe}}
| <!--3D-->{{Maybe}}
| <!--Analogue-->{{Maybe}}
| <!--Digital-->{{Maybe}}
| <!--Laptop LCD-->{{N/A}}
| Icaros 2.0.3 and Gigabyte 73-pvm-s2h rev. 1.0 but will not boot on [https://ae.amigalife.org/index.php?topic=806.msg8765#new Acer x270 with Icaros 2.3]
|-
| <!--Description-->GeForce 7150 / NVIDIA nForce 630i
| <!--Vendor ID-->
| <!--Product ID-->0x07E0
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7050 / NVIDIA nForce 610i
| <!--Vendor ID-->
| <!--Product ID-->0x07E3
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Geforce IGP 8100 (nForce 720a)
| 0x
| 0x084F
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
|
|-
| GeForce 8100P
| 0x
| 0x0847
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
|
|-
| <!--Description-->Geforce 8200 8300 nForce 730a
| <!--Vendor ID-->
| <!--Product ID-->0x084A 0x0848 (GeForce 8300) 0x0849 (GeForce 8200) 0x084B (GeForce 8200)
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->working on some 8300's with Icaros 1.5 but others untested
|-
| <!--Description-->nForce 780a SLI
| <!--Vendor ID-->
| <!--Product ID-->0x084C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->nForce 750a SLI
| <!--Vendor ID-->
| <!--Product ID-->0x084D
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Nvidia Geforce IGP 9300 (nForce MCP7a)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->works
|
|-
| <!--Description-->9400 (ION)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->If AROS detects GPU chipset, works well
|-
| <!--Description-->9700M ()
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Geforce ION 2
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->works well
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce Go 6150
| <!--Vendor ID-->
| <!--Product ID-->0x0244
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6100
| <!--Vendor ID-->
| <!--Product ID-->0x0247
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6200
| <!--Vendor ID-->
| <!--Product ID-->0x0164 0x0167
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6400
| <!--Vendor ID-->
| <!--Product ID-->0x0166 0x0168
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->Sony Laptop
|-
| <!--Description-->GeForce Go 6800
| <!--Vendor ID-->
| <!--Product ID-->0x00C8
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6800 Ultra
| <!--Vendor ID-->
| <!--Product ID-->0x00C9
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600
| <!--Vendor ID-->
| <!--Product ID-->0x0144
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600 TE/6200 TE
| <!--Vendor ID-->
| <!--Product ID-->0x0146
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600
| <!--Vendor ID-->
| <!--Product ID-->0x0148
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600 GT
| <!--Vendor ID-->
| <!--Product ID-->0x0149
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7200
| <!--Vendor ID-->
| <!--Product ID-->0x01D6
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7300
| <!--Vendor ID-->
| <!--Product ID-->0x01D7
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->untested
|-
| <!--Description-->GeForce Go 7400
| <!--Vendor ID-->
| <!--Product ID-->0x01D8
| <!--Revision-->
| <!--2D-->
| <!--3D-->works 2D and 3d issues though
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7800
| <!--Vendor ID-->
| <!--Product ID-->0x098
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7800 GTX
| <!--Vendor ID-->
| <!--Product ID-->0x0099
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7950 GTX
| <!--Vendor ID-->
| <!--Product ID-->0x0297
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7900 GS
| <!--Vendor ID-->
| <!--Product ID-->0x0298
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7900 GTX
| <!--Vendor ID-->
| <!--Product ID-->0x0299
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7600
| <!--Vendor ID-->
| <!--Product ID-->0x0398
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7600 GT
| <!--Vendor ID-->
| <!--Product ID-->0x0399
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 6610 XL
| <!--Vendor ID-->
| <!--Product ID-->0x0145
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 6700 XL
| <!--Vendor ID-->
| <!--Product ID-->0x0147
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce 8700M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0409
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8600M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0425
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8400M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0426
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8400M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0427
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8400M G
| <!--Vendor ID-->
| <!--Product ID-->0x0428
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8800M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x0609
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8800M GTX
| <!--Vendor ID-->
| <!--Product ID-->0x060C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9500M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0405
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8600M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0407
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9650M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0408
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9400M GT
| <!--Vendor ID-->
| <!--Product ID-->0x042C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9300M G
| <!--Vendor ID-->
| <!--Product ID-->0x042E
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9100M G
| <!--Vendor ID-->
| <!--Product ID-->0x0844
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9800M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x0628
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9700M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x062A
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9800M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x062C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9600M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0647
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9600M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0648
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9600M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0649
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9500M G
| <!--Vendor ID-->
| <!--Product ID-->0x064B
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9300M GS
| <!--Vendor ID-->
| <!--Product ID-->0x06E5
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9200M GS
| <!--Vendor ID-->
| <!--Product ID-->0x06E8
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9300M GS
| <!--Vendor ID-->
| <!--Product ID-->0x06E8
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->NV50 (G80) Quadro FX (4600 (SDI), 5600)
Quadro FX (2800M, 3600M, 3700, 3700M, 3800M, 4700 X2), VX 200
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV94 (G94) 9700M GTS, 9800M GTS, GeForce G 110M, GT 130(M), GT 140, Quadro FX (1800, 2700M)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV84 (G84) 8700M GT, GeForce 9500M GS, 9650M GS
Quadro FX (370, 570, 570M, 1600M, 1700), NVS 320M
NV86 (G86) GeForce 8300 GS, 8400 (GS, M G, M GS, M GT), 8500 GT, GeForce 9300M G
Quadro FX 360M, NVS (130M, 135M, 140M, 290)
GeForce GTS 150(M), GTS 160M, GTS 240, GTS 250, GTX (260M, 280M, 285M), GT (330, 340)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV96 (G96) 9650M GT, 9700M GT
GeForce G 102M, GT 120
Quadro FX (380, 580, 770M, 1700M)
NV98 (G98) GeForce 8400 GS, GeForce 9200M GS, 9300 (GE, GS, M GS)
GeForce G 100, G 105M
Quadro FX (370 LP, 370M), NVS (150M, 160M, 295, 420, 450)
Quadro CX, FX (3800, 4800, 5800)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVA3 (GT215) GeForce GT (240, 320, 335M), GTS (250M, 260M, 350M, 360M) Quadro FX 1800M
NVA5 (GT216) GeForce GT (220, 230M, 240M, 325M, 330M), 315
Quadro 400, FX 880M, NVS 5100M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVA8 (GT218) GeForce 8400 GS, ION 2, GeForce 205, 210, G 210M, 305M, 310(M), 405
Quadro FX (380 LP, 380M), NVS (300, 2100M, 3100M)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVAA (MCP77/MCP78) GeForce 8100, 8200, 8300 mGPU / nForce 700a series, 8200M G
NVAC (MCP79/MCP7A) ION, GeForce 9300, 9400 mGPU / nForce 700i series, 8200M G, 9100M, 9400M (G)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVAF (MCP89) GeForce 320M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GT 605M, GT 610M GT 620M GT 630M GT 635M GT 645M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GTX 650M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GTX 1650 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2019 turing architecture - last old skool support pre Vulkan
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rtx 2050 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 ampere architecture best starting point for vulkan support
|-
| <!--Description-->rtx 2060 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rtx 4060 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
|}
====radeon.hidd====
Michel Shultz ''2D'' graphics driver (standard on most distributions but only for very old GPUs) and bearsofts updated 2013 around Icaros 1.3.1
3D is not implemented by AROS yet but could cover these AMD chipsets
<pre>
2014 SI AMD HD 7xxx
2016 GCN3rd AMD R5E R7E
2019 GCN5th AMD Vega 8
2022 RDNA1 AMD RX5500 desktop only
2023 RDNA2 AMD 680M 780M
2024 RDNA3 AMD 880M 890M
2025 RDNA3.5 AMD 8060S strix halo and AI
2027 RDNA4 AMD
</pre>
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! 2D
! 3D
! Analogue Output
! Digital Output
! Laptop LCD
! Comments
|-
| 7000 (r100)
| 0x1002
| 0x5159
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->{{Maybe|vga15 pin connection but not s-video}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.3
|-
| 7500 (rv200 but still r100 based)
| 0x1002
| 0x5157
| 0x
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->{{Yes|vga15}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.3
|-
| 8000 8500 (r200)
| 0x1002
| 0x514c (8500LE)
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.4
|-
| 9000 9100 9250 (r200)
| 0x1002
| 0x5964 (9000) 0x514d (9100)
| 0x0001
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->{{Maybe|VGA15 but not s-video}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.4
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| 9600 9800 (r300)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1
|-
| x300 x600 (r300)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1
|-
| x700, x800 ([http://en.wikipedia.org/wiki/Radeon_R600 r420])
| 0x
| 0x554d (R430 x800xl)
| 0x0
| <!--2D-->{{Yes|new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1 - x800 XL PCIE (problem with mouse-pointer, some part of the pointer is not transparent)
|-
| x1300 x1550 x1600 x1800 x1900 x1950 ([http://en.wikipedia.org/wiki/Radeon_R520 r520])
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes|new driver}}
| <!--3D-->{{no}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| HD2400 HD2600 HD2900 ([http://en.wikipedia.org/wiki/Radeon_R600 r600])
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|some features with new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 3.3 open CL 1.2 TeraScale architecture
|-
| HD3400 HD3600 HD3800 (r600)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|some features with new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->pci-e 2.0, openGL 3.3
|-
| HD4300 HD4500 HD4600 HD4700 HD4800 ([http://en.wikipedia.org/wiki/Radeon_R600 r700])
| 0x1002
| 0x
| 0x0
| <!--2D-->{{Maybe|but some later cards need 3D engine for faster and more flexible 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 3.3 - DDR3 - GDDR5 was one of AMD's aces for the 4800 series - 4670 liked -
|-
| HD6900 cayman series
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|some features with new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 3.3 open CL not mature (2014) -
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| HD5400 Series HD5430 HD5450 HD5470
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2010 openGL 3.3 openCL - GDDR3 -
|-
| HD5500 Series HD5550 HD5570 HD5600 Series HD5650 HD5670 HD5700 Series HD5750 HD5770
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 3.3 openCL - GDDR5
|-
| HD 5800 Series HD5850 HD5870 HD5900 Series HD5950 HD5970 - HD6xxx not NI chipset ([http://en.wikipedia.org/wiki/Evergreen_(GPU_family) r800 evergreen])
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 openGL 3.3 openCL - DDR5 pci-e 2.1 best avoided for all pci-e 1.0 mobos - Ati TeraScale2 architecture -
|-
| HD6450 [http://en.wikipedia.org/wiki/Northern_Islands_(GPU_family) Northern Islands chipset]
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> - DDR3 -
|-
| HD6600 Series HD6650 HD6570 HD6600 Series HD6650 HD6670
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2011 - DDR5 -
Radeon HD 8470 11 TeraScale 2
Radeon HD 8350 11 TeraScale 2
Radeon HD 7510 11 TeraScale 2
Radeon HD 6550D 11 TeraScale 2
Radeon HD 6530D 11 TeraScale 2
Radeon HD 6410D 11 TeraScale 2
Radeon HD 6370D 11 TeraScale 2
Radeon HD 6320 11 TeraScale 2
Radeon HD 6310 11 TeraScale 2
Radeon HD 6290 11 TeraScale 2
Radeon HD 6250 11 TeraScale 2
|-
| HD6800 Series HD6850 HD6870 HD6700 Series HD6790 to HD6990
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2011 - DDR5 - AMD TeraScale3 -
|-
| <!--Description-->HD7450-HD7670
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2012 OpenGL but not Vulkan
Radeon HD 7660D 11 TeraScale 3
Radeon HD 7560D 11 TeraScale 3
Radeon HD 7540D 11 TeraScale 3
Radeon HD 7480D 11 TeraScale 3
Radeon HD 6930 11 TeraScale 3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->HD7750 HD 7770 / R7 250X HD7850 HD7870 / R9 270X HD 7950 / R9 280 HD 7970 / R9 280X [http://en.wikipedia.org/wiki/Southern_Islands_(GPU_family) Southern Islands]
*AMD Radeon R7 250XE Cape Verde XT
*AMD Radeon R7 M465X Cape Verde
*AMD Radeon R9 255 Cape Verde PRX
*AMD Radeon HD 7750 Cape Verde PRO
*AMD Radeon R7 250E Cape Verde PRO
*AMD Radeon HD 8740 Cape Verde PRO
*AMD Radeon HD 7730 Cape Verde LE
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2012 pci-e 3.0 1st Gen GCN architecture -
|-
| <!--Description-->R5 430, FirePro W2100,
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2015 50W+ openGL openCL 1/3 speed of gtx750ti 1st gen gcn1
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->HD7790 [ Sea Islands ]
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 openGL 4.1 open CL - GCN2.0 Vulkan 1.0 introduced a Shader Engine (SE) comprising one geometry processor, up to 44 CUs (Hawaii chip), rasterizers, ROPs, and L1 cache and Graphics Command Processor for faster audio/video - suits Vulkan 1.1
|-
| <!--Description-->r5 240 240x (slow) R7 250 250x (faster) HD 7790 / R7 260 260X / R7 360 to R5 350 (fast) and last one R5 430 OEM Plus (slow again)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 50W+ openGL 4.x openCL 1.x Vulkan 1.0 GCN 1st gen -
|-
| <!--Description-->R9 290 / R9 390 R9 290X / R9 390X
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2014 openGL 4.x openCL 1.x 2nd Gen GCN Vulkan 1.1 architecture -
|-
| <!--Description-->R9 Fury Nano
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2015
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->r-200 series r8 275 285 295 375 [Volcanic Islands]
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 4.x openCL 1.x - GCN3 Vulkan 1.2
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Radeon™ RX 5700/5600/5500 Series and Radeon™ RX Vega Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 GCN 4 - OpenGL 4, Vulkan 1.3 -
|-
| <!--Description-->Radeon™ RX 400/500 Series like rx 580
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->Radeon™ Pro WX 9100, x200 Series and Radeon™ Pro W5700/W5500 Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Radeon™ RX 7900/7600 Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->Radeon™ RX 6900/6800/6700/6600/6500 Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|}
==== amd radeon mobile integrated ====
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|-
| <!--Description-->ATI RC410 [Radeon Xpress 200M]
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x5a62 0x5955 0x5974 (200m)
| <!--Revision-->0x00
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->
|-
| <!--Description-->Mobility Radeon 7500
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x4c57 (7500)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->
|-
| <!--Description-->Mobility Radeon 9000
| 0x1002
| 0x4966 (9000)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->
|-
| <!--Description-->Mobility Radeon 9500 9550 (rv360) 9600 (rv350)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon 9800 (rv420)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon X300 (RV370) X600 (RV380)
| 0x1002
| 0x (RV370) 0x5657 (RV380)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon X700 (RV410) X800 (RV423)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon X1200 (RS69M0)
| 0x1002
| 0x791f
| 0x0
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->X1200 IGP (RS690)
|-
| <!--Description-->Mobility Radeon X1300 X1350 X1400(rv515) X1600 (rv530) X1650 (RV535) X1800 (rv520) x1900 (rv570)
| 0x1002
| 0x71c7 (X1650)
| 0x009e
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon 2100
| 0x1002
| 0x796e (2100)
| 0x0
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{No|}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 2400 (rv610) HD2600 (rv630)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 3100 HD3200 HD3450 3470 (RS780MC RV620) 3670 (M86-XT RV635) HD3870 (M88-LXT RV670)
| 0x1002
| 0x9610 and 0x9612 (HD3200) 0x9614 (HD3300)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 4200 4250 (RV620)
| 0x1002
| 0x (HD4200) 0x9715 (HD4250)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 4330 4530 4550 (M92 RV710) 4650 (M96-XT RV730) 4670 RV730XT 4830 (M97 RV740) 4850 (M98 RV770)
| 0x1002
| 0x (HD4350) 0x9442 (RV770) 0x9490 (HD4670)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 530v (M92 RV710) HD 550v (M96 RV730)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->no support yet
|-
| <!--Description-->Mobility Radeon HD 5430 HD5650 (cedar Park LP)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->no support yet
|-
| <!--Description-->Radeon HD 6250 6290 6310 6320 6350M (Redwood Capilano PRO)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->no support yet
|-
| <!--Description-->AMD 7640G, 8450G, 8550G, 8650G Northern Islands
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 Last real support for old graphics standard before Vulkan takeover
|-
| <!--Description-->R5 M230 M240 M255 - R7 M260 M265 (Kaveri Crystal series with Mantle and HSA)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->2015 Maybe better with Vulkan
|-
| <!--Description-->R5E R7E
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->2016 bristol ridge GCN 3.0 IGP (Carrizo Mobile)
|-
| <!--Description-->AMD Vega 3, 6, 8, 11 iGP
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2018 raven ridge GCN 5th Gen
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->5500m 5600m 5800m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA1 NaviX1 Zen 2
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rx680m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA2 NaviX2 Zen 3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->phoenix apu 1103
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 RDNA3 NaviX3 zen 4
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
==== AMDGPU Vulkan desktop ====
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Kaveri 290 290X, 260 260X
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2015 AMDGPU Vulkan
|-
| <!--Description-->R9 285 / R9 380 R9 380X Fury / Fury X
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->opengl 4 opencl 1 3rd Gen GCN architecture
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX470 RX460 RX480 RX580 polaris10
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 opengl 4 opencl 2 4th Gen GCN architecture vulkan 1.3
|-
| <!--Description-->RX460 RX560D polaris11
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 opengl 4 opencl 2 4th Gen GCN architecture vulkan 1.3
|-
| <!--Description-->RX580 polaris20
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 opengl 4 opencl 2 4th Gen GCN architecture vulkan 1.3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX 5000 5500 Navi 1x
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RNDA 1
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX 6000 Navi 2x
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RNDA 2 Mesa 21.3 decode av1
|-
| <!--Description-->RX6000
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX 7000
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 RNDA 3 navi
|-
| <!--Description-->RX7000
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->RX9070 rx 9060 XT
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2025 rdna4 navi
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2026 udna (aka rdna5)
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
|}
==== AMDGPU Vulkan mobile ====
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->R5E R7E
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->2016 bristol ridge GCN 3.0 IGP (Carrizo Mobile)
|-
| <!--Description-->Vega iGP 3, 6, 8, 11
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2018 raven ridge - Graphics Core Next (GCN) 5th gen -
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->5500m 5600m 5800m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA1 NaviX1 Zen 2
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rx680m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA2 NaviX2 Zen 3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->phoenix apu 1103
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA3 NaviX3 zen 4
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
fyi if a notebooks with two graphic cards, the integrated Intel card (id 0x7d) for low power usage and a discrete Radeon card (id 0x56) which should be used for GPU-intensive applications. By default the Intel card is always used
[https://wiki.archlinux.org/title/ATI Gallium Radeon HD] is not ported yet but is [https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.9-AMDGPU-Stats really big] and complex so another solution may have to be [https://discuss.haiku-os.org/t/the-graphics-acceleration-can-of-worms/10515/5 found] like [https://discuss.haiku-os.org/t/vulkan-lavapipe-software-rendering-is-working-on-haiku/11363/10 vulkan] where support starts from very recent ISA GCN islands HD7000s cards only
*Vulkan
*Gallium
Vulkan software renderer allows to prepares the infrastructure for hardware rendering. Primary difference between software and hardware renderer is output to regular RAM vs GPU RAM, the rest is almost the same. It is possible to render to GPU RAM offscreen.
bare bones basics data flow
application,>>> api/opengl/vulkan>>>>, jit compiler, >>>>memory manger, >>>>gpu hardware
so you need to have a compiler that takes your api call/program/shaders/drawing commands and turns them into a program the gpu can render.
the vulkan to amd gpu compiler for shaders and textures is nearly os agnostic iirc as long as you have solid posix compliance
Unlike OpenGL, Vulkan does not depend on windowing system and it have driver add-on system with standardized API (Mesa also have OpenGL driver add-ons, but it have non-standard Mesa-specific API). OpenGL may need more work for windowing system related code at this point but developing Vulkan on real hardware is more strategic than developing OpenGL, since now Zink 3 running on Vulkan compensates for the lack of OpenGL support by giving performance similar to native accelerated OpenGL
RadeonGfx use client-server model with client-server thread pairs. For each client thread that calls 3D acceleration API, server side thread is created. If client thread terminates, server side thread also exit.
<pre>
GeForce RTX 5090 5070 5060 5050
GeForce RTX 4090 4070 4060 4050
GeForce RTX 2070
Radeon RX 7600
Quadro RTX 5000
Radeon PRO W6600
GeForce RTX 2060 12GB
Radeon PRO W7500
Quadro GP100
Radeon RX 6800S
GeForce RTX 3070 Laptop GPU
GeForce GTX 1080
GeForce RTX 3060 8GB
Quadro RTX 4000
Radeon Pro W5700
Radeon RX 6600
GeForce RTX 2080 (Mobile)
Radeon RX 7700S
Radeon RX 6700S
Radeon RX 6600S
Quadro RTX 5000 (Mobile)
GeForce GTX 1070 Ti
GeForce RTX 4050 Laptop GPU
Radeon Pro Vega 64X
Radeon RX 5700
Radeon RX Vega 64
GeForce RTX 2060
GeForce RTX 2070 Super with Max-Q Design
Radeon RX 6600M
GeForce GTX 1070
Radeon RX 6650M
GeForce RTX 3060 Laptop GPU
Radeon RX Vega 56
Radeon RX 6700M
GeForce RTX 2080 with Max-Q Design
Radeon RX 6800M
GeForce GTX 980 Ti
Radeon R9 Fury
GeForce GTX 980
Quadro M5500
Radeon R9 390X
Radeon RX 580
Radeon RX 5500
Radeon RX 6550M
GeForce GTX 1660 Ti with Max-Q Design
GeForce GTX 780 Ti
GeForce GTX 970
Radeon R9 290X
Radeon RX 480
Radeon RX 5600M
Quadro RTX 3000 with Max-Q Design
Radeon R9 290X / 390X
Ryzen 5 4600HS with Radeon Graphics
Radeon R9 290
Radeon Pro 5500 XT
Radeon R9 M490 *
GeForce GTX 780
Radeon RX 6500M
Quadro M5500
GeForce GTX 1060 with Max-Q Design
Radeon RX 6500
Radeon RX 5300
Intel Arc A770M
GeForce GTX 1650 Ti
Radeon Pro 580X
Radeon RX 6400
GeForce RTX 2050
Ryzen 9 4900HS with Radeon Graphics
Radeon Ryzen 9 6900HS
GeForce GTX 980M
Quadro M5000M
Radeon RX 6300
GeForce GTX 1650 Ti with Max-Q Design
Radeon Pro 570
Ryzen 9 6900HS with Radeon Graphics
GeForce GTX 1050 Ti
Quadro M4000M
Radeon R9 280X 380X
GeForce GTX 1650 with Max-Q Design
GeForce MX570
Radeon R9 280X
Radeon R9 380
Radeon 780M
GeForce GTX 960
GeForce GTX 970M
Quadro M4000M *
GeForce GTX 680
Radeon RX 6500M
Quadro M5500
Radeon Pro WX 7100
GeForce GTX 1060 with Max-Q Design
GeForce GTX 1650
Intel Arc A730M
Radeon HD 7970
Radeon R9 M395X
Radeon R9 M485X
Radeon R9 M480 *
Radeon R9 M295X
Radeon R9 M390X *
FirePro W7170M *
Radeon R9 M395
Radeon R7 370
Radeon RX 5500M
GeForce GTX 590
GeForce GTX 880M
GeForce GTX 950
Radeon R9 270X
GeForce GTX 660 Ti
GeForce GTX 760
GeForce GTX 780M
Quadro K5100M
GeForce GTX 680MX
Radeon HD 7870
GeForce GTX 965M
Quadro M3000M *
GeForce GTX 870M
Radeon R9 M290X
Radeon HD 8970M
Radeon Ryzen 7 7735U (680M), Radeon Ryzen 7 7735HS (680M 12C)
GeForce GTX 580
Radeon HD 6970
GeForce GTX 1050
GeForce GTX 680M
GeForce GTX 775M
GeForce GTX 1630
FirePro M6100
Radeon HD 7970M
Radeon R9 M390 *
GeForce GTX 750 Ti
GeForce GTX 570
GeForce GTX 480
GeForce GTX 960M
Quadro M2000M *
Quadro K5000M
Quadro K4100M
GeForce GTX 770M
GeForce GTX 860M
GeForce GTX 675MX
GeForce GTX 950M
GeForce GTX 850M
Quadro M1000M
Radeon R9 M280X
Radeon HD 7950M *
GeForce GTX 560 Ti
Radeon HD 6870
GeForce GTX 470
GeForce GT 1030
GeForce MX330
Ryzen 5 PRO 5650GE with Radeon Graphics
Ryzen 7 5800HS
FirePro 3D V8800
GeForce MX250
Radeon Pro WX 3200
Ryzen 7 PRO 5750G with Radeon Graphics
Radeon Ryzen 5 5600H
Ryzen 5 Pro 4650G with Radeon Graphics
Radeon Ryzen 7 5800U
Ryzen 7 7730U with Radeon Graphics
Radeon Ryzen 7 5825U
Radeon Pro WX 4150
Radeon Ryzen 5 PRO 4655G
Ryzen 5 4600G with Radeon Graphics
Radeon Ryzen 5 PRO 4655GE
GeForce GTX 485M
FirePro W6150M
Ryzen 7 5800U with Radeon Graphics
Ryzen 5 7530U with Radeon Graphics
Ryzen 7 4800U with Radeon Graphics
Radeon R9 M470
Ryzen 3 PRO 5350G with Radeon Graphics
Radeon RX Vega Ryzen 3 5300U
Ryzen 7 5825U with Radeon Graphics
Ryzen 5 PRO 4400G with Radeon Graphics
Radeon Ryzen 7 PRO 4750GE
Radeon Ryzen 7 4800U
FirePro V7900
Radeon HD 5970
Radeon Ryzen 7 7700X 8-Core
Radeon Ryzen 5 PRO 5650G
Radeon Ryzen 5 4400G
Radeon Ryzen 5 PRO 5650GE
Radeon RX 550X
FirePro V8800
Radeon RX Vega Ryzen 5 5500U
GeForce MX150
Quadro K3100M
Ryzen 7 PRO 5850U with Radeon Graphics
Radeon HD 6970M
Radeon R7 250X
Intel HD 5600
Ryzen 3 4300GE with Radeon Graphics
GeForce GTX 460
Ryzen 7 5700U with Radeon Graphics
Radeon Ryzen 5 7530U
Quadro K620
Ryzen 3 PRO 5350GE with Radeon Graphics
Intel Iris Pro P580
Intel UHD Graphics P630
Ryzen 5 4600H with Radeon Graphics
Ryzen 5 PRO 7530U with Radeon Graphics
Radeon HD 5870
Radeon HD 6870
Ryzen 7 4700G with Radeon Graphics
Ryzen 5 5600U with Radeon Graphics
Radeon HD 7770
Ryzen 3 Pro 4350G with Radeon Graphics
Radeon Ryzen 5 5625U
GeForce GTX 745
Radeon Ryzen 7 4850U Mobile
Radeon Ryzen 3 PRO 7330U
Quadro M600M
Radeon Ryzen 5 5500U
Ryzen 5 5560U with Radeon Graphics
Ryzen 7 4800H with Radeon Graphics
GeForce 945M
Ryzen 5 PRO 4650GE with Radeon Graphics
FirePro M5100
Radeon Ryzen 5 5600U
Radeon Ryzen 5 PRO 4500U
GeForce GTX 580M
Ryzen 7 PRO 5875U with Radeon Graphics
Ryzen 3 5300GE with Radeon Graphics
Radeon R9 M385
Quadro 5000M
Radeon Ryzen 7 4700U
Ryzen 5 PRO 5650U with Radeon Graphics
Radeon Ryzen 7 PRO 4750U
Ryzen 7 4700U with Radeon Graphics
Ryzen 7 PRO 4750U with Radeon Graphics
FirePro V7800
Radeon R9 350
Ryzen 3 4300G with Radeon Graphics
Radeon Vega 11 Ryzen 5 PRO 3350G
Radeon Ryzen 5 5560U
GeForce GTX 460 SE
Radeon Pro W5500M
Radeon Vega 11 Ryzen 5 PRO 3400G
Ryzen 5 5500U with Radeon Graphics
Ryzen 5 PRO 4500U with Radeon Graphics
GeForce GT 645
GeForce GTX 765M
Radeon R9 M385X
Ryzen 5 5625U with Radeon Graphics
Ryzen 3 PRO 7330U with Radeon Graphics
Radeon HD 5850
Radeon Vega 11 Ryzen 5 PRO 2400G
Intel Iris Pro 580
Radeon HD 6850
Intel Iris Xe MAX
Radeon Ryzen 7 PRO 5875U
Radeon Ryzen 5 7600 6-Core
GeForce GTX 470M
Ryzen 3 5300G with Radeon Graphics
GeForce GTX 670MX
Radeon RX 640
Qualcomm Adreno Gen 3
Radeon R7 450
GeForce GTX 675M
Radeon Pro WX 4130
Intel Iris Xe MAX 100
Quadro 5000
Radeon RX 570X
Radeon HD 7700-serie
Ryzen 5 4600U with Radeon Graphics
Ryzen 3 PRO 4350GE with Radeon Graphics
Radeon Vega 8
GeForce MX230
GeForce GTX 765M
Quadro K4000M
Iris Pro Graphics P580 *
Iris Pro Graphics 580 *
GeForce GTX 645
Quadro M520
GeForce GTX 570M
GeForce MX130
Radeon RX 540
Radeon Ryzen 5 PRO 5675U
Intel UHD Graphics 770
Radeon RX Vega 11 Ryzen 7 3750H
Radeon Vega 11 Ryzen 5 PRO 3400GE
Radeon HD 5850
GeForce GTX 675M
GeForce GTX 580M
Radeon HD 6990M
Radeon R9 M385X *
Radeon R9 M470X *
Radeon R9 M470 *
Radeon R9 M385 *
Radeon R9 M380 *
Radeon R9 M370X
Radeon R9 M275
Radeon HD 7770
GeForce GTX 485M
GeForce GTX 460 768MB
Radeon HD 6790
GeForce GTX 285M SLI
Quadro K3100M
FirePro W5170M *
GeForce GTX 670MX
Quadro 5010M
GeForce GTX 760M
GeForce GTX 670M
GeForce 940MX *
Maxwell GPU (940M, GDDR5)
FirePro M8900
Radeon HD 6970M
Radeon R9 M270
Radeon HD 8870M
Radeon HD 7870M
Quadro K3000M
GeForce GTX 570M
FirePro M6000
FirePro M5100
Quadro K2100M
Radeon HD 5770
GeForce GTX 550 Ti
GeForce GTX 280M SLI
Radeon HD 6950M
Radeon R7 250
GeForce GT 755M
GeForce GTX 660M
GeForce 845M
Radeon HD 8850M
Radeon R9 M365X
Radeon R9 M265X
Ryzen 5 PRO 4400GE with Radeon Graphics
FirePro W5130M *
Radeon Vega 8 Ryzen 5 3500U
Radeon Vega 6 Ryzen 3 3300U
Radeon HD 7850M
Radeon HD 8790M
FirePro W4170M
FirePro W4190M
FirePro W4100
Quadro 4000M
GeForce GTX 470M
GeForce GTX 480M
GeForce GT 750M
Iris Pro Graphics 6200
Quadro K1100M
GeForce 940M
Radeon R9 M375
GeForce 930MX *
Radeon R7 M380 *
Radeon R7 M370
Quadro M600M *
GeForce GT 650M
Quadro K620M
GeForce 840M
Radeon R7 M275DX
GeForce GT 745M
Radeon HD 7770M
GeForce GTX 560M
Radeon R7 512 Cores (Kaveri Desktop)
Radeon R7 384 Cores (Kaveri Desktop)
Radeon R7 (Carrizo) *
Iris Pro Graphics 5200
GeForce GT 740M
GeForce 930M
Radeon HD 4850
Iris Graphics 550 *
GeForce 830M
Iris Graphics 540
Quadro M500M *
Quadro K2000M
GeForce GTS 450
GeForce GTX 260M SLI
GeForce GT 735M
Mobility Radeon HD 5870
GeForce 825M
Quadro 5000M
FirePro M4000
FirePro M7820
Radeon HD 6870M
GeForce 9800M GTX SLI
Radeon HD 8830M *
Radeon HD 8770M
Radeon R7 M260X
GeForce GTX 460M
GeForce 920MX *
GeForce GT 730M
Radeon HD 7750M
GeForce GT 645M *
FirePro M4100
Radeon HD 8750M
Radeon R6 A10-9600P 4C+6G
Quadro 3000M
Radeon R7 M270
Radeon R7 M265
Quadro FX 3800M
GeForce GTX 285M
Mobility Radeon HD 4870
GeForce GT 640M
Radeon R7 (Kaveri)
Radeon R8 M365DX
Radeon R7 M460 *
Radeon HD 7730M
Radeon R7 M360
GeForce GTX 280M
Radeon HD 8690M
Quadro FX 3700M
Radeon R7 M340
GeForce 920M
Radeon R6 M340DX
HD Graphics 530
HD Graphics P530
Tegra X1 Maxwell GPU
Radeon R7 M260
Radeon R6 (Carrizo)
Mobility Radeon HD 4860
FirePro M7740
Mobility Radeon HD 4850
GeForce GTX 260M
GeForce 9800M GTX
Quadro FX 2800M
Radeon HD 8670D
Radeon HD 7690M XT
FirePro M5950
GeForce GT 640M LE
Radeon R6 (Kaveri)
Radeon HD 8650M *
Radeon HD 8730M
Radeon HD 6770M
GeForce GT 635M
GeForce GT 555M
Radeon R7 A10 PRO-7800B
Radeon HD 5670
Mobility Radeon HD 5850
Radeon HD 6850M
Quadro 2000M
GeForce 9800M GT
GeForce 8800M GTX
Quadro FX 3600M
GeForce GT 445M
GeForce GTS 360M
GeForce GT 240
Radeon R7 PRO A10-9700
Radeon HD 7690M
HD Graphics 5600
Radeon HD 8570D
Radeon HD 8670M
Radeon R6 M255DX
Radeon HD 7660D
Radeon HD 6750M
Quadro K1000M
GeForce GT 550M
Radeon HD 8590M *
GeForce GTS 260M
GeForce GTS 160M
GeForce 9800M GTS
GeForce GT 430
Radeon HD 6830M
Mobility Radeon HD 5830
Radeon HD 6730M *
GeForce 9800M GS
Mobility Radeon HD 4830
Mobility Radeon HD 5770
Radeon HD 6570M
Radeon HD 8650G
Radeon HD 7670M
GeForce GT 630M
Radeon HD 7560D
GeForce GTS 150M *
Radeon R5 M335
Radeon R5 M430 *
Radeon R5 M330
Radeon R5 M255
Radeon Vega 3
Quadro 1000M
GeForce 820M
FirePro W2100
HD Graphics 520 620
Iris Graphics 6100
GeForce GT 720M
GeForce 8800M GTS
Radeon R5 M240
Radeon R5 M320 *
Radeon R5 M230
Radeon R5 M315 *
Mobility Radeon HD 5750 *
Radeon HD 8570M
Radeon R7 PRO A10-8850B
HD Graphics 6000
Quadro K610M
Radeon HD 8550M
Iris Graphics 5100
GeForce GT 540M
Mali-T880 MP12 *
Radeon HD 8610G *
Radeon HD 6650M
HD Graphics 4600
Mobility Radeon HD 5730
HD Graphics 5500
Radeon R5 (Carrizo) *
Radeon R5 (Kaveri)
FirePro M5800
NVS 5400M
GeForce 710M
Radeon HD 7660G
GeForce GT 435M
HD Graphics 5000
Quadro K510M *
Radeon HD 5570
Radeon HD 6550M
Radeon HD 7590M *
GeForce GTS 350M
GeForce GTS 250M
Radeon HD 6630M
Radeon HD 7650M
FirePro M2000
Radeon HD 7570M
Radeon HD 7630M
Quadro FX 1800M
Mobility Radeon HD 5650
Radeon HD 8510G *
Radeon HD 6530M
Radeon HD 8550G
Quadro K500M *
GeForce GT 625M *
GeForce GT 620M
GeForce GT 525M
Radeon HD 6550D *
Radeon HD 7610M
Radeon HD 7620G
Radeon HD 8470D
Radeon HD 7640G
Adreno 530
GeForce ULP K1 (Tegra K1 Kepler GPU)
HD Graphics 4400
HD Graphics 510 515 *
NVS 5200M
Mobility Radeon HD 565v
Radeon HD 7550M
Mobility Radeon HD 4670
GeForce GT 425M
GeForce 9700M GTS
Radeon HD 6645G2 *
Quadro FX 2700M
GeForce GT 335M
Radeon HD 7600G
Mobility Radeon HD 3870
Mobility Radeon HD 4650
GeForce GT 220
GeForce GT 420M
Radeon HD 7530M *
Mobility Radeon HD 3850
GeForce GT 330M
Quadro FX 880M
Quadro NVS 5100M
GeForce GT 240M
Radeon HD 7490M *
HD Graphics 5300
Radeon HD 7510M *
GeForce Go 7950 GTX
Quadro FX 3500M
GeForce 8700M GT SLI
GeForce 9700M GT
GeForce GT 230M
Mobility Radeon HD 550v
Radeon HD 7480D
HD Graphics 4000
Mali-T760 MP8
Radeon HD 6620G
HD Graphics (Broadwell) *
Adreno 430
Radeon R5 (Beema/Carrizo-L)
Radeon R4 (Beema) (Kaveri)
HD Graphics (Skylake) *
Radeon HD 6450 GDDR5
Radeon HD 7500G
Radeon HD 8450G
Radeon HD 7470M
Radeon HD 6490M
Radeon HD 8400
Mali-T880 MP4
GeForce GT 520MX
Radeon HD 7520G
GeForce GT 325M
GeForce Go 7800 GTX SLI
GeForce 8600M GT SLI
GeForce Go 7900 GS SLI
GeForce GT 130M
NVS 4200M
GeForce Go 7900 GTX
Quadro FX 2500M
Radeon HD 8350G
Radeon HD 8330
GeForce 9650M GS
GeForce 9650M GT
Radeon R3 (Mullins/Beema)
GeForce 8700M GT
Quadro FX 1700M
Quadro FX 1600M
GeForce Go 7800 GTX
GeForce Go 7900 GS
Quadro NVS 320M
Quadro FX 1500M
GeForce 9600M GT
GeForce GT 220M
Quadro FX 770M
GeForce GT 120M
Radeon HD 7450M
GeForce 610M
GeForce 705M
Mali-T760 MP6
Radeon HD 6470M
FirePro M3900 *
GeForce GT 520M
Radeon HD 7420G
Mobility Radeon HD 3670
Mobility FireGL V5725
PowerVR GX6450
Adreno 420
HD Graphics (Haswell)
Radeon HD 6520G
Radeon HD 8310G *
GeForce 320M
GeForce GT 320M
Mobility Radeon HD 2600 XT
Mobility Radeon X1900
Mobility Radeon X1800XT
Mobility Radeon X1800
GeForce Go 6800 Ultra
GeForce Go 7800
GeForce 9600M GS
GeForce 9500M GS
Radeon HD 7400G
Radeon HD 6480G *
Mobility Radeon HD 2700
GeForce GT 415M
GeForce 410M
Radeon HD 7370M
Adreno 418
HD Graphics (Cherry Trail)
Radeon HD 6370M
Radeon HD 8280
Mobility Radeon HD 5470
Radeon HD 6450M
Radeon HD 7430M *
Mobility Radeon HD 3650
Mobility FireGL V5700
Mobility Radeon HD 5145
Mobility Radeon HD 545v
Radeon R6 (Mullins) *
Radeon HD 8240
Radeon HD 8250
Mobility Radeon HD 4570
Quadro FX 570M
Mobility Radeon HD 5450 *
Radeon R2 (Mullins/Beema) *
GeForce 8600M GT
Mobility Radeon HD 2600
HD Graphics 3000
Quadro FX 380M
GeForce 310M
GeForce G210M
NVS 3100M
GeForce 405M
GeForce 315M
GeForce Go 7600 GT
GeForce 9500M G
GeForce 8600M GS
NVS 2100M
GeForce Go 7700
GeForce Go 6800
Quadro FX Go 1400
Mobility Radeon X800XT
Radeon HD 6430M *
Radeon HD 6380G *
Mobility Radeon HD 5430
Radeon HD 8210
Mobility Radeon HD 540v
Mobility Radeon HD 4550
HD Graphics 2500
HD Graphics (Ivy Bridge)
Quadro NVS 310
Radeon HD 7350M *
Radeon HD 6350M *
Mobility Radeon HD 4530
Mobility Radeon HD 4350
Radeon HD 4350
GeForce 305M
Mobility Radeon X1700
Mobility FireGL V5250
Mobility Radeon X2500
GeForce Go 7600
Quadro NVS 300M
Mobility Radeon X800
Mobility Radeon X1600
Mobility FireGL V5200
Mobility Radeon 9800
GeForce Go 6600
Mobility Radeon X1450
Mobility Radeon X700
Mobility FireGL V5000
GeForce G 110M
Quadro NVS 295
Radeon HD 6330M *
Mobility Radeon HD 4330
GeForce 8400M GT
Quadro NVS 140M
HD Graphics 2000
GeForce 9500M GE *
GeForce 9400M (G) / ION (LE)
HD Graphics (Sandy Bridge) *
Adreno 330
PowerVR G6430
PowerVR GX6250
PowerVR G6400
HD Graphics (Bay Trail)
Mali-T628 MP6
Mali-T760 MP4
Chrome9HD *
Radeon HD 7340
Radeon HD 6320 *
Radeon HD 7310
Radeon HD 6310 *
Radeon HD 8180
Mobility Radeon HD 3470
GeForce 9300M G
ION 2 *
GeForce 9300M GS
Quadro FX 370M
Quadro NVS 160M
GeForce 9200M GS
Mobility Radeon HD 3450
Mobility Radeon HD 3430
Mobility Radeon HD 3410
Mobility Radeon HD 2400 XT
Radeon HD 4270
Radeon HD 4250
Radeon HD 7290 *
Radeon HD 6290 *
Radeon HD 4200
Graphics Media Accelerator (GMA) HD Graphics
Radeon HD 6250
Quadro NVS 150M
Quadro FX 360M
Mobility Radeon X1350
Mobility Radeon X1400
GeForce 9100M G
GeForce 8400M GS
Quadro NVS 135M
Mobility Radeon HD 2400
Radeon HD 3200
Radeon HD 4225 *
Radeon HD 4100 *
SGX554MP4
Mali-T628 MP4
Mobility Radeon HD 3400 *
Radeon HD 3100
GeForce 8400M G
Mali-T860 MP2
Quadro NVS 130M
GeForce 8200M G
Graphics Media Accelerator (GMA) 4700MHD
Graphics Media Accelerator (GMA) 4500MHD
Graphics Media Accelerator (GMA) 4500M
Mali-T604 MP4
GeForce Go 7400
Quadro FX 350M
Quadro NVS 120M
GeForce Go 7300
GeForce Tegra 4 *
PowerVR G6200
Adreno 405 *
Quadro NVS 110M
Mobility Radeon X600
Mobility FireGL V3200
Mobility FireGL V3100
Mobility Radeon HD X2300
Mobility Radeon 9700
Mobility FireGL T2e
Mobility Radeon X1300
GeForce4 4200 Go
Mobility Radeon 9600
Mobility FireGL T2
Mobility Radeon 9550
GeForce Go 7200
GeForce Go 6400
Mobility Radeon X300
GeForce Go 6250
GeForce Go 6200
GeForce FX Go 5700
Quadro FX Go 1000
GeForce FX Go 5600 / 5650
Radeon Xpress X1270
Radeon Xpress X1250
Radeon Xpress X1200
Graphics Media Accelerator (GMA) X3100
Mali-T624
Adreno 320 *
Mali-T760 MP2
Mali-T720 MP4
Mali-450 MP4
Graphics Media Accelerator (GMA) 3650 *
GeForce 7190M *
GeForce 7150M
Radeon Xpress 1150
GeForce Go 6150
GeForce Go 6100
GeForce 7000M
Graphics Media Accelerator (GMA) 3600 *
Mobility Radeon 9200
Mobility FireGL 9000
GeForce FX Go 5200
Mobility Radeon 9000
GeForce 4 488 Go
GeForce 4 460 Go
GeForce 4 440 Go
GeForce 4 420 Go
Graphics Media Accelerator (GMA) 3150
Graphics Media Accelerator (GMA) 950
SGX545 SGX544MP2 SGX543MP2 *
Mali-T720 MP2
Mali-T720
Adreno 302 304 305 306
Mobility Radeon 7500
Mobility FireGL 7800
Graphics Media Accelerator (GMA) 900
Radeon Xpress 200M
Radeon Xpress 1100
Mirage 3+ 672MX
Mirage 3 671MX
Mali-400 MP4 *
GeForce ULP (Tegra 3) *
VideoCore-IV *
Adreno 220 225*
Vivante GC1000+ Dual-Core
Mali-400 MP2 *
GeForce ULP (Tegra 2) *
Graphics Media Accelerator (GMA) 600 *
SGX540 *
Graphics Media Accelerator (GMA) 500
Adreno 205 *
Adreno 203 *
GC800 *
SGX535
SGX531
SGX530
Adreno 200 *
Mali-200 *
GeForce 3 Go *
GeForce 2 Go 200 / 100
Mobility Radeon 9100 IGP
Mobility Radeon 9000 IGP
Mobility Radeon M7
Mobility Radeon M6
Chrome9 HC
Extreme Graphics 2
Mobility Radeon 7000 IGP
Radeon IGP 340M
Radeon IGP 320M
S3G UniChrome Pro II
S3G UniChrome Pro
Castle Rock
Mirage 2 M760
Mirage M661FX
S3 Graphics ProSavage8
Mobility 128 M3
SM502 *
</pre>
Not supported on AROS
*OpenGL4 GPU must have 64-bit floating point FP64 math support, which is a hard requirement for GL 4.0. The max last revision opengl 4.6 (2017) on [https://wiki.gentoo.org/wiki/AMDGPU AMDGPU] RX 5000's / 6000s ([https://forum.batocera.org/d/7491-enable-opengl-46-and-vulkan-for-an-old-radeon-video-card RDNA] might come to AROS) but Intel UHD, Iris Plus or Xe, Nvidia RTX (will not)
*OpenGL3 last revision 3.3 (2011)
Some support on AROS
*OpenGL2 nvidia-nouveau,
*OpenGL1 intel gma950,
Kernel-space drivers like '''radeon''' (older AMD driver for older GPUs), '''amdgpu''' (newer driver for newer GPUs, allows using a few new features), i915, nouveau and a few others. They are what handles the gory details of talking to the GPU itself (writing to proper registers, handling its memory directly, configuring outputs, and so on). Unfortunately most of what they're exposing can be only consumed by a single user of that GPU, which is why we need...
DRM and DRI (Direct Rendering Manager/Infrastructure) controls access to the GPUs, provides interfaces for talking to the GPU concurrently by multiple apps at once (without them breaking each other) and lets the system perform the most basic tasks like setting proper resolution and such if no userspace apps understand how to talk to the GPU exposed. DRI and DRM expose the GPU interfaces mostly as-is, not in a "vendor-neutral" portable way - if you don't have an application developed specifically for a GPU you have, it won't work.
"let's create a vendor-neutral interface for graphics so that apps can ignore the GPU-specific bits and get right to the drawing!" - which is what OpenGL is. User-space drivers implement the OpenGL specification and expose it as an OpenGL library to apps (like games, browsers, etc) instead of the GPU. Mesa is the most popular collection of open-source user-space drivers and contains a few user-space drivers for different GPU families: '''radeonsi''' for most modern AMD GPUs (and '''r600g''', r300g and others for older ones), '''i915/i965''' for old/new Intel GPUs and '''nouveau''' for Nvidia GPUs.
There's also Gallium, which is a bunch of utilities and common code shared among these drivers - if certain things can be done once and work everywhere, they'll land in Gallium and benefit all the drivers. Most Mesa drivers use Gallium (radeonsi, nouveau, software renderers), some don't (intel after gma950).
Displaying 2D windows supports device-specific 2D drivers as well, but nowadays most of these are no longer needed as the modesetting can handle most hardware on its own. As the DRM/DRI got some additional interfaces for what used to be hardware-specific (setting resolutions, refresh rates, etc) and software requiring accelerated 2D drawing was optimized OpenGL-based renderers, dedicated 2D acceleration is slowly going away. Since around 2012, the 3D part of the graphics card deals with 2D operations.
Modern GPUs can also decode video!? There's VDPAU (NVIDIA & AMD GPUs) and VA-API (AMD & Intel GPUs) that can also talk to the GPU exposed via DRM/DRI and issue proper commands to decode/encode a given video stream. Those drivers are GPU-specific too.
So let's say you have some example GPUs, here's how example stacks could look like:
* AMD Radeon HD8750: amdgpu -> DRM/DRI -> Mesa (radeonsi)
* AMD Radeon HD4850: radeon kernel driver -> DRM/DRI -> Mesa (r600g) -> games/apps/etc.
* NVIDIA GeForce 460: nouveau kernel driver -> DRM/DRI -> Mesa (nouveau) -> games/apps.
* Intel GMA950: i915 kernel driver -> DRM/DRI -> Mesa (i945) -> games/apps.
{| class="wikitable sortable" width="90%"
! width="15%" | Description
! width="15%" | Analog Output
! width="15%" | Digital Output
! width="15%" | Laptop LCD
! width=30%" | Comments
|-
| <!--Description-->Fudomi GC888A
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->1080p 100in throw projector
|-
| <!--Description-->Vamvo VF320 (720P)
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->720p 90in
|-
| <!--Description-->Happrun H1
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->1080p 90in
|-
| <!--Description-->Umbolite Magcubic HIPPUS HY320 Mini
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->720p 100in
|-
| <!--Description-->Zentality A10 Plus
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->720p 110in
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->nexigo nova mini
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->nebula mars 3
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->epson lifestudio flex plus portable projector
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->dangbei freedo
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->benq gv50
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
Unless your computer uses a Firewire chipset manufactured by Texas Instruments, FireWire interfaces are likely to act buggy.
AROS is unlikely to ever support FireWire.
Bluetooth is similarly unlikely to be ever supported due to huge cost to be certified.
No, x86 PCMCIA card.resource at the moment. Writing card.resource would be a similar amount of work to writing a typical driver. However, it might be complicated by having to support a variety of PCMCIA-controller chipsets like TI PCI1225, PCI1410, PCI1420, 1450, PCIxx12 and O2, etc. m68k card.resource does not really have many higher level functions, most functions are really simple or poke Gayle registers directly. only exception is CopyTuple(). Amiga card.resource has one significant flaw: it's single-unit. would need card.resource and pccard.library. There was talk in the past of designing a new API for PCMCIA because card.resource only supports one slot, but since most modern laptops only have one slot anyway, I think it might be worthwhile to implement card.resource as-is (at least as a first step). pccard.library would be trivial to port. So, a new API is needed.
<pre>
HDMI (licensing fee)
1.4 4K @ 30Hz
2.0 4K @ 60Hz
2.1 48Gbs for 4K @ 120Hz, 8K @ , VRR, etc
</pre>
<pre>
DisplayPort (VESA introduced)
1.4 4K @ 60Hz
2.1 96Gbs for 4K @ 240Hz, 8K @ 120Hz. MST daisy chain multiple monitors,
</pre>
o5ryknjzac0gmdc9heqcz4o4oe82qww
4640102
4640101
2026-06-13T15:04:45Z
Jeff1138
301139
4640102
wikitext
text/x-wiki
Google translation into [http://translate.google.com/translate?hl=en&sl=auto&tl=de&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support German], [http://translate.google.com/translate?hl=en&sl=auto&tl=fr&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support French], [http://translate.google.com/translate?hl=en&sl=auto&tl=nl&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Dutch], [http://translate.google.com/translate?hl=en&sl=auto&tl=it&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Italian], [http://translate.google.com/translate?hl=en&sl=auto&tl=es&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Spanish], [http://translate.google.com/translate?hl=en&sl=auto&tl=hi&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Hindi],
[http://translate.google.com/translate?hl=en&sl=auto&tl=zh-CN&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Chinese Simplified],
[http://translate.google.com/translate?hl=en&sl=auto&tl=pl&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Polish],
[http://translate.google.com/translate?hl=en&sl=auto&tl=ru&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Russian],
{{ArosNav}}
[[#Audio Chipsets]]
[[#Graphic GFX Chipsets]]
[[#Future]]
==x86 Native Environment==
AROS should run on almost any i386 PC hardware so long as the CPU is newer than an i486, and has a "Floating Point Unit (FPU)". Ideally around 700Mhz and above with at least 256MB of memory is recommended for desktops and around 1GHz and at least 256MB for laptops/notebooks/netbooks. For web browsing, etc above 1GB is usually needed and offers the option to run web browsers, media players and other hard disk heavy usage from RAM: disk.
Motherboards supported
* Most Intel mobos are supported (Skt 775 is ok but newer is better) - additional pci / pci-e cards may be needed for networking, audio, etc
* AMD based socket 939 am2 am2+ am3+, fusion and am4 ryzen based systems work but additional pci / pci-e cards may be needed
Supported graphics cards (gfx)
* Nvidia 2D and 3D 2005-2017.
64bit AROS Nouveau covers '''2D''' 8xxxgs and higher to GTX 900s and '''3D''' from .
32bit AROS supports '''2D''' from TNT through to fermi gtx5xx and '''3D''' acceleration fx5xxx to gtx4xx.
* Intel GMA 2D and 3D 2006-2009.
'''2D''' for many old netbooks and motherboards. '''3D''' for many early netbooks and motherboards
* AMD/ATI 2D only and '''no 3D'''. 1999-2005.
Desktop ie external monitor support only (no laptop internal support) for very early Radeon 7000 through to x600. Experimental 2D version for up to HD3xxx came later
* VESA 2D fallback modes for all graphic cards (GPUs) and with [http://www.youtube.com/watch?v=HKCHZFYj9Kk screen dragging].
It's worth noting however that support isn't guaranteed. Nor will potential power of a card reflect its performance under AROS.
Sound wise there are
* HDaudio support for onboard intel and AMD netbooks, ultrabooks, notebooks and motherboards (2005 to 2020)
* some AC97 codec support for very old motherboards and laptops (ie pre 2004)
* PCI and some PCI-E C-Media CMI8738 for desktop plugin cards
* PCI Creative Soundblaster EMU10K1 cards [http://amigaworld.net/modules/news/article.php?storyid=2512 SBLive]
* PCI semi professional some early VIA Envy24 desktop sound cards
* PCI Sound Blaster 128 aka SB16
Supported [http://en.wikibooks.org/wiki/Aros/Platforms/x86_Network_support network] which could be desktop, laptop, etc
* PCI-E Realtek rtl8169 which also includes the rtl8111 and rtl8110
* PCI Realtek rtl8139 and includes rtl8101 and rtl8100
* PCI intel pro100
* Broadcom 44xx 10/100 integrated in laptops around 2005
* VIA 10/100
* 3com Etherlink 10/100
* Realtek rtl8029 10mbit
Wireless wifi
* atheros 5000 wireless
*realtek 8187 usb
It is very hard to recommend a completely supported motherboard because as soon as newer motherboards arrive so their features change subtly, often introducing non supported parts like ethernet and audio. It is a moving target.
* mini-itx motherboard will only get you 1 pci or pci-e slot
* micro mATX or uATX will have more, typically 2 pci-e or pci slots which helps if any onboard features are not supported.
* full atx will have more slots available
'''N.B''' It is frustrating when a piece of hardware is not supported. Hardware documentation can run to over 100 pages and a lot of hardware do not have any public documentation anyway. Chips from different manufacturers for sound, graphics, SATA, etc. vary just as much, unless they follow a standard such as [https://github.com/acidanthera/AppleALC/wiki/Supported-codecs HDAudio codecs], AHCI etc.
Coding drivers is a far cry from Hello World programs or even a port of existing software. If you do actually want to try then get a hold of documentation on the relevant hardware and start there. Alternatively you could try to find some '''BSD''', MIT or MPL licence drivers as a point of reference. Please , do not think you can just adapt strings in a driver for different strings, it does not work that way. You will '''need''' to start from scratch for each new bit of hardware. Device driver programming require '''embedded''' skills, like manipulation of bits within registers, good debugging skills, dealing with interrupts, lots of patience, etc.
The following specific chipsets and drivers are also available - use Tools/PCITool to confirm Vendor and Product IDs - Please let us know any mistakes or any information to be added, to this General Chat list on [https://arosworld.org/ AROS World]
: Brief Timeline
: 2000-12-06 HIDD first mouse.hidd completed ([http://msaros.blogspot.com/ Michal Schulz])
: 2001-03-31 BOOT first boot from floppy disk with IDE device
: 2001-10-30 BOOT first cd bootable version
: 2002-01-27 HIDD first pci.hidd added (Michal Schulz)
: 2002-04-13 BOOT software HDToolBox added ()
: 2003-04-03 HIDD vesa2.hidd graphic modes added ()
: 2004-03-08 HIDD new pci and ata (pata) devices worked on (Michal Schulz)
: 2004-03-17 HIDD nVidia 2D driver appears (Michal Schulz)
: 2005-01-05 AHI AHI v6 audio system ported (Martin Blom)
: 2005-01-06 AHI SBLive SoundBlaster Live driver ported (Georg Steger)
: 2005-02-04 AHI AC97 playback only driver added (Michal Schulz)
: 2005-06-27 NIC amiTCP stack ported with 3com, NE2000, prism2 drivers (Neil Cafferkey)
: 2005-08-25 NIC nForce2 support added (Michal Schulz)
: 2005-12-24 NIC Intel Pro100 network driver added (Neil Cafferkey)
: 2006-03-25 HIDD ATI radeon 2D driver added (Michal Schulz)
: 2007-03-06 HIDD vesa 1.0 video driver added (Pavel Fedin)
: 2007-03-08 HIDD dospackets and FAT filesystem (Rob Norris)
: 2007-03-21 HIDD usb initial commit (Michal Schulz)
: 2007-10-01 BOOT Installer added (Neil Cafferkey)
: 2007-11-29 PORT 64bit x86 added (Michal Schulz)
: 2008-04-12 BOOT GRUB2 added (Alain Greppin and Nick Andrews)
: 2008-08-26 NIC RTL8139 added ([http://kalamatee.blogspot.com/ Nick Andrews])
: 2008-10-22 PORT to SAM440ep (ppc) (Michal Schulz)
: 2009-02-25 PORT to efika (ppc) (Michal Schulz)
: 2009-05-18 HIDD poseidon usb2.0 stack ported to AROS (Chris Hodges)
: 2009-11-18 NIC RTL8169 network driver arrived (Nick Andrews and [http://pagesperso-orange.fr/franck.charlet/oldnews.html Franck Charlet])
: 2009-12-23 AHI HDAudio based Atom CPU and netbook audio driver arrived (Davy Wentzler)
: 2010-03-09 BOOT USB pendrive stick booting available (Neil Cafferkey)
: 2010-05-26 HIDD Intel GMA900 2D graphics card support (Michal Schulz)
: 2010-09-03 NIC Wireless PCI based NIC arrived (Neil Cafferkey)
: 2011-04-30 HIDD Nvidia 2D and 3D nouveau graphics card support (Deadwood)
: 2011-08-30 HIDD Radeon 2D enhanced AMD driver arrives (Bearsoft)
: 2011-09-17 NIC Wireless USB realtek arrives (Neil Cafferkey)
: 2011-12-09 HIDD Intel 945G 3D Gallium graphics support (Sami)
: 2013-02-25 AHI AC97 VIA 686 audio support (Davy Wentzler and Neil Cafferkey)
: 2013-03-31 PORT early Raspberry PI native support (Nik Andrews)
: 2014-01-16 AHI Envy24 audio chipset support (Davy Wentzler and Neil Cafferkey)
: 2017-02-17 PORT Symmetric MultiProcessing smp added for x86 64bit (Michal Schulz)
: 2018-10-20 PORT Big Endian ARM
: 2021-11-26 NIC Broadcom 44xx ethernet (Neil Cafferkey)
: 2023-01-12 NIC Nvidia MCP61 ethernet (Neil Cafferkey)
: 2025-11 HIDD xHCI USB3 and isoc (Nik Andrews)
[[#top|...to the top]]
===Audio Chipsets===
'''If sound beeps in AHI prefs after Music set then some support is there. Select more than one channel for multiple audio streams, set frequency up to 44 kHz or higher and set the volume if not already set. Ensure you set the music unit 0 to 3 which allows the extra features of the audio card like microphone, line-out, etc).'''
====1996-2000 sb128.audio aka SB16 PCI====
*2021 5.27
as per CREATIVE's website, the model number is the first two digits on the front and first two digits on the back. my card says CT4810 and 161TK110B 995; this translates to CT4816 as the model.
The original AudioPCI 3000 card with the ES1370 had a master clock crystal for 44.1 kHz (22.5792 MHz), used an AKM codec (AK4531, non-AC97) and had 4 channel output; Creative later modified the design with a crystal for 48 kHz (24.576 MHz) and Sigmatel AC97 codec (a CT4700 SB128 with a CT5507 chip, AK4531, 22.5792 MHz crystal and TDA7360 speaker power amp). The issue with these cards involved never quite eliminate the effects of resampling on the 64V, it also shows signs of undersized coupling caps. These Ensoniq cards automatically engaged headphone amplifier (with a 4565 opamp).
Porting involved [http://repo.or.cz/w/AROS.git/commit/b60abd12967144a844980c422ea9e99c056eabca 40897], [http://repo.or.cz/w/AROS.git/commit/b7d6511fca6430a63fbaaa390b4f51bf0203a460 40898 configure], [http://repo.or.cz/w/AROS.git/commit/f51034cd22759a4ec3a2547bddb3a7169d956eaa 40900 bugs], [http://repo.or.cz/w/AROS.git/commit/4f43fc38e3489ea45d12b7b5ba6fff50b69c5746 40901 further bugs], [http://repo.or.cz/w/AROS.git/commit/d23c78aec75f049484b6916d27b6804ce858bb2c 40913 memory IO fixes], [http://repo.or.cz/w/AROS.git/commit/d256860fe3035016952e88d143c6f2611997f2f3 40914 irq fix].
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| Ensoniq AudioPCI 1000
| 0x1274
| 0x5000
|
| {{unk}}
| {{unk}}
| untested - es1370 (u?) AK4531 (u?)
|-
| Ensoniq AudioPCI
| 0x1274
| 0x5000
| 0x00
| {{yes}}
| {{maybe}}
|
|-
| CT4700 Sound Blaster PCI 64 (audioPCI 3000)
| 0x1274
| 0x5000
| 0x7c
| {{yes}}
| {{maybe}}
| works - opamp JRC4565(u?) [http://en.wikipedia.org/wiki/Ensoniq_ES1370 es1370] (u?)
|-
| CT4750 Sound Blaster 64/PCI
|
|
|
| {{unk}}
| {{unk}}
| untested - 4565-1056W (u1) stac9708t(u2) [http://arstechnica.com/civis/viewtopic.php?f=6&t=916891 ct5880-dcq] (u3) 24wc012 (u4)
|-
| CT4751 (SB128PCI)
| 0x1274
| 0x8001
|
| {{unk}}
| {{unk}}
| untested - [http://en.wikipedia.org/wiki/Sound_Blaster#Ensoniq_AudioPCI-based_cards es1371] (u?)
|-
| CT4810 Creative AudioPCI64V
| 0x1274
| 0x1371
| 0x06
| {{yes}}
| {{maybe}}
| works
|-
| CT4811 (SB Vibra 128)
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4812 (Vibra 128)
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4813
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4815
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4816 es1373 (vibra 128)
|
|
|
| {{unk}}
| {{unk}}
| untested but this card has creative's ES1373 as the main chip(U1). it is also different from the other CT4810 (vibra128) in that it does not have a second chip in U2 position. Also there is only one jumper JP1 (2X3).
|-
| CT5801 HP
|
|
|
| {{unk}}
| {{unk}}
| untested - es1373 (u3)
|-
| CT5803 Gateway
| 0x1274
| 0x1371
| 0x08
| {{yes}}
| {{maybe}}
| works 4565-0005b jrc (u1) 4297a-jq ztae0c0002 (u2) es1373 (u3)
|-
| CT4740
| 0x1274
| 0x1371
| 0x08
| {{yes}}
| {{yes}}
|
|-
| CT5805 Compaq OEM Premier Sound Presario 7
|
|
|
| {{unk}}
| {{unk}}
| untested - es1373 (u3)
|-
| CT5806 (Sound Blaster AudioPCI 128D)
|
|
|
| {{unk}}
| {{unk}}
| untested - 4297A-JO EP (u?) ZTAPWC9933 (u2) es1373 (u3)
|-
| CT5807 Dell OEM Dimension 8100
|
|
|
| {{unk}}
| {{unk}}
| untested - es1373 (u?)
|-
| CT5808
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4730 Sound Blaster AudioPCI 64V Ectiva EV1938
| 0x1102
| 0x8938
|
| {{unk}}
| {{unk}}
| untested
|-
| CT5880 on various motherboards
| 0x1274
| 0x5880
|
| {{unk}}
| {{unk}}
| untested [http://www.xbitlabs.com/articles/mainboards/display/ga-6rx.html Gigabyte GA-6RX] (VIA ApolloPro 266 2001], Gigabyte GA-6VM7-4E mobo, [http://active-hardware.com/english/reviews/mainboard/ga-7vtx.htm Gigabyte GA-7VTX] (KT266 2001), Gigabyte [http://www.amdboard.com/gigabytega7vtxh.html GA-7VTXH] (KT266A 2001), [http://www.amdboard.com/gigabytega7vrxp.html Gigabyte 7VRXP] mobo (KT333 2002), MSI MS-6309, MS-6318, MS-6337 (815E Pro), MS-6339 (850Pro) and MS-6340, PCChips Motherboard M571 TXPRO, Soltek SL-65ME+,
|-
| VMware Virtual Workstation(TM)
| 0x1274
| 0x1371
| 0x02
| {{Yes|but not Hi-Fi modes}}
| {{maybe}}
| works
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
<pre>
Revision 0x04 = ES1371 REV_ES1373_A
Revision 0x06 = ES1371 REV_ES1373_B
Revision 0x07 = ES1371 REV_CT5880_A
Revision 0x02 = CT5880 REV_CT5880_C
Revision 0x03 = CT5880 REV_CT5880_D
Revision 0x04 = CT5880 REV_CT5880_E
Revision 0x09 = ES1371 REV_ES1371_B
Revision 0x00 = EV1938 REV_EV1938_A
Revision 0x08 = ES1371 REV_ES1373_8
</pre>
====1999-2001 via-ac97.audio====
*2021 5.10
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| <!--Description-->694X with 686A KT133 PM133 or 693A with VT8231
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3058
| <!--Revision-->
| <!--Playback-->{{Yes| }} redirects earphones correctly
| <!--Recording-->{{Yes| }}
| <!--Comments-->audio controller works but depends on the underlying invisible codec used see AC97 section
|-
| <!--Description-->686B KT133A with VT8231
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3058
| <!--Revision-->0x50
| <!--Playback-->{{Yes|}} reroutes ear pieces right
| <!--Recording-->{{Yes|}}
| <!--Comments-->audio controller works but depends on the underlying codec used see AC97 section below
|-
| <!--Description-->686C
| <!--Vendor ID-->0x1106
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->untested
|-
| <!--Description-->KM266 or KT266 with VT8233, KT266A with VT8233A, VT8233C
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3059
| <!--Revision-->0x10
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->KM333 KT333 with VT8235
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3059
| <!--Revision-->0x30
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
| <!--Description-->KM400 KT400 with VT8237, KT600 with VT8237R,
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3059
| <!--Revision-->0x40 0x50 0x60
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
|}
====1998-2003 emu10kx.audio - Creative Labs SoundBlaster Live! and Audigy====
*2021 6.5
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| PCI512 CT4790 (emu10k1)
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested (1st Gen)
|-
| Live CT4620
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Live CT4760
| 0x1102
| 0x0002
| 0x07
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| playback works
|-
| Live Value CT4670
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| works plays stereo (2nd Gen)
|-
| Live Value DELL CT4780
| 0x1102
| 0x0002
| 0x06
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| plays/records stereo - untested 4.1mode
|-
| Live Value Compaq CT4830
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{Maybe}}
| <!--Recording--> {{unk}}
| not working
|-
| Live Value CT4831
| 0x1102
| 0x0002
| 0x00
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Live Value CT4832
| 0x1102
| 0x0002
| 0x07
| <!--Playback--> {{yes}}
| <!--Recording--> {{partial|Line-In only}}
| works
|-
| Live Value CT4832
| 0x1102
| 0x0002
| 0x08
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| works
|-
| Live Value HP CT4870
| 0x1102
| 0x0002
|
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| Works
|-
| Live Value Gateway CT4871
| 0x1102
| 0x0002
|
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Live! Platinum 5.1 SB0060
| 0x1102
| 0x0002
| 0x00
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
| plays audio/records, untested 5.1 (3rd Gen)
|-
| Live 5.1 SB0100 -SFF
| 0x1102
| 0x0002
| 0x00
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| works
|-
| Live 5.1 Player SB0220
| 0x1102
| 0x0002
| 0x0a
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
| plays audio/records stereo, untested 5.1
|-
| Live 5.1 Digital SB0228
| 0x1102
| 0x0002
| 0x0a
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
| working
|-
| Audigy SB0090 (emu10k2)
| 0x1102
| 0x0004
|
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| <!--Description-->Audigy SB0230
| <!--Vendor ID-->0x1102
| <!--Product ID-->0x0004
| <!--Revision-->0x03
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Yes|Mic only}}
| <!--Comments-->5th Dec 2012 - untested optical tos link. contains also IEEE1394/Firewire (untested)
|-
| Audigy 2 Platinum 6.1 SB0240 SB0250 EMU10K2.5
| 0x1102
| 0x0004
| 0x04
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| works
|-
| Audigy 2 PRO SB0280 EMU10K2.5
| 0x1102
| 0x0004
|
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Audigy 2 ZS SB0350
| 0x1102
| 0x0004
| 0x04
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
|
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| Live 5.1 DELL SB0200 SB0203 emu10kx
| 0x1102
| 0x0006
| 0x0
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
|
|-
| Live 24bit SB0410
| 0x1102
| 0x0007
| 0x
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Live 24bit DELL SB0413
| 0x1102
| 0x0007
| 0x
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy LS SB0310
| 0x1102
| 0x0007
| 0x0
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy SE 7.1 SB0570
| 0x1102
| 0x0007
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 2 ZS SB0320 SB0360 (PRO)
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 2 VALUE SB0400
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 4 VALUE SB0610
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 4 PRO SB0380
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| EMU E-MU 0404 PCI (not USB) EM8852
| 0x1102
| 0x000
| 0x0
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver but linux support needs firmware
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
the green jack is for the main speaker pair AND headphones, so manual switching will be required
If your card is wired for the "AC97" standard, then it's up to your headphone jack to switch the green speaker output in and out
the headphone jack has Normally-closed contacts that will open on insertion, which breaks the signal path back to the sound card (FP_RETURN)
====2000-2010 cmi8738.audio - C-Media====
*2021 5.20
;Read [http://amigaworld.net/modules/news/article.php?storyid=2512 more] and imported on [http://repo.or.cz/w/AROS.git/commit/aff741d60160c6a9d7d39c9e004a25ea3aa13847 20th July 2011] and [http://alsa.opensrc.org/Cmipci alsa docs].
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| Audiotrak MAYA EX5
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| cmi8738-sx 4ch
| 0x13f6
| 0x0111
| 0x10
| <!--Playback-->
| <!--Recording-->
| untested
|-
| e3dx hsp56 CMedia 8738-sx 4ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| EDio SC3000D 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Genius SoundMaker Value PCI C3DX
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Guillemot Maxi Sound Muse
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Hercules Gamesurround Muse LT
| 0x13f6
| 0x0111
| 0x10
| <!--Playback--> {{yes}}
| <!--Recording--> {{no}}
|
|-
| Hercules Gamesurround Muse XL LT 5.1
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Inno audio extreme 5.1 cmi8738/lx pci 6ch
| 0x13f6
| 0x0111
| 0x
| <!--Playback-->
| <!--Recording-->
| untested
|-
| M-Audio (Midiman) DiO 2448
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Sabrent SBT-SP6C 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| StarTech PCISOUND4CH 8738sx 4ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Sweex SC012 CMI8738-lx 4ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Terratec 5.1 PCI
| 0x13f6
| 0x0111
| 0x10
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Terratec Aureon Fun 5.1
|
|
|
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| Has SPDIF
|-
| Trust Sound Expert Digital Surround 5.1 (cm8738-mx 6ch)
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Turtle Beach Riviera CMI8738-MX 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| XSonic CMI 8738 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->CMI8738 6ch PCI-E PCI Express version
| <!--Vendor ID-->0x13f6
| <!--Product ID-->0x0111
| <!--Revision-->0x10
| <!--Playback-->{{Yes|}}
| <!--Recording-->{{Maybe|}}
| <!--Comments-->Chinese based card with playback tested so far
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
====2001-2005 ac97.audio====
*6.4 27-12-2008
The AC97 chips were designed to be pinout interchangeable so that the sound support could change easily and quickly without motherboard redesigns
the green jack is for the main speaker pair AND headphones, so manual switching will be required
If your card is wired for the "AC97" standard, then it's up to your headphone jack to switch the green speaker output in and out, the headphone jack has Normally-closed contacts that will open on insertion, which breaks the signal path back to the sound card (FP_RETURN)
The ProductID and VendorID are for the audio controller only - the important additional codec is '''NOT''' so easily identified.
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| <!--Description-->Avance Logic (now Realtek) ALC100 and ALC101 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->ALC200 and ALC201 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->ALC201A and ALC202 and ALC202A codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->ALC650
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| <!--Comments-->most Nforce2 boards plays audio only - Abit NF7, Asus A7N8X, MSI K7N2, Epox 8RDA+, DFI
|-
| <!--Description-->ALC850 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{No}}
| <!--Comments-->no support for via P4P800 chipset on ASUS A8V-E SE Deluxe mobo - ICaros 1.3
|-
| <!--Description-->Realtek ALC653 codec and ALC655 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested Acorp 7NFU400
|-
| <!--Description-->Realtek ALC658 codec ALC658D
| <!--Vendor ID-->0x8080
| <!--Product ID-->0x24c5
| <!--Revision-->0x0
| <!--Playback-->{{Yes|Prefs Music and Units 0-3 set volume control - playback}}
| <!--Recording-->{{No}}
| <!--Comments-->MSI Motherboard on NB 22-09-2012
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->AD1881 SoundMAX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->Analog Devices first AC97
|-
| <!--Description-->AD1881A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Yes}}
| <!--Revision-->
| <!--Comments-->works with VIA Controller - untested Intel etc
|-
| <!--Description-->AD1881B
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1885 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{No}}
| <!--Comments-->Playback only with issues on D845HV but not working on MS-6367 because Units 0-3 have masked volume control
|-
| <!--Description-->AD1886
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1887
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->ADI AD1888 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{no}}
| <!--Recording-->{{No}}
| <!--Comments--> Icaros 1.51
|-
| <!--Description-->AD1980 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->AD1981A codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested IBM X30
|-
| <!--Description-->Analog Devices SoundMax(TM) AD1981B codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| <!--Comments-->plays back only on IBM T41 Thinkpad
|-
| <!--Description-->AD1985 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{No}}
| <!--Comments-->not working ahi prefs freezes on D865GLC mobo ([http://www.xbitlabs.com/articles/multimedia/display/int-sound2_3.html ]
|-
| <!--Description-->AD1986 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{No}}
| <!--Comments-->untested [http://uk.ts.fujitsu.com/rl/servicesupport/techsupport/Boards/Motherboards/Fujitsu/D1931/D1931.htm D1931] but works (Acer Aspire 3610 laptop)
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->Crystal Semiconductors CS4205, CS4202 codecs
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Cirrus Logic CrystalWare 4236
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->Cirrus Logic CrystalClear SoundFusion CS4297 CS4299 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested IBM T23
|-
| <!--Description-->conexant Cx20468-31 codec (id 30)
| <!--Vendor ID-->0x103c
| <!--Product ID-->0x3085
| <!--Revision-->
| <!--Playback-->{{No|AC97 appears in AHI Prefs}}
| <!--Recording-->{{No}}
| <!--Comments-->Tested AspireOS 1.8 on Gateway W322
|-
| <!--Description-->ESS Technology ES1921 AC'97 2.1
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->CMI 6501 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested on ASROCK SKT-AM2 AM2NF3-VSTA
|-
| <!--Description-->codec CMI9738
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->codec CMI9739
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->C-Media CMI 9739A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments--> untested on EPoX 8RDA3+
|-
| <!--Description-->CMedia CMI 9761A codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested ASRocK K7NF2-RAID
|-
| <!--Description-->C-Media CMI9880
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->National Semi conductor (now TI) LM4540, LM4543, LM4545, LM4546, LM4548, LM4549, LM4550 LM4560
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->STAC9708T codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->SigmaTel (now IDT) C-Major STAC 9460 (D/A only), 9461, 9462, 9463, 9200, 9202, 9250, 9251, 9220, 9221, 9223, 9750
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AKM (Asahi Kasei Microsystems) AK 4540, 4543, 4544A, 4545
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->codec VT1616 (VIA Six-TRAC Vinyl Audio)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->VIA VT1612, VT82C686
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->ESStech ESS ES1968 maestro-2
| <!--Vendor ID-->0x125d
| <!--Product ID-->0x1968
| <!--Revision-->0x
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->ESStech ESS ES1978 maestro2e
| <!--Vendor ID-->0x125d
| <!--Product ID-->0x1978
| <!--Revision-->0x
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->ESStech ESS ES1988 maestro3 allegro-1 codec
| <!--Vendor ID-->0x125d
| <!--Product ID-->0x1988
| <!--Revision-->0x12
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->Yamaha AC97 ymf-743 YMF752 YMF753 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->{{No}}
| <!--Comments-->untested ymf-753
|-
| <!--Description-->YMF724 YMF744 YMF-754 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| SIS 7018 / Trident 4dwave DX/NX / ALi 5451
| 0x1039 (0x1023 Trident)
| 0x7018 (0x2000 Trident DX) (0x2001 Trident NX)
| 0x02
| <!--Playback-->{{No}}
| <!--Recording-->{{No}}
| no support - introduced early 2000s
|-
| SIS 7012
| 0x1039
| 0x7012
|
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| working through 1 speaker only took over from SIS7018 (2002 onwards)
|-
| <!--Description-->Wolfson (now Cirrus Logic) WM9701, WM9701A (AC'97 1.03 spec), WM9703, WM9704 (AC'97 2.1), WM9705, WM9706, WM9707, WM9708
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->WM9709, WM9710, WM9711, WM9712, WM971
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->first Microsoft(TM) Xbox DAC sound chip (AC Link compliant D/A converter)
|-
| <!--Description-->Wolfson WM9717
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| Parallels
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested
|-
| VirtualBox
|
|
|
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| working
|-
| VirtualPC
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested
|-
| <!--Description-->Intel 82801AA Proxmox
| <!--Vendor ID-->0x8086
| <!--Product ID-->0x
| <!--Revision-->
| <!--Playback-->{{unk| }}
| <!--Recording-->{{unk| }}
| <!--Comments-->
|-
|}
====2005-20xx HDAUDIO.audio====
*6.36 2025 [https://github.com/aros-development-team/AROS/commit/43b33a9280b10963ca659de2cc3d1cf289b43a87 reset handler]
*6.35 202 []
*6.34 2019 AROS One 1.5 upwards
*6.29 2018
*6.27 2017 update
*6.25 2014 used for most Icaros 2.x
*6.20 July 2012
*6.17 Nov 2011
*6.15 Jun 2011
*[http://www.clusteruk.com/SitePortalPage.aspx?siteid=1&did=109 6.13] Sep 2010
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="5%" |Vendor ID
! width="5%" |Product ID
! width="5%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| <!--Description-->ALC260
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| <!--Description-->ALC262
* ALC262-VD2-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->LQFP-48
|-
| ALC268 codec
| 0x
| 0x
| 0x
| <!--Playback-->{{Yes|Version 6.17 Acer AOA110 and AOA150 netbooks), works (Dell Mini Inspiron 9 and 10v, }}
| <!--Recording-->{{Yes|Version 6.17 remove QUERY and select 'Mic 1' as input. Tested with 6.15 as well using QuickRecord and AE 4.0.23 under Icaros 1.4.}}
| <!--Comments-->AHI UNITS and Music are set to: hdaudio:HiFi 16 bit stereo++ / Frequency 48000 Hz, Volume +0.0 dB. The hdaudio.config in SYS:Prefs/Env-Archive is WITHOUT the QUERY-line. After changing and saving the config-file turn off and start again the computer. Switch from internal loudspeaker to headphone you must turn off the music before plug in the headphone-cable, otherwise there is no output on the socket. Back from line-out to internal speakers it is the same.
|-
| [http://blog.foool.net/wp-content/uploads/linuxdocs/sound.pdf Linux docs ALC269]
* ALC269Q-GR
* ALC269QSRS-GR
* ALC269W-GR
| 0x
| 0x
| 0x
| <!--Playback-->{{Maybe| }}
| <!--Recording-->{{Unk| }}
| <!--Comments-->TQFP 48 pin Power IC Chip From [https://patchwork.kernel.org/project/alsa-devel/patch/1408118123-15849-1-git-send-email-tiwai@suse.de/ ALC269 & co have many vendor-specific setups with COEF verbs, result in the codec stalling]
|-
| [http://www.alsa-project.org/db/?f=0321f8479fd670cd510f9912b1120fe7edcf2e07 ALC269VB]
* ALC269Q-VB5-GR
* ALC269Q-VB6-CG
* ALC269Q-VB6-GR
| 0x10ec
| 0x0269
| 0x100004, 0x100100, 0x100202
| <!--Playback-->{{Maybe|some versions work}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* v1 works Asus eee PC netbook 901/1000HA 1005HA/1008HA, 1001P,
* v2 maybe working Lenovo S9 S10 S10-2 S10-3 under HDAudio version 6.13
* v3 maybe dell wyse 7010
|-
| [http://alsa-project.org/db/?f=9c1746c5957b0ce72ff9cfffa312e97d14baf785 ALC269VC aka ALC3202]
* ALC269Q-VC2-GR
* ALC269Q-VC3-GR
| 0x10ec
| 0x0269
| 0x100203,
| <!--Playback-->{{Maybe|some versions work}}
| <!--Recording-->{{Unk}}
| <!--Comments-->SMT SMD QFN-48 -
* v1 unknown
* v2 unknown
* v3 x230, dell wyse,
|-
| ALC272
* ALC272-VA4-GR
| 0x10ec
| 0x0272
| 0x0
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Unk}}
|
* works Acer AOD150 and Acer AOD250 works [http://amigaworld.net/modules/newbb/viewtopic.php?topic_id=33755&forum=28#616910 Samsung NP-NC10], works Samsung NF210-A02] netbooks,
|-
| <!--Description-->ALC273
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| <!--Description-->ALC270
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC282
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x
| <!--Revision-->
| <!--Playback-->{{No|Version 6.17}}
| <!--Recording-->{{No|Version 6.17}}
| <!--Comments-->needs retest
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC660 ALC660-VD
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes| }}
| <!--Recording-->
| <!--Comments-->
* works asus F9s, F9e
* untested asus w7j, M51SN, A6Tc, A8Sr,
|-
| <!--Description-->ALC661-GR (2011)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| ALC662
| 0x1043
| 0x82a1
| 0x0
| <!--Playback-->{{Yes|Version 6.17 if QUERY added to top of hdaudio.config}}
| <!--Recording-->{{No|Version 6.17 not working for eee pc 900}}
|
* works Asus eee PC netbook 700/701/900, Atom 270 and 330 mobos, odd clicks (D410 NM10 PineTrail),
|-
| <!--Description-->[http://outpost.fr/rmaa/ALC663.htm ALC663]
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0861
| <!--Revision-->
| <!--Playback-->{{No|Version 6.13}}
| <!--Recording-->{{Unk}}
| <!--Comments-->not bad output like headphone amp part of the codec actually works well but messed up by undersized coupling capacitors to actually support such a low impedance
* not working Asus n50vn x71vn,
|-
| <!--Description-->ALC665
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC666
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC667
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC668
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC670
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->ALC880
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->some 915 and 925 chipset mobos
|-
| <!--Description-->ALC882M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| Realtek ALC883 ALC883-GR ALC883D-GR ALC883DTS-GR ALC883DD-GR codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe|some early versions work }}
| <!--Recording-->{{Unk| }}
| 2005 to 2007 HD Audio codec untested (Asus ),
|-
| Codec ALC885
| 0x10ec
| 0x0885
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
|-
| ALC888
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
|
|-
| ALC888s
* ALC888S-VD2-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}} MSI Wind U90/U100,
| <!--Recording-->{{Unk}}
| LQFP-48
|-
| ALC888b
| 0x8086
| 0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| untested (D510 NM10 Dual Core PineTrail mobo),
|-
| ALC888-VD
| 0x8086
| 0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| untested
|-
| ALC889A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes|works if QUERY added to the top of hdaudio.config in Prefs drawer/directory}}
| <!--Recording-->{{Unk}}
|
|-
| ALC889 Gr
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}} with crackles
| <!--Recording-->{{Unk}}
|
|-
| ALC889
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
| Tested with MSI H55 board
|-
| ALC887 ALC887-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
|
* working on ASUS P5KPL/EPU and Gigabyte GA-E350N-Win8 Rev1.0
|-
| ALC887-VD-CG
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0887
| <!--Revision-->0x100302
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}} Subsystem Id: 0x1458a002
|
|-
| ALC887-VD
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0887 0x1458
| <!--Revision-->0xa002
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{Unk}} index = 2
| ALC887 does not have any volume control ability on the mixer NIDs, so put the volume controls on the dac NIDs instead
* working with intermittent corrupting pop popping skipping stuttering sound issues MSI 760GM-P23 (FX),
* not working Gigabyte H61MA-D3V, AT3IONT-I Deluxe,
|-
| ALC887-VD2
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
| 3jacks
|-
| ALC887-VD2-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
|-
| ALC887-
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
|
|-
| ALC892-CG rev
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| 2011 48-pin LQFP Green package -
|-
| ALC892 ALC892-DTS-CG rev
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
| 2009 introduced
* works
* not working
* untested
|-
| ALC892 rev
| <!--Vendor ID-->0x0x10ec
| <!--Product ID-->0x0892
| <!--Revision-->0x100302
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| 2014
|-
| Realtek ALC886-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| LQFP-48
|-
| Codec ALC861 ALC861-VD
| 0x10ec
| <!--Product ID-->0x0663
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
|
* not working Toshiba Tecra A7
|-
| <!--Description-->ALC1200
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| ALC898
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
| not working
|-
| <!--Description-->ALC1500
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC3232 (aka ALC292)
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0292
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC3234 aka ALC255
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0255
| <!--Revision-->003
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC3287 aka ALC257
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes| }}
| <!--Recording-->{{no| }}
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->AD1882
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1883 HD Codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1884
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| Analog Devices SoundMAX AD1981
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| IBM Thinkpad T60,
|-
| AD1984 hp-m4 codec
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
* audio not working on Lenovo X61, Thinkpad T61,
|-
| AD1986
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
|
|-
| AD1988
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
|-
| <!--Description-->AD1988A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->Cirrus Logic CS4207
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->
| <!--Recording-->
|
|-
| <!--Description-->Cirrus Logic CS4208
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->
| <!--Recording-->
|
|-
| <!--Description-->Conexant CX20549 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe|very very very low volume}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested Fujitsu Amilo SI 1510 1520 no datasheet for the general public
|-
| <!--Description-->Conexant CX20549-12Z codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested HP 530
|-
| <!--Description-->Conexant CX20561 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* working lenovo x200s
* untested Lenovo Essential G555 Notebook, HP Pavilion dv6700,
|-
| <!--Description-->Conexant CX20582 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX2059x CX20590 CX20594-21Z codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX20585 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* working Lenovo Thinkpad T410,
|-
| <!--Description-->Conexant CX20672 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX20671 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX20751-21Z codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes| }}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| <!--Description-->Conexant CX11852 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX11880 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant after 2015 up to 2018 CX7501 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{no|no driver codec}}
| <!--Recording-->{{no|no driver codec}}
| <!--Comments-->Conexant bought by synaptics 2019
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->C-Media CMI9880 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->Gigabyte GA-8GPNXP
|-
| <!--Description-->Silicon Labs 3054
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| VIA 1708A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| untested,
|-
| VIA VT1708B
| <!--Vendor ID-->
| <!--Product ID-->
| 0x0010
| <!--Playback-->{{No|VIA PicoITX}}
| <!--Recording-->{{Unk}}
|
|-
| VIA 1708S
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
|
|-
| <!--Description-->VT2021 10ch
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->Gigabyte Z77MX-D3H, GA-H61M-S2H S2P,
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Creative CA0110-IBG
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->SigmaTel STAC 9220 9221 9223 8ch (7+1)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| <!--Comments-->ECS 945GCT/M-1333 (version 3.0),
|-
| IDT SigmaTec [http://explorer.cekli.com/articles/pdf/hd-audio STAC9227] /28/29/30 codec
| <!--Vendor ID-->0x8384
| <!--Product ID-->0x7626
| <!--Revision-->0x0002
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Unk}}
|
* works HP Compaq mini 110
* untested HP Pavilion HDX9000 CTO Notebook, Intel DG33TL mobo, Dell E520, Intel DP35DP mobo, Dell E6410 Laptop,
|-
| IDT (formerly SigmaTel) IDC STAC 9271/71D
| <!--Vendor ID-->0x8384
| <!--Product ID-->0x7626
| <!--Revision-->0x0002
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
|
|-
| <!--Description-->IDC STAC 9272 9273 9274
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->Intel D5400XS,
|-
| <!--Description-->IDT 92HD73C
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes}}
| <!--Recording-->
| <!--Comments-->headphones only Asus AT4NM10 mobo
|-
| <!--Description-->IDT 92HD75B
| <!--Vendor ID-->0x111d
| <!--Product ID-->0x7608
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* working [http://koti.kapsi.fi/jvaltane/aros/hdaudio/ HP Compaq Mini 700 Netbook - feedback required]
* untested HP Mini 5103 and 5102, HP Compaq 610, HP ProBook Laptop 4520s 4525s 6450b 6550b 6555b, HP EliteBook 2540p 2740p 8440p, Mobile Workstation 8540w 8740w, Pavilion NoteBook DV8,
|-
| <!--Description-->IDC 92HD81XX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC 92HD83XX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC STAC 92HD89XX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Wolfson (now Cirrus Logic) WM8850
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Wolfson WM8860
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->Intel High Definition Audio Revision 1.0. - 4-Channel DAC, 4-channel ADC. - DAC sampling
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
Using Prefs/AHI ensure you set the music unit and at least Units 0 (where most audio comes from) in top left drop down menu to HDaudio - HIFI in the section below. Set Units 1 or 2 to microphone or other outputs. Plus allow more than one channel for multiple audio streams and set frequency up to 44 kHz or higher on the right hand side of the ahi prefs. If sound beeps when you press the test button then all should be OK.
Output <- Codec <- Audio Controller (HDA) <-> Computer
codecs and exact hardware identifier. As mentioned above, HDA is only part of the work here, it gets the audio out of the main chipset in digital format (on a bus called I2S). This is not enough, there is another step needed which is routing that I2S signal to the output, converting it to actual audio, amplifying it, etc. This is handled by a separate chip called a "codec". Sometimes it is initialized by the BIOS, but this is not always the case.
Most audio drivers are made up of two parts a [http://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio.txt Controller + a Codec]. The ProductID and VendorID are for the audio controller only - the important additional codec is '''NOT''' so easily identified.
Some newer versions of codecs are missing at the moment.
Things to try if sound not working
* try to connect something to the audio jack, maybe it is not playing on internal speakers or vice versa
* make sure you try and select all music units e.g. unit0, unit1....
* even if PCI ID's are in Prefs/Env-Archive/HDaudio.config, this doesn't mean it is working, it is the codec that matters
* it might be internally muted
<pre>
add debug=memory to grub boot line - continue booting with F10
Open a shell
Tools/Debug/Bifteck > RAM:audio.txt
</pre>
or
<pre>
Open a shell
Tools/Debug/Sashimi > RAM:audio.txt
Run ahi prefs
Click test tone button
Stop sashimi with Ctrl-C
</pre>
If the boot sound is enabled, you have to use Bifteck to capture AHI debug output. In the GRUB menu, press E on your selected entry, then add "debug=memory" to the options (alongside ATA=, vesa= etc.). Then F10 or Ctrl-X to boot. Once booted, run Tools/Debug/Bifteck again.
or
* try adding QUERYD to the start of ENVARC:hdaudio.config file (also known as Prefs/Env-Archive/) ie. on the first line
* '''OR''' try removing QUERY and QUERYD from the start of the hdaudio.config file
* Reboot
* open a shell
* type: sys:tools/debug/sashimi > ram:debug.txt
* open ahi prefs
* select one of the audio modes - HIFI or otherwise
* press the 'test sound' button
* press ctrl-c in the shell
* post the results to Aros-World
The HD Audio standard was designed to be hardware pinout interchangeable so that the sound support could change easily and quickly. HDA is a standard around particular chips. Each kind of chip has a certain number of DACs and pins, and even the same chip could be hooked up in different ways on different motherboards. The chips are programmable and the operating system can adjust how things are routed. Some pins aren’t even hooked up, so it makes no sense to route sound to them. Also some pins have sensors that can tell when something is plugged in, so that for example the speakers in a laptop can be muted when headphones are plugged in. Pins are also grouped, so for example all the outputs for a 5.1 sound system are grouped. Generally the HDA driver in the operating system is supposed to read the pin set up and figure out a reasonable way to set things up, and disconnected pins should be ignored, etc.
HDAudio standard has headphones on a separate DAC, and it's up to the driver.. it can even send different audio to the headphones without interrupting the main (green) outputs
====Envy24 series ====
A little history. VIA bought the ICE created Envy chipsets [http://www.via.com.tw/en/products/audio/controllers/comparison_controller.jsp VT1712] first. A few years later, they created several cheaper variants VT1724 (mixer missing), VT1721 (low end cut down), VT1720 (embedded on motherboard) and lastly the VT1723 (no support apart from Windows Envy24DT like SYBA SD-PEX63034).
There are PCI Express versions appearing.
The Envy24 is the base product that was originally designed by ICEnsemble, and it supports multi-channel hardware mixing, which is great for professional use. The HT version removes the hardware mixer (unimportant for non-professional uses). The [http://www.avsforum.com/t/364771/envy24ht-s-the-definitive-source HT-S] version is almost exactly the same as the HT, it just uses cheaper DACs. The PT version is exactly the same as the HT-S version, it is just the edition used for on-board audio on motherboards.
N.B. [http://www.soundonsound.com/sos/dec04/articles/pcnotes.htm PCI slot identification] and [http://hsi.web.cern.ch/HSI/s-link/devices/s32pci64/slottypes.html 3.3v PCI].
=====[http://www.opensound.com/readme/README.Envy24.html envy24.audio] - [http://www.anime.net/~goemon/alsa/ VT1712] =====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Playback
! Recording
! Comments
|-
| M-Audio Delta 66 - Rev B 1999
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested AK4524VF CS8404A-CS - needs Delta Series break out box with D-sub lead -
|-
| [http://ixbtlabs.com/articles/maudioaudiophile/index.html Audiophile 2496] Rev A 2000
| 0x14
| 0x
|
| <!--Playback-->{{unk| }}
| <!--Recording-->{{unk| }}
| works audio out on - I2S stereo codec AKM AK4528VF with the 24bit/96kHz DAC and ADC; CS8427 digital transceiver
|-
| [http://ixbtlabs.com/articles/maudioaudiophile/index.html Audiophile 2496] Rev B 2003
| 0x14
| 0x
|
| <!--Playback-->{{Yes }}
| <!--Recording-->
| works well - I2S stereo codec AKM AK4528VF with the 24bit/96kHz DAC and ADC; CS8427 digital transceiver
|-
| M-Audio Delta 410 - 2001 2001 REV-B
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested for D-A AK4529VQ converters with CS8427-CS 5532 1158B or Event Echo Gina 20-Bit Multitrack Interface Breakout Box -
|-
| M-Audio Delta 1010
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested AK5383 and AK4393 - 25 pin dsub -
|-
| M-Audio Delta 1010LT 1010E
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested for D-A AK4529 converters with 2 XLR Microphone inputs with pre amps
* be aware of redesign in 2007 - possible issues
|-
| M Audio Delta 44 - Rev A 2002 - Rev B 2003 - Rev D 2003
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested ICE1712G AK4524VF needs breakout box with 15 pin D-sub lead -
|-
| M-Audio Delta 66 Rev E 2006 - Omni Studio
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested needs break out box with 15 pin D-sub lead -
|-
| <!--Description-->M-Audio Delta DiO 2496
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| Terratec EWX24/96
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| [http://ixbtlabs.com/articles2/terratecdmx6fire/index.html TerraTec 6fire DMX 24/96]
| <!--Vendor ID-->0x1412
| <!--Product ID-->0x1712
| <!--Revision-->0x02
| <!--Playback-->{{No|tried line 1-2 3-4 5-6 7-8 }}
| <!--Recording-->{{No| }}
| untested - AKM and codec
|-
| <!--Description-->Terratec EWSA88MT
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| [http://lists.freebsd.org/pipermail/freebsd-multimedia/2007-March/006087.html Audiotrak Prodigy HD2] 24/96
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Audiotrak (ESI) Maya 1010 1010L
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| EMU 1212M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| EMU 1616M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| <!--Description-->Terratec EWS 88MT EWS 88D
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Hoontech Soundtrack DSP 24
Soundtrack DSP 24 Value
Soundtrack DSP 24 Media 7.1
Event Electronics EZ8
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Digigram VX442
Lionstracs
Mediastation
Terrasoniq TS 88
Roland/Edirol DA-2496
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
=====envy24ht.audio - VIA VT1724=====
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| ESI Juli@
| 0x3031
| 0x4553
| 0x0
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Yes}}
| reported working years ago [http://envy24.svobodno.com/ Envy24HT-S] - AKM 4358 DAC - AKM 4114/4112 DIT
|-
| ESI Juli@ Ego Igo rev K
| 0x3031
| 0x
| 0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| AK4358? DAC - AK4114 AK4112 DIT
|-
| [http://ixbtlabs.com/articles2/multimedia/m-audio-revolution51.html M-Audio Revolution 5.1]
| 0x1412
| 0x3631
| 0x0
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| reported working years ago but discontinued - (Envy24GT) - 3ch AKM 4358 DAC - ADC AKM 5365 -
|-
| [http://ixbtlabs.com/articles2/m-audio-revolution71/index.html M-Audio Revolution 7.1] 24/192
| 0x1412
| 0x3630 0x1724
| 0x0
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| not working - illegal semaphore - 6ch ADC AKM AK4355 24-bit 192 kHz - 2ch DAC AKM AK4381 24-bit 192 kHz - ADC AKM AK5380
|-
| Terratec Aureon Sky 5.1
| 0x153b
| 0x1147
| 0x
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - discontinued
|-
| [http://ixbtlabs.com/articles2/terratec-aureon71/index.html Terratec Aureon Space 7.1]
| 0x153b
| 0x1145
| 0x0
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - Wolfson WM8770 DAC, AC'97 codec SigmaTel STAC9744
|-
| Terratec Aureon Universe 7.1
| 0x153b
| 0x1153 (rev x) 0x1724 (rev3)
| 0x0
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| not working - semaphore error on rev 3 - DAC ADC
|-
| Terratec Phase 22
| 0x153b
| 0x1150
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - Envy24HT-S - AK4524
|-
| Terratec Phase 28
| 0x153b
| 0x1149
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - Envy24HT-S - AK4524
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Playback
| Recording
| Revision
| Comments
|-
| Audiotrak (ESI) Prodigy 7.1
| 0x4933
| 0x4553
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - Wolfson WM8770 and AC'97 SigmaTel STAC9744 codec
|-
| Audiotrak (ESI) Prodigy 7.1 LT
| 0x3132
| 0x4154
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver -
|-
| [http://ixbtlabs.com/articles2/sound/audiotrak-prodigy192.html Audiotrak (ESI) Prodigy 192] 24/96
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - STAC9460S codec
|-
| <!--Description-->Echo Layla 24/96
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
| [http://www.bit-tech.net/custompc/labs/80752/hercules-gamesurround-fortissimo-4.html Hercules Gamesurround Fortissimo 4]
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - Wolfson WM8776 Codec and WM8766 DAC
|-
| [http://ixbtlabs.com/articles2/multimedia/m-audio-audiophile192.html M-Audio Audiophile Delta AP 192k]
| 0x1412
| 0x3632
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - Stereo ADC AKM AK5385A 24-bit 192 kHZ - 8-channel DAC AKM AK4358 24-bit 192 kHz - AKM 4114/4112 DIT
|-
| ONKYO SE-150PCI
| 0x160b
| 0x0001
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver
|-
| <!--Description-->ESI Waveterminal 192x
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
| <!--Description-->Quartet
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments--> - AKM 4114/4112 DIT
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
|}
====hdmiaudio.audio - hdmi no support====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Comments-->
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->ATI R6xx HDMI Audio codec support output
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x9840
| <!--Revision-->
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->Not detected
|-
| <!--Description-->NVidia HDMI
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Intel Series 6 CougarPoint HDMI codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Intel HDMI
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|}
[[#top|...to the top]]
===Graphic GFX Chipsets===
[https://gallium.readthedocs.io/en/latest/systems.html PCIe based] graphic chipset is defacto on 64bit AROS and recommended on 32bit.
AGP works on 32bit but faster transfers through the AGP slot are only available on a few supported motherboard chipsets
* Faster AGP Working = SIS 650 board, Intel 865pe AGP slot on MSI 6788-050,
* Not Supported = NForce2 chipsets, most Intel 815/820 chipsets, VIA chipsets, ALi chipsets,
The fallback for all graphics modes is vesa if any native support does not work. There is a choice of very low resolution vga as the last resort
2D tests performed with [http://download.aros3d.org/software/gfxbench.zip gfxbench] in the shell type gfxbench > out.txt (40 seconds blank screen is part of the test), via FreeDoom via limit-removing engine like odamex, chocolate or vanilla doom -timedemo demo1 or doom2 -timedemo demo1, doom.exe -iwad doom2 -file mymap.wad, Duke DNRATE 640x480 windowed
3D tests performed with Demos/Mesa/ , Cube 1080p, Cube 2 windowed not fullscreen 1920 x 1025, Quake3 ~ cl_drawFPS 1, Xonotic , [http://shinh.skr.jp/sdlbench/showtestgl.cgi test gl],
HDMI, DVI and DisplayPort monitors have a native resolution of 480p, 720p, 1080i, 1080p and up
* HDMI 1.2 720p res.
* HDMI 1.3 1080 resolution
* HDMI 1.4 above 1080 res.
* HDMI 2.0
* HDMI 2.1
* HDMI 2.2 ultra96
* GPMI
====vga.hidd====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Comments
|-
|
| 0x
| 0x
| 0x0
| Generic VGA Driver, limited to 640x480 in 16 colours - no 3D support
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Comments-->
|-
|}
====vesa.hidd====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Comments
|-
|
| 0x
| 0x
| 0x0
| 2D support for VBE1, VBE2 and VBE3 (most cards) - various resolutions and 24bit colour - no 3D support
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Comments-->
|-
|}
[[#top|...to the top]]
====[[w:en:Intel GMA|Intel GMA]]====
DVI output is not supported at the moment.
If having problems:
* Ensure the latest version is being used.
* Set GMA_MEM to 128 or 256 to test
* Try the FORCEGMA ToolType for 2D, and try the FORCEGALLIUM ToolType for 3D acceleration after 2D is verified to work. ToolTypes should be applied to the Devs/Monitors/IntelGMA monitor icon.
If still having problems:
* At GRUB boot screen edit boot line and add option: debug=memory
* Boot.
* Use shell command: tools/debug/bifteck > RAM:debug.txt
* And post [GMA MONITOR DETECTION] and other related debug lines
{| class="wikitable sortable" width="90%"
! width="5%" |Description
! width="5%" |Vendor ID
! width="5%" |Product ID
! width="3%" |Rev
! width="5%" |2D
! width="5%" |3D
! width="5%" |Analog Output
! width="5%" |Digital Output
! width="5%" |Laptop LCD
! width="30%" |Comments
|-
| 910GL 82910GL GMCH + ICH6
| 0x8086
| 0x2582 0x2592
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| 910GML 82910 GML GMCH + ICH6 Mobile
| 0x8086
| 0x2582 0x2592
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| may need to add forceGMA to grub boot line to work
|-
| 915G 82915G GMCH + ICH6-M
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
|
|-
| 915GL 82915GL GMCH
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
|
|-
| 915GV 82915GV GMCH
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Yes|}}
| <!--3D-->{{No|}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{N/A}}
| HP DC5100 small form factor
|-
| 915GM GMA900
| 0x8086
| 0x
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| tunnel gearbox }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes}}
| asus eee pc 900
|-
| 915GMS
| 0x8086
| 0x
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| tunnel }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes| }}
|
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| [http://www.notebookcheck.net/Intel-Graphics-Media-Accelerator-950.2177.0.html 945GU] - 133 MHz (Lake port for Intel A100 and A110)
| 0x8086
| 0x2772
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| Fujitsu LifeBook U1010,
|-
| 945GMS - 166 MHz / 250 MHz (1.05V)
| 0x8086
| 0x27a2
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes}}
| Dell D430
|-
| 945GSE - 166 MHz (for Atom)
| 0x8086
| 0x27ae
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Yes|[http://www.x.org/wiki/GalliumStatus]}}
| {{Yes}}
| {{No|dvi port}}
| {{Yes| }}
| for atom motherboards and most 2008/2009 netbooks
* 3D Works - AOA110 AOA150, Dell Mini 9, Samsung NC10, Toshiba NB100,
|-
| 945G 82945G GMCH + ICH7
| 0x8086
| 0x27a6
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| untested 2D and 3D
|-
| 945GC 82945GC MCH
| 0x8086
| 0x27a6
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| untested 2D and 3D
|-
| 945PM
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| Dell D420, Compaq nc6400,
|-
| 945GMS - 250 MHz Calistoga
| 0x8086
| 0x
| 0x0
| <!--2D--> {{Yes}}
| <!--3D--> {{Yes|most models}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes}}
|
* 3D Works Dell Latitude 2100, HP Compaq nc6320, Lenovo 3000, Lenovo T60, Samsung Q35, Dell D620, Dell D820,
* 3D untested Toshiba Satellite L100-120, Toshiba Portege M400,
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
|
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GMA 3100 G31
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works 2D but no 3D
|-
| GMA 3100 G33
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works 2D but no 3D
|-
| [http://en.wikipedia.org/wiki/Intel_GMA GMA 3150] netbooks and nettops
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works 2D but no 3D. no vga, dvi or hdmi output for nettops
|-
| <!--Description--> G965
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments-->
|-
| <!--Description--> Q965
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x2992
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{No}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments--> Only tested with VGA output.
|-
| 965GM X3100 (500 MHz)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| some support 2D but no hardware 3D - could not get it to work with VGA or dvi output
* untested Apple MacBook Air, Lenovo Thinkpad X300, Dell Inspiron 1525, Toshiba M9,
|-
| 960GM X3100 (400 MHz)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
|
|-
| 965M X3100 (400 MHz)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| Dell D830,
|-
| 965PM ??
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| Toshiba A9 works with limited 2D acceleration but no hardware 3D
|-
| GL965
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works with limited 2D acceleration but no hardware 3D
|-
| GM965
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works with limited 2D acceleration but no hardware 3D
|-
| GMA X3500 G35
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->X4500M G41 G43 G45 (400Mhz) Mobile 4 Series
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x2a42 0x2a43
| <!--Revision-->0x07
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue--> {{No|}}
| <!--Digital--> {{No|}}
| <!--Laptop LCD--> {{Yes| VESA}}
| <!--Comments-->works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->GMA 4500M HD (533 MHz)
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments-->works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->GMA 4700M HD (640MHZ)
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x2a42
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments-->works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
====[http://nouveau.freedesktop.org/wiki/FeatureMatrix nouveau].hidd (nvidia pci, agp, pci-e desktop)====
PCIe based nvidia graphics (gfx 8xxx) are the base level for 64bit AROS but earlier models still has some support on 32bit AROS
*Desktop, more likely hit rather than miss on early nvidia on Aros 32bit but on Aros 64bit ...
*Laptop, limited support for '''very''' early non-optimus (i.e. just Nvidia gfx only so no Intel and nvidia gfx combinations on 32bit but on 64bit ...)
Please note that the nouveau project is reverse engineering a nvidia graphics driver but takes time because of [https://nouveau.freedesktop.org/ nVidia's closed firmwares], etc
* 2026-06 - DEVS Nouveau.hidd Gallium.hidd Softpipe - LIBS Gallium GLU 20.0 Mesa OpenCL
* 2011-10 - DEVS 6.11 Nouveau.hidd 7.4 Gallium.hidd 9.4 Softpipe - LIBS 2.3 Gallium 1.3 GLU 19.0 Mesa OpenCL 1.x
* 2011-04 - DEVS 5.31 Nouveau.hidd 7.3 Gallium.hidd 9.3 Softpipe - LIBS 2.2 Gallium 1.1 GLU 18.0 Mesa OpenCL n/a
Nouveau support for AROS is limited to OpenGL 2.1 compliance on 32bit even for modern GL4 capable GPUs but on 64bit ...
On Aros 32bit OpenCL supports the NV50 (8000 9000) cards, less support in NVC0 fermi cards (300 upwards)
On Aros 64bit
ADoom3 graphic details ultra, benchmark while playing press the "`" key and type "Timedemo demo1" in the console
{| class="wikitable sortable" width="90%"
! width="5%" | Graphic Card
! width="5%" | Aros 32bit 1024 x 768
! width="5%" | Aros 32bit 800 x 600
! width="5%" | Aros 32bit 640 x 480
! width="5%" | Aros 64bit 1024 x 768
! width="5%" | Aros 64bit 800 x 600
! width="5%" | Aros 64bit 640 x 480
|-
| NV50 Asus EN8400GS SILENT/P/512M PCIe (G98) || || || || || ||
|-
| Gigabyte 8500GT 256M || 42,6 || 57,2 || 68,6 || || ||
|-
| NV96 (G96) Geforce 9500GT 512M || 43 || 53 || 57 || || ||
|-
| NV96 (G96) 9600GT || || || || || ||
|-
| NVA3 (GT215) GT240 || || || || || ||
|-
| NVA5 (GT216) Palit GT220 Sonic 512M || 39,7 || 55,8 || 63,7 || || ||
|-
| NVA8 (GT218) gt210 || || || || || ||
|-
| NVA8 (GT218) ION2 || || || || || ||
|-
| NVC3 (GF106) GT440 GTS 450 || || || || || ||
|-
| NVCF (GF116) NVC0 Fermi GTX 550Ti or GTS 450 v2 || || || || || ||
|-
| NVC8 (GF110) 580GTX || || || || || ||
|-
| NVE0 Kepler GT630 || || || || || ||
|-
| NVE6 (GK106) Kepler GTX660 || || || || || ||
|-
| NV110 Maxwell GTX 750 || || || || || ||
|-
| NV126 (GM206) GTX950 upwards no reclocking || N/A || N/A || N/A || poor || poor || poor
|-
| NV160 family (Turing) GTX 1650 and RTX 2000 upwards with GSP firmware || N/A || N/A || N/A || unknown || unknown || unknown
|-
| HostGL Ryzen 5 4600H - Nvidia 1650 - Linux mint 21.1 || 150fps || 154fps || 155fps || || ||
|-
| NVA8 (GT218) || || || || || ||
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| width="5%" | Graphic Card
| width="5%" | Aros 32bit 1024 x 768
| width="5%" | Aros 32bit 800 x 600
| width="5%" | Aros 32bit 640 x 480
| width="5%" | Aros 64bit 1024 x 768
| width="5%" | Aros 64bit 800 x 600
| width="5%" | Aros 64bit 640 x 480
|}
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|-
| <!--Description-->tnt1 (nv04) tnt2 (nv05) m64 value (1998)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|very slow}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| NV04 Riva TNT TNT2 Fahrenheit freezes on via motherboard chipset so rename agp.hidd in SYS:Devs/Drivers or Monitors
|-
| <!--Description-->tnt vanta lt (nv06) 1998 /9
| 0x10de
| 0x002c
| 0x15
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|slow}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| <!--Description-->Geforce 256 (nv10) (2000)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|slow }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| untested Geforce256
|-
| <!--Description-->Geforce 2 Geforce 3 Geforce 4 (nv20) 2000 / 2
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|slow }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| works for some PCI and AGP Geforce2 Geforce3 Geforce4
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| Geforce FX5200 nv34 (2003)
| 0x10DE
| 0x0322 0x
| 0xA1
| <!--2D-->{{Maybe| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->{{Maybe|VGA15 }}
| <!--Digital-->{{Maybe|DVI}}
| <!--Laptop LCD-->{{N/A}}
| NV30 GeForce 5 FX Rankine Hardware OpenGL 1.5 - slower than GF MX 4000 for 2D - max 1024 x768
* not working [https://eab.abime.net/showthread.php?t=92328&page=8 mobos with VIA chipsets 2018]
* working (MSI 0x9174) the previous nouveau 5.x driver
* Others work with 6.x series XFX PV-T34K-NA, ASUS V9520-X/TD
|-
| Geforce FX5500 (nv34) (2003)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{Maybe| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| works
|-
| Geforce 5100 (NV34)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce FX 5200LE (NV34)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5200 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce FX5600 (nv31) (2004)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Maybe| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| works
|-
| GeForce FX 5600 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5600SE
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5600XT
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce FX5700 (nv36) (2004)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes|some}}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{Maybe| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5700VE
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5700 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5700LE
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5800 (NV30)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5800 Ultra (NV30)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900 (NV35)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900XT
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900ZT
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5950 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce 5xxx
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
|
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| Geforce 6200 (nv44) (2005)
| 0x
| 0x00F3 0x014F
| 0x0
| <!--2D-->{{Yes|5.28 Pixel Text}}
| <!--3D-->{{Maybe| use 5.28}}
| <!--Analogue-->{{Yes|VGA15 and s-video - plain 4pin cable lead will work with 7pin}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| NV40 GeForce 6 GeForce 7 Curie AGP Hardware OpenGL 2.1 needing previous 5.x version as regression arose 2011-10
|-
| Geforce 6200 (nv44a) (2006)
| 0x
| 0x0221
| 0x0
| <!--2D-->{{Yes|5.28 Pixel Text }}
| <!--3D-->{{Yes|}}
| <!--Analogue-->{{Yes|VGA15}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| Hardware OpenGL 2.1, PCI version tested OK in 2014-01-02 - Icaros 1.5.2
* not working
*working
|-
| GeForce 6200 with Turbo Cache (NV43)
| 0x
| 0x0161
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce 6200SE with Turbo Cache (NV44)
| 0x
| 0x0162
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce 6200 LE
| 0x10de
| 0x0163
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| PCI-E
|-
| GeForce 6600 LE
| 0x
| 0x00F4 0x0142
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6600
| 0x
| 0x00F2 0x0141
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| 2006 PureVideo HD 1 or VP1 re-used the MPEG-1/MPEG-2 decoding pipeline from FX
|-
| Geforce 6600gt (nv4x) (2005)
| 0x
| 0x00F1 0x0140
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Yes| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| OpenGL tests -
|-
| Geforce 6800 (nv40) (2005)
| 0x
| 0x0041 0x00C1 0x00F0 0x0211
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Yes| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 XE (NV4x)
| 0x
| 0x0043
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 LE
| 0x
| 0x0042 0x00C2 0x0212
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 GT (quadro fx 1400)
| 0x
| 0x0045 0x0046 0x0215
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 6800 GS
| 0x
| 0x0047 0x00C0 0x00F6
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 GTS NV40
| 0x
| 0x0040 0x0F9
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 6800XT
| 0x
| 0x0044 0x0048 0x00C3 0x0218
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6600 VE
| 0x
| 0x0143
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6500 NV44
| 0x
| 0x0160
| 0x0
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6250
| 0x
| 0x0169
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 6xxx
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GeForce 7800 GTX
| 0x
| 0x0090 0x0091
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| tunnel gearbox cube cube2 25}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> 256MB DDR3 - 1 6pin psu connector -
* not working asus en7800gtx/2dhtv/256m/osp/a -
* Works XFX PV-T70F-UDD7 Works in steve jones' scrap pc aros build 2010 2 DVI-I ports
* Untested
|-
| GeForce 7800 GT
| 0x
| 0x0092
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7600gt (G8 ) (nv4 ) (2006)
| 0x
| 0x02E0 0x0391
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL 2.1
* not working
* working
|-
| GeForce 7800 SLI
| 0x
| 0x0095
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GTX
| 0x
| 0x0290
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GT GTO
| 0x
| 0x0291
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GS
| 0x10de
| 0x0292
| 0x0a1
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working
* Works with a few glitches with XFX Pine 0x2218
|-
| GeForce 7950 GX2
| 0x10de
| 0x0293 0x0294
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| GeForce 7950 GT
| 0x
| 0x0295 0x02E4
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GS
| 0x
| 0x02E3
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7600 GS
| 0x
| 0x02E1 0x0392
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7650 GS
| 0x
| 0x0390
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7600 LE
| 0x
| 0x0394
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7800GS (G8 ) (nv4 ) (2006)
| 0x
| 0x0093 0x00F5
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working
* works if AGP motherboard chipset is supported - Hardware OpenGL 2.1
|-
| GeForce 7100 GS
| 0x
| 0x016A
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7350 LE
| 0x
| 0x01D0
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7300le (G8 ) (nv4 ) (2006)
| 0x
| 0x01D1
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7300SE 7200GSGF-7200GS-N-B1 variant (G72)
| 0x10de
| 0x01D3
| 0x0a1
| <!--2D-->
| <!--3D-->
| <!--Analogue-->{{Unk|1x DVI, 1x VGA, 1x S-Video}}
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2007 40W pci-e 1.0 VP1 no unified shaders -
* not working Asus on via chipset (2015),
* works Asus on intel chipset (2015),
|-
| Geforce 7300gt (G8 ) (nv4 ) (2006)
| 0x
| 0x0395 0x0393
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working
* works
|-
| GeForce 7300 GS
| 0x
| 0x01DF
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7500 LE
| 0x
| 0x01DD
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7xxx
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GeForce 8800 Ultra (NV50 family)
| 0x
| 0x0194
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NV50 GeForce 8 to GeForce 200s opengl 3.x - max res - 80nm technology - PureVideo HD 2 or VP2 Nvidia VDPAU Feature Set A (absent from ultra and some 8800gt?) added a dedicated bitstream processor (BSP) and enhanced video processor for H.264, VC-1 acceleration
|-
| Geforce 8800gts (nv50) (G8x) (2007)
| 0x
| 0x0400 0x0600 0x0193
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2007 200w openGL3 openCL - 2x6pin psu
* not working 0x0193 models (2015) on via chipsets,
* works
|-
| Geforce 8800gtx (nv5 ) (G8x) (2007)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2008 200W 1x 6pin connector,
* not working
* working
* untested XFX PV-T88P-YDF4, Alpha Dog Edition runs extremely hot - Gigabyte GV-NX88T512H,
|-
| GeForce 8800 GT
| 0x
| 0x0602 0x0611 0x0193
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->DVI up to 2500 x 1600
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - 6pin psu power connector required
* not working
* untested Asus EN8800GT/HTDP/256M EN8800GT/HTDP/512M EN8800GT/G/HTDP/512M
* works
|-
| GeForce 8800 GT (G92)
| 0x10de
| 0x0611
| 0x0a2
| <!--2D-->{{Yes|6.11 Pixel Text}}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{N/A}}
| <!--Digital-->{{Yes}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3 pci-e 2.0 8800GT 512MB on Icaros 2.0.3 [[File:8800GT aros heads.png|thumb|8800GT]] [[File:8800GT aros tails.png|thumb|8800GT detail]]
|-
| Geforce 8600gt (nv5 ) (G8x) (2007)
| 0x
| 0x0401 0x0402
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res
* not working
* works
|-
| GeForce 8500 GT
| 0x
| 0x0421
| 0x0
| <!--2D-->{{Yes| some color }}
| <!--3D-->{{yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL tests - max opengl 3.x but 2.1 offered - max res
* not working
* works Gigabyte 8500 GT,
|-
| GeForce 8800 GS
| 0x
| 0x0606 0x060D
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res
|-
| GeForce 8600GS
| 0x
| 0x0403
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 3.x VP3 offers complete hardware-decoding for all 3 video codecs of the Blu-ray Disc format: MPEG-2, VC-1, and H.264 - Nvidia VDPAU Feature Set B
|-
| GeForce 8300 GS
| 0x
| 0x0423
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res
|-
| Geforce 8400gs G98GS (end 2007) GT218 (2009)
* Rev2 with 8/16 cores and 128-512MB of DDR2 or GDDR3 memory.
* Rev3 with 8 cores and 512MB-1GB of DDR3 memory (based on Tesla 2.0)
| 0x
| 0x0424 0x0422
| 0x0
| <!--2D-->{{Yes|Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 490 gearbox 505 Cube 135 Cube2 55 quake3 }}
| <!--Analogue-->{{Yes|works digital part of DVI but nothing from any display port}}
| <!--Digital-->{{Yes|output on digital 24 pin array of DDWG's DVI and hdmi}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 50W openGL 3.1 openCL - case single slot - one single-link DVI digital output, supporting up to one 1920x1080 resolution display - analog resolution 640 x 480 to 1024 x 768 16 and 24 bit color - [http://www.phoronix.com/scan.php?page=article&item=nouveau_comp_2011&num=19 runs a little hotter than expected] - G98 VP3 pci-e 2.0 512MB DDR2 -
* not working
* works Asus EN8400GS SILENT/P/512M PCIe (G98),
|-
| Geforce 8400gs (nv50) (G86) (mid-2007)
* Rev1 with 16 cores / 256MB of DDR2 memory.
| 0x
| 0x0404
| 0x0
| <!--2D-->{{Yes|Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 490 gearbox 505 Cube 135 Cube2 55 quake3 }}
| <!--Analogue-->{{Yes|works but not tested thru 4 pins of analog signal of DVI plug}}
| <!--Digital-->{{Yes|output on digital 24 pin array of DDWG's DVI and hdmi}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2008 50W openGL 3.1 openCL - case single slot - one single-link DVI digital output up to 1920x1080 resolution display - analog resolution 640 x 480 to 1024 x 768 16 and 24 bit color - [http://www.phoronix.com/scan.php?page=article&item=nouveau_comp_2011&num=19 runs a little hotter than expected] - G86 VP2 128MB -
* not working XFX PV-T86S-YAJG NVIDIA GeForce 8400 GS 512MB DDR2, Sparkle 8400GS 512MB SX84GS512D2L-DPP,
* works Asus EN8400GS SILENT/HTP/256M SILENT/HTP/512M/A,
|-
| GeForce 8400 SE
| 0x
| 0x0420
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 2.x openCL
|-
| NVidia Quadro NVS290 DMS-59
| 0x
| 0x0403
| 0x0
| <!--2D-->{{no| }}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk|DMS-59 socket}}
| <!--Digital-->{{unk|DMS-59 }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2008 21W - G86S (G86-827-A2) - 16 shading units, 8 texture mapping units, and 4 ROPs. NVIDIA has paired 256 MB DDR2 - PCIe 1.0 x16 Low Profile -
|-
| Geforce Quadro FX 4600 (SDI), 5600
| 0x
| 0x
| 0x0
| <!--2D-->{{Partial|VESA 2d}}
| <!--3D-->{{no| }}
| <!--Analogue-->{{partial| }}
| <!--Digital-->{{partial| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GeForce 9800 GX2 (NV50 family)
| 0x
| 0x0604
| 0x0
| <!--2D-->{{Partial|VESA }}
| <!--3D-->{{no| }}
| <!--Analogue-->{{Partial| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 150w - 65nm technology
|-
| GeForce 9800 GTX
| 0x10de
| 0x0612
| 0x0a2
| <!--2D-->{{Yes| }}
| <!--3D-->{{Maybe|6.11 }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 2x6pin psu -
* not working xfx on via chipset (2015),
* works xfx on chipset intel ,
|-
| GeForce 9800 GTX+
| 0x10de
| 0x0613
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res 2560 x 1920 - case dual slot - 26amp 12v rail on computer psu if 2x6pin connectors needed - 55nm version of the G92 chip - will not work with PCI-e 1.0a slots -
* not working
* works on a few models
|-
| Geforce 9800gt (nv50) (G92a) (2008)
| 0x10de
| 0x0614
| 0x0xa2
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel 495 gearbox 513 Cube 156 Cube2 120 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{partial| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL 3.1 openCL 1.x - case dual slot - 600w 26amp on both 12v rails for 2x6pin psu on gfx card - no fan control - some come with 1x6pin - renamed version of the venerable GeForce 8800 GT - randomly works
* not working Gainward 512M untested
* working Gainward CardExpert (0x0401) Green Edition NE39800TFHD02-PM8D92 1024MB (no 6pin)
|-
| Geforce gf9600 9600gt (nv5 ) (G9x) (2008)
| 0x10de
| 0x0622
| 0x0a1
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel 493 gearbox 675 Cube Cube2 100 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL 3.2 openCL but no fan control - case dual slot - 1 6pin pcie psu connector - 500 Watt or greater power supply with a minimum of 26 Amp on the +12 volt rail - Max Analog: 2048x1536 and Max Digital: 2560x1600 (Dual Link DVI Only) - PCI Express® 2.0 / 1.1 Support - g96 gpu randomly works -
* not working bfg tech ocx,
* works gigabyte gv-n96tsl-512i -
|-
| Geforce gf9500 9500gt (nv5 ) (G9x) (2008)
| 0x10de
| 0x0640
| 0x0a1
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel 480 gearbox 500 Cube Cube2 64 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.2 - case single slot - 350 Watt/400 Watt or greater power supply with a minimum of 18 Amp/22 Amp on the +12 volt rail - Max Analog: 2048x1536 and Max Digital: 2560x1600 (Dual Link DVI Only) - PCI Express® 2.0 / 1.1 Support -
* not working zotac zone fanless, Gainward USA NE29500THHD01-PM8796, PNY G9500GN2E50X+0TE,
* works xfx xne-9500t-td01-pm8596 1024mb ddr2,
|-
| GeForce 9600 GS
| 0x
| 0x0623
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res - will not work with PCI-e 1.0a slots -
* not working
* works
|-
| GeForce 9600 GSO
| 0x
| 0x0610
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res - G92 chopped down - 9600GSO is re-badged 8800GS both very power hungry cards -
|-
| GeForce 9300 GS
| 0x
| 0x06E1
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 opengl 3.x - max res
|-
| Geforce 9400 GT (nv5 ) (G86S) (2008)
| 0x
| 0x
| 0x0
| <!--2D-->{{partial|}}
| <!--3D-->{{unk|}}
| <!--Analogue-->{{unk|1x DVI, 1x VGA, 1x S-Video}}
| <!--Digital-->{{unk|1x DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 50W opengl 3.x - max res
|-
| Geforce 9xxx (nv5 ) (G9x) (2008)
| 0x
| 0x
| 0x0
| <!--2D-->{{unk|}}
| <!--3D-->{{unk|}}
| <!--Analogue-->{{unk|}}
| <!--Digital-->{{unk|}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 opengl 3.x - max res
|-
| <!--Description-->
NV84 (G84) GeForce 8600 (GT, GTS, M GT, M GS), 8700M GT,
NV92 (G92) GeForce 8800 (GT, GS, GTS 512, M GTS, M GTX)
GeForce 9600 GSO, 9800 (GT, GTX, GTX+, GX2, M GT, M GTX)
NV96 (G96) GeForce 9400 GT, 9500 (GT, M G), 9600 (M GS, M GT),
NV86 (G86) GeForce 8300 GS, 8400 (GS, M G, M GS, M GT), 8500 GT
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NVA0 (GT200) GeForce GTX (260, 275, 280, 285, 295)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->GeForce GTX 280 (NV50 family)
| <!--Vendor ID-->
| <!--Product ID-->0x05E1
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res PureVideo HD 4 (Nvidia Feature Set C or "VDPAU Feature Set C), VP4 added hardware to offload MPEG-4 Advanced Simple Profile (original DivX and Xvid)
|-
| <!--Description-->GeForce GTX 260
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x05E2
| <!--Revision-->
| <!--2D-->{{partial|Vesa}}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> 2 6pin - psu pci express 2.1 -
|-
| Geforce GTS250 250GTS (g92b) (2009)
| 0x10de
| 0x0615
| 0x0a2
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 486 gearbox 508-642 Cube Cube2 80 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> 2x6pin psu VP2 - pci-e 2.x - case dual slots - 738m 1gb ddr3 -
* not working Zotac branded version GDDR3 -
* works PNY gs-250x-zdfl and Gigabyte ??, BFG Tech RGTS2501024OCE, palit ne3ts250fhd52-pm8a92 with 2x6pin on top and hdmi output port,
|-
| <!--Description-->GeForce GT 240 (GT215 family)
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0ca3
| <!--Revision-->0xa2
| <!--2D-->{{Maybe|use VESA}}
| <!--3D-->{{No|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->late 2009 openGl 3.2 - case dual slots - no 6pin psu required with VP4 - All are pcie 2.1 cards and may not work in 1.0a slots -
* not working
* DDR3 with 512MB or 1GB -
* DDR5 -Asus ENGT240 - XFX Pine GT240XYHFC 0x3001 - Gigabyte GV-N240D5-512I rev 1.0 - Zotac AMP! with HDMI 1.3a with DisplayPort 1.1, Dual Link DVI -
* works
|-
| <!--Description-->GT220 (GT216) G220
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0a20
| <!--Revision-->0xa2
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Yes}}
| <!--Digital-->{{Yes|DVI }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> Icaros 2.0.3 GeForce GT220 1GB[[File:GT220 aros heads.png|thumb|GT220]][[File:GT220 aros tails.png|thumb|GT220]]
* untested NVIDIA Quadro® 400 512MB DDR3 GT216 DP DVI, AFox AF220 1Gb DDR3,
|-
| Geforce GT220 220GT G94 Tesla (g92b)
| 0x10de
| 0x0a20
| 0xa2
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 490 gearbox 505 cube 150 cube2 50 Quake3 }}
| <!--Analogue-->{{Unk|1x DVI, 1x VGA}}
| <!--Digital-->{{Yes|DVI but not 1x HDMI }}
| <!--Laptop LCD-->{{N/A}}
| 58W pci express 2.0 cards DDR3 - case single slot -
* not working ASUS ENGT220/DI/1GD2(LP)/V2 -
* works - gainward card expert 0x0401 GDDr3 512MB -
|-
| <!--Description-->GT210 GT 210 210GT G210 based on Tesla 2.0 GT218S GT218-300-A2 variant, GT218-300-B1
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0a65
| <!--Revision-->0xa2
| <!--2D-->{{Yes|6.11 Pixel Text}}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{Unk|1x DVI, 1x VGA}}
| <!--Digital-->{{Maybe|DVI out works but not hdmi or 1x DisplayPort}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 31W OpenGL 3.3 pci-e 2.0 cards - single slot -
* working GT218 based Asus EN210 based silent low profile large passively cooled -
* untested MSI GeForce 210 1GB DDR3 PCIe N210-MD1GD3H/LP,
* not working
|-
| <!--Description-->Quadro NVS 295 (256 MB GDDR3), NVS 450 (256M/512 MB DDR3)
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x
| <!--Revision-->
| <!--2D-->{{yes| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->
| <!--Digital-->{{partial|2 or 4 dp ports}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 25w low performance - G98s with 8 shading units, 4 texture mapping units, and 4 ROPs on PCI-Express 1.0 x16 -
*not working some NVIDIA Quadro NVS 295 2 dp ports (DELL, HP),
*working
|-
| <!--Description-->GT310 Tesla 310, 315, GT 320, GT 330 GT 340
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{Maybe|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2010 50w OpenGL 3.3 openCL all similar in performance to GT2xx except gt31x (poor)
|-
| <!--Description-->Quadro NVS310 NVIDIA NVS 310
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital--> 2 dp
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2012 25w GF119S (GF119-825-A1) 48 shading units, 8 texture mapping units, and 4 ROPs on PCI-Express 2.0 x16 - 512 MB DDR3 - PureVideo VP5 VDPAU Feature Set D -
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description--> GTX 470, GTX 480 GF10 GF10* core (NVC0 family)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{Maybe| tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2010 215w 2x6 plugs - NVC0 family (Fermi) GF100 (GF100-275-A3) Fermi 448 shading units, 56 texture mapping units, and 40 ROPs with 1,280 MB GDDR5 - OpenGL4.5 OpenCL1.1 Tessellation - case dual slots -
|-
| Geforce GTX460 460GTX (G104) 256bit, 1GB v2 192bit and GTX 465
| 0x10de
| 0x0e22
| 0xa1
| <!--2D-->{{Maybe|VESA }}
| <!--3D-->{{Maybe| tunnel gearbox cube 055-111 cube2 50}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVC0 family (Fermi) OpenGL 4.x but - 2x6pin psu - case dual slots -
* not working evga 768MB GDDR5 192bit 01G-P3-1373-ER or 01G-P3-1372-TR
* works 1GB GDDR5 256bit 01G-P3-1371-ER
|-
| <!--Description-->Geforce GTX 460SE 192bit
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0e23
| <!--Revision-->0x91 or 0xa1
| <!--2D-->{{Yes| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->{{Yes| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> nouveau 6.11 - 2 6pin psu needed - case dual slots -
* not working
* works EVGA 01g-p3-1366-b6 et 1024MB p1041 -
|-
| Geforce GT450 GTS450 450GTS GF106
| 0x10de
| 0x0dc4
| 0x0a1
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel gearbox cube cube2 50 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes|DVI }}
| <!--Laptop LCD-->{{N/A}}
| 2010 Hardware OpenGL 4.2 but nouveau at 3.3 - most need 1x 6pin psu - case dual slots -
* not working
* DDR3 1 or 2GB - Palit NEAS450NHD41F,
* GDDR5 512Mb or 1GB - MSI MPN N450GTSM2D1GD5OC, Asus MPN ENGTS450DI1GD5,
* works Gainward Card Expert NE5S4500FHd51,
|-
| <!--Description-->GT 440 GF108 chipset or better OEM GF106
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 6.11 Pixel Text}}
| <!--3D-->{{Maybe| tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGl 4.1 opencl 1.x - no 6 pin psu - 96 cuda cores 128bit - case dual slots -
* not working
* OEM
* GDDR5 512MB to 1GB ASUSTeK ENGT440/DI/1GD5
* GDDR3 Asus 1gb to 2gb,
* works
|-
| <!--Description-->GT430 430GT (GF108)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|6.11 Pixel Text}}
| <!--3D-->{{Maybe|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->ddr3 memory 64bit or 128bit - buggy await new revision of driver
* not working
* works
|-
| <!--Description-->nVidia Quadro FX1800 768MB GDDR3 Full Height Graphics Card Workstation
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 6.11 Pixel Text}}
| <!--3D-->{{no|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->{{Maybe|DVI-I 2xDP}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->59W 768 MB GDDR3 memory using a 192-bit memory interface - OpenGL 3.3 -
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GTX 590 Fermi
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->OpenGL4.4 OpenCL 1.1 - GDDR5 - 6pin and 8pin psu connectors - 512 cuda - case dual slots -
* not working
* works
|-
| <!--Description-->GTX 580,
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->PureVideo HD 5" or "VP5" (Nvidia Feature Set D or VDPAU Feature Set D) 4k UHD 3840 × 2160 H.264 decode -
|-
| <!--Description-->GTX 570,
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{Maybe|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working Zotac GTX 570, Gainward GTX560TI/570 Phantom,
* works gigabyte, evga
|-
| <!--Description-->Geforce 5xx 560gtx Fermi GTX 560,
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->opengl 4.x - 2 6pin psu - 384 cuda cores - case dual slots - will not work with PCI-e 1.0a slots -
* not working Asus ENGTX560 DC/2DI/1GD5,
* Ti LE 448 cuda GDDR5 320bit
* Ti 256bit
* works
|-
| <!--Description-->GTX 560 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working evga GTX 560Ti 01GP31560KR - Gainward GTX560TI/570 Phantom,
* works
|-
| <!--Description-->GTX 550 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x1201
| <!--Revision-->
| <!--2D-->{{Maybe|VESA Doom Doom2 Duke }}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->can hang on boot up on I2C Init or suffer random lockups on OpenGL apps - most need 1 6pin min 400W 24A on the +12V1 / +12V2 dual 12V rails of the computers' power supply unit - 192 cuda cores - case dual slots used - will not work with PCI-e 1.0a slots -
* not working eVGA GeForce GTX 550 Ti (1024 MB) (01GP31556KR) -
* untested asus Extreme, eVGA GeForce GTX 550 Ti (1024 MB) (01GP31557KR) - -
* works
|-
| <!--Description-->GT 545 and OEM GF116
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 4.2 opencl 1.x - GDDR5 with OEM only -
|-
| <!--Description-->GT530 OEM
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 6.11 Pixel Text}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->96 cuda cores - 1GB or 2GB DDR3 128bit
|-
| <!--Description-->GT520 520GT
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->untested 48 cuda cores - DDR3 64bit
|-
| <!--Description-->510, GT 530
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D 6.11 Pixel Text}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> ddr 3 - 50w max -
|-
| <!--Description-->GT610 Fermi GF119
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVS 315 300 GF119S
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{No|VESA}} needs special dms-59 cable
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 fermi 315 PNY VCNVS315-T 1Gb DDR3 but needs special dms-59 cable -
|-
| <!--Description-->GT630 GF108 Fermi
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->not accelerated 2015 - like the GT730 below - 96 cuda cores whilst kepler version has 384 - 128bit to keplers' 64bit bandwidth - kepler has 2GB DDR3
* not working Gigabyte
* DDR3
* GDDR5
* works
|-
| <!--Description-->Geforce GT 730
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe| use VESA 6.11 Pixel Text}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> fermi version has 96 cuda cores 128bit GF108
* not working Asus
* works
|-
| <!--Description-->nVIDIA Quadro 4000
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}} 2 dp ports
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->142W 2Gb GDDR5 - PCI Express 2.0 x16 ; full Height card with 1x 6-Pin PCIe power need - CUDA Cores 256 - OpenGL 4.5
|-
| <!--Description-->nVIDIA Quadro 5000
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2011 200W 2.5Gb GDDR5 320 bit - PCI Express 2.0 x16 full Height card with 2x 6-Pin PCIe power need -
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce GTX Titan GeForce GTX Titan Black GeForce GTX Titan Z
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVE0 family (Kepler) GeForce 600 GeForce 700 GeForce GTX Titan Kepler
|-
| <!--Description-->GeForce GTX 780 GeForce GTX 780 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->PureVideo HD 6" or "VP6" (Nvidia Feature Set E or VDPAU Feature Set E) significantly improved performance when decoding H.264 and MPEG-2
|-
| <!--Description-->GeForce GTX 770
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->opengl 4.4 opencl 1.1
|-
| <!--Description-->GeForce GTX 760 GeForce GTX 760 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce GT 740
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce GT 730 Kepler
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> two versions fermi 96 cores 128bit GF108 and kepler 384 cores 64bit GK208
|-
| <!--Description-->680gtx GK104 core gtx680 680m
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVE0 family (Kepler)
|-
| <!--Description-->GTX 690 Kepler NVE0
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->pci-e 3.0, OpenGL 4.4 OpenCL 1.1
|-
| <!--Description-->GTX 670
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GTX 660 GTX 660 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GTX 650 GTX 650 Ti GTX 650 Ti Boost
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVE0 family (Kepler) most need 1 6pin psu
* not working asus ENGTX560 DC/2DI/1GD5
* works
|-
| <!--Description-->Geforce GT 640
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* 128bit DDR3
* 192bit DDR3 1.5 to 3GB 50W
* 128bit GDDR5 75W
|-
| <!--Description-->GT 620 GT 640
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce 750ti, GeForce 900
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->[https://nouveau.freedesktop.org/FeatureMatrix.html NV110] Maxwell -
|-
| <!--Description-->Nvidia GTX 750
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x1381
| <!--Revision-->0xa2
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->2026 nvidia test
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->GM206 2nd gen maxwell PureVideo HD 7" or "VP7" (Nvidia Feature Set F or VDPAU Feature Set F) adds full hardware-decode of H.265 HEVC Version 1 (Main and Main 10 profiles and full fixed function VP9 (video codec) hardware decoding
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Quadro K620 quadro p620 2gb gddr5 128bit and quadro p1000 4gb gt1030 30w
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 50w slim low profile -
|-
| <!--Description-->GeForce gtx 1060, GeForce 1070
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NV130 Pascal
|-
| <!--Description-->gtx 1050ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->NV130 family (Pascal)
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV132 (GP102) NVIDIA Titan (X, Xp), GeForce GTX 1080 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV134 (GP104) GeForce GTX (1070, 1080)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV136 (GP106) GeForce GTX 1060
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV137 (GP107) GeForce GTX (1050, 1050 Ti)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV138 (GP108) GeForce GT 1030
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NV162 (TU102) NVIDIA Titan RTX, GeForce RTX 2080 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV164 (TU104) GeForce RTX (2070 Super, 2080, 2080 Super)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2020 NV160 family (Turing) unified gsp-rm firmware - best starting point for Vulkan support
|-
| <!--Description-->NV166 (TU106) GeForce RTX (2060, 2060 Super, 2070)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV168 (TU116) GeForce GTX (1650 Super, 1660, 1660 Ti, 1660 Super)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV167 (TU117) GeForce GTX 1650
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->gtx 1650ti super
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2018 old style
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NV172 (GA102) GeForce RTX (3080, 3090)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 av1 decoding ampere
|-
| <!--Description-->NV174 (GA104) GeForce RTX (3060 Ti, 3070, 3080 Mobile)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->NV170 family (Ampere)
|-
| <!--Description-->NV176 (GA106) GeForce RTX (3050, 3060)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV177 (GA107) GeForce RTX 3050
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NV192 (AD102) GeForce RTX 4090
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV193 (AD103) GeForce RTX 4080
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->NV190 family (Ada Lovelace)
|-
| <!--Description-->NV194 (AD104) GeForce RTX (4070, 4070 Ti)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV196 (AD106) GeForce RTX 4060 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV197 (AD107) GeForce RTX 4060
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
|}
==== nouveau mobile integrated ====
If you purchased a notebook with an NVidia sticker on it, most of the time you have a optimus based one, ie Intel CPU+GPU melded with Nvidia GPU, Optimus was slated at one point to go into desktop PCs but the industry ended up rejecting that concept
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|-
| GeForce 6100 nForce 405
| 0x
| 0x03D1 0x0242
| 0x0
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
|
|-
| <!--Description-->GeForce 6100 nForce 400
| <!--Vendor ID-->
| <!--Product ID-->0x03D2
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce 6100 nForce 420
| <!--Vendor ID-->
| <!--Product ID-->0x03D5
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce 6150 LE
| <!--Vendor ID-->
| <!--Product ID-->0x0241
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6150SE nForce 430
| 0x
| 0x03D0
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| working
|-
| <!--Description-->GeForce 6150
| <!--Vendor ID-->
| <!--Product ID-->0x0240
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7150M / nForce 630M
| <!--Vendor ID-->
| <!--Product ID-->0x0531
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7000M / nForce 610M
| <!--Vendor ID-->
| <!--Product ID-->0x0533
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7050 PV / NVIDIA nForce 630a
| <!--Vendor ID-->
| <!--Product ID-->0x053A 0x053B
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Geforce IGP 7025 nForce 630a
| 0x
| 0x053E
| 0x0
| <!--2D-->{{Yes|some}}
| <!--3D-->{{Yes|some}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No| }}
| some support on some chipsets
|-
| GeForce 7100 / nForce 630i (C73)
| 0x10de
| 0x07e1
| 0x0a2
| <!--2D-->{{Maybe}}
| <!--3D-->{{Maybe}}
| <!--Analogue-->{{Maybe}}
| <!--Digital-->{{Maybe}}
| <!--Laptop LCD-->{{N/A}}
| Icaros 2.0.3 and Gigabyte 73-pvm-s2h rev. 1.0 but will not boot on [https://ae.amigalife.org/index.php?topic=806.msg8765#new Acer x270 with Icaros 2.3]
|-
| <!--Description-->GeForce 7150 / NVIDIA nForce 630i
| <!--Vendor ID-->
| <!--Product ID-->0x07E0
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7050 / NVIDIA nForce 610i
| <!--Vendor ID-->
| <!--Product ID-->0x07E3
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Geforce IGP 8100 (nForce 720a)
| 0x
| 0x084F
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
|
|-
| GeForce 8100P
| 0x
| 0x0847
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
|
|-
| <!--Description-->Geforce 8200 8300 nForce 730a
| <!--Vendor ID-->
| <!--Product ID-->0x084A 0x0848 (GeForce 8300) 0x0849 (GeForce 8200) 0x084B (GeForce 8200)
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->working on some 8300's with Icaros 1.5 but others untested
|-
| <!--Description-->nForce 780a SLI
| <!--Vendor ID-->
| <!--Product ID-->0x084C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->nForce 750a SLI
| <!--Vendor ID-->
| <!--Product ID-->0x084D
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Nvidia Geforce IGP 9300 (nForce MCP7a)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->works
|
|-
| <!--Description-->9400 (ION)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->If AROS detects GPU chipset, works well
|-
| <!--Description-->9700M ()
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Geforce ION 2
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->works well
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce Go 6150
| <!--Vendor ID-->
| <!--Product ID-->0x0244
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6100
| <!--Vendor ID-->
| <!--Product ID-->0x0247
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6200
| <!--Vendor ID-->
| <!--Product ID-->0x0164 0x0167
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6400
| <!--Vendor ID-->
| <!--Product ID-->0x0166 0x0168
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->Sony Laptop
|-
| <!--Description-->GeForce Go 6800
| <!--Vendor ID-->
| <!--Product ID-->0x00C8
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6800 Ultra
| <!--Vendor ID-->
| <!--Product ID-->0x00C9
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600
| <!--Vendor ID-->
| <!--Product ID-->0x0144
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600 TE/6200 TE
| <!--Vendor ID-->
| <!--Product ID-->0x0146
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600
| <!--Vendor ID-->
| <!--Product ID-->0x0148
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600 GT
| <!--Vendor ID-->
| <!--Product ID-->0x0149
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7200
| <!--Vendor ID-->
| <!--Product ID-->0x01D6
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7300
| <!--Vendor ID-->
| <!--Product ID-->0x01D7
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->untested
|-
| <!--Description-->GeForce Go 7400
| <!--Vendor ID-->
| <!--Product ID-->0x01D8
| <!--Revision-->
| <!--2D-->
| <!--3D-->works 2D and 3d issues though
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7800
| <!--Vendor ID-->
| <!--Product ID-->0x098
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7800 GTX
| <!--Vendor ID-->
| <!--Product ID-->0x0099
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7950 GTX
| <!--Vendor ID-->
| <!--Product ID-->0x0297
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7900 GS
| <!--Vendor ID-->
| <!--Product ID-->0x0298
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7900 GTX
| <!--Vendor ID-->
| <!--Product ID-->0x0299
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7600
| <!--Vendor ID-->
| <!--Product ID-->0x0398
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7600 GT
| <!--Vendor ID-->
| <!--Product ID-->0x0399
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 6610 XL
| <!--Vendor ID-->
| <!--Product ID-->0x0145
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 6700 XL
| <!--Vendor ID-->
| <!--Product ID-->0x0147
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce 8700M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0409
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8600M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0425
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8400M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0426
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8400M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0427
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8400M G
| <!--Vendor ID-->
| <!--Product ID-->0x0428
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8800M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x0609
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8800M GTX
| <!--Vendor ID-->
| <!--Product ID-->0x060C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9500M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0405
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8600M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0407
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9650M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0408
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9400M GT
| <!--Vendor ID-->
| <!--Product ID-->0x042C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9300M G
| <!--Vendor ID-->
| <!--Product ID-->0x042E
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9100M G
| <!--Vendor ID-->
| <!--Product ID-->0x0844
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9800M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x0628
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9700M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x062A
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9800M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x062C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9600M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0647
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9600M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0648
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9600M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0649
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9500M G
| <!--Vendor ID-->
| <!--Product ID-->0x064B
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9300M GS
| <!--Vendor ID-->
| <!--Product ID-->0x06E5
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9200M GS
| <!--Vendor ID-->
| <!--Product ID-->0x06E8
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9300M GS
| <!--Vendor ID-->
| <!--Product ID-->0x06E8
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->NV50 (G80) Quadro FX (4600 (SDI), 5600)
Quadro FX (2800M, 3600M, 3700, 3700M, 3800M, 4700 X2), VX 200
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV94 (G94) 9700M GTS, 9800M GTS, GeForce G 110M, GT 130(M), GT 140, Quadro FX (1800, 2700M)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV84 (G84) 8700M GT, GeForce 9500M GS, 9650M GS
Quadro FX (370, 570, 570M, 1600M, 1700), NVS 320M
NV86 (G86) GeForce 8300 GS, 8400 (GS, M G, M GS, M GT), 8500 GT, GeForce 9300M G
Quadro FX 360M, NVS (130M, 135M, 140M, 290)
GeForce GTS 150(M), GTS 160M, GTS 240, GTS 250, GTX (260M, 280M, 285M), GT (330, 340)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV96 (G96) 9650M GT, 9700M GT
GeForce G 102M, GT 120
Quadro FX (380, 580, 770M, 1700M)
NV98 (G98) GeForce 8400 GS, GeForce 9200M GS, 9300 (GE, GS, M GS)
GeForce G 100, G 105M
Quadro FX (370 LP, 370M), NVS (150M, 160M, 295, 420, 450)
Quadro CX, FX (3800, 4800, 5800)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVA3 (GT215) GeForce GT (240, 320, 335M), GTS (250M, 260M, 350M, 360M) Quadro FX 1800M
NVA5 (GT216) GeForce GT (220, 230M, 240M, 325M, 330M), 315
Quadro 400, FX 880M, NVS 5100M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVA8 (GT218) GeForce 8400 GS, ION 2, GeForce 205, 210, G 210M, 305M, 310(M), 405
Quadro FX (380 LP, 380M), NVS (300, 2100M, 3100M)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVAA (MCP77/MCP78) GeForce 8100, 8200, 8300 mGPU / nForce 700a series, 8200M G
NVAC (MCP79/MCP7A) ION, GeForce 9300, 9400 mGPU / nForce 700i series, 8200M G, 9100M, 9400M (G)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVAF (MCP89) GeForce 320M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GT 605M, GT 610M GT 620M GT 630M GT 635M GT 645M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GTX 650M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GTX 1650 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2019 turing architecture - last old skool support pre Vulkan
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rtx 2050 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 ampere architecture best starting point for vulkan support
|-
| <!--Description-->rtx 2060 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rtx 4060 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
|}
====radeon.hidd====
Michel Shultz ''2D'' graphics driver (standard on most distributions but only for very old GPUs) and bearsofts updated 2013 around Icaros 1.3.1
3D is not implemented by AROS yet but could cover these AMD chipsets
<pre>
2014 SI AMD HD 7xxx
2016 GCN3rd AMD R5E R7E
2019 GCN5th AMD Vega 8
2022 RDNA1 AMD RX5500 desktop only
2023 RDNA2 AMD 680M 780M
2024 RDNA3 AMD 880M 890M
2025 RDNA3.5 AMD 8060S strix halo and AI
2027 RDNA4 AMD
</pre>
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! 2D
! 3D
! Analogue Output
! Digital Output
! Laptop LCD
! Comments
|-
| 7000 (r100)
| 0x1002
| 0x5159
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->{{Maybe|vga15 pin connection but not s-video}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.3
|-
| 7500 (rv200 but still r100 based)
| 0x1002
| 0x5157
| 0x
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->{{Yes|vga15}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.3
|-
| 8000 8500 (r200)
| 0x1002
| 0x514c (8500LE)
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.4
|-
| 9000 9100 9250 (r200)
| 0x1002
| 0x5964 (9000) 0x514d (9100)
| 0x0001
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->{{Maybe|VGA15 but not s-video}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.4
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| 9600 9800 (r300)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1
|-
| x300 x600 (r300)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1
|-
| x700, x800 ([http://en.wikipedia.org/wiki/Radeon_R600 r420])
| 0x
| 0x554d (R430 x800xl)
| 0x0
| <!--2D-->{{Yes|new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1 - x800 XL PCIE (problem with mouse-pointer, some part of the pointer is not transparent)
|-
| x1300 x1550 x1600 x1800 x1900 x1950 ([http://en.wikipedia.org/wiki/Radeon_R520 r520])
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes|new driver}}
| <!--3D-->{{no}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| HD2400 HD2600 HD2900 ([http://en.wikipedia.org/wiki/Radeon_R600 r600])
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|some features with new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 3.3 open CL 1.2 TeraScale architecture
|-
| HD3400 HD3600 HD3800 (r600)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|some features with new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->pci-e 2.0, openGL 3.3
|-
| HD4300 HD4500 HD4600 HD4700 HD4800 ([http://en.wikipedia.org/wiki/Radeon_R600 r700])
| 0x1002
| 0x
| 0x0
| <!--2D-->{{Maybe|but some later cards need 3D engine for faster and more flexible 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 3.3 - DDR3 - GDDR5 was one of AMD's aces for the 4800 series - 4670 liked -
|-
| HD6900 cayman series
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|some features with new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 3.3 open CL not mature (2014) -
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| HD5400 Series HD5430 HD5450 HD5470
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2010 openGL 3.3 openCL - GDDR3 -
|-
| HD5500 Series HD5550 HD5570 HD5600 Series HD5650 HD5670 HD5700 Series HD5750 HD5770
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 3.3 openCL - GDDR5
|-
| HD 5800 Series HD5850 HD5870 HD5900 Series HD5950 HD5970 - HD6xxx not NI chipset ([http://en.wikipedia.org/wiki/Evergreen_(GPU_family) r800 evergreen])
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 openGL 3.3 openCL - DDR5 pci-e 2.1 best avoided for all pci-e 1.0 mobos - Ati TeraScale2 architecture -
|-
| HD6450 [http://en.wikipedia.org/wiki/Northern_Islands_(GPU_family) Northern Islands chipset]
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> - DDR3 -
|-
| HD6600 Series HD6650 HD6570 HD6600 Series HD6650 HD6670
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2011 - DDR5 -
Radeon HD 8470 11 TeraScale 2
Radeon HD 8350 11 TeraScale 2
Radeon HD 7510 11 TeraScale 2
Radeon HD 6550D 11 TeraScale 2
Radeon HD 6530D 11 TeraScale 2
Radeon HD 6410D 11 TeraScale 2
Radeon HD 6370D 11 TeraScale 2
Radeon HD 6320 11 TeraScale 2
Radeon HD 6310 11 TeraScale 2
Radeon HD 6290 11 TeraScale 2
Radeon HD 6250 11 TeraScale 2
|-
| HD6800 Series HD6850 HD6870 HD6700 Series HD6790 to HD6990
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2011 - DDR5 - AMD TeraScale3 -
|-
| <!--Description-->HD7450-HD7670
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2012 OpenGL but not Vulkan
Radeon HD 7660D 11 TeraScale 3
Radeon HD 7560D 11 TeraScale 3
Radeon HD 7540D 11 TeraScale 3
Radeon HD 7480D 11 TeraScale 3
Radeon HD 6930 11 TeraScale 3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->HD7750 HD 7770 / R7 250X HD7850 HD7870 / R9 270X HD 7950 / R9 280 HD 7970 / R9 280X [http://en.wikipedia.org/wiki/Southern_Islands_(GPU_family) Southern Islands]
*AMD Radeon R7 250XE Cape Verde XT
*AMD Radeon R7 M465X Cape Verde
*AMD Radeon R9 255 Cape Verde PRX
*AMD Radeon HD 7750 Cape Verde PRO
*AMD Radeon R7 250E Cape Verde PRO
*AMD Radeon HD 8740 Cape Verde PRO
*AMD Radeon HD 7730 Cape Verde LE
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2012 pci-e 3.0 1st Gen GCN architecture -
|-
| <!--Description-->R5 430, FirePro W2100,
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2015 50W+ openGL openCL 1/3 speed of gtx750ti 1st gen gcn1
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->HD7790 [ Sea Islands ]
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 openGL 4.1 open CL - GCN2.0 Vulkan 1.0 introduced a Shader Engine (SE) comprising one geometry processor, up to 44 CUs (Hawaii chip), rasterizers, ROPs, and L1 cache and Graphics Command Processor for faster audio/video - suits Vulkan 1.1
|-
| <!--Description-->r5 240 240x (slow) R7 250 250x (faster) HD 7790 / R7 260 260X / R7 360 to R5 350 (fast) and last one R5 430 OEM Plus (slow again)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 50W+ openGL 4.x openCL 1.x Vulkan 1.0 GCN 1st gen -
|-
| <!--Description-->R9 290 / R9 390 R9 290X / R9 390X
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2014 openGL 4.x openCL 1.x 2nd Gen GCN Vulkan 1.1 architecture -
|-
| <!--Description-->R9 Fury Nano
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2015
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->r-200 series r8 275 285 295 375 [Volcanic Islands]
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 4.x openCL 1.x - GCN3 Vulkan 1.2
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Radeon™ RX 5700/5600/5500 Series and Radeon™ RX Vega Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 GCN 4 - OpenGL 4, Vulkan 1.3 -
|-
| <!--Description-->Radeon™ RX 400/500 Series like rx 580
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->Radeon™ Pro WX 9100, x200 Series and Radeon™ Pro W5700/W5500 Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Radeon™ RX 7900/7600 Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->Radeon™ RX 6900/6800/6700/6600/6500 Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|}
==== amd radeon mobile integrated ====
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|-
| <!--Description-->ATI RC410 [Radeon Xpress 200M]
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x5a62 0x5955 0x5974 (200m)
| <!--Revision-->0x00
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->
|-
| <!--Description-->Mobility Radeon 7500
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x4c57 (7500)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->
|-
| <!--Description-->Mobility Radeon 9000
| 0x1002
| 0x4966 (9000)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->
|-
| <!--Description-->Mobility Radeon 9500 9550 (rv360) 9600 (rv350)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon 9800 (rv420)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon X300 (RV370) X600 (RV380)
| 0x1002
| 0x (RV370) 0x5657 (RV380)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon X700 (RV410) X800 (RV423)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon X1200 (RS69M0)
| 0x1002
| 0x791f
| 0x0
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->X1200 IGP (RS690)
|-
| <!--Description-->Mobility Radeon X1300 X1350 X1400(rv515) X1600 (rv530) X1650 (RV535) X1800 (rv520) x1900 (rv570)
| 0x1002
| 0x71c7 (X1650)
| 0x009e
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon 2100
| 0x1002
| 0x796e (2100)
| 0x0
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{No|}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 2400 (rv610) HD2600 (rv630)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 3100 HD3200 HD3450 3470 (RS780MC RV620) 3670 (M86-XT RV635) HD3870 (M88-LXT RV670)
| 0x1002
| 0x9610 and 0x9612 (HD3200) 0x9614 (HD3300)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 4200 4250 (RV620)
| 0x1002
| 0x (HD4200) 0x9715 (HD4250)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 4330 4530 4550 (M92 RV710) 4650 (M96-XT RV730) 4670 RV730XT 4830 (M97 RV740) 4850 (M98 RV770)
| 0x1002
| 0x (HD4350) 0x9442 (RV770) 0x9490 (HD4670)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 530v (M92 RV710) HD 550v (M96 RV730)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->no support yet
|-
| <!--Description-->Mobility Radeon HD 5430 HD5650 (cedar Park LP)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->no support yet
|-
| <!--Description-->Radeon HD 6250 6290 6310 6320 6350M (Redwood Capilano PRO)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->no support yet
|-
| <!--Description-->AMD 7640G, 8450G, 8550G, 8650G Northern Islands
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 Last real support for old graphics standard before Vulkan takeover
|-
| <!--Description-->R5 M230 M240 M255 - R7 M260 M265 (Kaveri Crystal series with Mantle and HSA)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->2015 Maybe better with Vulkan
|-
| <!--Description-->R5E R7E
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->2016 bristol ridge GCN 3.0 IGP (Carrizo Mobile)
|-
| <!--Description-->AMD Vega 3, 6, 8, 11 iGP
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2018 raven ridge GCN 5th Gen
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->5500m 5600m 5800m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA1 NaviX1 Zen 2
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rx680m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA2 NaviX2 Zen 3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->phoenix apu 1103
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 RDNA3 NaviX3 zen 4
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
==== AMDGPU Vulkan desktop ====
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Kaveri 290 290X, 260 260X
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2015 AMDGPU Vulkan
|-
| <!--Description-->R9 285 / R9 380 R9 380X Fury / Fury X
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->opengl 4 opencl 1 3rd Gen GCN architecture
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX470 RX460 RX480 RX580 polaris10
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 opengl 4 opencl 2 4th Gen GCN architecture vulkan 1.3
|-
| <!--Description-->RX460 RX560D polaris11
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 opengl 4 opencl 2 4th Gen GCN architecture vulkan 1.3
|-
| <!--Description-->RX580 polaris20
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 opengl 4 opencl 2 4th Gen GCN architecture vulkan 1.3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX 5000 5500 Navi 1x
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RNDA 1
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX 6000 Navi 2x
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RNDA 2 Mesa 21.3 decode av1
|-
| <!--Description-->RX6000
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX 7000
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 RNDA 3 navi
|-
| <!--Description-->RX7000
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->RX9070 rx 9060 XT
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2025 rdna4 navi
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2026 udna (aka rdna5)
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
|}
==== AMDGPU Vulkan mobile ====
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->R5E R7E
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->2016 bristol ridge GCN 3.0 IGP (Carrizo Mobile)
|-
| <!--Description-->Vega iGP 3, 6, 8, 11
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2018 raven ridge - Graphics Core Next (GCN) 5th gen -
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->5500m 5600m 5800m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA1 NaviX1 Zen 2
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rx680m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA2 NaviX2 Zen 3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->phoenix apu 1103
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA3 NaviX3 zen 4
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
fyi if a notebooks with two graphic cards, the integrated Intel card (id 0x7d) for low power usage and a discrete Radeon card (id 0x56) which should be used for GPU-intensive applications. By default the Intel card is always used
[https://wiki.archlinux.org/title/ATI Gallium Radeon HD] is not ported yet but is [https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.9-AMDGPU-Stats really big] and complex so another solution may have to be [https://discuss.haiku-os.org/t/the-graphics-acceleration-can-of-worms/10515/5 found] like [https://discuss.haiku-os.org/t/vulkan-lavapipe-software-rendering-is-working-on-haiku/11363/10 vulkan] where support starts from very recent ISA GCN islands HD7000s cards only
*Vulkan
*Gallium
Vulkan software renderer allows to prepares the infrastructure for hardware rendering. Primary difference between software and hardware renderer is output to regular RAM vs GPU RAM, the rest is almost the same. It is possible to render to GPU RAM offscreen.
bare bones basics data flow
application,>>> api/opengl/vulkan>>>>, jit compiler, >>>>memory manger, >>>>gpu hardware
so you need to have a compiler that takes your api call/program/shaders/drawing commands and turns them into a program the gpu can render.
the vulkan to amd gpu compiler for shaders and textures is nearly os agnostic iirc as long as you have solid posix compliance
Unlike OpenGL, Vulkan does not depend on windowing system and it have driver add-on system with standardized API (Mesa also have OpenGL driver add-ons, but it have non-standard Mesa-specific API). OpenGL may need more work for windowing system related code at this point but developing Vulkan on real hardware is more strategic than developing OpenGL, since now Zink 3 running on Vulkan compensates for the lack of OpenGL support by giving performance similar to native accelerated OpenGL
RadeonGfx use client-server model with client-server thread pairs. For each client thread that calls 3D acceleration API, server side thread is created. If client thread terminates, server side thread also exit.
<pre>
Group 1
GeForce RTX 5090 5070 5060 5050
GeForce RTX 4090 4070 4060 4050
Group 2
GeForce RTX 2070
Radeon RX 7600
Quadro RTX 5000
Radeon PRO W6600
GeForce RTX 2060 12GB
Radeon PRO W7500
Quadro GP100
Radeon RX 6800S
GeForce RTX 3070 Laptop GPU
GeForce GTX 1080
GeForce RTX 3060 8GB
Quadro RTX 4000
Radeon Pro W5700
Radeon RX 6600
GeForce RTX 2080 (Mobile)
Radeon RX 7700S
Radeon RX 6700S
Radeon RX 6600S
Quadro RTX 5000 (Mobile)
GeForce GTX 1070 Ti
GeForce RTX 4050 Laptop GPU
Radeon Pro Vega 64X
Radeon RX 5700
Radeon RX Vega 64
GeForce RTX 2060
GeForce RTX 2070 Super with Max-Q Design
Group 3
Radeon RX 6600M
GeForce GTX 1070
Radeon RX 6650M
GeForce RTX 3060 Laptop GPU
Radeon RX Vega 56
Radeon RX 6700M
GeForce RTX 2080 with Max-Q Design
Radeon RX 6800M
GeForce GTX 980 Ti
Radeon R9 Fury
GeForce GTX 980
Quadro M5500
Radeon R9 390X
Radeon RX 580
Radeon RX 5500
Radeon RX 6550M
GeForce GTX 1660 Ti with Max-Q Design
GeForce GTX 780 Ti
GeForce GTX 970
Radeon R9 290X
Radeon RX 480
Radeon RX 5600M
Quadro RTX 3000 with Max-Q Design
Radeon R9 290X / 390X
Ryzen 5 4600HS with Radeon Graphics
Radeon R9 290
Radeon Pro 5500 XT
Radeon R9 M490 *
GeForce GTX 780
Radeon RX 6500M
Quadro M5500
GeForce GTX 1060 with Max-Q Design
Radeon RX 6500
Radeon RX 5300
Intel Arc A770M
GeForce GTX 1650 Ti
Radeon Pro 580X
Radeon RX 6400
GeForce RTX 2050
Ryzen 9 4900HS with Radeon Graphics
Radeon Ryzen 9 6900HS
GeForce GTX 980M
Quadro M5000M
Radeon RX 6300
GeForce GTX 1650 Ti with Max-Q Design
Radeon Pro 570
Ryzen 9 6900HS with Radeon Graphics
GeForce GTX 1050 Ti
Quadro M4000M
Radeon R9 280X 380X
GeForce GTX 1650 with Max-Q Design
GeForce MX570
Radeon R9 280X
Radeon R9 380
Radeon 780M
GeForce GTX 960
GeForce GTX 970M
Quadro M4000M *
GeForce GTX 680
Group 4
Radeon RX 6500M
Quadro M5500
Radeon Pro WX 7100
GeForce GTX 1060 with Max-Q Design
GeForce GTX 1650
Intel Arc A730M
Radeon HD 7970
Radeon R9 M395X
Radeon R9 M485X
Radeon R9 M480 *
Radeon R9 M295X
Radeon R9 M390X *
FirePro W7170M *
Radeon R9 M395
Radeon R7 370
Radeon RX 5500M
GeForce GTX 590
GeForce GTX 880M
GeForce GTX 950
Radeon R9 270X
GeForce GTX 660 Ti
GeForce GTX 760
GeForce GTX 780M
Quadro K5100M
GeForce GTX 680MX
Radeon HD 7870
GeForce GTX 965M
Quadro M3000M *
GeForce GTX 870M
Radeon R9 M290X
Radeon HD 8970M
Radeon Ryzen 7 7735U (680M), Radeon Ryzen 7 7735HS (680M 12C)
GeForce GTX 580
Radeon HD 6970
GeForce GTX 1050
GeForce GTX 680M
GeForce GTX 775M
GeForce GTX 1630
FirePro M6100
Radeon HD 7970M
Radeon R9 M390 *
GeForce GTX 750 Ti
Group 5
GeForce GTX 570
GeForce GTX 480
GeForce GTX 960M
Quadro M2000M *
Quadro K5000M
Quadro K4100M
GeForce GTX 770M
GeForce GTX 860M
GeForce GTX 675MX
GeForce GTX 950M
GeForce GTX 850M
Quadro M1000M
Radeon R9 M280X
Radeon HD 7950M *
GeForce GTX 560 Ti
Radeon HD 6870
GeForce GTX 470
GeForce GT 1030
GeForce MX330
Ryzen 5 PRO 5650GE with Radeon Graphics
Ryzen 7 5800HS
FirePro 3D V8800
GeForce MX250
Group 6
Radeon Pro WX 3200
Ryzen 7 PRO 5750G with Radeon Graphics
Radeon Ryzen 5 5600H
Ryzen 5 Pro 4650G with Radeon Graphics
Radeon Ryzen 7 5800U
Ryzen 7 7730U with Radeon Graphics
Radeon Ryzen 7 5825U
Radeon Pro WX 4150
Radeon Ryzen 5 PRO 4655G
Ryzen 5 4600G with Radeon Graphics
Radeon Ryzen 5 PRO 4655GE
GeForce GTX 485M
FirePro W6150M
Ryzen 7 5800U with Radeon Graphics
Ryzen 5 7530U with Radeon Graphics
Ryzen 7 4800U with Radeon Graphics
Radeon R9 M470
Ryzen 3 PRO 5350G with Radeon Graphics
Radeon RX Vega Ryzen 3 5300U
Ryzen 7 5825U with Radeon Graphics
Ryzen 5 PRO 4400G with Radeon Graphics
Radeon Ryzen 7 PRO 4750GE
Radeon Ryzen 7 4800U
FirePro V7900
Radeon HD 5970
Radeon Ryzen 7 7700X 8-Core
Radeon Ryzen 5 PRO 5650G
Radeon Ryzen 5 4400G
Radeon Ryzen 5 PRO 5650GE
Radeon RX 550X
FirePro V8800
Radeon RX Vega Ryzen 5 5500U
GeForce MX150
Quadro K3100M
Ryzen 7 PRO 5850U with Radeon Graphics
Radeon HD 6970M
Radeon R7 250X
Intel HD 5600
Ryzen 3 4300GE with Radeon Graphics
GeForce GTX 460
Ryzen 7 5700U with Radeon Graphics
Radeon Ryzen 5 7530U
Quadro K620
Ryzen 3 PRO 5350GE with Radeon Graphics
Intel Iris Pro P580
Intel UHD Graphics P630
Ryzen 5 4600H with Radeon Graphics
Ryzen 5 PRO 7530U with Radeon Graphics
Radeon HD 5870
Radeon HD 6870
Ryzen 7 4700G with Radeon Graphics
Ryzen 5 5600U with Radeon Graphics
Radeon HD 7770
Ryzen 3 Pro 4350G with Radeon Graphics
Radeon Ryzen 5 5625U
GeForce GTX 745
Radeon Ryzen 7 4850U Mobile
Radeon Ryzen 3 PRO 7330U
Quadro M600M
Radeon Ryzen 5 5500U
Ryzen 5 5560U with Radeon Graphics
Ryzen 7 4800H with Radeon Graphics
Group 7
GeForce 945M
Ryzen 5 PRO 4650GE with Radeon Graphics
FirePro M5100
Radeon Ryzen 5 5600U
Radeon Ryzen 5 PRO 4500U
GeForce GTX 580M
Ryzen 7 PRO 5875U with Radeon Graphics
Ryzen 3 5300GE with Radeon Graphics
Radeon R9 M385
Quadro 5000M
Radeon Ryzen 7 4700U
Ryzen 5 PRO 5650U with Radeon Graphics
Radeon Ryzen 7 PRO 4750U
Ryzen 7 4700U with Radeon Graphics
Ryzen 7 PRO 4750U with Radeon Graphics
FirePro V7800
Radeon R9 350
Ryzen 3 4300G with Radeon Graphics
Radeon Vega 11 Ryzen 5 PRO 3350G
Radeon Ryzen 5 5560U
GeForce GTX 460 SE
Radeon Pro W5500M
Radeon Vega 11 Ryzen 5 PRO 3400G
Ryzen 5 5500U with Radeon Graphics
Ryzen 5 PRO 4500U with Radeon Graphics
GeForce GT 645
GeForce GTX 765M
Radeon R9 M385X
Ryzen 5 5625U with Radeon Graphics
Ryzen 3 PRO 7330U with Radeon Graphics
Radeon HD 5850
Radeon Vega 11 Ryzen 5 PRO 2400G
Intel Iris Pro 580
Radeon HD 6850
Intel Iris Xe MAX
Radeon Ryzen 7 PRO 5875U
Radeon Ryzen 5 7600 6-Core
GeForce GTX 470M
Ryzen 3 5300G with Radeon Graphics
GeForce GTX 670MX
Radeon RX 640
Qualcomm Adreno Gen 3
Radeon R7 450
GeForce GTX 675M
Radeon Pro WX 4130
Intel Iris Xe MAX 100
Quadro 5000
Radeon RX 570X
Radeon HD 7700-serie
Ryzen 5 4600U with Radeon Graphics
Ryzen 3 PRO 4350GE with Radeon Graphics
Radeon Vega 8
Group 8
GeForce MX230
GeForce GTX 765M
Quadro K4000M
Iris Pro Graphics P580 *
Iris Pro Graphics 580 *
GeForce GTX 645
Quadro M520
GeForce GTX 570M
GeForce MX130
Radeon RX 540
Radeon Ryzen 5 PRO 5675U
Intel UHD Graphics 770
Radeon RX Vega 11 Ryzen 7 3750H
Radeon Vega 11 Ryzen 5 PRO 3400GE
Radeon HD 5850
GeForce GTX 675M
GeForce GTX 580M
Radeon HD 6990M
Radeon R9 M385X *
Radeon R9 M470X *
Radeon R9 M470 *
Radeon R9 M385 *
Radeon R9 M380 *
Radeon R9 M370X
Radeon R9 M275
Radeon HD 7770
GeForce GTX 485M
GeForce GTX 460 768MB
Radeon HD 6790
GeForce GTX 285M SLI
Quadro K3100M
FirePro W5170M *
GeForce GTX 670MX
Quadro 5010M
GeForce GTX 760M
GeForce GTX 670M
Group 9
GeForce 940MX *
Maxwell GPU (940M, GDDR5)
FirePro M8900
Radeon HD 6970M
Radeon R9 M270
Radeon HD 8870M
Radeon HD 7870M
Quadro K3000M
GeForce GTX 570M
FirePro M6000
FirePro M5100
Quadro K2100M
Radeon HD 5770
GeForce GTX 550 Ti
GeForce GTX 280M SLI
Radeon HD 6950M
Radeon R7 250
GeForce GT 755M
GeForce GTX 660M
GeForce 845M
Radeon HD 8850M
Radeon R9 M365X
Radeon R9 M265X
Ryzen 5 PRO 4400GE with Radeon Graphics
FirePro W5130M *
Radeon Vega 8 Ryzen 5 3500U
Radeon Vega 6 Ryzen 3 3300U
Radeon HD 7850M
Radeon HD 8790M
FirePro W4170M
FirePro W4190M
FirePro W4100
Quadro 4000M
GeForce GTX 470M
GeForce GTX 480M
GeForce GT 750M
Iris Pro Graphics 6200
Quadro K1100M
GeForce 940M
Radeon R9 M375
GeForce 930MX *
Radeon R7 M380 *
Radeon R7 M370
Quadro M600M *
GeForce GT 650M
Quadro K620M
GeForce 840M
Radeon R7 M275DX
GeForce GT 745M
Radeon HD 7770M
GeForce GTX 560M
Radeon R7 512 Cores (Kaveri Desktop)
Radeon R7 384 Cores (Kaveri Desktop)
Radeon R7 (Carrizo) *
Iris Pro Graphics 5200
GeForce GT 740M
GeForce 930M
Radeon HD 4850
Group 10
Iris Graphics 550 *
GeForce 830M
Iris Graphics 540
Quadro M500M *
Quadro K2000M
GeForce GTS 450
GeForce GTX 260M SLI
GeForce GT 735M
Mobility Radeon HD 5870
GeForce 825M
Quadro 5000M
FirePro M4000
FirePro M7820
Radeon HD 6870M
GeForce 9800M GTX SLI
Radeon HD 8830M *
Radeon HD 8770M
Radeon R7 M260X
GeForce GTX 460M
GeForce 920MX *
GeForce GT 730M
Radeon HD 7750M
GeForce GT 645M *
FirePro M4100
Radeon HD 8750M
Radeon R6 A10-9600P 4C+6G
Quadro 3000M
Radeon R7 M270
Radeon R7 M265
Quadro FX 3800M
GeForce GTX 285M
Mobility Radeon HD 4870
GeForce GT 640M
Radeon R7 (Kaveri)
Radeon R8 M365DX
Radeon R7 M460 *
Radeon HD 7730M
Radeon R7 M360
GeForce GTX 280M
Radeon HD 8690M
Quadro FX 3700M
Radeon R7 M340
GeForce 920M
Radeon R6 M340DX
HD Graphics 530
HD Graphics P530
Tegra X1 Maxwell GPU
Radeon R7 M260
Radeon R6 (Carrizo)
Mobility Radeon HD 4860
FirePro M7740
Mobility Radeon HD 4850
GeForce GTX 260M
GeForce 9800M GTX
Quadro FX 2800M
Radeon HD 8670D
Radeon HD 7690M XT
FirePro M5950
GeForce GT 640M LE
Radeon R6 (Kaveri)
Radeon HD 8650M *
Radeon HD 8730M
Radeon HD 6770M
GeForce GT 635M
GeForce GT 555M
Radeon R7 A10 PRO-7800B
Radeon HD 5670
Mobility Radeon HD 5850
Radeon HD 6850M
Quadro 2000M
GeForce 9800M GT
GeForce 8800M GTX
Quadro FX 3600M
GeForce GT 445M
GeForce GTS 360M
GeForce GT 240
Radeon R7 PRO A10-9700
Radeon HD 7690M
HD Graphics 5600
Radeon HD 8570D
Radeon HD 8670M
Radeon R6 M255DX
Radeon HD 7660D
Radeon HD 6750M
Quadro K1000M
GeForce GT 550M
Radeon HD 8590M *
GeForce GTS 260M
GeForce GTS 160M
GeForce 9800M GTS
GeForce GT 430
Radeon HD 6830M
Mobility Radeon HD 5830
Radeon HD 6730M *
GeForce 9800M GS
Mobility Radeon HD 4830
Mobility Radeon HD 5770
Radeon HD 6570M
Radeon HD 8650G
Radeon HD 7670M
GeForce GT 630M
Radeon HD 7560D
GeForce GTS 150M *
Radeon R5 M335
Radeon R5 M430 *
Radeon R5 M330
Radeon R5 M255
Radeon Vega 3
Quadro 1000M
GeForce 820M
FirePro W2100
HD Graphics 520 620
Iris Graphics 6100
GeForce GT 720M
GeForce 8800M GTS
Radeon R5 M240
Radeon R5 M320 *
Radeon R5 M230
Radeon R5 M315 *
Mobility Radeon HD 5750 *
Radeon HD 8570M
Radeon R7 PRO A10-8850B
HD Graphics 6000
Quadro K610M
Radeon HD 8550M
Iris Graphics 5100
GeForce GT 540M
Mali-T880 MP12 *
Radeon HD 8610G *
Radeon HD 6650M
HD Graphics 4600
Mobility Radeon HD 5730
HD Graphics 5500
Radeon R5 (Carrizo) *
Radeon R5 (Kaveri)
FirePro M5800
NVS 5400M
GeForce 710M
Radeon HD 7660G
GeForce GT 435M
HD Graphics 5000
Quadro K510M *
Radeon HD 5570
Radeon HD 6550M
Radeon HD 7590M *
GeForce GTS 350M
GeForce GTS 250M
Radeon HD 6630M
Radeon HD 7650M
FirePro M2000
Radeon HD 7570M
Radeon HD 7630M
Quadro FX 1800M
Mobility Radeon HD 5650
Radeon HD 8510G *
Radeon HD 6530M
Radeon HD 8550G
Quadro K500M *
GeForce GT 625M *
GeForce GT 620M
GeForce GT 525M
Radeon HD 6550D *
Radeon HD 7610M
Radeon HD 7620G
Radeon HD 8470D
Radeon HD 7640G
Adreno 530
GeForce ULP K1 (Tegra K1 Kepler GPU)
HD Graphics 4400
HD Graphics 510 515 *
NVS 5200M
Mobility Radeon HD 565v
Radeon HD 7550M
Mobility Radeon HD 4670
GeForce GT 425M
GeForce 9700M GTS
Radeon HD 6645G2 *
Quadro FX 2700M
GeForce GT 335M
Radeon HD 7600G
Mobility Radeon HD 3870
Mobility Radeon HD 4650
GeForce GT 220
GeForce GT 420M
Radeon HD 7530M *
Mobility Radeon HD 3850
GeForce GT 330M
Quadro FX 880M
Quadro NVS 5100M
GeForce GT 240M
Radeon HD 7490M *
HD Graphics 5300
Radeon HD 7510M *
GeForce Go 7950 GTX
Quadro FX 3500M
GeForce 8700M GT SLI
GeForce 9700M GT
GeForce GT 230M
Mobility Radeon HD 550v
Radeon HD 7480D
HD Graphics 4000
Mali-T760 MP8
Radeon HD 6620G
HD Graphics (Broadwell) *
Adreno 430
Radeon R5 (Beema/Carrizo-L)
Radeon R4 (Beema) (Kaveri)
HD Graphics (Skylake) *
Radeon HD 6450 GDDR5
Radeon HD 7500G
Radeon HD 8450G
Radeon HD 7470M
Radeon HD 6490M
Radeon HD 8400
Mali-T880 MP4
GeForce GT 520MX
Radeon HD 7520G
GeForce GT 325M
GeForce Go 7800 GTX SLI
GeForce 8600M GT SLI
GeForce Go 7900 GS SLI
GeForce GT 130M
NVS 4200M
GeForce Go 7900 GTX
Quadro FX 2500M
Radeon HD 8350G
Radeon HD 8330
GeForce 9650M GS
GeForce 9650M GT
Radeon R3 (Mullins/Beema)
GeForce 8700M GT
Quadro FX 1700M
Quadro FX 1600M
GeForce Go 7800 GTX
GeForce Go 7900 GS
Quadro NVS 320M
Quadro FX 1500M
GeForce 9600M GT
GeForce GT 220M
Quadro FX 770M
GeForce GT 120M
Radeon HD 7450M
GeForce 610M
GeForce 705M
Mali-T760 MP6
Radeon HD 6470M
FirePro M3900 *
GeForce GT 520M
Radeon HD 7420G
Mobility Radeon HD 3670
Mobility FireGL V5725
PowerVR GX6450
Adreno 420
HD Graphics (Haswell)
Radeon HD 6520G
Radeon HD 8310G *
GeForce 320M
GeForce GT 320M
Mobility Radeon HD 2600 XT
Mobility Radeon X1900
Mobility Radeon X1800XT
Mobility Radeon X1800
GeForce Go 6800 Ultra
GeForce Go 7800
GeForce 9600M GS
GeForce 9500M GS
Radeon HD 7400G
Radeon HD 6480G *
Mobility Radeon HD 2700
GeForce GT 415M
GeForce 410M
Radeon HD 7370M
Adreno 418
HD Graphics (Cherry Trail)
Radeon HD 6370M
Radeon HD 8280
Mobility Radeon HD 5470
Radeon HD 6450M
Radeon HD 7430M *
Mobility Radeon HD 3650
Mobility FireGL V5700
Mobility Radeon HD 5145
Mobility Radeon HD 545v
Radeon R6 (Mullins) *
Radeon HD 8240
Radeon HD 8250
Mobility Radeon HD 4570
Quadro FX 570M
Mobility Radeon HD 5450 *
Radeon R2 (Mullins/Beema) *
GeForce 8600M GT
Mobility Radeon HD 2600
HD Graphics 3000
Quadro FX 380M
GeForce 310M
GeForce G210M
NVS 3100M
GeForce 405M
GeForce 315M
GeForce Go 7600 GT
GeForce 9500M G
GeForce 8600M GS
NVS 2100M
GeForce Go 7700
GeForce Go 6800
Quadro FX Go 1400
Mobility Radeon X800XT
Radeon HD 6430M *
Radeon HD 6380G *
Mobility Radeon HD 5430
Radeon HD 8210
Mobility Radeon HD 540v
Mobility Radeon HD 4550
HD Graphics 2500
HD Graphics (Ivy Bridge)
Quadro NVS 310
Radeon HD 7350M *
Radeon HD 6350M *
Mobility Radeon HD 4530
Mobility Radeon HD 4350
Radeon HD 4350
GeForce 305M
Mobility Radeon X1700
Mobility FireGL V5250
Mobility Radeon X2500
GeForce Go 7600
Quadro NVS 300M
Mobility Radeon X800
Mobility Radeon X1600
Mobility FireGL V5200
Mobility Radeon 9800
GeForce Go 6600
Mobility Radeon X1450
Mobility Radeon X700
Mobility FireGL V5000
GeForce G 110M
Quadro NVS 295
Radeon HD 6330M *
Mobility Radeon HD 4330
GeForce 8400M GT
Quadro NVS 140M
HD Graphics 2000
GeForce 9500M GE *
GeForce 9400M (G) / ION (LE)
HD Graphics (Sandy Bridge) *
Adreno 330
PowerVR G6430
PowerVR GX6250
PowerVR G6400
HD Graphics (Bay Trail)
Mali-T628 MP6
Mali-T760 MP4
Chrome9HD *
Radeon HD 7340
Radeon HD 6320 *
Radeon HD 7310
Radeon HD 6310 *
Radeon HD 8180
Mobility Radeon HD 3470
GeForce 9300M G
ION 2 *
GeForce 9300M GS
Quadro FX 370M
Quadro NVS 160M
GeForce 9200M GS
Mobility Radeon HD 3450
Mobility Radeon HD 3430
Mobility Radeon HD 3410
Mobility Radeon HD 2400 XT
Radeon HD 4270
Radeon HD 4250
Radeon HD 7290 *
Radeon HD 6290 *
Radeon HD 4200
Graphics Media Accelerator (GMA) HD Graphics
Radeon HD 6250
Quadro NVS 150M
Quadro FX 360M
Mobility Radeon X1350
Mobility Radeon X1400
GeForce 9100M G
GeForce 8400M GS
Quadro NVS 135M
Mobility Radeon HD 2400
Radeon HD 3200
Radeon HD 4225 *
Radeon HD 4100 *
SGX554MP4
Mali-T628 MP4
Mobility Radeon HD 3400 *
Radeon HD 3100
GeForce 8400M G
Mali-T860 MP2
Quadro NVS 130M
GeForce 8200M G
Graphics Media Accelerator (GMA) 4700MHD
Graphics Media Accelerator (GMA) 4500MHD
Graphics Media Accelerator (GMA) 4500M
Mali-T604 MP4
GeForce Go 7400
Quadro FX 350M
Quadro NVS 120M
GeForce Go 7300
GeForce Tegra 4 *
PowerVR G6200
Adreno 405 *
Quadro NVS 110M
Mobility Radeon X600
Mobility FireGL V3200
Mobility FireGL V3100
Mobility Radeon HD X2300
Mobility Radeon 9700
Mobility FireGL T2e
Mobility Radeon X1300
GeForce4 4200 Go
Mobility Radeon 9600
Mobility FireGL T2
Mobility Radeon 9550
GeForce Go 7200
GeForce Go 6400
Mobility Radeon X300
GeForce Go 6250
GeForce Go 6200
GeForce FX Go 5700
Quadro FX Go 1000
GeForce FX Go 5600 / 5650
Radeon Xpress X1270
Radeon Xpress X1250
Radeon Xpress X1200
Graphics Media Accelerator (GMA) X3100
Mali-T624
Adreno 320 *
Mali-T760 MP2
Mali-T720 MP4
Mali-450 MP4
Graphics Media Accelerator (GMA) 3650 *
GeForce 7190M *
GeForce 7150M
Radeon Xpress 1150
GeForce Go 6150
GeForce Go 6100
GeForce 7000M
Graphics Media Accelerator (GMA) 3600 *
Mobility Radeon 9200
Mobility FireGL 9000
GeForce FX Go 5200
Mobility Radeon 9000
GeForce 4 488 Go
GeForce 4 460 Go
GeForce 4 440 Go
GeForce 4 420 Go
Graphics Media Accelerator (GMA) 3150
Graphics Media Accelerator (GMA) 950
SGX545 SGX544MP2 SGX543MP2 *
Mali-T720 MP2
Mali-T720
Adreno 302 304 305 306
Mobility Radeon 7500
Mobility FireGL 7800
Graphics Media Accelerator (GMA) 900
Radeon Xpress 200M
Radeon Xpress 1100
Mirage 3+ 672MX
Mirage 3 671MX
Mali-400 MP4 *
GeForce ULP (Tegra 3) *
VideoCore-IV *
Adreno 220 225*
Vivante GC1000+ Dual-Core
Mali-400 MP2 *
GeForce ULP (Tegra 2) *
Graphics Media Accelerator (GMA) 600 *
SGX540 *
Graphics Media Accelerator (GMA) 500
Adreno 205 *
Adreno 203 *
GC800 *
SGX535
SGX531
SGX530
Adreno 200 *
Mali-200 *
GeForce 3 Go *
GeForce 2 Go 200 / 100
Mobility Radeon 9100 IGP
Mobility Radeon 9000 IGP
Mobility Radeon M7
Mobility Radeon M6
Chrome9 HC
Extreme Graphics 2
Mobility Radeon 7000 IGP
Radeon IGP 340M
Radeon IGP 320M
S3G UniChrome Pro II
S3G UniChrome Pro
Castle Rock
Mirage 2 M760
Mirage M661FX
S3 Graphics ProSavage8
Mobility 128 M3
SM502 *
</pre>
Not supported on AROS
*OpenGL4 GPU must have 64-bit floating point FP64 math support, which is a hard requirement for GL 4.0. The max last revision opengl 4.6 (2017) on [https://wiki.gentoo.org/wiki/AMDGPU AMDGPU] RX 5000's / 6000s ([https://forum.batocera.org/d/7491-enable-opengl-46-and-vulkan-for-an-old-radeon-video-card RDNA] might come to AROS) but Intel UHD, Iris Plus or Xe, Nvidia RTX (will not)
*OpenGL3 last revision 3.3 (2011)
Some support on AROS
*OpenGL2 nvidia-nouveau,
*OpenGL1 intel gma950,
Kernel-space drivers like '''radeon''' (older AMD driver for older GPUs), '''amdgpu''' (newer driver for newer GPUs, allows using a few new features), i915, nouveau and a few others. They are what handles the gory details of talking to the GPU itself (writing to proper registers, handling its memory directly, configuring outputs, and so on). Unfortunately most of what they're exposing can be only consumed by a single user of that GPU, which is why we need...
DRM and DRI (Direct Rendering Manager/Infrastructure) controls access to the GPUs, provides interfaces for talking to the GPU concurrently by multiple apps at once (without them breaking each other) and lets the system perform the most basic tasks like setting proper resolution and such if no userspace apps understand how to talk to the GPU exposed. DRI and DRM expose the GPU interfaces mostly as-is, not in a "vendor-neutral" portable way - if you don't have an application developed specifically for a GPU you have, it won't work.
"let's create a vendor-neutral interface for graphics so that apps can ignore the GPU-specific bits and get right to the drawing!" - which is what OpenGL is. User-space drivers implement the OpenGL specification and expose it as an OpenGL library to apps (like games, browsers, etc) instead of the GPU. Mesa is the most popular collection of open-source user-space drivers and contains a few user-space drivers for different GPU families: '''radeonsi''' for most modern AMD GPUs (and '''r600g''', r300g and others for older ones), '''i915/i965''' for old/new Intel GPUs and '''nouveau''' for Nvidia GPUs.
There's also Gallium, which is a bunch of utilities and common code shared among these drivers - if certain things can be done once and work everywhere, they'll land in Gallium and benefit all the drivers. Most Mesa drivers use Gallium (radeonsi, nouveau, software renderers), some don't (intel after gma950).
Displaying 2D windows supports device-specific 2D drivers as well, but nowadays most of these are no longer needed as the modesetting can handle most hardware on its own. As the DRM/DRI got some additional interfaces for what used to be hardware-specific (setting resolutions, refresh rates, etc) and software requiring accelerated 2D drawing was optimized OpenGL-based renderers, dedicated 2D acceleration is slowly going away. Since around 2012, the 3D part of the graphics card deals with 2D operations.
Modern GPUs can also decode video!? There's VDPAU (NVIDIA & AMD GPUs) and VA-API (AMD & Intel GPUs) that can also talk to the GPU exposed via DRM/DRI and issue proper commands to decode/encode a given video stream. Those drivers are GPU-specific too.
So let's say you have some example GPUs, here's how example stacks could look like:
* AMD Radeon HD8750: amdgpu -> DRM/DRI -> Mesa (radeonsi)
* AMD Radeon HD4850: radeon kernel driver -> DRM/DRI -> Mesa (r600g) -> games/apps/etc.
* NVIDIA GeForce 460: nouveau kernel driver -> DRM/DRI -> Mesa (nouveau) -> games/apps.
* Intel GMA950: i915 kernel driver -> DRM/DRI -> Mesa (i945) -> games/apps.
{| class="wikitable sortable" width="90%"
! width="15%" | Description
! width="15%" | Analog Output
! width="15%" | Digital Output
! width="15%" | Laptop LCD
! width=30%" | Comments
|-
| <!--Description-->Fudomi GC888A
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->1080p 100in throw projector
|-
| <!--Description-->Vamvo VF320 (720P)
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->720p 90in
|-
| <!--Description-->Happrun H1
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->1080p 90in
|-
| <!--Description-->Umbolite Magcubic HIPPUS HY320 Mini
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->720p 100in
|-
| <!--Description-->Zentality A10 Plus
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->720p 110in
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->nexigo nova mini
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->nebula mars 3
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->epson lifestudio flex plus portable projector
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->dangbei freedo
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->benq gv50
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
Unless your computer uses a Firewire chipset manufactured by Texas Instruments, FireWire interfaces are likely to act buggy.
AROS is unlikely to ever support FireWire.
Bluetooth is similarly unlikely to be ever supported due to huge cost to be certified.
No, x86 PCMCIA card.resource at the moment. Writing card.resource would be a similar amount of work to writing a typical driver. However, it might be complicated by having to support a variety of PCMCIA-controller chipsets like TI PCI1225, PCI1410, PCI1420, 1450, PCIxx12 and O2, etc. m68k card.resource does not really have many higher level functions, most functions are really simple or poke Gayle registers directly. only exception is CopyTuple(). Amiga card.resource has one significant flaw: it's single-unit. would need card.resource and pccard.library. There was talk in the past of designing a new API for PCMCIA because card.resource only supports one slot, but since most modern laptops only have one slot anyway, I think it might be worthwhile to implement card.resource as-is (at least as a first step). pccard.library would be trivial to port. So, a new API is needed.
<pre>
HDMI (licensing fee)
1.4 4K @ 30Hz
2.0 4K @ 60Hz
2.1 48Gbs for 4K @ 120Hz, 8K @ , VRR, etc
</pre>
<pre>
DisplayPort (VESA introduced)
1.4 4K @ 60Hz
2.1 96Gbs for 4K @ 240Hz, 8K @ 120Hz. MST daisy chain multiple monitors,
</pre>
op529k67fvlgkxj3vc6b8ds69o7aq4z
4640110
4640102
2026-06-13T15:21:51Z
Jeff1138
301139
4640110
wikitext
text/x-wiki
Google translation into [http://translate.google.com/translate?hl=en&sl=auto&tl=de&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support German], [http://translate.google.com/translate?hl=en&sl=auto&tl=fr&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support French], [http://translate.google.com/translate?hl=en&sl=auto&tl=nl&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Dutch], [http://translate.google.com/translate?hl=en&sl=auto&tl=it&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Italian], [http://translate.google.com/translate?hl=en&sl=auto&tl=es&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Spanish], [http://translate.google.com/translate?hl=en&sl=auto&tl=hi&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Hindi],
[http://translate.google.com/translate?hl=en&sl=auto&tl=zh-CN&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Chinese Simplified],
[http://translate.google.com/translate?hl=en&sl=auto&tl=pl&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Polish],
[http://translate.google.com/translate?hl=en&sl=auto&tl=ru&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Russian],
{{ArosNav}}
[[#Audio Chipsets]]
[[#Graphic GFX Chipsets]]
[[#Future]]
==x86 Native Environment==
AROS should run on almost any i386 PC hardware so long as the CPU is newer than an i486, and has a "Floating Point Unit (FPU)". Ideally around 700Mhz and above with at least 256MB of memory is recommended for desktops and around 1GHz and at least 256MB for laptops/notebooks/netbooks. For web browsing, etc above 1GB is usually needed and offers the option to run web browsers, media players and other hard disk heavy usage from RAM: disk.
Motherboards supported
* Most Intel mobos are supported (Skt 775 is ok but newer is better) - additional pci / pci-e cards may be needed for networking, audio, etc
* AMD based socket 939 am2 am2+ am3+, fusion and am4 ryzen based systems work but additional pci / pci-e cards may be needed
Supported graphics cards (gfx)
* Nvidia 2D and 3D 2005-2017.
64bit AROS Nouveau covers '''2D''' 8xxxgs and higher to GTX 900s and '''3D''' from .
32bit AROS supports '''2D''' from TNT through to fermi gtx5xx and '''3D''' acceleration fx5xxx to gtx4xx.
* Intel GMA 2D and 3D 2006-2009.
'''2D''' for many old netbooks and motherboards. '''3D''' for many early netbooks and motherboards
* AMD/ATI 2D only and '''no 3D'''. 1999-2005.
Desktop ie external monitor support only (no laptop internal support) for very early Radeon 7000 through to x600. Experimental 2D version for up to HD3xxx came later
* VESA 2D fallback modes for all graphic cards (GPUs) and with [http://www.youtube.com/watch?v=HKCHZFYj9Kk screen dragging].
It's worth noting however that support isn't guaranteed. Nor will potential power of a card reflect its performance under AROS.
Sound wise there are
* HDaudio support for onboard intel and AMD netbooks, ultrabooks, notebooks and motherboards (2005 to 2020)
* some AC97 codec support for very old motherboards and laptops (ie pre 2004)
* PCI and some PCI-E C-Media CMI8738 for desktop plugin cards
* PCI Creative Soundblaster EMU10K1 cards [http://amigaworld.net/modules/news/article.php?storyid=2512 SBLive]
* PCI semi professional some early VIA Envy24 desktop sound cards
* PCI Sound Blaster 128 aka SB16
Supported [http://en.wikibooks.org/wiki/Aros/Platforms/x86_Network_support network] which could be desktop, laptop, etc
* PCI-E Realtek rtl8169 which also includes the rtl8111 and rtl8110
* PCI Realtek rtl8139 and includes rtl8101 and rtl8100
* PCI intel pro100
* Broadcom 44xx 10/100 integrated in laptops around 2005
* VIA 10/100
* 3com Etherlink 10/100
* Realtek rtl8029 10mbit
Wireless wifi
* atheros 5000 wireless
*realtek 8187 usb
It is very hard to recommend a completely supported motherboard because as soon as newer motherboards arrive so their features change subtly, often introducing non supported parts like ethernet and audio. It is a moving target.
* mini-itx motherboard will only get you 1 pci or pci-e slot
* micro mATX or uATX will have more, typically 2 pci-e or pci slots which helps if any onboard features are not supported.
* full atx will have more slots available
'''N.B''' It is frustrating when a piece of hardware is not supported. Hardware documentation can run to over 100 pages and a lot of hardware do not have any public documentation anyway. Chips from different manufacturers for sound, graphics, SATA, etc. vary just as much, unless they follow a standard such as [https://github.com/acidanthera/AppleALC/wiki/Supported-codecs HDAudio codecs], AHCI etc.
Coding drivers is a far cry from Hello World programs or even a port of existing software. If you do actually want to try then get a hold of documentation on the relevant hardware and start there. Alternatively you could try to find some '''BSD''', MIT or MPL licence drivers as a point of reference. Please , do not think you can just adapt strings in a driver for different strings, it does not work that way. You will '''need''' to start from scratch for each new bit of hardware. Device driver programming require '''embedded''' skills, like manipulation of bits within registers, good debugging skills, dealing with interrupts, lots of patience, etc.
The following specific chipsets and drivers are also available - use Tools/PCITool to confirm Vendor and Product IDs - Please let us know any mistakes or any information to be added, to this General Chat list on [https://arosworld.org/ AROS World]
: Brief Timeline
: 2000-12-06 HIDD first mouse.hidd completed ([http://msaros.blogspot.com/ Michal Schulz])
: 2001-03-31 BOOT first boot from floppy disk with IDE device
: 2001-10-30 BOOT first cd bootable version
: 2002-01-27 HIDD first pci.hidd added (Michal Schulz)
: 2002-04-13 BOOT software HDToolBox added ()
: 2003-04-03 HIDD vesa2.hidd graphic modes added ()
: 2004-03-08 HIDD new pci and ata (pata) devices worked on (Michal Schulz)
: 2004-03-17 HIDD nVidia 2D driver appears (Michal Schulz)
: 2005-01-05 AHI AHI v6 audio system ported (Martin Blom)
: 2005-01-06 AHI SBLive SoundBlaster Live driver ported (Georg Steger)
: 2005-02-04 AHI AC97 playback only driver added (Michal Schulz)
: 2005-06-27 NIC amiTCP stack ported with 3com, NE2000, prism2 drivers (Neil Cafferkey)
: 2005-08-25 NIC nForce2 support added (Michal Schulz)
: 2005-12-24 NIC Intel Pro100 network driver added (Neil Cafferkey)
: 2006-03-25 HIDD ATI radeon 2D driver added (Michal Schulz)
: 2007-03-06 HIDD vesa 1.0 video driver added (Pavel Fedin)
: 2007-03-08 HIDD dospackets and FAT filesystem (Rob Norris)
: 2007-03-21 HIDD usb initial commit (Michal Schulz)
: 2007-10-01 BOOT Installer added (Neil Cafferkey)
: 2007-11-29 PORT 64bit x86 added (Michal Schulz)
: 2008-04-12 BOOT GRUB2 added (Alain Greppin and Nick Andrews)
: 2008-08-26 NIC RTL8139 added ([http://kalamatee.blogspot.com/ Nick Andrews])
: 2008-10-22 PORT to SAM440ep (ppc) (Michal Schulz)
: 2009-02-25 PORT to efika (ppc) (Michal Schulz)
: 2009-05-18 HIDD poseidon usb2.0 stack ported to AROS (Chris Hodges)
: 2009-11-18 NIC RTL8169 network driver arrived (Nick Andrews and [http://pagesperso-orange.fr/franck.charlet/oldnews.html Franck Charlet])
: 2009-12-23 AHI HDAudio based Atom CPU and netbook audio driver arrived (Davy Wentzler)
: 2010-03-09 BOOT USB pendrive stick booting available (Neil Cafferkey)
: 2010-05-26 HIDD Intel GMA900 2D graphics card support (Michal Schulz)
: 2010-09-03 NIC Wireless PCI based NIC arrived (Neil Cafferkey)
: 2011-04-30 HIDD Nvidia 2D and 3D nouveau graphics card support (Deadwood)
: 2011-08-30 HIDD Radeon 2D enhanced AMD driver arrives (Bearsoft)
: 2011-09-17 NIC Wireless USB realtek arrives (Neil Cafferkey)
: 2011-12-09 HIDD Intel 945G 3D Gallium graphics support (Sami)
: 2013-02-25 AHI AC97 VIA 686 audio support (Davy Wentzler and Neil Cafferkey)
: 2013-03-31 PORT early Raspberry PI native support (Nik Andrews)
: 2014-01-16 AHI Envy24 audio chipset support (Davy Wentzler and Neil Cafferkey)
: 2017-02-17 PORT Symmetric MultiProcessing smp added for x86 64bit (Michal Schulz)
: 2018-10-20 PORT Big Endian ARM
: 2021-11-26 NIC Broadcom 44xx ethernet (Neil Cafferkey)
: 2023-01-12 NIC Nvidia MCP61 ethernet (Neil Cafferkey)
: 2025-11 HIDD xHCI USB3 and isoc (Nik Andrews)
[[#top|...to the top]]
===Audio Chipsets===
'''If sound beeps in AHI prefs after Music set then some support is there. Select more than one channel for multiple audio streams, set frequency up to 44 kHz or higher and set the volume if not already set. Ensure you set the music unit 0 to 3 which allows the extra features of the audio card like microphone, line-out, etc).'''
====1996-2000 sb128.audio aka SB16 PCI====
*2021 5.27
as per CREATIVE's website, the model number is the first two digits on the front and first two digits on the back. my card says CT4810 and 161TK110B 995; this translates to CT4816 as the model.
The original AudioPCI 3000 card with the ES1370 had a master clock crystal for 44.1 kHz (22.5792 MHz), used an AKM codec (AK4531, non-AC97) and had 4 channel output; Creative later modified the design with a crystal for 48 kHz (24.576 MHz) and Sigmatel AC97 codec (a CT4700 SB128 with a CT5507 chip, AK4531, 22.5792 MHz crystal and TDA7360 speaker power amp). The issue with these cards involved never quite eliminate the effects of resampling on the 64V, it also shows signs of undersized coupling caps. These Ensoniq cards automatically engaged headphone amplifier (with a 4565 opamp).
Porting involved [http://repo.or.cz/w/AROS.git/commit/b60abd12967144a844980c422ea9e99c056eabca 40897], [http://repo.or.cz/w/AROS.git/commit/b7d6511fca6430a63fbaaa390b4f51bf0203a460 40898 configure], [http://repo.or.cz/w/AROS.git/commit/f51034cd22759a4ec3a2547bddb3a7169d956eaa 40900 bugs], [http://repo.or.cz/w/AROS.git/commit/4f43fc38e3489ea45d12b7b5ba6fff50b69c5746 40901 further bugs], [http://repo.or.cz/w/AROS.git/commit/d23c78aec75f049484b6916d27b6804ce858bb2c 40913 memory IO fixes], [http://repo.or.cz/w/AROS.git/commit/d256860fe3035016952e88d143c6f2611997f2f3 40914 irq fix].
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| Ensoniq AudioPCI 1000
| 0x1274
| 0x5000
|
| {{unk}}
| {{unk}}
| untested - es1370 (u?) AK4531 (u?)
|-
| Ensoniq AudioPCI
| 0x1274
| 0x5000
| 0x00
| {{yes}}
| {{maybe}}
|
|-
| CT4700 Sound Blaster PCI 64 (audioPCI 3000)
| 0x1274
| 0x5000
| 0x7c
| {{yes}}
| {{maybe}}
| works - opamp JRC4565(u?) [http://en.wikipedia.org/wiki/Ensoniq_ES1370 es1370] (u?)
|-
| CT4750 Sound Blaster 64/PCI
|
|
|
| {{unk}}
| {{unk}}
| untested - 4565-1056W (u1) stac9708t(u2) [http://arstechnica.com/civis/viewtopic.php?f=6&t=916891 ct5880-dcq] (u3) 24wc012 (u4)
|-
| CT4751 (SB128PCI)
| 0x1274
| 0x8001
|
| {{unk}}
| {{unk}}
| untested - [http://en.wikipedia.org/wiki/Sound_Blaster#Ensoniq_AudioPCI-based_cards es1371] (u?)
|-
| CT4810 Creative AudioPCI64V
| 0x1274
| 0x1371
| 0x06
| {{yes}}
| {{maybe}}
| works
|-
| CT4811 (SB Vibra 128)
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4812 (Vibra 128)
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4813
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4815
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4816 es1373 (vibra 128)
|
|
|
| {{unk}}
| {{unk}}
| untested but this card has creative's ES1373 as the main chip(U1). it is also different from the other CT4810 (vibra128) in that it does not have a second chip in U2 position. Also there is only one jumper JP1 (2X3).
|-
| CT5801 HP
|
|
|
| {{unk}}
| {{unk}}
| untested - es1373 (u3)
|-
| CT5803 Gateway
| 0x1274
| 0x1371
| 0x08
| {{yes}}
| {{maybe}}
| works 4565-0005b jrc (u1) 4297a-jq ztae0c0002 (u2) es1373 (u3)
|-
| CT4740
| 0x1274
| 0x1371
| 0x08
| {{yes}}
| {{yes}}
|
|-
| CT5805 Compaq OEM Premier Sound Presario 7
|
|
|
| {{unk}}
| {{unk}}
| untested - es1373 (u3)
|-
| CT5806 (Sound Blaster AudioPCI 128D)
|
|
|
| {{unk}}
| {{unk}}
| untested - 4297A-JO EP (u?) ZTAPWC9933 (u2) es1373 (u3)
|-
| CT5807 Dell OEM Dimension 8100
|
|
|
| {{unk}}
| {{unk}}
| untested - es1373 (u?)
|-
| CT5808
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4730 Sound Blaster AudioPCI 64V Ectiva EV1938
| 0x1102
| 0x8938
|
| {{unk}}
| {{unk}}
| untested
|-
| CT5880 on various motherboards
| 0x1274
| 0x5880
|
| {{unk}}
| {{unk}}
| untested [http://www.xbitlabs.com/articles/mainboards/display/ga-6rx.html Gigabyte GA-6RX] (VIA ApolloPro 266 2001], Gigabyte GA-6VM7-4E mobo, [http://active-hardware.com/english/reviews/mainboard/ga-7vtx.htm Gigabyte GA-7VTX] (KT266 2001), Gigabyte [http://www.amdboard.com/gigabytega7vtxh.html GA-7VTXH] (KT266A 2001), [http://www.amdboard.com/gigabytega7vrxp.html Gigabyte 7VRXP] mobo (KT333 2002), MSI MS-6309, MS-6318, MS-6337 (815E Pro), MS-6339 (850Pro) and MS-6340, PCChips Motherboard M571 TXPRO, Soltek SL-65ME+,
|-
| VMware Virtual Workstation(TM)
| 0x1274
| 0x1371
| 0x02
| {{Yes|but not Hi-Fi modes}}
| {{maybe}}
| works
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
<pre>
Revision 0x04 = ES1371 REV_ES1373_A
Revision 0x06 = ES1371 REV_ES1373_B
Revision 0x07 = ES1371 REV_CT5880_A
Revision 0x02 = CT5880 REV_CT5880_C
Revision 0x03 = CT5880 REV_CT5880_D
Revision 0x04 = CT5880 REV_CT5880_E
Revision 0x09 = ES1371 REV_ES1371_B
Revision 0x00 = EV1938 REV_EV1938_A
Revision 0x08 = ES1371 REV_ES1373_8
</pre>
====1999-2001 via-ac97.audio====
*2021 5.10
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| <!--Description-->694X with 686A KT133 PM133 or 693A with VT8231
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3058
| <!--Revision-->
| <!--Playback-->{{Yes| }} redirects earphones correctly
| <!--Recording-->{{Yes| }}
| <!--Comments-->audio controller works but depends on the underlying invisible codec used see AC97 section
|-
| <!--Description-->686B KT133A with VT8231
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3058
| <!--Revision-->0x50
| <!--Playback-->{{Yes|}} reroutes ear pieces right
| <!--Recording-->{{Yes|}}
| <!--Comments-->audio controller works but depends on the underlying codec used see AC97 section below
|-
| <!--Description-->686C
| <!--Vendor ID-->0x1106
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->untested
|-
| <!--Description-->KM266 or KT266 with VT8233, KT266A with VT8233A, VT8233C
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3059
| <!--Revision-->0x10
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->KM333 KT333 with VT8235
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3059
| <!--Revision-->0x30
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
| <!--Description-->KM400 KT400 with VT8237, KT600 with VT8237R,
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3059
| <!--Revision-->0x40 0x50 0x60
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
|}
====1998-2003 emu10kx.audio - Creative Labs SoundBlaster Live! and Audigy====
*2021 6.5
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| PCI512 CT4790 (emu10k1)
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested (1st Gen)
|-
| Live CT4620
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Live CT4760
| 0x1102
| 0x0002
| 0x07
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| playback works
|-
| Live Value CT4670
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| works plays stereo (2nd Gen)
|-
| Live Value DELL CT4780
| 0x1102
| 0x0002
| 0x06
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| plays/records stereo - untested 4.1mode
|-
| Live Value Compaq CT4830
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{Maybe}}
| <!--Recording--> {{unk}}
| not working
|-
| Live Value CT4831
| 0x1102
| 0x0002
| 0x00
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Live Value CT4832
| 0x1102
| 0x0002
| 0x07
| <!--Playback--> {{yes}}
| <!--Recording--> {{partial|Line-In only}}
| works
|-
| Live Value CT4832
| 0x1102
| 0x0002
| 0x08
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| works
|-
| Live Value HP CT4870
| 0x1102
| 0x0002
|
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| Works
|-
| Live Value Gateway CT4871
| 0x1102
| 0x0002
|
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Live! Platinum 5.1 SB0060
| 0x1102
| 0x0002
| 0x00
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
| plays audio/records, untested 5.1 (3rd Gen)
|-
| Live 5.1 SB0100 -SFF
| 0x1102
| 0x0002
| 0x00
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| works
|-
| Live 5.1 Player SB0220
| 0x1102
| 0x0002
| 0x0a
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
| plays audio/records stereo, untested 5.1
|-
| Live 5.1 Digital SB0228
| 0x1102
| 0x0002
| 0x0a
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
| working
|-
| Audigy SB0090 (emu10k2)
| 0x1102
| 0x0004
|
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| <!--Description-->Audigy SB0230
| <!--Vendor ID-->0x1102
| <!--Product ID-->0x0004
| <!--Revision-->0x03
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Yes|Mic only}}
| <!--Comments-->5th Dec 2012 - untested optical tos link. contains also IEEE1394/Firewire (untested)
|-
| Audigy 2 Platinum 6.1 SB0240 SB0250 EMU10K2.5
| 0x1102
| 0x0004
| 0x04
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| works
|-
| Audigy 2 PRO SB0280 EMU10K2.5
| 0x1102
| 0x0004
|
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Audigy 2 ZS SB0350
| 0x1102
| 0x0004
| 0x04
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
|
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| Live 5.1 DELL SB0200 SB0203 emu10kx
| 0x1102
| 0x0006
| 0x0
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
|
|-
| Live 24bit SB0410
| 0x1102
| 0x0007
| 0x
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Live 24bit DELL SB0413
| 0x1102
| 0x0007
| 0x
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy LS SB0310
| 0x1102
| 0x0007
| 0x0
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy SE 7.1 SB0570
| 0x1102
| 0x0007
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 2 ZS SB0320 SB0360 (PRO)
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 2 VALUE SB0400
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 4 VALUE SB0610
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 4 PRO SB0380
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| EMU E-MU 0404 PCI (not USB) EM8852
| 0x1102
| 0x000
| 0x0
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver but linux support needs firmware
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
the green jack is for the main speaker pair AND headphones, so manual switching will be required
If your card is wired for the "AC97" standard, then it's up to your headphone jack to switch the green speaker output in and out
the headphone jack has Normally-closed contacts that will open on insertion, which breaks the signal path back to the sound card (FP_RETURN)
====2000-2010 cmi8738.audio - C-Media====
*2021 5.20
;Read [http://amigaworld.net/modules/news/article.php?storyid=2512 more] and imported on [http://repo.or.cz/w/AROS.git/commit/aff741d60160c6a9d7d39c9e004a25ea3aa13847 20th July 2011] and [http://alsa.opensrc.org/Cmipci alsa docs].
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| Audiotrak MAYA EX5
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| cmi8738-sx 4ch
| 0x13f6
| 0x0111
| 0x10
| <!--Playback-->
| <!--Recording-->
| untested
|-
| e3dx hsp56 CMedia 8738-sx 4ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| EDio SC3000D 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Genius SoundMaker Value PCI C3DX
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Guillemot Maxi Sound Muse
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Hercules Gamesurround Muse LT
| 0x13f6
| 0x0111
| 0x10
| <!--Playback--> {{yes}}
| <!--Recording--> {{no}}
|
|-
| Hercules Gamesurround Muse XL LT 5.1
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Inno audio extreme 5.1 cmi8738/lx pci 6ch
| 0x13f6
| 0x0111
| 0x
| <!--Playback-->
| <!--Recording-->
| untested
|-
| M-Audio (Midiman) DiO 2448
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Sabrent SBT-SP6C 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| StarTech PCISOUND4CH 8738sx 4ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Sweex SC012 CMI8738-lx 4ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Terratec 5.1 PCI
| 0x13f6
| 0x0111
| 0x10
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Terratec Aureon Fun 5.1
|
|
|
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| Has SPDIF
|-
| Trust Sound Expert Digital Surround 5.1 (cm8738-mx 6ch)
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Turtle Beach Riviera CMI8738-MX 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| XSonic CMI 8738 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->CMI8738 6ch PCI-E PCI Express version
| <!--Vendor ID-->0x13f6
| <!--Product ID-->0x0111
| <!--Revision-->0x10
| <!--Playback-->{{Yes|}}
| <!--Recording-->{{Maybe|}}
| <!--Comments-->Chinese based card with playback tested so far
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
====2001-2005 ac97.audio====
*6.4 27-12-2008
The AC97 chips were designed to be pinout interchangeable so that the sound support could change easily and quickly without motherboard redesigns
the green jack is for the main speaker pair AND headphones, so manual switching will be required
If your card is wired for the "AC97" standard, then it's up to your headphone jack to switch the green speaker output in and out, the headphone jack has Normally-closed contacts that will open on insertion, which breaks the signal path back to the sound card (FP_RETURN)
The ProductID and VendorID are for the audio controller only - the important additional codec is '''NOT''' so easily identified.
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| <!--Description-->Avance Logic (now Realtek) ALC100 and ALC101 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->ALC200 and ALC201 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->ALC201A and ALC202 and ALC202A codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->ALC650
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| <!--Comments-->most Nforce2 boards plays audio only - Abit NF7, Asus A7N8X, MSI K7N2, Epox 8RDA+, DFI
|-
| <!--Description-->ALC850 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{No}}
| <!--Comments-->no support for via P4P800 chipset on ASUS A8V-E SE Deluxe mobo - ICaros 1.3
|-
| <!--Description-->Realtek ALC653 codec and ALC655 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested Acorp 7NFU400
|-
| <!--Description-->Realtek ALC658 codec ALC658D
| <!--Vendor ID-->0x8080
| <!--Product ID-->0x24c5
| <!--Revision-->0x0
| <!--Playback-->{{Yes|Prefs Music and Units 0-3 set volume control - playback}}
| <!--Recording-->{{No}}
| <!--Comments-->MSI Motherboard on NB 22-09-2012
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->AD1881 SoundMAX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->Analog Devices first AC97
|-
| <!--Description-->AD1881A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Yes}}
| <!--Revision-->
| <!--Comments-->works with VIA Controller - untested Intel etc
|-
| <!--Description-->AD1881B
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1885 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{No}}
| <!--Comments-->Playback only with issues on D845HV but not working on MS-6367 because Units 0-3 have masked volume control
|-
| <!--Description-->AD1886
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1887
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->ADI AD1888 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{no}}
| <!--Recording-->{{No}}
| <!--Comments--> Icaros 1.51
|-
| <!--Description-->AD1980 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->AD1981A codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested IBM X30
|-
| <!--Description-->Analog Devices SoundMax(TM) AD1981B codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| <!--Comments-->plays back only on IBM T41 Thinkpad
|-
| <!--Description-->AD1985 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{No}}
| <!--Comments-->not working ahi prefs freezes on D865GLC mobo ([http://www.xbitlabs.com/articles/multimedia/display/int-sound2_3.html ]
|-
| <!--Description-->AD1986 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{No}}
| <!--Comments-->untested [http://uk.ts.fujitsu.com/rl/servicesupport/techsupport/Boards/Motherboards/Fujitsu/D1931/D1931.htm D1931] but works (Acer Aspire 3610 laptop)
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->Crystal Semiconductors CS4205, CS4202 codecs
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Cirrus Logic CrystalWare 4236
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->Cirrus Logic CrystalClear SoundFusion CS4297 CS4299 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested IBM T23
|-
| <!--Description-->conexant Cx20468-31 codec (id 30)
| <!--Vendor ID-->0x103c
| <!--Product ID-->0x3085
| <!--Revision-->
| <!--Playback-->{{No|AC97 appears in AHI Prefs}}
| <!--Recording-->{{No}}
| <!--Comments-->Tested AspireOS 1.8 on Gateway W322
|-
| <!--Description-->ESS Technology ES1921 AC'97 2.1
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->CMI 6501 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested on ASROCK SKT-AM2 AM2NF3-VSTA
|-
| <!--Description-->codec CMI9738
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->codec CMI9739
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->C-Media CMI 9739A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments--> untested on EPoX 8RDA3+
|-
| <!--Description-->CMedia CMI 9761A codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested ASRocK K7NF2-RAID
|-
| <!--Description-->C-Media CMI9880
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->National Semi conductor (now TI) LM4540, LM4543, LM4545, LM4546, LM4548, LM4549, LM4550 LM4560
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->STAC9708T codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->SigmaTel (now IDT) C-Major STAC 9460 (D/A only), 9461, 9462, 9463, 9200, 9202, 9250, 9251, 9220, 9221, 9223, 9750
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AKM (Asahi Kasei Microsystems) AK 4540, 4543, 4544A, 4545
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->codec VT1616 (VIA Six-TRAC Vinyl Audio)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->VIA VT1612, VT82C686
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->ESStech ESS ES1968 maestro-2
| <!--Vendor ID-->0x125d
| <!--Product ID-->0x1968
| <!--Revision-->0x
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->ESStech ESS ES1978 maestro2e
| <!--Vendor ID-->0x125d
| <!--Product ID-->0x1978
| <!--Revision-->0x
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->ESStech ESS ES1988 maestro3 allegro-1 codec
| <!--Vendor ID-->0x125d
| <!--Product ID-->0x1988
| <!--Revision-->0x12
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->Yamaha AC97 ymf-743 YMF752 YMF753 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->{{No}}
| <!--Comments-->untested ymf-753
|-
| <!--Description-->YMF724 YMF744 YMF-754 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| SIS 7018 / Trident 4dwave DX/NX / ALi 5451
| 0x1039 (0x1023 Trident)
| 0x7018 (0x2000 Trident DX) (0x2001 Trident NX)
| 0x02
| <!--Playback-->{{No}}
| <!--Recording-->{{No}}
| no support - introduced early 2000s
|-
| SIS 7012
| 0x1039
| 0x7012
|
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| working through 1 speaker only took over from SIS7018 (2002 onwards)
|-
| <!--Description-->Wolfson (now Cirrus Logic) WM9701, WM9701A (AC'97 1.03 spec), WM9703, WM9704 (AC'97 2.1), WM9705, WM9706, WM9707, WM9708
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->WM9709, WM9710, WM9711, WM9712, WM971
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->first Microsoft(TM) Xbox DAC sound chip (AC Link compliant D/A converter)
|-
| <!--Description-->Wolfson WM9717
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| Parallels
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested
|-
| VirtualBox
|
|
|
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| working
|-
| VirtualPC
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested
|-
| <!--Description-->Intel 82801AA Proxmox
| <!--Vendor ID-->0x8086
| <!--Product ID-->0x
| <!--Revision-->
| <!--Playback-->{{unk| }}
| <!--Recording-->{{unk| }}
| <!--Comments-->
|-
|}
====2005-20xx HDAUDIO.audio====
*6.36 2025 [https://github.com/aros-development-team/AROS/commit/43b33a9280b10963ca659de2cc3d1cf289b43a87 reset handler]
*6.35 202 []
*6.34 2019 AROS One 1.5 upwards
*6.29 2018
*6.27 2017 update
*6.25 2014 used for most Icaros 2.x
*6.20 July 2012
*6.17 Nov 2011
*6.15 Jun 2011
*[http://www.clusteruk.com/SitePortalPage.aspx?siteid=1&did=109 6.13] Sep 2010
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="5%" |Vendor ID
! width="5%" |Product ID
! width="5%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| <!--Description-->ALC260
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| <!--Description-->ALC262
* ALC262-VD2-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->LQFP-48
|-
| ALC268 codec
| 0x
| 0x
| 0x
| <!--Playback-->{{Yes|Version 6.17 Acer AOA110 and AOA150 netbooks), works (Dell Mini Inspiron 9 and 10v, }}
| <!--Recording-->{{Yes|Version 6.17 remove QUERY and select 'Mic 1' as input. Tested with 6.15 as well using QuickRecord and AE 4.0.23 under Icaros 1.4.}}
| <!--Comments-->AHI UNITS and Music are set to: hdaudio:HiFi 16 bit stereo++ / Frequency 48000 Hz, Volume +0.0 dB. The hdaudio.config in SYS:Prefs/Env-Archive is WITHOUT the QUERY-line. After changing and saving the config-file turn off and start again the computer. Switch from internal loudspeaker to headphone you must turn off the music before plug in the headphone-cable, otherwise there is no output on the socket. Back from line-out to internal speakers it is the same.
|-
| [http://blog.foool.net/wp-content/uploads/linuxdocs/sound.pdf Linux docs ALC269]
* ALC269Q-GR
* ALC269QSRS-GR
* ALC269W-GR
| 0x
| 0x
| 0x
| <!--Playback-->{{Maybe| }}
| <!--Recording-->{{Unk| }}
| <!--Comments-->TQFP 48 pin Power IC Chip From [https://patchwork.kernel.org/project/alsa-devel/patch/1408118123-15849-1-git-send-email-tiwai@suse.de/ ALC269 & co have many vendor-specific setups with COEF verbs, result in the codec stalling]
|-
| [http://www.alsa-project.org/db/?f=0321f8479fd670cd510f9912b1120fe7edcf2e07 ALC269VB]
* ALC269Q-VB5-GR
* ALC269Q-VB6-CG
* ALC269Q-VB6-GR
| 0x10ec
| 0x0269
| 0x100004, 0x100100, 0x100202
| <!--Playback-->{{Maybe|some versions work}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* v1 works Asus eee PC netbook 901/1000HA 1005HA/1008HA, 1001P,
* v2 maybe working Lenovo S9 S10 S10-2 S10-3 under HDAudio version 6.13
* v3 maybe dell wyse 7010
|-
| [http://alsa-project.org/db/?f=9c1746c5957b0ce72ff9cfffa312e97d14baf785 ALC269VC aka ALC3202]
* ALC269Q-VC2-GR
* ALC269Q-VC3-GR
| 0x10ec
| 0x0269
| 0x100203,
| <!--Playback-->{{Maybe|some versions work}}
| <!--Recording-->{{Unk}}
| <!--Comments-->SMT SMD QFN-48 -
* v1 unknown
* v2 unknown
* v3 x230, dell wyse,
|-
| ALC272
* ALC272-VA4-GR
| 0x10ec
| 0x0272
| 0x0
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Unk}}
|
* works Acer AOD150 and Acer AOD250 works [http://amigaworld.net/modules/newbb/viewtopic.php?topic_id=33755&forum=28#616910 Samsung NP-NC10], works Samsung NF210-A02] netbooks,
|-
| <!--Description-->ALC273
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| <!--Description-->ALC270
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC282
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x
| <!--Revision-->
| <!--Playback-->{{No|Version 6.17}}
| <!--Recording-->{{No|Version 6.17}}
| <!--Comments-->needs retest
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC660 ALC660-VD
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes| }}
| <!--Recording-->
| <!--Comments-->
* works asus F9s, F9e
* untested asus w7j, M51SN, A6Tc, A8Sr,
|-
| <!--Description-->ALC661-GR (2011)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| ALC662
| 0x1043
| 0x82a1
| 0x0
| <!--Playback-->{{Yes|Version 6.17 if QUERY added to top of hdaudio.config}}
| <!--Recording-->{{No|Version 6.17 not working for eee pc 900}}
|
* works Asus eee PC netbook 700/701/900, Atom 270 and 330 mobos, odd clicks (D410 NM10 PineTrail),
|-
| <!--Description-->[http://outpost.fr/rmaa/ALC663.htm ALC663]
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0861
| <!--Revision-->
| <!--Playback-->{{No|Version 6.13}}
| <!--Recording-->{{Unk}}
| <!--Comments-->not bad output like headphone amp part of the codec actually works well but messed up by undersized coupling capacitors to actually support such a low impedance
* not working Asus n50vn x71vn,
|-
| <!--Description-->ALC665
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC666
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC667
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC668
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC670
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->ALC880
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->some 915 and 925 chipset mobos
|-
| <!--Description-->ALC882M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| Realtek ALC883 ALC883-GR ALC883D-GR ALC883DTS-GR ALC883DD-GR codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe|some early versions work }}
| <!--Recording-->{{Unk| }}
| 2005 to 2007 HD Audio codec untested (Asus ),
|-
| Codec ALC885
| 0x10ec
| 0x0885
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
|-
| ALC888
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
|
|-
| ALC888s
* ALC888S-VD2-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}} MSI Wind U90/U100,
| <!--Recording-->{{Unk}}
| LQFP-48
|-
| ALC888b
| 0x8086
| 0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| untested (D510 NM10 Dual Core PineTrail mobo),
|-
| ALC888-VD
| 0x8086
| 0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| untested
|-
| ALC889A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes|works if QUERY added to the top of hdaudio.config in Prefs drawer/directory}}
| <!--Recording-->{{Unk}}
|
|-
| ALC889 Gr
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}} with crackles
| <!--Recording-->{{Unk}}
|
|-
| ALC889
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
| Tested with MSI H55 board
|-
| ALC887 ALC887-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
|
* working on ASUS P5KPL/EPU and Gigabyte GA-E350N-Win8 Rev1.0
|-
| ALC887-VD-CG
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0887
| <!--Revision-->0x100302
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}} Subsystem Id: 0x1458a002
|
|-
| ALC887-VD
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0887 0x1458
| <!--Revision-->0xa002
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{Unk}} index = 2
| ALC887 does not have any volume control ability on the mixer NIDs, so put the volume controls on the dac NIDs instead
* working with intermittent corrupting pop popping skipping stuttering sound issues MSI 760GM-P23 (FX),
* not working Gigabyte H61MA-D3V, AT3IONT-I Deluxe,
|-
| ALC887-VD2
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
| 3jacks
|-
| ALC887-VD2-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
|-
| ALC887-
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
|
|-
| ALC892-CG rev
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| 2011 48-pin LQFP Green package -
|-
| ALC892 ALC892-DTS-CG rev
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
| 2009 introduced
* works
* not working
* untested
|-
| ALC892 rev
| <!--Vendor ID-->0x0x10ec
| <!--Product ID-->0x0892
| <!--Revision-->0x100302
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| 2014
|-
| Realtek ALC886-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| LQFP-48
|-
| Codec ALC861 ALC861-VD
| 0x10ec
| <!--Product ID-->0x0663
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
|
* not working Toshiba Tecra A7
|-
| <!--Description-->ALC1200
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| ALC898
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
| not working
|-
| <!--Description-->ALC1500
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC3232 (aka ALC292)
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0292
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC3234 aka ALC255
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0255
| <!--Revision-->003
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC3287 aka ALC257
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes| }}
| <!--Recording-->{{no| }}
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->AD1882
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1883 HD Codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1884
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| Analog Devices SoundMAX AD1981
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| IBM Thinkpad T60,
|-
| AD1984 hp-m4 codec
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
* audio not working on Lenovo X61, Thinkpad T61,
|-
| AD1986
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
|
|-
| AD1988
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
|-
| <!--Description-->AD1988A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->Cirrus Logic CS4207
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->
| <!--Recording-->
|
|-
| <!--Description-->Cirrus Logic CS4208
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->
| <!--Recording-->
|
|-
| <!--Description-->Conexant CX20549 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe|very very very low volume}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested Fujitsu Amilo SI 1510 1520 no datasheet for the general public
|-
| <!--Description-->Conexant CX20549-12Z codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested HP 530
|-
| <!--Description-->Conexant CX20561 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* working lenovo x200s
* untested Lenovo Essential G555 Notebook, HP Pavilion dv6700,
|-
| <!--Description-->Conexant CX20582 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX2059x CX20590 CX20594-21Z codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX20585 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* working Lenovo Thinkpad T410,
|-
| <!--Description-->Conexant CX20672 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX20671 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX20751-21Z codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes| }}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| <!--Description-->Conexant CX11852 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX11880 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant after 2015 up to 2018 CX7501 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{no|no driver codec}}
| <!--Recording-->{{no|no driver codec}}
| <!--Comments-->Conexant bought by synaptics 2019
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->C-Media CMI9880 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->Gigabyte GA-8GPNXP
|-
| <!--Description-->Silicon Labs 3054
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| VIA 1708A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| untested,
|-
| VIA VT1708B
| <!--Vendor ID-->
| <!--Product ID-->
| 0x0010
| <!--Playback-->{{No|VIA PicoITX}}
| <!--Recording-->{{Unk}}
|
|-
| VIA 1708S
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
|
|-
| <!--Description-->VT2021 10ch
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->Gigabyte Z77MX-D3H, GA-H61M-S2H S2P,
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Creative CA0110-IBG
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->SigmaTel STAC 9220 9221 9223 8ch (7+1)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| <!--Comments-->ECS 945GCT/M-1333 (version 3.0),
|-
| IDT SigmaTec [http://explorer.cekli.com/articles/pdf/hd-audio STAC9227] /28/29/30 codec
| <!--Vendor ID-->0x8384
| <!--Product ID-->0x7626
| <!--Revision-->0x0002
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Unk}}
|
* works HP Compaq mini 110
* untested HP Pavilion HDX9000 CTO Notebook, Intel DG33TL mobo, Dell E520, Intel DP35DP mobo, Dell E6410 Laptop,
|-
| IDT (formerly SigmaTel) IDC STAC 9271/71D
| <!--Vendor ID-->0x8384
| <!--Product ID-->0x7626
| <!--Revision-->0x0002
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
|
|-
| <!--Description-->IDC STAC 9272 9273 9274
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->Intel D5400XS,
|-
| <!--Description-->IDT 92HD73C
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes}}
| <!--Recording-->
| <!--Comments-->headphones only Asus AT4NM10 mobo
|-
| <!--Description-->IDT 92HD75B
| <!--Vendor ID-->0x111d
| <!--Product ID-->0x7608
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* working [http://koti.kapsi.fi/jvaltane/aros/hdaudio/ HP Compaq Mini 700 Netbook - feedback required]
* untested HP Mini 5103 and 5102, HP Compaq 610, HP ProBook Laptop 4520s 4525s 6450b 6550b 6555b, HP EliteBook 2540p 2740p 8440p, Mobile Workstation 8540w 8740w, Pavilion NoteBook DV8,
|-
| <!--Description-->IDC 92HD81XX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC 92HD83XX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC STAC 92HD89XX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Wolfson (now Cirrus Logic) WM8850
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Wolfson WM8860
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->Intel High Definition Audio Revision 1.0. - 4-Channel DAC, 4-channel ADC. - DAC sampling
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
Using Prefs/AHI ensure you set the music unit and at least Units 0 (where most audio comes from) in top left drop down menu to HDaudio - HIFI in the section below. Set Units 1 or 2 to microphone or other outputs. Plus allow more than one channel for multiple audio streams and set frequency up to 44 kHz or higher on the right hand side of the ahi prefs. If sound beeps when you press the test button then all should be OK.
Output <- Codec <- Audio Controller (HDA) <-> Computer
codecs and exact hardware identifier. As mentioned above, HDA is only part of the work here, it gets the audio out of the main chipset in digital format (on a bus called I2S). This is not enough, there is another step needed which is routing that I2S signal to the output, converting it to actual audio, amplifying it, etc. This is handled by a separate chip called a "codec". Sometimes it is initialized by the BIOS, but this is not always the case.
Most audio drivers are made up of two parts a [http://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio.txt Controller + a Codec]. The ProductID and VendorID are for the audio controller only - the important additional codec is '''NOT''' so easily identified.
Some newer versions of codecs are missing at the moment.
Things to try if sound not working
* try to connect something to the audio jack, maybe it is not playing on internal speakers or vice versa
* make sure you try and select all music units e.g. unit0, unit1....
* even if PCI ID's are in Prefs/Env-Archive/HDaudio.config, this doesn't mean it is working, it is the codec that matters
* it might be internally muted
<pre>
add debug=memory to grub boot line - continue booting with F10
Open a shell
Tools/Debug/Bifteck > RAM:audio.txt
</pre>
or
<pre>
Open a shell
Tools/Debug/Sashimi > RAM:audio.txt
Run ahi prefs
Click test tone button
Stop sashimi with Ctrl-C
</pre>
If the boot sound is enabled, you have to use Bifteck to capture AHI debug output. In the GRUB menu, press E on your selected entry, then add "debug=memory" to the options (alongside ATA=, vesa= etc.). Then F10 or Ctrl-X to boot. Once booted, run Tools/Debug/Bifteck again.
or
* try adding QUERYD to the start of ENVARC:hdaudio.config file (also known as Prefs/Env-Archive/) ie. on the first line
* '''OR''' try removing QUERY and QUERYD from the start of the hdaudio.config file
* Reboot
* open a shell
* type: sys:tools/debug/sashimi > ram:debug.txt
* open ahi prefs
* select one of the audio modes - HIFI or otherwise
* press the 'test sound' button
* press ctrl-c in the shell
* post the results to Aros-World
The HD Audio standard was designed to be hardware pinout interchangeable so that the sound support could change easily and quickly. HDA is a standard around particular chips. Each kind of chip has a certain number of DACs and pins, and even the same chip could be hooked up in different ways on different motherboards. The chips are programmable and the operating system can adjust how things are routed. Some pins aren’t even hooked up, so it makes no sense to route sound to them. Also some pins have sensors that can tell when something is plugged in, so that for example the speakers in a laptop can be muted when headphones are plugged in. Pins are also grouped, so for example all the outputs for a 5.1 sound system are grouped. Generally the HDA driver in the operating system is supposed to read the pin set up and figure out a reasonable way to set things up, and disconnected pins should be ignored, etc.
HDAudio standard has headphones on a separate DAC, and it's up to the driver.. it can even send different audio to the headphones without interrupting the main (green) outputs
====Envy24 series ====
A little history. VIA bought the ICE created Envy chipsets [http://www.via.com.tw/en/products/audio/controllers/comparison_controller.jsp VT1712] first. A few years later, they created several cheaper variants VT1724 (mixer missing), VT1721 (low end cut down), VT1720 (embedded on motherboard) and lastly the VT1723 (no support apart from Windows Envy24DT like SYBA SD-PEX63034).
There are PCI Express versions appearing.
The Envy24 is the base product that was originally designed by ICEnsemble, and it supports multi-channel hardware mixing, which is great for professional use. The HT version removes the hardware mixer (unimportant for non-professional uses). The [http://www.avsforum.com/t/364771/envy24ht-s-the-definitive-source HT-S] version is almost exactly the same as the HT, it just uses cheaper DACs. The PT version is exactly the same as the HT-S version, it is just the edition used for on-board audio on motherboards.
N.B. [http://www.soundonsound.com/sos/dec04/articles/pcnotes.htm PCI slot identification] and [http://hsi.web.cern.ch/HSI/s-link/devices/s32pci64/slottypes.html 3.3v PCI].
=====[http://www.opensound.com/readme/README.Envy24.html envy24.audio] - [http://www.anime.net/~goemon/alsa/ VT1712] =====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Playback
! Recording
! Comments
|-
| M-Audio Delta 66 - Rev B 1999
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested AK4524VF CS8404A-CS - needs Delta Series break out box with D-sub lead -
|-
| [http://ixbtlabs.com/articles/maudioaudiophile/index.html Audiophile 2496] Rev A 2000
| 0x14
| 0x
|
| <!--Playback-->{{unk| }}
| <!--Recording-->{{unk| }}
| works audio out on - I2S stereo codec AKM AK4528VF with the 24bit/96kHz DAC and ADC; CS8427 digital transceiver
|-
| [http://ixbtlabs.com/articles/maudioaudiophile/index.html Audiophile 2496] Rev B 2003
| 0x14
| 0x
|
| <!--Playback-->{{Yes }}
| <!--Recording-->
| works well - I2S stereo codec AKM AK4528VF with the 24bit/96kHz DAC and ADC; CS8427 digital transceiver
|-
| M-Audio Delta 410 - 2001 2001 REV-B
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested for D-A AK4529VQ converters with CS8427-CS 5532 1158B or Event Echo Gina 20-Bit Multitrack Interface Breakout Box -
|-
| M-Audio Delta 1010
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested AK5383 and AK4393 - 25 pin dsub -
|-
| M-Audio Delta 1010LT 1010E
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested for D-A AK4529 converters with 2 XLR Microphone inputs with pre amps
* be aware of redesign in 2007 - possible issues
|-
| M Audio Delta 44 - Rev A 2002 - Rev B 2003 - Rev D 2003
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested ICE1712G AK4524VF needs breakout box with 15 pin D-sub lead -
|-
| M-Audio Delta 66 Rev E 2006 - Omni Studio
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested needs break out box with 15 pin D-sub lead -
|-
| <!--Description-->M-Audio Delta DiO 2496
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| Terratec EWX24/96
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| [http://ixbtlabs.com/articles2/terratecdmx6fire/index.html TerraTec 6fire DMX 24/96]
| <!--Vendor ID-->0x1412
| <!--Product ID-->0x1712
| <!--Revision-->0x02
| <!--Playback-->{{No|tried line 1-2 3-4 5-6 7-8 }}
| <!--Recording-->{{No| }}
| untested - AKM and codec
|-
| <!--Description-->Terratec EWSA88MT
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| [http://lists.freebsd.org/pipermail/freebsd-multimedia/2007-March/006087.html Audiotrak Prodigy HD2] 24/96
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Audiotrak (ESI) Maya 1010 1010L
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| EMU 1212M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| EMU 1616M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| <!--Description-->Terratec EWS 88MT EWS 88D
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Hoontech Soundtrack DSP 24
Soundtrack DSP 24 Value
Soundtrack DSP 24 Media 7.1
Event Electronics EZ8
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Digigram VX442
Lionstracs
Mediastation
Terrasoniq TS 88
Roland/Edirol DA-2496
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
=====envy24ht.audio - VIA VT1724=====
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| ESI Juli@
| 0x3031
| 0x4553
| 0x0
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Yes}}
| reported working years ago [http://envy24.svobodno.com/ Envy24HT-S] - AKM 4358 DAC - AKM 4114/4112 DIT
|-
| ESI Juli@ Ego Igo rev K
| 0x3031
| 0x
| 0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| AK4358? DAC - AK4114 AK4112 DIT
|-
| [http://ixbtlabs.com/articles2/multimedia/m-audio-revolution51.html M-Audio Revolution 5.1]
| 0x1412
| 0x3631
| 0x0
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| reported working years ago but discontinued - (Envy24GT) - 3ch AKM 4358 DAC - ADC AKM 5365 -
|-
| [http://ixbtlabs.com/articles2/m-audio-revolution71/index.html M-Audio Revolution 7.1] 24/192
| 0x1412
| 0x3630 0x1724
| 0x0
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| not working - illegal semaphore - 6ch ADC AKM AK4355 24-bit 192 kHz - 2ch DAC AKM AK4381 24-bit 192 kHz - ADC AKM AK5380
|-
| Terratec Aureon Sky 5.1
| 0x153b
| 0x1147
| 0x
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - discontinued
|-
| [http://ixbtlabs.com/articles2/terratec-aureon71/index.html Terratec Aureon Space 7.1]
| 0x153b
| 0x1145
| 0x0
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - Wolfson WM8770 DAC, AC'97 codec SigmaTel STAC9744
|-
| Terratec Aureon Universe 7.1
| 0x153b
| 0x1153 (rev x) 0x1724 (rev3)
| 0x0
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| not working - semaphore error on rev 3 - DAC ADC
|-
| Terratec Phase 22
| 0x153b
| 0x1150
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - Envy24HT-S - AK4524
|-
| Terratec Phase 28
| 0x153b
| 0x1149
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - Envy24HT-S - AK4524
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Playback
| Recording
| Revision
| Comments
|-
| Audiotrak (ESI) Prodigy 7.1
| 0x4933
| 0x4553
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - Wolfson WM8770 and AC'97 SigmaTel STAC9744 codec
|-
| Audiotrak (ESI) Prodigy 7.1 LT
| 0x3132
| 0x4154
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver -
|-
| [http://ixbtlabs.com/articles2/sound/audiotrak-prodigy192.html Audiotrak (ESI) Prodigy 192] 24/96
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - STAC9460S codec
|-
| <!--Description-->Echo Layla 24/96
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
| [http://www.bit-tech.net/custompc/labs/80752/hercules-gamesurround-fortissimo-4.html Hercules Gamesurround Fortissimo 4]
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - Wolfson WM8776 Codec and WM8766 DAC
|-
| [http://ixbtlabs.com/articles2/multimedia/m-audio-audiophile192.html M-Audio Audiophile Delta AP 192k]
| 0x1412
| 0x3632
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - Stereo ADC AKM AK5385A 24-bit 192 kHZ - 8-channel DAC AKM AK4358 24-bit 192 kHz - AKM 4114/4112 DIT
|-
| ONKYO SE-150PCI
| 0x160b
| 0x0001
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver
|-
| <!--Description-->ESI Waveterminal 192x
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
| <!--Description-->Quartet
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments--> - AKM 4114/4112 DIT
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
|}
====hdmiaudio.audio - hdmi no support====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Comments-->
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->ATI R6xx HDMI Audio codec support output
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x9840
| <!--Revision-->
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->Not detected
|-
| <!--Description-->NVidia HDMI
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Intel Series 6 CougarPoint HDMI codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Intel HDMI
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|}
[[#top|...to the top]]
===Graphic GFX Chipsets===
[https://gallium.readthedocs.io/en/latest/systems.html PCIe based] graphic chipset is defacto on 64bit AROS and recommended on 32bit.
AGP works on 32bit but faster transfers through the AGP slot are only available on a few supported motherboard chipsets
* Faster AGP Working = SIS 650 board, Intel 865pe AGP slot on MSI 6788-050,
* Not Supported = NForce2 chipsets, most Intel 815/820 chipsets, VIA chipsets, ALi chipsets,
The fallback for all graphics modes is vesa if any native support does not work. There is a choice of very low resolution vga as the last resort
2D tests performed with [http://download.aros3d.org/software/gfxbench.zip gfxbench] in the shell type gfxbench > out.txt (40 seconds blank screen is part of the test), via FreeDoom via limit-removing engine like odamex, chocolate or vanilla doom -timedemo demo1 or doom2 -timedemo demo1, doom.exe -iwad doom2 -file mymap.wad, Duke DNRATE 640x480 windowed
3D tests performed with Demos/Mesa/ , Cube 1080p, Cube 2 windowed not fullscreen 1920 x 1025, Quake3 ~ cl_drawFPS 1, Xonotic , [http://shinh.skr.jp/sdlbench/showtestgl.cgi test gl],
HDMI, DVI and DisplayPort monitors have a native resolution of 480p, 720p, 1080i, 1080p and up
* HDMI 1.2 720p res.
* HDMI 1.3 1080 resolution
* HDMI 1.4 above 1080 res.
* HDMI 2.0
* HDMI 2.1
* HDMI 2.2 ultra96
* GPMI
====vga.hidd====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Comments
|-
|
| 0x
| 0x
| 0x0
| Generic VGA Driver, limited to 640x480 in 16 colours - no 3D support
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Comments-->
|-
|}
====vesa.hidd====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Comments
|-
|
| 0x
| 0x
| 0x0
| 2D support for VBE1, VBE2 and VBE3 (most cards) - various resolutions and 24bit colour - no 3D support
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Comments-->
|-
|}
[[#top|...to the top]]
====[[w:en:Intel GMA|Intel GMA]]====
DVI output is not supported at the moment.
If having problems:
* Ensure the latest version is being used.
* Set GMA_MEM to 128 or 256 to test
* Try the FORCEGMA ToolType for 2D, and try the FORCEGALLIUM ToolType for 3D acceleration after 2D is verified to work. ToolTypes should be applied to the Devs/Monitors/IntelGMA monitor icon.
If still having problems:
* At GRUB boot screen edit boot line and add option: debug=memory
* Boot.
* Use shell command: tools/debug/bifteck > RAM:debug.txt
* And post [GMA MONITOR DETECTION] and other related debug lines
{| class="wikitable sortable" width="90%"
! width="5%" |Description
! width="5%" |Vendor ID
! width="5%" |Product ID
! width="3%" |Rev
! width="5%" |2D
! width="5%" |3D
! width="5%" |Analog Output
! width="5%" |Digital Output
! width="5%" |Laptop LCD
! width="30%" |Comments
|-
| 910GL 82910GL GMCH + ICH6
| 0x8086
| 0x2582 0x2592
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| 910GML 82910 GML GMCH + ICH6 Mobile
| 0x8086
| 0x2582 0x2592
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| may need to add forceGMA to grub boot line to work
|-
| 915G 82915G GMCH + ICH6-M
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
|
|-
| 915GL 82915GL GMCH
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
|
|-
| 915GV 82915GV GMCH
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Yes|}}
| <!--3D-->{{No|}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{N/A}}
| HP DC5100 small form factor
|-
| 915GM GMA900
| 0x8086
| 0x
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| tunnel gearbox }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes}}
| asus eee pc 900
|-
| 915GMS
| 0x8086
| 0x
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| tunnel }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes| }}
|
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| [http://www.notebookcheck.net/Intel-Graphics-Media-Accelerator-950.2177.0.html 945GU] - 133 MHz (Lake port for Intel A100 and A110)
| 0x8086
| 0x2772
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| Fujitsu LifeBook U1010,
|-
| 945GMS - 166 MHz / 250 MHz (1.05V)
| 0x8086
| 0x27a2
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes}}
| Dell D430
|-
| 945GSE - 166 MHz (for Atom)
| 0x8086
| 0x27ae
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Yes|[http://www.x.org/wiki/GalliumStatus]}}
| {{Yes}}
| {{No|dvi port}}
| {{Yes| }}
| for atom motherboards and most 2008/2009 netbooks
* 3D Works - AOA110 AOA150, Dell Mini 9, Samsung NC10, Toshiba NB100,
|-
| 945G 82945G GMCH + ICH7
| 0x8086
| 0x27a6
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| untested 2D and 3D
|-
| 945GC 82945GC MCH
| 0x8086
| 0x27a6
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| untested 2D and 3D
|-
| 945PM
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| Dell D420, Compaq nc6400,
|-
| 945GMS - 250 MHz Calistoga
| 0x8086
| 0x
| 0x0
| <!--2D--> {{Yes}}
| <!--3D--> {{Yes|most models}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes}}
|
* 3D Works Dell Latitude 2100, HP Compaq nc6320, Lenovo 3000, Lenovo T60, Samsung Q35, Dell D620, Dell D820,
* 3D untested Toshiba Satellite L100-120, Toshiba Portege M400,
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
|
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GMA 3100 G31
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works 2D but no 3D
|-
| GMA 3100 G33
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works 2D but no 3D
|-
| [http://en.wikipedia.org/wiki/Intel_GMA GMA 3150] netbooks and nettops
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works 2D but no 3D. no vga, dvi or hdmi output for nettops
|-
| <!--Description--> G965
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments-->
|-
| <!--Description--> Q965
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x2992
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{No}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments--> Only tested with VGA output.
|-
| 965GM X3100 (500 MHz)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| some support 2D but no hardware 3D - could not get it to work with VGA or dvi output
* untested Apple MacBook Air, Lenovo Thinkpad X300, Dell Inspiron 1525, Toshiba M9,
|-
| 960GM X3100 (400 MHz)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
|
|-
| 965M X3100 (400 MHz)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| Dell D830,
|-
| 965PM ??
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| Toshiba A9 works with limited 2D acceleration but no hardware 3D
|-
| GL965
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works with limited 2D acceleration but no hardware 3D
|-
| GM965
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works with limited 2D acceleration but no hardware 3D
|-
| GMA X3500 G35
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->X4500M G41 G43 G45 (400Mhz) Mobile 4 Series
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x2a42 0x2a43
| <!--Revision-->0x07
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue--> {{No|}}
| <!--Digital--> {{No|}}
| <!--Laptop LCD--> {{Yes| VESA}}
| <!--Comments-->works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->GMA 4500M HD (533 MHz)
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments-->works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->GMA 4700M HD (640MHZ)
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x2a42
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments-->works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
====[http://nouveau.freedesktop.org/wiki/FeatureMatrix nouveau].hidd (nvidia pci, agp, pci-e desktop)====
PCIe based nvidia graphics (gfx 8xxx) are the base level for 64bit AROS but earlier models still has some support on 32bit AROS
*Desktop, more likely hit rather than miss on early nvidia on Aros 32bit but on Aros 64bit ...
*Laptop, limited support for '''very''' early non-optimus (i.e. just Nvidia gfx only so no Intel and nvidia gfx combinations on 32bit but on 64bit ...)
Please note that the nouveau project is reverse engineering a nvidia graphics driver but takes time because of [https://nouveau.freedesktop.org/ nVidia's closed firmwares], etc
* 2026-06 - DEVS Nouveau.hidd Gallium.hidd Softpipe - LIBS Gallium GLU 20.0 Mesa OpenCL
* 2011-10 - DEVS 6.11 Nouveau.hidd 7.4 Gallium.hidd 9.4 Softpipe - LIBS 2.3 Gallium 1.3 GLU 19.0 Mesa OpenCL 1.x
* 2011-04 - DEVS 5.31 Nouveau.hidd 7.3 Gallium.hidd 9.3 Softpipe - LIBS 2.2 Gallium 1.1 GLU 18.0 Mesa OpenCL n/a
Nouveau support for AROS is limited to OpenGL 2.1 compliance on 32bit even for modern GL4 capable GPUs but on 64bit ...
On Aros 32bit OpenCL supports the NV50 (8000 9000) cards, less support in NVC0 fermi cards (300 upwards)
On Aros 64bit
ADoom3 graphic details ultra, benchmark while playing press the "`" key and type "Timedemo demo1" in the console
{| class="wikitable sortable" width="90%"
! width="5%" | Graphic Card
! width="5%" | Aros 32bit 1024 x 768
! width="5%" | Aros 32bit 800 x 600
! width="5%" | Aros 32bit 640 x 480
! width="5%" | Aros 64bit 1024 x 768
! width="5%" | Aros 64bit 800 x 600
! width="5%" | Aros 64bit 640 x 480
|-
| NV50 Asus EN8400GS SILENT/P/512M PCIe (G98) || || || || || ||
|-
| Gigabyte 8500GT 256M || 42,6 || 57,2 || 68,6 || || ||
|-
| NV96 (G96) Geforce 9500GT 512M || 43 || 53 || 57 || || ||
|-
| NV96 (G96) 9600GT || || || || || ||
|-
| NVA3 (GT215) GT240 || || || || || ||
|-
| NVA5 (GT216) Palit GT220 Sonic 512M || 39,7 || 55,8 || 63,7 || || ||
|-
| NVA8 (GT218) gt210 || || || || || ||
|-
| NVA8 (GT218) ION2 || || || || || ||
|-
| NVC3 (GF106) GT440 GTS 450 || || || || || ||
|-
| NVCF (GF116) NVC0 Fermi GTX 550Ti or GTS 450 v2 || || || || || ||
|-
| NVC8 (GF110) 580GTX || || || || || ||
|-
| NVE0 Kepler GT630 || || || || || ||
|-
| NVE6 (GK106) Kepler GTX660 || || || || || ||
|-
| NV110 Maxwell GTX 750 || || || || || ||
|-
| NV126 (GM206) GTX950 upwards no reclocking || N/A || N/A || N/A || poor || poor || poor
|-
| NV160 family (Turing) GTX 1650 and RTX 2000 upwards with GSP firmware || N/A || N/A || N/A || unknown || unknown || unknown
|-
| HostGL Ryzen 5 4600H - Nvidia 1650 - Linux mint 21.1 || 150fps || 154fps || 155fps || || ||
|-
| NVA8 (GT218) || || || || || ||
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| width="5%" | Graphic Card
| width="5%" | Aros 32bit 1024 x 768
| width="5%" | Aros 32bit 800 x 600
| width="5%" | Aros 32bit 640 x 480
| width="5%" | Aros 64bit 1024 x 768
| width="5%" | Aros 64bit 800 x 600
| width="5%" | Aros 64bit 640 x 480
|}
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|-
| <!--Description-->tnt1 (nv04) tnt2 (nv05) m64 value (1998)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|very slow}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| NV04 Riva TNT TNT2 Fahrenheit freezes on via motherboard chipset so rename agp.hidd in SYS:Devs/Drivers or Monitors
|-
| <!--Description-->tnt vanta lt (nv06) 1998 /9
| 0x10de
| 0x002c
| 0x15
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|slow}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| <!--Description-->Geforce 256 (nv10) (2000)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|slow }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| untested Geforce256
|-
| <!--Description-->Geforce 2 Geforce 3 Geforce 4 (nv20) 2000 / 2
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|slow }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| works for some PCI and AGP Geforce2 Geforce3 Geforce4
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| Geforce FX5200 nv34 (2003)
| 0x10DE
| 0x0322 0x
| 0xA1
| <!--2D-->{{Maybe| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->{{Maybe|VGA15 }}
| <!--Digital-->{{Maybe|DVI}}
| <!--Laptop LCD-->{{N/A}}
| NV30 GeForce 5 FX Rankine Hardware OpenGL 1.5 - slower than GF MX 4000 for 2D - max 1024 x768
* not working [https://eab.abime.net/showthread.php?t=92328&page=8 mobos with VIA chipsets 2018]
* working (MSI 0x9174) the previous nouveau 5.x driver
* Others work with 6.x series XFX PV-T34K-NA, ASUS V9520-X/TD
|-
| Geforce FX5500 (nv34) (2003)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{Maybe| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| works
|-
| Geforce 5100 (NV34)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce FX 5200LE (NV34)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5200 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce FX5600 (nv31) (2004)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Maybe| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| works
|-
| GeForce FX 5600 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5600SE
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5600XT
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce FX5700 (nv36) (2004)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes|some}}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{Maybe| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5700VE
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5700 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5700LE
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5800 (NV30)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5800 Ultra (NV30)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900 (NV35)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900XT
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900ZT
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5950 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce 5xxx
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
|
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| Geforce 6200 (nv44) (2005)
| 0x
| 0x00F3 0x014F
| 0x0
| <!--2D-->{{Yes|5.28 Pixel Text}}
| <!--3D-->{{Maybe| use 5.28}}
| <!--Analogue-->{{Yes|VGA15 and s-video - plain 4pin cable lead will work with 7pin}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| NV40 GeForce 6 GeForce 7 Curie AGP Hardware OpenGL 2.1 needing previous 5.x version as regression arose 2011-10
|-
| Geforce 6200 (nv44a) (2006)
| 0x
| 0x0221
| 0x0
| <!--2D-->{{Yes|5.28 Pixel Text }}
| <!--3D-->{{Yes|}}
| <!--Analogue-->{{Yes|VGA15}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| Hardware OpenGL 2.1, PCI version tested OK in 2014-01-02 - Icaros 1.5.2
* not working
*working
|-
| GeForce 6200 with Turbo Cache (NV43)
| 0x
| 0x0161
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce 6200SE with Turbo Cache (NV44)
| 0x
| 0x0162
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce 6200 LE
| 0x10de
| 0x0163
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| PCI-E
|-
| GeForce 6600 LE
| 0x
| 0x00F4 0x0142
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6600
| 0x
| 0x00F2 0x0141
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| 2006 PureVideo HD 1 or VP1 re-used the MPEG-1/MPEG-2 decoding pipeline from FX
|-
| Geforce 6600gt (nv4x) (2005)
| 0x
| 0x00F1 0x0140
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Yes| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| OpenGL tests -
|-
| Geforce 6800 (nv40) (2005)
| 0x
| 0x0041 0x00C1 0x00F0 0x0211
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Yes| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 XE (NV4x)
| 0x
| 0x0043
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 LE
| 0x
| 0x0042 0x00C2 0x0212
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 GT (quadro fx 1400)
| 0x
| 0x0045 0x0046 0x0215
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 6800 GS
| 0x
| 0x0047 0x00C0 0x00F6
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 GTS NV40
| 0x
| 0x0040 0x0F9
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 6800XT
| 0x
| 0x0044 0x0048 0x00C3 0x0218
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6600 VE
| 0x
| 0x0143
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6500 NV44
| 0x
| 0x0160
| 0x0
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6250
| 0x
| 0x0169
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 6xxx
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GeForce 7800 GTX
| 0x
| 0x0090 0x0091
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| tunnel gearbox cube cube2 25}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> 256MB DDR3 - 1 6pin psu connector -
* not working asus en7800gtx/2dhtv/256m/osp/a -
* Works XFX PV-T70F-UDD7 Works in steve jones' scrap pc aros build 2010 2 DVI-I ports
* Untested
|-
| GeForce 7800 GT
| 0x
| 0x0092
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7600gt (G8 ) (nv4 ) (2006)
| 0x
| 0x02E0 0x0391
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL 2.1
* not working
* working
|-
| GeForce 7800 SLI
| 0x
| 0x0095
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GTX
| 0x
| 0x0290
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GT GTO
| 0x
| 0x0291
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GS
| 0x10de
| 0x0292
| 0x0a1
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working
* Works with a few glitches with XFX Pine 0x2218
|-
| GeForce 7950 GX2
| 0x10de
| 0x0293 0x0294
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| GeForce 7950 GT
| 0x
| 0x0295 0x02E4
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GS
| 0x
| 0x02E3
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7600 GS
| 0x
| 0x02E1 0x0392
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7650 GS
| 0x
| 0x0390
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7600 LE
| 0x
| 0x0394
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7800GS (G8 ) (nv4 ) (2006)
| 0x
| 0x0093 0x00F5
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working
* works if AGP motherboard chipset is supported - Hardware OpenGL 2.1
|-
| GeForce 7100 GS
| 0x
| 0x016A
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7350 LE
| 0x
| 0x01D0
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7300le (G8 ) (nv4 ) (2006)
| 0x
| 0x01D1
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7300SE 7200GSGF-7200GS-N-B1 variant (G72)
| 0x10de
| 0x01D3
| 0x0a1
| <!--2D-->
| <!--3D-->
| <!--Analogue-->{{Unk|1x DVI, 1x VGA, 1x S-Video}}
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2007 40W pci-e 1.0 VP1 no unified shaders -
* not working Asus on via chipset (2015),
* works Asus on intel chipset (2015),
|-
| Geforce 7300gt (G8 ) (nv4 ) (2006)
| 0x
| 0x0395 0x0393
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working
* works
|-
| GeForce 7300 GS
| 0x
| 0x01DF
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7500 LE
| 0x
| 0x01DD
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7xxx
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GeForce 8800 Ultra (NV50 family)
| 0x
| 0x0194
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NV50 GeForce 8 to GeForce 200s opengl 3.x - max res - 80nm technology - PureVideo HD 2 or VP2 Nvidia VDPAU Feature Set A (absent from ultra and some 8800gt?) added a dedicated bitstream processor (BSP) and enhanced video processor for H.264, VC-1 acceleration
|-
| Geforce 8800gts (nv50) (G8x) (2007)
| 0x
| 0x0400 0x0600 0x0193
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2007 200w openGL3 openCL - 2x6pin psu
* not working 0x0193 models (2015) on via chipsets,
* works
|-
| Geforce 8800gtx (nv5 ) (G8x) (2007)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2008 200W 1x 6pin connector,
* not working
* working
* untested XFX PV-T88P-YDF4, Alpha Dog Edition runs extremely hot - Gigabyte GV-NX88T512H,
|-
| GeForce 8800 GT
| 0x
| 0x0602 0x0611 0x0193
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->DVI up to 2500 x 1600
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - 6pin psu power connector required
* not working
* untested Asus EN8800GT/HTDP/256M EN8800GT/HTDP/512M EN8800GT/G/HTDP/512M
* works
|-
| GeForce 8800 GT (G92)
| 0x10de
| 0x0611
| 0x0a2
| <!--2D-->{{Yes|6.11 Pixel Text}}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{N/A}}
| <!--Digital-->{{Yes}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3 pci-e 2.0 8800GT 512MB on Icaros 2.0.3 [[File:8800GT aros heads.png|thumb|8800GT]] [[File:8800GT aros tails.png|thumb|8800GT detail]]
|-
| Geforce 8600gt (nv5 ) (G8x) (2007)
| 0x
| 0x0401 0x0402
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res
* not working
* works
|-
| GeForce 8500 GT
| 0x
| 0x0421
| 0x0
| <!--2D-->{{Yes| some color }}
| <!--3D-->{{yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL tests - max opengl 3.x but 2.1 offered - max res
* not working
* works Gigabyte 8500 GT,
|-
| GeForce 8800 GS
| 0x
| 0x0606 0x060D
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res
|-
| GeForce 8600GS
| 0x
| 0x0403
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 3.x VP3 offers complete hardware-decoding for all 3 video codecs of the Blu-ray Disc format: MPEG-2, VC-1, and H.264 - Nvidia VDPAU Feature Set B
|-
| GeForce 8300 GS
| 0x
| 0x0423
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res
|-
| Geforce 8400gs G98GS (end 2007) GT218 (2009)
* Rev2 with 8/16 cores and 128-512MB of DDR2 or GDDR3 memory.
* Rev3 with 8 cores and 512MB-1GB of DDR3 memory (based on Tesla 2.0)
| 0x
| 0x0424 0x0422
| 0x0
| <!--2D-->{{Yes|Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 490 gearbox 505 Cube 135 Cube2 55 quake3 }}
| <!--Analogue-->{{Yes|works digital part of DVI but nothing from any display port}}
| <!--Digital-->{{Yes|output on digital 24 pin array of DDWG's DVI and hdmi}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 50W openGL 3.1 openCL - case single slot - one single-link DVI digital output, supporting up to one 1920x1080 resolution display - analog resolution 640 x 480 to 1024 x 768 16 and 24 bit color - [http://www.phoronix.com/scan.php?page=article&item=nouveau_comp_2011&num=19 runs a little hotter than expected] - G98 VP3 pci-e 2.0 512MB DDR2 -
* not working
* works Asus EN8400GS SILENT/P/512M PCIe (G98),
|-
| Geforce 8400gs (nv50) (G86) (mid-2007)
* Rev1 with 16 cores / 256MB of DDR2 memory.
| 0x
| 0x0404
| 0x0
| <!--2D-->{{Yes|Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 490 gearbox 505 Cube 135 Cube2 55 quake3 }}
| <!--Analogue-->{{Yes|works but not tested thru 4 pins of analog signal of DVI plug}}
| <!--Digital-->{{Yes|output on digital 24 pin array of DDWG's DVI and hdmi}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2008 50W openGL 3.1 openCL - case single slot - one single-link DVI digital output up to 1920x1080 resolution display - analog resolution 640 x 480 to 1024 x 768 16 and 24 bit color - [http://www.phoronix.com/scan.php?page=article&item=nouveau_comp_2011&num=19 runs a little hotter than expected] - G86 VP2 128MB -
* not working XFX PV-T86S-YAJG NVIDIA GeForce 8400 GS 512MB DDR2, Sparkle 8400GS 512MB SX84GS512D2L-DPP,
* works Asus EN8400GS SILENT/HTP/256M SILENT/HTP/512M/A,
|-
| GeForce 8400 SE
| 0x
| 0x0420
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 2.x openCL
|-
| NVidia Quadro NVS290 DMS-59
| 0x
| 0x0403
| 0x0
| <!--2D-->{{no| }}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk|DMS-59 socket}}
| <!--Digital-->{{unk|DMS-59 }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2008 21W - G86S (G86-827-A2) - 16 shading units, 8 texture mapping units, and 4 ROPs. NVIDIA has paired 256 MB DDR2 - PCIe 1.0 x16 Low Profile -
|-
| Geforce Quadro FX 4600 (SDI), 5600
| 0x
| 0x
| 0x0
| <!--2D-->{{Partial|VESA 2d}}
| <!--3D-->{{no| }}
| <!--Analogue-->{{partial| }}
| <!--Digital-->{{partial| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GeForce 9800 GX2 (NV50 family)
| 0x
| 0x0604
| 0x0
| <!--2D-->{{Partial|VESA }}
| <!--3D-->{{no| }}
| <!--Analogue-->{{Partial| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 150w - 65nm technology
|-
| GeForce 9800 GTX
| 0x10de
| 0x0612
| 0x0a2
| <!--2D-->{{Yes| }}
| <!--3D-->{{Maybe|6.11 }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 2x6pin psu -
* not working xfx on via chipset (2015),
* works xfx on chipset intel ,
|-
| GeForce 9800 GTX+
| 0x10de
| 0x0613
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res 2560 x 1920 - case dual slot - 26amp 12v rail on computer psu if 2x6pin connectors needed - 55nm version of the G92 chip - will not work with PCI-e 1.0a slots -
* not working
* works on a few models
|-
| Geforce 9800gt (nv50) (G92a) (2008)
| 0x10de
| 0x0614
| 0x0xa2
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel 495 gearbox 513 Cube 156 Cube2 120 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{partial| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL 3.1 openCL 1.x - case dual slot - 600w 26amp on both 12v rails for 2x6pin psu on gfx card - no fan control - some come with 1x6pin - renamed version of the venerable GeForce 8800 GT - randomly works
* not working Gainward 512M untested
* working Gainward CardExpert (0x0401) Green Edition NE39800TFHD02-PM8D92 1024MB (no 6pin)
|-
| Geforce gf9600 9600gt (nv5 ) (G9x) (2008)
| 0x10de
| 0x0622
| 0x0a1
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel 493 gearbox 675 Cube Cube2 100 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL 3.2 openCL but no fan control - case dual slot - 1 6pin pcie psu connector - 500 Watt or greater power supply with a minimum of 26 Amp on the +12 volt rail - Max Analog: 2048x1536 and Max Digital: 2560x1600 (Dual Link DVI Only) - PCI Express® 2.0 / 1.1 Support - g96 gpu randomly works -
* not working bfg tech ocx,
* works gigabyte gv-n96tsl-512i -
|-
| Geforce gf9500 9500gt (nv5 ) (G9x) (2008)
| 0x10de
| 0x0640
| 0x0a1
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel 480 gearbox 500 Cube Cube2 64 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.2 - case single slot - 350 Watt/400 Watt or greater power supply with a minimum of 18 Amp/22 Amp on the +12 volt rail - Max Analog: 2048x1536 and Max Digital: 2560x1600 (Dual Link DVI Only) - PCI Express® 2.0 / 1.1 Support -
* not working zotac zone fanless, Gainward USA NE29500THHD01-PM8796, PNY G9500GN2E50X+0TE,
* works xfx xne-9500t-td01-pm8596 1024mb ddr2,
|-
| GeForce 9600 GS
| 0x
| 0x0623
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res - will not work with PCI-e 1.0a slots -
* not working
* works
|-
| GeForce 9600 GSO
| 0x
| 0x0610
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res - G92 chopped down - 9600GSO is re-badged 8800GS both very power hungry cards -
|-
| GeForce 9300 GS
| 0x
| 0x06E1
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 opengl 3.x - max res
|-
| Geforce 9400 GT (nv5 ) (G86S) (2008)
| 0x
| 0x
| 0x0
| <!--2D-->{{partial|}}
| <!--3D-->{{unk|}}
| <!--Analogue-->{{unk|1x DVI, 1x VGA, 1x S-Video}}
| <!--Digital-->{{unk|1x DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 50W opengl 3.x - max res
|-
| Geforce 9xxx (nv5 ) (G9x) (2008)
| 0x
| 0x
| 0x0
| <!--2D-->{{unk|}}
| <!--3D-->{{unk|}}
| <!--Analogue-->{{unk|}}
| <!--Digital-->{{unk|}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 opengl 3.x - max res
|-
| <!--Description-->
NV84 (G84) GeForce 8600 (GT, GTS, M GT, M GS), 8700M GT,
NV92 (G92) GeForce 8800 (GT, GS, GTS 512, M GTS, M GTX)
GeForce 9600 GSO, 9800 (GT, GTX, GTX+, GX2, M GT, M GTX)
NV96 (G96) GeForce 9400 GT, 9500 (GT, M G), 9600 (M GS, M GT),
NV86 (G86) GeForce 8300 GS, 8400 (GS, M G, M GS, M GT), 8500 GT
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NVA0 (GT200) GeForce GTX (260, 275, 280, 285, 295)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->GeForce GTX 280 (NV50 family)
| <!--Vendor ID-->
| <!--Product ID-->0x05E1
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res PureVideo HD 4 (Nvidia Feature Set C or "VDPAU Feature Set C), VP4 added hardware to offload MPEG-4 Advanced Simple Profile (original DivX and Xvid)
|-
| <!--Description-->GeForce GTX 260
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x05E2
| <!--Revision-->
| <!--2D-->{{partial|Vesa}}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> 2 6pin - psu pci express 2.1 -
|-
| Geforce GTS250 250GTS (g92b) (2009)
| 0x10de
| 0x0615
| 0x0a2
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 486 gearbox 508-642 Cube Cube2 80 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> 2x6pin psu VP2 - pci-e 2.x - case dual slots - 738m 1gb ddr3 -
* not working Zotac branded version GDDR3 -
* works PNY gs-250x-zdfl and Gigabyte ??, BFG Tech RGTS2501024OCE, palit ne3ts250fhd52-pm8a92 with 2x6pin on top and hdmi output port,
|-
| <!--Description-->GeForce GT 240 (GT215 family)
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0ca3
| <!--Revision-->0xa2
| <!--2D-->{{Maybe|use VESA}}
| <!--3D-->{{No|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->late 2009 openGl 3.2 - case dual slots - no 6pin psu required with VP4 - All are pcie 2.1 cards and may not work in 1.0a slots -
* not working
* DDR3 with 512MB or 1GB -
* DDR5 -Asus ENGT240 - XFX Pine GT240XYHFC 0x3001 - Gigabyte GV-N240D5-512I rev 1.0 - Zotac AMP! with HDMI 1.3a with DisplayPort 1.1, Dual Link DVI -
* works
|-
| <!--Description-->GT220 (GT216) G220
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0a20
| <!--Revision-->0xa2
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Yes}}
| <!--Digital-->{{Yes|DVI }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> Icaros 2.0.3 GeForce GT220 1GB[[File:GT220 aros heads.png|thumb|GT220]][[File:GT220 aros tails.png|thumb|GT220]]
* untested NVIDIA Quadro® 400 512MB DDR3 GT216 DP DVI, AFox AF220 1Gb DDR3,
|-
| Geforce GT220 220GT G94 Tesla (g92b)
| 0x10de
| 0x0a20
| 0xa2
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 490 gearbox 505 cube 150 cube2 50 Quake3 }}
| <!--Analogue-->{{Unk|1x DVI, 1x VGA}}
| <!--Digital-->{{Yes|DVI but not 1x HDMI }}
| <!--Laptop LCD-->{{N/A}}
| 58W pci express 2.0 cards DDR3 - case single slot -
* not working ASUS ENGT220/DI/1GD2(LP)/V2 -
* works - gainward card expert 0x0401 GDDr3 512MB -
|-
| <!--Description-->GT210 GT 210 210GT G210 based on Tesla 2.0 GT218S GT218-300-A2 variant, GT218-300-B1
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0a65
| <!--Revision-->0xa2
| <!--2D-->{{Yes|6.11 Pixel Text}}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{Unk|1x DVI, 1x VGA}}
| <!--Digital-->{{Maybe|DVI out works but not hdmi or 1x DisplayPort}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 31W OpenGL 3.3 pci-e 2.0 cards - single slot -
* working GT218 based Asus EN210 based silent low profile large passively cooled -
* untested MSI GeForce 210 1GB DDR3 PCIe N210-MD1GD3H/LP,
* not working
|-
| <!--Description-->Quadro NVS 295 (256 MB GDDR3), NVS 450 (256M/512 MB DDR3)
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x
| <!--Revision-->
| <!--2D-->{{yes| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->
| <!--Digital-->{{partial|2 or 4 dp ports}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 25w low performance - G98s with 8 shading units, 4 texture mapping units, and 4 ROPs on PCI-Express 1.0 x16 -
*not working some NVIDIA Quadro NVS 295 2 dp ports (DELL, HP),
*working
|-
| <!--Description-->GT310 Tesla 310, 315, GT 320, GT 330 GT 340
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{Maybe|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2010 50w OpenGL 3.3 openCL all similar in performance to GT2xx except gt31x (poor)
|-
| <!--Description-->Quadro NVS310 NVIDIA NVS 310
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital--> 2 dp
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2012 25w GF119S (GF119-825-A1) 48 shading units, 8 texture mapping units, and 4 ROPs on PCI-Express 2.0 x16 - 512 MB DDR3 - PureVideo VP5 VDPAU Feature Set D -
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description--> GTX 470, GTX 480 GF10 GF10* core (NVC0 family)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{Maybe| tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2010 215w 2x6 plugs - NVC0 family (Fermi) GF100 (GF100-275-A3) Fermi 448 shading units, 56 texture mapping units, and 40 ROPs with 1,280 MB GDDR5 - OpenGL4.5 OpenCL1.1 Tessellation - case dual slots -
|-
| Geforce GTX460 460GTX (G104) 256bit, 1GB v2 192bit and GTX 465
| 0x10de
| 0x0e22
| 0xa1
| <!--2D-->{{Maybe|VESA }}
| <!--3D-->{{Maybe| tunnel gearbox cube 055-111 cube2 50}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVC0 family (Fermi) OpenGL 4.x but - 2x6pin psu - case dual slots -
* not working evga 768MB GDDR5 192bit 01G-P3-1373-ER or 01G-P3-1372-TR
* works 1GB GDDR5 256bit 01G-P3-1371-ER
|-
| <!--Description-->Geforce GTX 460SE 192bit
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0e23
| <!--Revision-->0x91 or 0xa1
| <!--2D-->{{Yes| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->{{Yes| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> nouveau 6.11 - 2 6pin psu needed - case dual slots -
* not working
* works EVGA 01g-p3-1366-b6 et 1024MB p1041 -
|-
| Geforce GT450 GTS450 450GTS GF106
| 0x10de
| 0x0dc4
| 0x0a1
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel gearbox cube cube2 50 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes|DVI }}
| <!--Laptop LCD-->{{N/A}}
| 2010 Hardware OpenGL 4.2 but nouveau at 3.3 - most need 1x 6pin psu - case dual slots -
* not working
* DDR3 1 or 2GB - Palit NEAS450NHD41F,
* GDDR5 512Mb or 1GB - MSI MPN N450GTSM2D1GD5OC, Asus MPN ENGTS450DI1GD5,
* works Gainward Card Expert NE5S4500FHd51,
|-
| <!--Description-->GT 440 GF108 chipset or better OEM GF106
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 6.11 Pixel Text}}
| <!--3D-->{{Maybe| tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGl 4.1 opencl 1.x - no 6 pin psu - 96 cuda cores 128bit - case dual slots -
* not working
* OEM
* GDDR5 512MB to 1GB ASUSTeK ENGT440/DI/1GD5
* GDDR3 Asus 1gb to 2gb,
* works
|-
| <!--Description-->GT430 430GT (GF108)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|6.11 Pixel Text}}
| <!--3D-->{{Maybe|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->ddr3 memory 64bit or 128bit - buggy await new revision of driver
* not working
* works
|-
| <!--Description-->nVidia Quadro FX1800 768MB GDDR3 Full Height Graphics Card Workstation
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 6.11 Pixel Text}}
| <!--3D-->{{no|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->{{Maybe|DVI-I 2xDP}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->59W 768 MB GDDR3 memory using a 192-bit memory interface - OpenGL 3.3 -
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GTX 590 Fermi
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->OpenGL4.4 OpenCL 1.1 - GDDR5 - 6pin and 8pin psu connectors - 512 cuda - case dual slots -
* not working
* works
|-
| <!--Description-->GTX 580,
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->PureVideo HD 5" or "VP5" (Nvidia Feature Set D or VDPAU Feature Set D) 4k UHD 3840 × 2160 H.264 decode -
|-
| <!--Description-->GTX 570,
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{Maybe|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working Zotac GTX 570, Gainward GTX560TI/570 Phantom,
* works gigabyte, evga
|-
| <!--Description-->Geforce 5xx 560gtx Fermi GTX 560,
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->opengl 4.x - 2 6pin psu - 384 cuda cores - case dual slots - will not work with PCI-e 1.0a slots -
* not working Asus ENGTX560 DC/2DI/1GD5,
* Ti LE 448 cuda GDDR5 320bit
* Ti 256bit
* works
|-
| <!--Description-->GTX 560 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working evga GTX 560Ti 01GP31560KR - Gainward GTX560TI/570 Phantom,
* works
|-
| <!--Description-->GTX 550 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x1201
| <!--Revision-->
| <!--2D-->{{Maybe|VESA Doom Doom2 Duke }}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->can hang on boot up on I2C Init or suffer random lockups on OpenGL apps - most need 1 6pin min 400W 24A on the +12V1 / +12V2 dual 12V rails of the computers' power supply unit - 192 cuda cores - case dual slots used - will not work with PCI-e 1.0a slots -
* not working eVGA GeForce GTX 550 Ti (1024 MB) (01GP31556KR) -
* untested asus Extreme, eVGA GeForce GTX 550 Ti (1024 MB) (01GP31557KR) - -
* works
|-
| <!--Description-->GT 545 and OEM GF116
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 4.2 opencl 1.x - GDDR5 with OEM only -
|-
| <!--Description-->GT530 OEM
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 6.11 Pixel Text}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->96 cuda cores - 1GB or 2GB DDR3 128bit
|-
| <!--Description-->GT520 520GT
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->untested 48 cuda cores - DDR3 64bit
|-
| <!--Description-->510, GT 530
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D 6.11 Pixel Text}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> ddr 3 - 50w max -
|-
| <!--Description-->GT610 Fermi GF119
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVS 315 300 GF119S
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{No|VESA}} needs special dms-59 cable
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 fermi 315 PNY VCNVS315-T 1Gb DDR3 but needs special dms-59 cable -
|-
| <!--Description-->GT630 GF108 Fermi
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->not accelerated 2015 - like the GT730 below - 96 cuda cores whilst kepler version has 384 - 128bit to keplers' 64bit bandwidth - kepler has 2GB DDR3
* not working Gigabyte
* DDR3
* GDDR5
* works
|-
| <!--Description-->Geforce GT 730
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe| use VESA 6.11 Pixel Text}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> fermi version has 96 cuda cores 128bit GF108
* not working Asus
* works
|-
| <!--Description-->nVIDIA Quadro 4000
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}} 2 dp ports
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->142W 2Gb GDDR5 - PCI Express 2.0 x16 ; full Height card with 1x 6-Pin PCIe power need - CUDA Cores 256 - OpenGL 4.5
|-
| <!--Description-->nVIDIA Quadro 5000
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2011 200W 2.5Gb GDDR5 320 bit - PCI Express 2.0 x16 full Height card with 2x 6-Pin PCIe power need -
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce GTX Titan GeForce GTX Titan Black GeForce GTX Titan Z
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVE0 family (Kepler) GeForce 600 GeForce 700 GeForce GTX Titan Kepler
|-
| <!--Description-->GeForce GTX 780 GeForce GTX 780 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->PureVideo HD 6" or "VP6" (Nvidia Feature Set E or VDPAU Feature Set E) significantly improved performance when decoding H.264 and MPEG-2
|-
| <!--Description-->GeForce GTX 770
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->opengl 4.4 opencl 1.1
|-
| <!--Description-->GeForce GTX 760 GeForce GTX 760 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce GT 740
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce GT 730 Kepler
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> two versions fermi 96 cores 128bit GF108 and kepler 384 cores 64bit GK208
|-
| <!--Description-->680gtx GK104 core gtx680 680m
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVE0 family (Kepler)
|-
| <!--Description-->GTX 690 Kepler NVE0
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->pci-e 3.0, OpenGL 4.4 OpenCL 1.1
|-
| <!--Description-->GTX 670
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GTX 660 GTX 660 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GTX 650 GTX 650 Ti GTX 650 Ti Boost
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVE0 family (Kepler) most need 1 6pin psu
* not working asus ENGTX560 DC/2DI/1GD5
* works
|-
| <!--Description-->Geforce GT 640
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* 128bit DDR3
* 192bit DDR3 1.5 to 3GB 50W
* 128bit GDDR5 75W
|-
| <!--Description-->GT 620 GT 640
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce 750ti, GeForce 900
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->[https://nouveau.freedesktop.org/FeatureMatrix.html NV110] Maxwell -
|-
| <!--Description-->Nvidia GTX 750
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x1381
| <!--Revision-->0xa2
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->2026 nvidia test
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->GM206 2nd gen maxwell PureVideo HD 7" or "VP7" (Nvidia Feature Set F or VDPAU Feature Set F) adds full hardware-decode of H.265 HEVC Version 1 (Main and Main 10 profiles and full fixed function VP9 (video codec) hardware decoding
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Quadro K620 quadro p620 2gb gddr5 128bit and quadro p1000 4gb gt1030 30w
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 50w slim low profile -
|-
| <!--Description-->GeForce gtx 1060, GeForce 1070
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NV130 Pascal
|-
| <!--Description-->gtx 1050ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->NV130 family (Pascal)
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV132 (GP102) NVIDIA Titan (X, Xp), GeForce GTX 1080 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV134 (GP104) GeForce GTX (1070, 1080)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV136 (GP106) GeForce GTX 1060
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV137 (GP107) GeForce GTX (1050, 1050 Ti)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV138 (GP108) GeForce GT 1030
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NV162 (TU102) NVIDIA Titan RTX, GeForce RTX 2080 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV164 (TU104) GeForce RTX (2070 Super, 2080, 2080 Super)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2020 NV160 family (Turing) unified gsp-rm firmware - best starting point for Vulkan support
|-
| <!--Description-->NV166 (TU106) GeForce RTX (2060, 2060 Super, 2070)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV168 (TU116) GeForce GTX (1650 Super, 1660, 1660 Ti, 1660 Super)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV167 (TU117) GeForce GTX 1650
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->gtx 1650ti super
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2018 old style
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NV172 (GA102) GeForce RTX (3080, 3090)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 av1 decoding ampere
|-
| <!--Description-->NV174 (GA104) GeForce RTX (3060 Ti, 3070, 3080 Mobile)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->NV170 family (Ampere)
|-
| <!--Description-->NV176 (GA106) GeForce RTX (3050, 3060)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV177 (GA107) GeForce RTX 3050
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NV192 (AD102) GeForce RTX 4090
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV193 (AD103) GeForce RTX 4080
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->NV190 family (Ada Lovelace)
|-
| <!--Description-->NV194 (AD104) GeForce RTX (4070, 4070 Ti)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV196 (AD106) GeForce RTX 4060 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV197 (AD107) GeForce RTX 4060
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
|}
==== nouveau mobile integrated ====
If you purchased a notebook with an NVidia sticker on it, most of the time you have a optimus based one, ie Intel CPU+GPU melded with Nvidia GPU, Optimus was slated at one point to go into desktop PCs but the industry ended up rejecting that concept
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|-
| GeForce 6100 nForce 405
| 0x
| 0x03D1 0x0242
| 0x0
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
|
|-
| <!--Description-->GeForce 6100 nForce 400
| <!--Vendor ID-->
| <!--Product ID-->0x03D2
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce 6100 nForce 420
| <!--Vendor ID-->
| <!--Product ID-->0x03D5
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce 6150 LE
| <!--Vendor ID-->
| <!--Product ID-->0x0241
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6150SE nForce 430
| 0x
| 0x03D0
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| working
|-
| <!--Description-->GeForce 6150
| <!--Vendor ID-->
| <!--Product ID-->0x0240
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7150M / nForce 630M
| <!--Vendor ID-->
| <!--Product ID-->0x0531
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7000M / nForce 610M
| <!--Vendor ID-->
| <!--Product ID-->0x0533
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7050 PV / NVIDIA nForce 630a
| <!--Vendor ID-->
| <!--Product ID-->0x053A 0x053B
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Geforce IGP 7025 nForce 630a
| 0x
| 0x053E
| 0x0
| <!--2D-->{{Yes|some}}
| <!--3D-->{{Yes|some}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No| }}
| some support on some chipsets
|-
| GeForce 7100 / nForce 630i (C73)
| 0x10de
| 0x07e1
| 0x0a2
| <!--2D-->{{Maybe}}
| <!--3D-->{{Maybe}}
| <!--Analogue-->{{Maybe}}
| <!--Digital-->{{Maybe}}
| <!--Laptop LCD-->{{N/A}}
| Icaros 2.0.3 and Gigabyte 73-pvm-s2h rev. 1.0 but will not boot on [https://ae.amigalife.org/index.php?topic=806.msg8765#new Acer x270 with Icaros 2.3]
|-
| <!--Description-->GeForce 7150 / NVIDIA nForce 630i
| <!--Vendor ID-->
| <!--Product ID-->0x07E0
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7050 / NVIDIA nForce 610i
| <!--Vendor ID-->
| <!--Product ID-->0x07E3
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Geforce IGP 8100 (nForce 720a)
| 0x
| 0x084F
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
|
|-
| GeForce 8100P
| 0x
| 0x0847
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
|
|-
| <!--Description-->Geforce 8200 8300 nForce 730a
| <!--Vendor ID-->
| <!--Product ID-->0x084A 0x0848 (GeForce 8300) 0x0849 (GeForce 8200) 0x084B (GeForce 8200)
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->working on some 8300's with Icaros 1.5 but others untested
|-
| <!--Description-->nForce 780a SLI
| <!--Vendor ID-->
| <!--Product ID-->0x084C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->nForce 750a SLI
| <!--Vendor ID-->
| <!--Product ID-->0x084D
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Nvidia Geforce IGP 9300 (nForce MCP7a)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->works
|
|-
| <!--Description-->9400 (ION)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->If AROS detects GPU chipset, works well
|-
| <!--Description-->9700M ()
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Geforce ION 2
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->works well
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce Go 6150
| <!--Vendor ID-->
| <!--Product ID-->0x0244
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6100
| <!--Vendor ID-->
| <!--Product ID-->0x0247
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6200
| <!--Vendor ID-->
| <!--Product ID-->0x0164 0x0167
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6400
| <!--Vendor ID-->
| <!--Product ID-->0x0166 0x0168
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->Sony Laptop
|-
| <!--Description-->GeForce Go 6800
| <!--Vendor ID-->
| <!--Product ID-->0x00C8
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6800 Ultra
| <!--Vendor ID-->
| <!--Product ID-->0x00C9
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600
| <!--Vendor ID-->
| <!--Product ID-->0x0144
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600 TE/6200 TE
| <!--Vendor ID-->
| <!--Product ID-->0x0146
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600
| <!--Vendor ID-->
| <!--Product ID-->0x0148
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600 GT
| <!--Vendor ID-->
| <!--Product ID-->0x0149
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7200
| <!--Vendor ID-->
| <!--Product ID-->0x01D6
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7300
| <!--Vendor ID-->
| <!--Product ID-->0x01D7
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->untested
|-
| <!--Description-->GeForce Go 7400
| <!--Vendor ID-->
| <!--Product ID-->0x01D8
| <!--Revision-->
| <!--2D-->
| <!--3D-->works 2D and 3d issues though
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7800
| <!--Vendor ID-->
| <!--Product ID-->0x098
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7800 GTX
| <!--Vendor ID-->
| <!--Product ID-->0x0099
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7950 GTX
| <!--Vendor ID-->
| <!--Product ID-->0x0297
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7900 GS
| <!--Vendor ID-->
| <!--Product ID-->0x0298
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7900 GTX
| <!--Vendor ID-->
| <!--Product ID-->0x0299
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7600
| <!--Vendor ID-->
| <!--Product ID-->0x0398
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7600 GT
| <!--Vendor ID-->
| <!--Product ID-->0x0399
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 6610 XL
| <!--Vendor ID-->
| <!--Product ID-->0x0145
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 6700 XL
| <!--Vendor ID-->
| <!--Product ID-->0x0147
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce 8700M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0409
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8600M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0425
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8400M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0426
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8400M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0427
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8400M G
| <!--Vendor ID-->
| <!--Product ID-->0x0428
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8800M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x0609
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8800M GTX
| <!--Vendor ID-->
| <!--Product ID-->0x060C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9500M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0405
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8600M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0407
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9650M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0408
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9400M GT
| <!--Vendor ID-->
| <!--Product ID-->0x042C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9300M G
| <!--Vendor ID-->
| <!--Product ID-->0x042E
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9100M G
| <!--Vendor ID-->
| <!--Product ID-->0x0844
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9800M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x0628
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9700M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x062A
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9800M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x062C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9600M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0647
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9600M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0648
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9600M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0649
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9500M G
| <!--Vendor ID-->
| <!--Product ID-->0x064B
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9300M GS
| <!--Vendor ID-->
| <!--Product ID-->0x06E5
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9200M GS
| <!--Vendor ID-->
| <!--Product ID-->0x06E8
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9300M GS
| <!--Vendor ID-->
| <!--Product ID-->0x06E8
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->NV50 (G80) Quadro FX (4600 (SDI), 5600)
Quadro FX (2800M, 3600M, 3700, 3700M, 3800M, 4700 X2), VX 200
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV94 (G94) 9700M GTS, 9800M GTS, GeForce G 110M, GT 130(M), GT 140, Quadro FX (1800, 2700M)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV84 (G84) 8700M GT, GeForce 9500M GS, 9650M GS
Quadro FX (370, 570, 570M, 1600M, 1700), NVS 320M
NV86 (G86) GeForce 8300 GS, 8400 (GS, M G, M GS, M GT), 8500 GT, GeForce 9300M G
Quadro FX 360M, NVS (130M, 135M, 140M, 290)
GeForce GTS 150(M), GTS 160M, GTS 240, GTS 250, GTX (260M, 280M, 285M), GT (330, 340)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV96 (G96) 9650M GT, 9700M GT
GeForce G 102M, GT 120
Quadro FX (380, 580, 770M, 1700M)
NV98 (G98) GeForce 8400 GS, GeForce 9200M GS, 9300 (GE, GS, M GS)
GeForce G 100, G 105M
Quadro FX (370 LP, 370M), NVS (150M, 160M, 295, 420, 450)
Quadro CX, FX (3800, 4800, 5800)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVA3 (GT215) GeForce GT (240, 320, 335M), GTS (250M, 260M, 350M, 360M) Quadro FX 1800M
NVA5 (GT216) GeForce GT (220, 230M, 240M, 325M, 330M), 315
Quadro 400, FX 880M, NVS 5100M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVA8 (GT218) GeForce 8400 GS, ION 2, GeForce 205, 210, G 210M, 305M, 310(M), 405
Quadro FX (380 LP, 380M), NVS (300, 2100M, 3100M)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVAA (MCP77/MCP78) GeForce 8100, 8200, 8300 mGPU / nForce 700a series, 8200M G
NVAC (MCP79/MCP7A) ION, GeForce 9300, 9400 mGPU / nForce 700i series, 8200M G, 9100M, 9400M (G)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVAF (MCP89) GeForce 320M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GT 605M, GT 610M GT 620M GT 630M GT 635M GT 645M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GTX 650M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GTX 1650 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2019 turing architecture - last old skool support pre Vulkan
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rtx 2050 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 ampere architecture best starting point for vulkan support
|-
| <!--Description-->rtx 2060 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rtx 4060 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
|}
====radeon.hidd====
Michel Shultz ''2D'' graphics driver (standard on most distributions but only for very old GPUs) and bearsofts updated 2013 around Icaros 1.3.1
3D is not implemented by AROS yet but could cover these AMD chipsets
<pre>
2014 SI AMD HD 7xxx
2016 GCN3rd AMD R5E R7E
2019 GCN5th AMD Vega 8
2022 RDNA1 AMD RX5500 desktop only
2023 RDNA2 AMD 680M 780M
2024 RDNA3 AMD 880M 890M
2025 RDNA3.5 AMD 8060S strix halo and AI
2027 RDNA4 AMD
</pre>
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! 2D
! 3D
! Analogue Output
! Digital Output
! Laptop LCD
! Comments
|-
| 7000 (r100)
| 0x1002
| 0x5159
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->{{Maybe|vga15 pin connection but not s-video}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.3
|-
| 7500 (rv200 but still r100 based)
| 0x1002
| 0x5157
| 0x
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->{{Yes|vga15}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.3
|-
| 8000 8500 (r200)
| 0x1002
| 0x514c (8500LE)
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.4
|-
| 9000 9100 9250 (r200)
| 0x1002
| 0x5964 (9000) 0x514d (9100)
| 0x0001
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->{{Maybe|VGA15 but not s-video}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.4
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| 9600 9800 (r300)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1
|-
| x300 x600 (r300)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1
|-
| x700, x800 ([http://en.wikipedia.org/wiki/Radeon_R600 r420])
| 0x
| 0x554d (R430 x800xl)
| 0x0
| <!--2D-->{{Yes|new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1 - x800 XL PCIE (problem with mouse-pointer, some part of the pointer is not transparent)
|-
| x1300 x1550 x1600 x1800 x1900 x1950 ([http://en.wikipedia.org/wiki/Radeon_R520 r520])
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes|new driver}}
| <!--3D-->{{no}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| HD2400 HD2600 HD2900 ([http://en.wikipedia.org/wiki/Radeon_R600 r600])
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|some features with new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 3.3 open CL 1.2 TeraScale architecture
|-
| HD3400 HD3600 HD3800 (r600)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|some features with new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->pci-e 2.0, openGL 3.3
|-
| HD4300 HD4500 HD4600 HD4700 HD4800 ([http://en.wikipedia.org/wiki/Radeon_R600 r700])
| 0x1002
| 0x
| 0x0
| <!--2D-->{{Maybe|but some later cards need 3D engine for faster and more flexible 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 3.3 - DDR3 - GDDR5 was one of AMD's aces for the 4800 series - 4670 liked -
|-
| HD6900 cayman series
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|some features with new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 3.3 open CL not mature (2014) -
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| HD5400 Series HD5430 HD5450 HD5470
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2010 openGL 3.3 openCL - GDDR3 -
|-
| HD5500 Series HD5550 HD5570 HD5600 Series HD5650 HD5670 HD5700 Series HD5750 HD5770
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 3.3 openCL - GDDR5
|-
| HD 5800 Series HD5850 HD5870 HD5900 Series HD5950 HD5970 - HD6xxx not NI chipset ([http://en.wikipedia.org/wiki/Evergreen_(GPU_family) r800 evergreen])
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 openGL 3.3 openCL - DDR5 pci-e 2.1 best avoided for all pci-e 1.0 mobos - Ati TeraScale2 architecture -
|-
| HD6450 [http://en.wikipedia.org/wiki/Northern_Islands_(GPU_family) Northern Islands chipset]
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> - DDR3 -
|-
| HD6600 Series HD6650 HD6570 HD6600 Series HD6650 HD6670
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2011 - DDR5 -
Radeon HD 8470 11 TeraScale 2
Radeon HD 8350 11 TeraScale 2
Radeon HD 7510 11 TeraScale 2
Radeon HD 6550D 11 TeraScale 2
Radeon HD 6530D 11 TeraScale 2
Radeon HD 6410D 11 TeraScale 2
Radeon HD 6370D 11 TeraScale 2
Radeon HD 6320 11 TeraScale 2
Radeon HD 6310 11 TeraScale 2
Radeon HD 6290 11 TeraScale 2
Radeon HD 6250 11 TeraScale 2
|-
| HD6800 Series HD6850 HD6870 HD6700 Series HD6790 to HD6990
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2011 - DDR5 - AMD TeraScale3 -
|-
| <!--Description-->HD7450-HD7670
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2012 OpenGL but not Vulkan
Radeon HD 7660D 11 TeraScale 3
Radeon HD 7560D 11 TeraScale 3
Radeon HD 7540D 11 TeraScale 3
Radeon HD 7480D 11 TeraScale 3
Radeon HD 6930 11 TeraScale 3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->HD7750 HD 7770 / R7 250X HD7850 HD7870 / R9 270X HD 7950 / R9 280 HD 7970 / R9 280X [http://en.wikipedia.org/wiki/Southern_Islands_(GPU_family) Southern Islands]
*AMD Radeon R7 250XE Cape Verde XT
*AMD Radeon R7 M465X Cape Verde
*AMD Radeon R9 255 Cape Verde PRX
*AMD Radeon HD 7750 Cape Verde PRO
*AMD Radeon R7 250E Cape Verde PRO
*AMD Radeon HD 8740 Cape Verde PRO
*AMD Radeon HD 7730 Cape Verde LE
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2012 pci-e 3.0 1st Gen GCN architecture -
|-
| <!--Description-->R5 430, FirePro W2100,
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2015 50W+ openGL openCL 1/3 speed of gtx750ti 1st gen gcn1
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->HD7790 [ Sea Islands ]
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 openGL 4.1 open CL - GCN2.0 Vulkan 1.0 introduced a Shader Engine (SE) comprising one geometry processor, up to 44 CUs (Hawaii chip), rasterizers, ROPs, and L1 cache and Graphics Command Processor for faster audio/video - suits Vulkan 1.1
|-
| <!--Description-->r5 240 240x (slow) R7 250 250x (faster) HD 7790 / R7 260 260X / R7 360 to R5 350 (fast) and last one R5 430 OEM Plus (slow again)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 50W+ openGL 4.x openCL 1.x Vulkan 1.0 GCN 1st gen -
|-
| <!--Description-->R9 290 / R9 390 R9 290X / R9 390X
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2014 openGL 4.x openCL 1.x 2nd Gen GCN Vulkan 1.1 architecture -
|-
| <!--Description-->R9 Fury Nano
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2015
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->r-200 series r8 275 285 295 375 [Volcanic Islands]
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 4.x openCL 1.x - GCN3 Vulkan 1.2
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Radeon™ RX 5700/5600/5500 Series and Radeon™ RX Vega Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 GCN 4 - OpenGL 4, Vulkan 1.3 -
|-
| <!--Description-->Radeon™ RX 400/500 Series like rx 580
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->Radeon™ Pro WX 9100, x200 Series and Radeon™ Pro W5700/W5500 Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Radeon™ RX 7900/7600 Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->Radeon™ RX 6900/6800/6700/6600/6500 Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|}
==== amd radeon mobile integrated ====
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|-
| <!--Description-->ATI RC410 [Radeon Xpress 200M]
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x5a62 0x5955 0x5974 (200m)
| <!--Revision-->0x00
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->
|-
| <!--Description-->Mobility Radeon 7500
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x4c57 (7500)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->
|-
| <!--Description-->Mobility Radeon 9000
| 0x1002
| 0x4966 (9000)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->
|-
| <!--Description-->Mobility Radeon 9500 9550 (rv360) 9600 (rv350)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon 9800 (rv420)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon X300 (RV370) X600 (RV380)
| 0x1002
| 0x (RV370) 0x5657 (RV380)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon X700 (RV410) X800 (RV423)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon X1200 (RS69M0)
| 0x1002
| 0x791f
| 0x0
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->X1200 IGP (RS690)
|-
| <!--Description-->Mobility Radeon X1300 X1350 X1400(rv515) X1600 (rv530) X1650 (RV535) X1800 (rv520) x1900 (rv570)
| 0x1002
| 0x71c7 (X1650)
| 0x009e
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon 2100
| 0x1002
| 0x796e (2100)
| 0x0
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{No|}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 2400 (rv610) HD2600 (rv630)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 3100 HD3200 HD3450 3470 (RS780MC RV620) 3670 (M86-XT RV635) HD3870 (M88-LXT RV670)
| 0x1002
| 0x9610 and 0x9612 (HD3200) 0x9614 (HD3300)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 4200 4250 (RV620)
| 0x1002
| 0x (HD4200) 0x9715 (HD4250)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 4330 4530 4550 (M92 RV710) 4650 (M96-XT RV730) 4670 RV730XT 4830 (M97 RV740) 4850 (M98 RV770)
| 0x1002
| 0x (HD4350) 0x9442 (RV770) 0x9490 (HD4670)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 530v (M92 RV710) HD 550v (M96 RV730)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->no support yet
|-
| <!--Description-->Mobility Radeon HD 5430 HD5650 (cedar Park LP)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->no support yet
|-
| <!--Description-->Radeon HD 6250 6290 6310 6320 6350M (Redwood Capilano PRO)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->no support yet
|-
| <!--Description-->AMD 7640G, 8450G, 8550G, 8650G Northern Islands
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 Last real support for old graphics standard before Vulkan takeover
|-
| <!--Description-->R5 M230 M240 M255 - R7 M260 M265 (Kaveri Crystal series with Mantle and HSA)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->2015 Maybe better with Vulkan
|-
| <!--Description-->R5E R7E
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->2016 bristol ridge GCN 3.0 IGP (Carrizo Mobile)
|-
| <!--Description-->AMD Vega 3, 6, 8, 11 iGP
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2018 raven ridge GCN 5th Gen
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->5500m 5600m 5800m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA1 NaviX1 Zen 2
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rx680m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA2 NaviX2 Zen 3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->phoenix apu 1103
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 RDNA3 NaviX3 zen 4
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
==== AMDGPU Vulkan desktop ====
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Kaveri 290 290X, 260 260X
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2015 AMDGPU Vulkan
|-
| <!--Description-->R9 285 / R9 380 R9 380X Fury / Fury X
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->opengl 4 opencl 1 3rd Gen GCN architecture
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX470 RX460 RX480 RX580 polaris10
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 opengl 4 opencl 2 4th Gen GCN architecture vulkan 1.3
|-
| <!--Description-->RX460 RX560D polaris11
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 opengl 4 opencl 2 4th Gen GCN architecture vulkan 1.3
|-
| <!--Description-->RX580 polaris20
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 opengl 4 opencl 2 4th Gen GCN architecture vulkan 1.3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX 5000 5500 Navi 1x
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RNDA 1
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX 6000 Navi 2x
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RNDA 2 Mesa 21.3 decode av1
|-
| <!--Description-->RX6000
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX 7000
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 RNDA 3 navi
|-
| <!--Description-->RX7000
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->RX9070 rx 9060 XT
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2025 rdna4 navi
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2026 udna (aka rdna5)
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
|}
==== AMDGPU Vulkan mobile ====
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->R5E R7E
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->2016 bristol ridge GCN 3.0 IGP (Carrizo Mobile)
|-
| <!--Description-->Vega iGP 3, 6, 8, 11
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2018 raven ridge - Graphics Core Next (GCN) 5th gen -
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->5500m 5600m 5800m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA1 NaviX1 Zen 2
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rx680m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA2 NaviX2 Zen 3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->phoenix apu 1103
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA3 NaviX3 zen 4
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
fyi if a notebooks with two graphic cards, the integrated Intel card (id 0x7d) for low power usage and a discrete Radeon card (id 0x56) which should be used for GPU-intensive applications. By default the Intel card is always used
[https://wiki.archlinux.org/title/ATI Gallium Radeon HD] is not ported yet but is [https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.9-AMDGPU-Stats really big] and complex so another solution may have to be [https://discuss.haiku-os.org/t/the-graphics-acceleration-can-of-worms/10515/5 found] like [https://discuss.haiku-os.org/t/vulkan-lavapipe-software-rendering-is-working-on-haiku/11363/10 vulkan] where support starts from very recent ISA GCN islands HD7000s cards only
*Vulkan
*Gallium
Vulkan software renderer allows to prepares the infrastructure for hardware rendering. Primary difference between software and hardware renderer is output to regular RAM vs GPU RAM, the rest is almost the same. It is possible to render to GPU RAM offscreen.
bare bones basics data flow
application,>>> api/opengl/vulkan>>>>, jit compiler, >>>>memory manger, >>>>gpu hardware
so you need to have a compiler that takes your api call/program/shaders/drawing commands and turns them into a program the gpu can render.
the vulkan to amd gpu compiler for shaders and textures is nearly os agnostic iirc as long as you have solid posix compliance
Unlike OpenGL, Vulkan does not depend on windowing system and it have driver add-on system with standardized API (Mesa also have OpenGL driver add-ons, but it have non-standard Mesa-specific API). OpenGL may need more work for windowing system related code at this point but developing Vulkan on real hardware is more strategic than developing OpenGL, since now Zink 3 running on Vulkan compensates for the lack of OpenGL support by giving performance similar to native accelerated OpenGL
RadeonGfx use client-server model with client-server thread pairs. For each client thread that calls 3D acceleration API, server side thread is created. If client thread terminates, server side thread also exit.
<pre>
Group 1
GeForce RTX 5090 5070 5060 5050
GeForce RTX 4090 4070 4060 4050
Group 2
GeForce RTX 2070
Radeon RX 7600
Quadro RTX 5000
Radeon PRO W6600
GeForce RTX 2060 12GB
Radeon PRO W7500
Quadro GP100
Radeon RX 6800S
GeForce RTX 3070 Laptop GPU
GeForce GTX 1080
GeForce RTX 3060 8GB
Quadro RTX 4000
Radeon Pro W5700
Radeon RX 6600
GeForce RTX 2080 (Mobile)
Radeon RX 7700S
Radeon RX 6700S
Radeon RX 6600S
Quadro RTX 5000 (Mobile)
GeForce GTX 1070 Ti
GeForce RTX 4050 Laptop GPU
Radeon Pro Vega 64X
Radeon RX 5700
Radeon RX Vega 64
GeForce RTX 2060
GeForce RTX 2070 Super with Max-Q Design
Group 3
Radeon RX 6600M
GeForce GTX 1070
Radeon RX 6650M
GeForce RTX 3060 Laptop GPU
Radeon RX Vega 56
Radeon RX 6700M
GeForce RTX 2080 with Max-Q Design
Radeon RX 6800M
GeForce GTX 980 Ti
Radeon R9 Fury
GeForce GTX 980
Quadro M5500
Radeon R9 390X
Radeon RX 580
Radeon RX 5500
Radeon RX 6550M
GeForce GTX 1660 Ti with Max-Q Design
GeForce GTX 780 Ti
GeForce GTX 970
Radeon R9 290X
Radeon RX 480
Radeon RX 5600M
Quadro RTX 3000 with Max-Q Design
Radeon R9 290X / 390X
Ryzen 5 4600HS with Radeon Graphics
Radeon R9 290
Radeon Pro 5500 XT
Radeon R9 M490 *
GeForce GTX 780
Radeon RX 6500M
Quadro M5500
GeForce GTX 1060 with Max-Q Design
Radeon RX 6500
Radeon RX 5300
Intel Arc A770M
GeForce GTX 1650 Ti
Radeon Pro 580X
Radeon RX 6400
GeForce RTX 2050
Ryzen 9 4900HS with Radeon Graphics
Radeon Ryzen 9 6900HS
GeForce GTX 980M
Quadro M5000M
Radeon RX 6300
GeForce GTX 1650 Ti with Max-Q Design
Radeon Pro 570
Ryzen 9 6900HS with Radeon Graphics
GeForce GTX 1050 Ti
Quadro M4000M
Radeon R9 280X 380X
GeForce GTX 1650 with Max-Q Design
GeForce MX570
Radeon R9 280X
Radeon R9 380
Radeon 780M
GeForce GTX 960
GeForce GTX 970M
Quadro M4000M *
GeForce GTX 680
Group 4
Radeon RX 6500M
Quadro M5500
Radeon Pro WX 7100
GeForce GTX 1060 with Max-Q Design
GeForce GTX 1650
Intel Arc A730M
Radeon HD 7970
Radeon R9 M395X
Radeon R9 M485X
Radeon R9 M480 *
Radeon R9 M295X
Radeon R9 M390X *
FirePro W7170M *
Radeon R9 M395
Radeon R7 370
Radeon RX 5500M
GeForce GTX 590
GeForce GTX 880M
GeForce GTX 950
Radeon R9 270X
GeForce GTX 660 Ti
GeForce GTX 760
GeForce GTX 780M
Quadro K5100M
GeForce GTX 680MX
Radeon HD 7870
GeForce GTX 965M
Quadro M3000M *
GeForce GTX 870M
Radeon R9 M290X
Radeon HD 8970M
Radeon Ryzen 7 7735U (680M), Radeon Ryzen 7 7735HS (680M 12C)
GeForce GTX 580
Radeon HD 6970
GeForce GTX 1050
GeForce GTX 680M
GeForce GTX 775M
GeForce GTX 1630
FirePro M6100
Radeon HD 7970M
Radeon R9 M390 *
GeForce GTX 750 Ti
Group 5
GeForce GTX 570
GeForce GTX 480
GeForce GTX 960M
Quadro M2000M *
Quadro K5000M
Quadro K4100M
GeForce GTX 770M
GeForce GTX 860M
GeForce GTX 675MX
GeForce GTX 950M
GeForce GTX 850M
Quadro M1000M
Radeon R9 M280X
Radeon HD 7950M *
GeForce GTX 560 Ti
Radeon HD 6870
GeForce GTX 470
GeForce GT 1030
GeForce MX330
Ryzen 5 PRO 5650GE with Radeon Graphics
Ryzen 7 5800HS
FirePro 3D V8800
GeForce MX250
Group 6
Radeon Pro WX 3200
Ryzen 7 PRO 5750G with Radeon Graphics
Radeon Ryzen 5 5600H
Ryzen 5 Pro 4650G with Radeon Graphics
Radeon Ryzen 7 5800U
Ryzen 7 7730U with Radeon Graphics
Radeon Ryzen 7 5825U
Radeon Pro WX 4150
Radeon Ryzen 5 PRO 4655G
Ryzen 5 4600G with Radeon Graphics
Radeon Ryzen 5 PRO 4655GE
GeForce GTX 485M
FirePro W6150M
Ryzen 7 5800U with Radeon Graphics
Ryzen 5 7530U with Radeon Graphics
Ryzen 7 4800U with Radeon Graphics
Radeon R9 M470
Ryzen 3 PRO 5350G with Radeon Graphics
Radeon RX Vega Ryzen 3 5300U
Ryzen 7 5825U with Radeon Graphics
Ryzen 5 PRO 4400G with Radeon Graphics
Radeon Ryzen 7 PRO 4750GE
Radeon Ryzen 7 4800U
FirePro V7900
Radeon HD 5970
Radeon Ryzen 7 7700X 8-Core
Radeon Ryzen 5 PRO 5650G
Radeon Ryzen 5 4400G
Radeon Ryzen 5 PRO 5650GE
Radeon RX 550X
FirePro V8800
Radeon RX Vega Ryzen 5 5500U
GeForce MX150
Quadro K3100M
Ryzen 7 PRO 5850U with Radeon Graphics
Radeon HD 6970M
Radeon R7 250X
Intel HD 5600
Ryzen 3 4300GE with Radeon Graphics
GeForce GTX 460
Ryzen 7 5700U with Radeon Graphics
Radeon Ryzen 5 7530U
Quadro K620
Ryzen 3 PRO 5350GE with Radeon Graphics
Intel Iris Pro P580
Intel UHD Graphics P630
Ryzen 5 4600H with Radeon Graphics
Ryzen 5 PRO 7530U with Radeon Graphics
Radeon HD 5870
Radeon HD 6870
Ryzen 7 4700G with Radeon Graphics
Ryzen 5 5600U with Radeon Graphics
Radeon HD 7770
Ryzen 3 Pro 4350G with Radeon Graphics
Radeon Ryzen 5 5625U
GeForce GTX 745
Radeon Ryzen 7 4850U Mobile
Radeon Ryzen 3 PRO 7330U
Quadro M600M
Radeon Ryzen 5 5500U
Ryzen 5 5560U with Radeon Graphics
Ryzen 7 4800H with Radeon Graphics
Group 7
GeForce 945M
Ryzen 5 PRO 4650GE with Radeon Graphics
FirePro M5100
Radeon Ryzen 5 5600U
Radeon Ryzen 5 PRO 4500U
GeForce GTX 580M
Ryzen 7 PRO 5875U with Radeon Graphics
Ryzen 3 5300GE with Radeon Graphics
Radeon R9 M385
Quadro 5000M
Radeon Ryzen 7 4700U
Ryzen 5 PRO 5650U with Radeon Graphics
Radeon Ryzen 7 PRO 4750U
Ryzen 7 4700U with Radeon Graphics
Ryzen 7 PRO 4750U with Radeon Graphics
FirePro V7800
Radeon R9 350
Ryzen 3 4300G with Radeon Graphics
Radeon Vega 11 Ryzen 5 PRO 3350G
Radeon Ryzen 5 5560U
GeForce GTX 460 SE
Radeon Pro W5500M
Radeon Vega 11 Ryzen 5 PRO 3400G
Ryzen 5 5500U with Radeon Graphics
Ryzen 5 PRO 4500U with Radeon Graphics
GeForce GT 645
GeForce GTX 765M
Radeon R9 M385X
Ryzen 5 5625U with Radeon Graphics
Ryzen 3 PRO 7330U with Radeon Graphics
Radeon HD 5850
Radeon Vega 11 Ryzen 5 PRO 2400G
Intel Iris Pro 580
Radeon HD 6850
Intel Iris Xe MAX
Radeon Ryzen 7 PRO 5875U
Radeon Ryzen 5 7600 6-Core
GeForce GTX 470M
Ryzen 3 5300G with Radeon Graphics
GeForce GTX 670MX
Radeon RX 640
Qualcomm Adreno Gen 3
Radeon R7 450
GeForce GTX 675M
Radeon Pro WX 4130
Intel Iris Xe MAX 100
Quadro 5000
Radeon RX 570X
Radeon HD 7700-serie
Ryzen 5 4600U with Radeon Graphics
Ryzen 3 PRO 4350GE with Radeon Graphics
Radeon Vega 8
Group 8
GeForce MX230
GeForce GTX 765M
Quadro K4000M
Iris Pro Graphics P580 *
Iris Pro Graphics 580 *
GeForce GTX 645
Quadro M520
GeForce GTX 570M
GeForce MX130
Radeon RX 540
Radeon Ryzen 5 PRO 5675U
Intel UHD Graphics 770
Radeon RX Vega 11 Ryzen 7 3750H
Radeon Vega 11 Ryzen 5 PRO 3400GE
Radeon HD 5850
GeForce GTX 675M
GeForce GTX 580M
Radeon HD 6990M
Radeon R9 M385X *
Radeon R9 M470X *
Radeon R9 M470 *
Radeon R9 M385 *
Radeon R9 M380 *
Radeon R9 M370X
Radeon R9 M275
Radeon HD 7770
GeForce GTX 485M
GeForce GTX 460 768MB
Radeon HD 6790
GeForce GTX 285M SLI
Quadro K3100M
FirePro W5170M *
GeForce GTX 670MX
Quadro 5010M
GeForce GTX 760M
GeForce GTX 670M
Group 9
GeForce 940MX *
Maxwell GPU (940M, GDDR5)
FirePro M8900
Radeon HD 6970M
Radeon R9 M270
Radeon HD 8870M
Radeon HD 7870M
Quadro K3000M
GeForce GTX 570M
FirePro M6000
FirePro M5100
Quadro K2100M
Radeon HD 5770
GeForce GTX 550 Ti
GeForce GTX 280M SLI
Radeon HD 6950M
Radeon R7 250
GeForce GT 755M
GeForce GTX 660M
GeForce 845M
Radeon HD 8850M
Radeon R9 M365X
Radeon R9 M265X
Ryzen 5 PRO 4400GE with Radeon Graphics
FirePro W5130M *
Radeon Vega 8 Ryzen 5 3500U
Radeon HD 7850M
Radeon HD 8790M
FirePro W4170M
FirePro W4190M
FirePro W4100
Radeon Vega 6 Ryzen 3 3300U
Quadro 4000M
GeForce GTX 470M
GeForce GTX 480M
GeForce GT 750M
Iris Pro Graphics 6200
Quadro K1100M
GeForce 940M
Radeon R9 M375
GeForce 930MX *
Radeon R7 M380 *
Radeon R7 M370
Quadro M600M *
GeForce GT 650M
Quadro K620M
GeForce 840M
Radeon R7 M275DX
GeForce GT 745M
Radeon HD 7770M
GeForce GTX 560M
Radeon R7
Iris Pro Graphics 5200
GeForce GT 740M
GeForce 930M
Radeon HD 4850
Group 10
Iris Graphics 550 *
GeForce 830M
Iris Graphics 540
Quadro M500M *
Quadro K2000M
GeForce GTS 450
GeForce GTX 260M SLI
GeForce GT 735M
Mobility Radeon HD 5870
GeForce 825M
Quadro 5000M
FirePro M4000
FirePro M7820
Radeon HD 6870M
GeForce 9800M GTX SLI
Radeon HD 8830M *
Radeon HD 8770M
Radeon R7 M260X
GeForce GTX 460M
GeForce 920MX *
GeForce GT 730M
Radeon HD 7750M
GeForce GT 645M *
FirePro M4100
Radeon HD 8750M
Radeon R6 A10-9600P 4C+6G
Quadro 3000M
Radeon R7 M270
Radeon R7 M265
Quadro FX 3800M
GeForce GTX 285M
Mobility Radeon HD 4870
GeForce GT 640M
Radeon R7 (Kaveri)
Radeon R8 M365DX
Radeon R7 M460 *
Radeon HD 7730M
Radeon R7 M360
GeForce GTX 280M
Radeon HD 8690M
Quadro FX 3700M
Radeon R7 M340
GeForce 920M
Radeon R6 M340DX
HD Graphics 530
HD Graphics P530
Tegra X1 Maxwell GPU
Radeon R7 M260
Radeon R6
Group 11
Mobility Radeon HD 4860
FirePro M7740
Mobility Radeon HD 4850
GeForce GTX 260M
GeForce 9800M GTX
Quadro FX 2800M
Radeon HD 8670D
Radeon HD 7690M XT
FirePro M5950
GeForce GT 640M LE
Radeon R6 (Kaveri)
Radeon HD 8650M *
Radeon HD 8730M
Radeon HD 6770M
GeForce GT 635M
GeForce GT 555M
Radeon R7 A10 PRO-7800B
Radeon HD 5670
Mobility Radeon HD 5850
Radeon HD 6850M
Quadro 2000M
GeForce 9800M GT
GeForce 8800M GTX
Quadro FX 3600M
GeForce GT 445M
GeForce GTS 360M
Group 12
GeForce GT 240
Radeon R7 PRO A10-9700
Radeon HD 7690M
HD Graphics 5600
Radeon HD 8570D
Radeon HD 8670M
Radeon R6 M255DX
Radeon HD 7660D
Radeon HD 6750M
Quadro K1000M
GeForce GT 550M
Radeon HD 8590M *
GeForce GTS 260M
GeForce GTS 160M
GeForce 9800M GTS
GeForce GT 430
Radeon HD 6830M
Mobility Radeon HD 5830
Radeon HD 6730M *
GeForce 9800M GS
Mobility Radeon HD 4830
Mobility Radeon HD 5770
Radeon HD 6570M
Radeon HD 8650G
Radeon HD 7670M
GeForce GT 630M
Radeon HD 7560D
GeForce GTS 150M *
Radeon R5 M335
Radeon R5 M430 *
Radeon R5 M330
Radeon R5 M255
Radeon Vega 3
Quadro 1000M
GeForce 820M
FirePro W2100
HD Graphics 520 620
Iris Graphics 6100
GeForce GT 720M
GeForce 8800M GTS
Radeon R5 M240
Radeon R5 M320 *
Radeon R5 M230
Radeon R5 M315 *
Mobility Radeon HD 5750 *
Radeon HD 8570M
Radeon R7 PRO A10-8850B
HD Graphics 6000
Quadro K610M
Radeon HD 8550M
Iris Graphics 5100
GeForce GT 540M
Mali-T880 MP12 *
Radeon HD 8610G *
Radeon HD 6650M
HD Graphics 4600
Mobility Radeon HD 5730
HD Graphics 5500
Radeon R5 (Carrizo) *
Radeon R5 (Kaveri)
FirePro M5800
NVS 5400M
GeForce 710M
Radeon HD 7660G
GeForce GT 435M
HD Graphics 5000
Quadro K510M *
Radeon HD 5570
Radeon HD 6550M
Radeon HD 7590M *
GeForce GTS 350M
GeForce GTS 250M
Radeon HD 6630M
Radeon HD 7650M
FirePro M2000
Radeon HD 7570M
Radeon HD 7630M
Quadro FX 1800M
Mobility Radeon HD 5650
Radeon HD 8510G *
Radeon HD 6530M
Radeon HD 8550G
Quadro K500M *
GeForce GT 625M *
GeForce GT 620M
GeForce GT 525M
Radeon HD 6550D *
Radeon HD 7610M
Radeon HD 7620G
Radeon HD 8470D
Radeon HD 7640G
Adreno 530
GeForce ULP K1 (Tegra K1 Kepler GPU)
HD Graphics 4400
HD Graphics 510 515 *
NVS 5200M
Mobility Radeon HD 565v
Radeon HD 7550M
Mobility Radeon HD 4670
GeForce GT 425M
GeForce 9700M GTS
Radeon HD 6645G2 *
Quadro FX 2700M
GeForce GT 335M
Radeon HD 7600G
Mobility Radeon HD 3870
Mobility Radeon HD 4650
GeForce GT 220
GeForce GT 420M
Radeon HD 7530M *
Mobility Radeon HD 3850
GeForce GT 330M
Quadro FX 880M
Quadro NVS 5100M
GeForce GT 240M
Radeon HD 7490M *
HD Graphics 5300
Radeon HD 7510M *
GeForce Go 7950 GTX
Quadro FX 3500M
GeForce 8700M GT SLI
GeForce 9700M GT
GeForce GT 230M
Mobility Radeon HD 550v
Radeon HD 7480D
HD Graphics 4000
Mali-T760 MP8
Radeon HD 6620G
HD Graphics (Broadwell) *
Adreno 430
Radeon R5 (Beema/Carrizo-L)
Radeon R4 (Beema) (Kaveri)
HD Graphics (Skylake) *
Radeon HD 6450 GDDR5
Radeon HD 7500G
Radeon HD 8450G
Radeon HD 7470M
Radeon HD 6490M
Radeon HD 8400
Mali-T880 MP4
GeForce GT 520MX
Radeon HD 7520G
GeForce GT 325M
GeForce Go 7800 GTX SLI
GeForce 8600M GT SLI
GeForce Go 7900 GS SLI
GeForce GT 130M
NVS 4200M
GeForce Go 7900 GTX
Quadro FX 2500M
Radeon HD 8350G
Radeon HD 8330
GeForce 9650M GS
GeForce 9650M GT
Radeon R3 (Mullins/Beema)
GeForce 8700M GT
Quadro FX 1700M
Quadro FX 1600M
GeForce Go 7800 GTX
GeForce Go 7900 GS
Quadro NVS 320M
Quadro FX 1500M
GeForce 9600M GT
GeForce GT 220M
Quadro FX 770M
GeForce GT 120M
Radeon HD 7450M
GeForce 610M
GeForce 705M
Mali-T760 MP6
Radeon HD 6470M
FirePro M3900 *
GeForce GT 520M
Radeon HD 7420G
Mobility Radeon HD 3670
Mobility FireGL V5725
PowerVR GX6450
Adreno 420
HD Graphics (Haswell)
Radeon HD 6520G
Radeon HD 8310G *
GeForce 320M
GeForce GT 320M
Mobility Radeon HD 2600 XT
Mobility Radeon X1900
Mobility Radeon X1800XT
Mobility Radeon X1800
GeForce Go 6800 Ultra
GeForce Go 7800
GeForce 9600M GS
GeForce 9500M GS
Radeon HD 7400G
Radeon HD 6480G *
Mobility Radeon HD 2700
GeForce GT 415M
GeForce 410M
Radeon HD 7370M
Adreno 418
HD Graphics (Cherry Trail)
Radeon HD 6370M
Radeon HD 8280
Mobility Radeon HD 5470
Radeon HD 6450M
Radeon HD 7430M *
Mobility Radeon HD 3650
Mobility FireGL V5700
Mobility Radeon HD 5145
Mobility Radeon HD 545v
Radeon R6 (Mullins) *
Radeon HD 8240
Radeon HD 8250
Mobility Radeon HD 4570
Quadro FX 570M
Mobility Radeon HD 5450 *
Radeon R2 (Mullins/Beema) *
GeForce 8600M GT
Mobility Radeon HD 2600
HD Graphics 3000
Quadro FX 380M
GeForce 310M
GeForce G210M
NVS 3100M
GeForce 405M
GeForce 315M
GeForce Go 7600 GT
GeForce 9500M G
GeForce 8600M GS
NVS 2100M
GeForce Go 7700
GeForce Go 6800
Quadro FX Go 1400
Mobility Radeon X800XT
Radeon HD 6430M *
Radeon HD 6380G *
Mobility Radeon HD 5430
Radeon HD 8210
Mobility Radeon HD 540v
Mobility Radeon HD 4550
HD Graphics 2500
HD Graphics (Ivy Bridge)
Quadro NVS 310
Radeon HD 7350M *
Radeon HD 6350M *
Mobility Radeon HD 4530
Mobility Radeon HD 4350
Radeon HD 4350
GeForce 305M
Mobility Radeon X1700
Mobility FireGL V5250
Mobility Radeon X2500
GeForce Go 7600
Quadro NVS 300M
Mobility Radeon X800
Mobility Radeon X1600
Mobility FireGL V5200
Mobility Radeon 9800
GeForce Go 6600
Mobility Radeon X1450
Mobility Radeon X700
Mobility FireGL V5000
GeForce G 110M
Quadro NVS 295
Radeon HD 6330M *
Mobility Radeon HD 4330
GeForce 8400M GT
Quadro NVS 140M
HD Graphics 2000
GeForce 9500M GE *
GeForce 9400M (G) / ION (LE)
HD Graphics (Sandy Bridge) *
Adreno 330
PowerVR G6430
PowerVR GX6250
PowerVR G6400
HD Graphics (Bay Trail)
Mali-T628 MP6
Mali-T760 MP4
Chrome9HD *
Radeon HD 7340
Radeon HD 6320 *
Radeon HD 7310
Radeon HD 6310 *
Radeon HD 8180
Mobility Radeon HD 3470
GeForce 9300M G
ION 2 *
GeForce 9300M GS
Quadro FX 370M
Quadro NVS 160M
GeForce 9200M GS
Mobility Radeon HD 3450
Mobility Radeon HD 3430
Mobility Radeon HD 3410
Mobility Radeon HD 2400 XT
Radeon HD 4270
Radeon HD 4250
Radeon HD 7290 *
Radeon HD 6290 *
Radeon HD 4200
Graphics Media Accelerator (GMA) HD Graphics
Radeon HD 6250
Quadro NVS 150M
Quadro FX 360M
Mobility Radeon X1350
Mobility Radeon X1400
GeForce 9100M G
GeForce 8400M GS
Quadro NVS 135M
Mobility Radeon HD 2400
Radeon HD 3200
Radeon HD 4225 *
Radeon HD 4100 *
SGX554MP4
Mali-T628 MP4
Mobility Radeon HD 3400 *
Radeon HD 3100
GeForce 8400M G
Mali-T860 MP2
Quadro NVS 130M
GeForce 8200M G
Graphics Media Accelerator (GMA) 4700MHD
Graphics Media Accelerator (GMA) 4500MHD
Graphics Media Accelerator (GMA) 4500M
Mali-T604 MP4
GeForce Go 7400
Quadro FX 350M
Quadro NVS 120M
GeForce Go 7300
GeForce Tegra 4 *
PowerVR G6200
Adreno 405 *
Quadro NVS 110M
Mobility Radeon X600
Mobility FireGL V3200
Mobility FireGL V3100
Mobility Radeon HD X2300
Mobility Radeon 9700
Mobility FireGL T2e
Mobility Radeon X1300
GeForce4 4200 Go
Mobility Radeon 9600
Mobility FireGL T2
Mobility Radeon 9550
GeForce Go 7200
GeForce Go 6400
Mobility Radeon X300
GeForce Go 6250
GeForce Go 6200
GeForce FX Go 5700
Quadro FX Go 1000
GeForce FX Go 5600 / 5650
Radeon Xpress X1270
Radeon Xpress X1250
Radeon Xpress X1200
Graphics Media Accelerator (GMA) X3100
Mali-T624
Adreno 320 *
Mali-T760 MP2
Mali-T720 MP4
Mali-450 MP4
Graphics Media Accelerator (GMA) 3650 *
GeForce 7190M *
GeForce 7150M
Radeon Xpress 1150
GeForce Go 6150
GeForce Go 6100
GeForce 7000M
Graphics Media Accelerator (GMA) 3600 *
Mobility Radeon 9200
Mobility FireGL 9000
GeForce FX Go 5200
Mobility Radeon 9000
GeForce 4 488 Go
GeForce 4 460 Go
GeForce 4 440 Go
GeForce 4 420 Go
Graphics Media Accelerator (GMA) 3150
Graphics Media Accelerator (GMA) 950
SGX545 SGX544MP2 SGX543MP2 *
Mali-T720 MP2
Mali-T720
Adreno 302 304 305 306
Mobility Radeon 7500
Mobility FireGL 7800
Graphics Media Accelerator (GMA) 900
Radeon Xpress 200M
Radeon Xpress 1100
Mirage 3+ 672MX
Mirage 3 671MX
Mali-400 MP4 *
GeForce ULP (Tegra 3) *
VideoCore-IV *
Adreno 220 225*
Vivante GC1000+ Dual-Core
Mali-400 MP2 *
GeForce ULP (Tegra 2) *
Graphics Media Accelerator (GMA) 600 *
SGX540 *
Graphics Media Accelerator (GMA) 500
Adreno 205 *
Adreno 203 *
GC800 *
SGX535
SGX531
SGX530
Adreno 200 *
Mali-200 *
GeForce 3 Go *
GeForce 2 Go 200 / 100
Mobility Radeon 9100 IGP
Mobility Radeon 9000 IGP
Mobility Radeon M7
Mobility Radeon M6
Chrome9 HC
Extreme Graphics 2
Mobility Radeon 7000 IGP
Radeon IGP 340M
Radeon IGP 320M
S3G UniChrome Pro II
S3G UniChrome Pro
Castle Rock
Mirage 2 M760
Mirage M661FX
S3 Graphics ProSavage8
Mobility 128 M3
SM502 *
</pre>
Not supported on AROS
*OpenGL4 GPU must have 64-bit floating point FP64 math support, which is a hard requirement for GL 4.0. The max last revision opengl 4.6 (2017) on [https://wiki.gentoo.org/wiki/AMDGPU AMDGPU] RX 5000's / 6000s ([https://forum.batocera.org/d/7491-enable-opengl-46-and-vulkan-for-an-old-radeon-video-card RDNA] might come to AROS) but Intel UHD, Iris Plus or Xe, Nvidia RTX (will not)
*OpenGL3 last revision 3.3 (2011)
Some support on AROS
*OpenGL2 nvidia-nouveau,
*OpenGL1 intel gma950,
Kernel-space drivers like '''radeon''' (older AMD driver for older GPUs), '''amdgpu''' (newer driver for newer GPUs, allows using a few new features), i915, nouveau and a few others. They are what handles the gory details of talking to the GPU itself (writing to proper registers, handling its memory directly, configuring outputs, and so on). Unfortunately most of what they're exposing can be only consumed by a single user of that GPU, which is why we need...
DRM and DRI (Direct Rendering Manager/Infrastructure) controls access to the GPUs, provides interfaces for talking to the GPU concurrently by multiple apps at once (without them breaking each other) and lets the system perform the most basic tasks like setting proper resolution and such if no userspace apps understand how to talk to the GPU exposed. DRI and DRM expose the GPU interfaces mostly as-is, not in a "vendor-neutral" portable way - if you don't have an application developed specifically for a GPU you have, it won't work.
"let's create a vendor-neutral interface for graphics so that apps can ignore the GPU-specific bits and get right to the drawing!" - which is what OpenGL is. User-space drivers implement the OpenGL specification and expose it as an OpenGL library to apps (like games, browsers, etc) instead of the GPU. Mesa is the most popular collection of open-source user-space drivers and contains a few user-space drivers for different GPU families: '''radeonsi''' for most modern AMD GPUs (and '''r600g''', r300g and others for older ones), '''i915/i965''' for old/new Intel GPUs and '''nouveau''' for Nvidia GPUs.
There's also Gallium, which is a bunch of utilities and common code shared among these drivers - if certain things can be done once and work everywhere, they'll land in Gallium and benefit all the drivers. Most Mesa drivers use Gallium (radeonsi, nouveau, software renderers), some don't (intel after gma950).
Displaying 2D windows supports device-specific 2D drivers as well, but nowadays most of these are no longer needed as the modesetting can handle most hardware on its own. As the DRM/DRI got some additional interfaces for what used to be hardware-specific (setting resolutions, refresh rates, etc) and software requiring accelerated 2D drawing was optimized OpenGL-based renderers, dedicated 2D acceleration is slowly going away. Since around 2012, the 3D part of the graphics card deals with 2D operations.
Modern GPUs can also decode video!? There's VDPAU (NVIDIA & AMD GPUs) and VA-API (AMD & Intel GPUs) that can also talk to the GPU exposed via DRM/DRI and issue proper commands to decode/encode a given video stream. Those drivers are GPU-specific too.
So let's say you have some example GPUs, here's how example stacks could look like:
* AMD Radeon HD8750: amdgpu -> DRM/DRI -> Mesa (radeonsi)
* AMD Radeon HD4850: radeon kernel driver -> DRM/DRI -> Mesa (r600g) -> games/apps/etc.
* NVIDIA GeForce 460: nouveau kernel driver -> DRM/DRI -> Mesa (nouveau) -> games/apps.
* Intel GMA950: i915 kernel driver -> DRM/DRI -> Mesa (i945) -> games/apps.
{| class="wikitable sortable" width="90%"
! width="15%" | Description
! width="15%" | Analog Output
! width="15%" | Digital Output
! width="15%" | Laptop LCD
! width=30%" | Comments
|-
| <!--Description-->Fudomi GC888A
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->1080p 100in throw projector
|-
| <!--Description-->Vamvo VF320 (720P)
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->720p 90in
|-
| <!--Description-->Happrun H1
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->1080p 90in
|-
| <!--Description-->Umbolite Magcubic HIPPUS HY320 Mini
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->720p 100in
|-
| <!--Description-->Zentality A10 Plus
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->720p 110in
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->nexigo nova mini
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->nebula mars 3
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->epson lifestudio flex plus portable projector
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->dangbei freedo
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->benq gv50
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
Unless your computer uses a Firewire chipset manufactured by Texas Instruments, FireWire interfaces are likely to act buggy.
AROS is unlikely to ever support FireWire.
Bluetooth is similarly unlikely to be ever supported due to huge cost to be certified.
No, x86 PCMCIA card.resource at the moment. Writing card.resource would be a similar amount of work to writing a typical driver. However, it might be complicated by having to support a variety of PCMCIA-controller chipsets like TI PCI1225, PCI1410, PCI1420, 1450, PCIxx12 and O2, etc. m68k card.resource does not really have many higher level functions, most functions are really simple or poke Gayle registers directly. only exception is CopyTuple(). Amiga card.resource has one significant flaw: it's single-unit. would need card.resource and pccard.library. There was talk in the past of designing a new API for PCMCIA because card.resource only supports one slot, but since most modern laptops only have one slot anyway, I think it might be worthwhile to implement card.resource as-is (at least as a first step). pccard.library would be trivial to port. So, a new API is needed.
<pre>
HDMI (licensing fee)
1.4 4K @ 30Hz
2.0 4K @ 60Hz
2.1 48Gbs for 4K @ 120Hz, 8K @ , VRR, etc
</pre>
<pre>
DisplayPort (VESA introduced)
1.4 4K @ 60Hz
2.1 96Gbs for 4K @ 240Hz, 8K @ 120Hz. MST daisy chain multiple monitors,
</pre>
feqszstzdtuourdvx1akn9p3pt4hroq
4640115
4640110
2026-06-13T15:24:04Z
Jeff1138
301139
4640115
wikitext
text/x-wiki
Google translation into [http://translate.google.com/translate?hl=en&sl=auto&tl=de&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support German], [http://translate.google.com/translate?hl=en&sl=auto&tl=fr&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support French], [http://translate.google.com/translate?hl=en&sl=auto&tl=nl&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Dutch], [http://translate.google.com/translate?hl=en&sl=auto&tl=it&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Italian], [http://translate.google.com/translate?hl=en&sl=auto&tl=es&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Spanish], [http://translate.google.com/translate?hl=en&sl=auto&tl=hi&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Hindi],
[http://translate.google.com/translate?hl=en&sl=auto&tl=zh-CN&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Chinese Simplified],
[http://translate.google.com/translate?hl=en&sl=auto&tl=pl&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Polish],
[http://translate.google.com/translate?hl=en&sl=auto&tl=ru&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Russian],
{{ArosNav}}
[[#Audio Chipsets]]
[[#Graphic GFX Chipsets]]
[[#Rough gfx comparison]]
[[#]]
==x86 Native Environment==
AROS should run on almost any i386 PC hardware so long as the CPU is newer than an i486, and has a "Floating Point Unit (FPU)". Ideally around 700Mhz and above with at least 256MB of memory is recommended for desktops and around 1GHz and at least 256MB for laptops/notebooks/netbooks. For web browsing, etc above 1GB is usually needed and offers the option to run web browsers, media players and other hard disk heavy usage from RAM: disk.
Motherboards supported
* Most Intel mobos are supported (Skt 775 is ok but newer is better) - additional pci / pci-e cards may be needed for networking, audio, etc
* AMD based socket 939 am2 am2+ am3+, fusion and am4 ryzen based systems work but additional pci / pci-e cards may be needed
Supported graphics cards (gfx)
* Nvidia 2D and 3D 2005-2017.
64bit AROS Nouveau covers '''2D''' 8xxxgs and higher to GTX 900s and '''3D''' from .
32bit AROS supports '''2D''' from TNT through to fermi gtx5xx and '''3D''' acceleration fx5xxx to gtx4xx.
* Intel GMA 2D and 3D 2006-2009.
'''2D''' for many old netbooks and motherboards. '''3D''' for many early netbooks and motherboards
* AMD/ATI 2D only and '''no 3D'''. 1999-2005.
Desktop ie external monitor support only (no laptop internal support) for very early Radeon 7000 through to x600. Experimental 2D version for up to HD3xxx came later
* VESA 2D fallback modes for all graphic cards (GPUs) and with [http://www.youtube.com/watch?v=HKCHZFYj9Kk screen dragging].
It's worth noting however that support isn't guaranteed. Nor will potential power of a card reflect its performance under AROS.
Sound wise there are
* HDaudio support for onboard intel and AMD netbooks, ultrabooks, notebooks and motherboards (2005 to 2020)
* some AC97 codec support for very old motherboards and laptops (ie pre 2004)
* PCI and some PCI-E C-Media CMI8738 for desktop plugin cards
* PCI Creative Soundblaster EMU10K1 cards [http://amigaworld.net/modules/news/article.php?storyid=2512 SBLive]
* PCI semi professional some early VIA Envy24 desktop sound cards
* PCI Sound Blaster 128 aka SB16
Supported [http://en.wikibooks.org/wiki/Aros/Platforms/x86_Network_support network] which could be desktop, laptop, etc
* PCI-E Realtek rtl8169 which also includes the rtl8111 and rtl8110
* PCI Realtek rtl8139 and includes rtl8101 and rtl8100
* PCI intel pro100
* Broadcom 44xx 10/100 integrated in laptops around 2005
* VIA 10/100
* 3com Etherlink 10/100
* Realtek rtl8029 10mbit
Wireless wifi
* atheros 5000 wireless
*realtek 8187 usb
It is very hard to recommend a completely supported motherboard because as soon as newer motherboards arrive so their features change subtly, often introducing non supported parts like ethernet and audio. It is a moving target.
* mini-itx motherboard will only get you 1 pci or pci-e slot
* micro mATX or uATX will have more, typically 2 pci-e or pci slots which helps if any onboard features are not supported.
* full atx will have more slots available
'''N.B''' It is frustrating when a piece of hardware is not supported. Hardware documentation can run to over 100 pages and a lot of hardware do not have any public documentation anyway. Chips from different manufacturers for sound, graphics, SATA, etc. vary just as much, unless they follow a standard such as [https://github.com/acidanthera/AppleALC/wiki/Supported-codecs HDAudio codecs], AHCI etc.
Coding drivers is a far cry from Hello World programs or even a port of existing software. If you do actually want to try then get a hold of documentation on the relevant hardware and start there. Alternatively you could try to find some '''BSD''', MIT or MPL licence drivers as a point of reference. Please , do not think you can just adapt strings in a driver for different strings, it does not work that way. You will '''need''' to start from scratch for each new bit of hardware. Device driver programming require '''embedded''' skills, like manipulation of bits within registers, good debugging skills, dealing with interrupts, lots of patience, etc.
The following specific chipsets and drivers are also available - use Tools/PCITool to confirm Vendor and Product IDs - Please let us know any mistakes or any information to be added, to this General Chat list on [https://arosworld.org/ AROS World]
: Brief Timeline
: 2000-12-06 HIDD first mouse.hidd completed ([http://msaros.blogspot.com/ Michal Schulz])
: 2001-03-31 BOOT first boot from floppy disk with IDE device
: 2001-10-30 BOOT first cd bootable version
: 2002-01-27 HIDD first pci.hidd added (Michal Schulz)
: 2002-04-13 BOOT software HDToolBox added ()
: 2003-04-03 HIDD vesa2.hidd graphic modes added ()
: 2004-03-08 HIDD new pci and ata (pata) devices worked on (Michal Schulz)
: 2004-03-17 HIDD nVidia 2D driver appears (Michal Schulz)
: 2005-01-05 AHI AHI v6 audio system ported (Martin Blom)
: 2005-01-06 AHI SBLive SoundBlaster Live driver ported (Georg Steger)
: 2005-02-04 AHI AC97 playback only driver added (Michal Schulz)
: 2005-06-27 NIC amiTCP stack ported with 3com, NE2000, prism2 drivers (Neil Cafferkey)
: 2005-08-25 NIC nForce2 support added (Michal Schulz)
: 2005-12-24 NIC Intel Pro100 network driver added (Neil Cafferkey)
: 2006-03-25 HIDD ATI radeon 2D driver added (Michal Schulz)
: 2007-03-06 HIDD vesa 1.0 video driver added (Pavel Fedin)
: 2007-03-08 HIDD dospackets and FAT filesystem (Rob Norris)
: 2007-03-21 HIDD usb initial commit (Michal Schulz)
: 2007-10-01 BOOT Installer added (Neil Cafferkey)
: 2007-11-29 PORT 64bit x86 added (Michal Schulz)
: 2008-04-12 BOOT GRUB2 added (Alain Greppin and Nick Andrews)
: 2008-08-26 NIC RTL8139 added ([http://kalamatee.blogspot.com/ Nick Andrews])
: 2008-10-22 PORT to SAM440ep (ppc) (Michal Schulz)
: 2009-02-25 PORT to efika (ppc) (Michal Schulz)
: 2009-05-18 HIDD poseidon usb2.0 stack ported to AROS (Chris Hodges)
: 2009-11-18 NIC RTL8169 network driver arrived (Nick Andrews and [http://pagesperso-orange.fr/franck.charlet/oldnews.html Franck Charlet])
: 2009-12-23 AHI HDAudio based Atom CPU and netbook audio driver arrived (Davy Wentzler)
: 2010-03-09 BOOT USB pendrive stick booting available (Neil Cafferkey)
: 2010-05-26 HIDD Intel GMA900 2D graphics card support (Michal Schulz)
: 2010-09-03 NIC Wireless PCI based NIC arrived (Neil Cafferkey)
: 2011-04-30 HIDD Nvidia 2D and 3D nouveau graphics card support (Deadwood)
: 2011-08-30 HIDD Radeon 2D enhanced AMD driver arrives (Bearsoft)
: 2011-09-17 NIC Wireless USB realtek arrives (Neil Cafferkey)
: 2011-12-09 HIDD Intel 945G 3D Gallium graphics support (Sami)
: 2013-02-25 AHI AC97 VIA 686 audio support (Davy Wentzler and Neil Cafferkey)
: 2013-03-31 PORT early Raspberry PI native support (Nik Andrews)
: 2014-01-16 AHI Envy24 audio chipset support (Davy Wentzler and Neil Cafferkey)
: 2017-02-17 PORT Symmetric MultiProcessing smp added for x86 64bit (Michal Schulz)
: 2018-10-20 PORT Big Endian ARM
: 2021-11-26 NIC Broadcom 44xx ethernet (Neil Cafferkey)
: 2023-01-12 NIC Nvidia MCP61 ethernet (Neil Cafferkey)
: 2025-11 HIDD xHCI USB3 and isoc (Nik Andrews)
[[#top|...to the top]]
===Audio Chipsets===
'''If sound beeps in AHI prefs after Music set then some support is there. Select more than one channel for multiple audio streams, set frequency up to 44 kHz or higher and set the volume if not already set. Ensure you set the music unit 0 to 3 which allows the extra features of the audio card like microphone, line-out, etc).'''
====1996-2000 sb128.audio aka SB16 PCI====
*2021 5.27
as per CREATIVE's website, the model number is the first two digits on the front and first two digits on the back. my card says CT4810 and 161TK110B 995; this translates to CT4816 as the model.
The original AudioPCI 3000 card with the ES1370 had a master clock crystal for 44.1 kHz (22.5792 MHz), used an AKM codec (AK4531, non-AC97) and had 4 channel output; Creative later modified the design with a crystal for 48 kHz (24.576 MHz) and Sigmatel AC97 codec (a CT4700 SB128 with a CT5507 chip, AK4531, 22.5792 MHz crystal and TDA7360 speaker power amp). The issue with these cards involved never quite eliminate the effects of resampling on the 64V, it also shows signs of undersized coupling caps. These Ensoniq cards automatically engaged headphone amplifier (with a 4565 opamp).
Porting involved [http://repo.or.cz/w/AROS.git/commit/b60abd12967144a844980c422ea9e99c056eabca 40897], [http://repo.or.cz/w/AROS.git/commit/b7d6511fca6430a63fbaaa390b4f51bf0203a460 40898 configure], [http://repo.or.cz/w/AROS.git/commit/f51034cd22759a4ec3a2547bddb3a7169d956eaa 40900 bugs], [http://repo.or.cz/w/AROS.git/commit/4f43fc38e3489ea45d12b7b5ba6fff50b69c5746 40901 further bugs], [http://repo.or.cz/w/AROS.git/commit/d23c78aec75f049484b6916d27b6804ce858bb2c 40913 memory IO fixes], [http://repo.or.cz/w/AROS.git/commit/d256860fe3035016952e88d143c6f2611997f2f3 40914 irq fix].
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| Ensoniq AudioPCI 1000
| 0x1274
| 0x5000
|
| {{unk}}
| {{unk}}
| untested - es1370 (u?) AK4531 (u?)
|-
| Ensoniq AudioPCI
| 0x1274
| 0x5000
| 0x00
| {{yes}}
| {{maybe}}
|
|-
| CT4700 Sound Blaster PCI 64 (audioPCI 3000)
| 0x1274
| 0x5000
| 0x7c
| {{yes}}
| {{maybe}}
| works - opamp JRC4565(u?) [http://en.wikipedia.org/wiki/Ensoniq_ES1370 es1370] (u?)
|-
| CT4750 Sound Blaster 64/PCI
|
|
|
| {{unk}}
| {{unk}}
| untested - 4565-1056W (u1) stac9708t(u2) [http://arstechnica.com/civis/viewtopic.php?f=6&t=916891 ct5880-dcq] (u3) 24wc012 (u4)
|-
| CT4751 (SB128PCI)
| 0x1274
| 0x8001
|
| {{unk}}
| {{unk}}
| untested - [http://en.wikipedia.org/wiki/Sound_Blaster#Ensoniq_AudioPCI-based_cards es1371] (u?)
|-
| CT4810 Creative AudioPCI64V
| 0x1274
| 0x1371
| 0x06
| {{yes}}
| {{maybe}}
| works
|-
| CT4811 (SB Vibra 128)
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4812 (Vibra 128)
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4813
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4815
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4816 es1373 (vibra 128)
|
|
|
| {{unk}}
| {{unk}}
| untested but this card has creative's ES1373 as the main chip(U1). it is also different from the other CT4810 (vibra128) in that it does not have a second chip in U2 position. Also there is only one jumper JP1 (2X3).
|-
| CT5801 HP
|
|
|
| {{unk}}
| {{unk}}
| untested - es1373 (u3)
|-
| CT5803 Gateway
| 0x1274
| 0x1371
| 0x08
| {{yes}}
| {{maybe}}
| works 4565-0005b jrc (u1) 4297a-jq ztae0c0002 (u2) es1373 (u3)
|-
| CT4740
| 0x1274
| 0x1371
| 0x08
| {{yes}}
| {{yes}}
|
|-
| CT5805 Compaq OEM Premier Sound Presario 7
|
|
|
| {{unk}}
| {{unk}}
| untested - es1373 (u3)
|-
| CT5806 (Sound Blaster AudioPCI 128D)
|
|
|
| {{unk}}
| {{unk}}
| untested - 4297A-JO EP (u?) ZTAPWC9933 (u2) es1373 (u3)
|-
| CT5807 Dell OEM Dimension 8100
|
|
|
| {{unk}}
| {{unk}}
| untested - es1373 (u?)
|-
| CT5808
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4730 Sound Blaster AudioPCI 64V Ectiva EV1938
| 0x1102
| 0x8938
|
| {{unk}}
| {{unk}}
| untested
|-
| CT5880 on various motherboards
| 0x1274
| 0x5880
|
| {{unk}}
| {{unk}}
| untested [http://www.xbitlabs.com/articles/mainboards/display/ga-6rx.html Gigabyte GA-6RX] (VIA ApolloPro 266 2001], Gigabyte GA-6VM7-4E mobo, [http://active-hardware.com/english/reviews/mainboard/ga-7vtx.htm Gigabyte GA-7VTX] (KT266 2001), Gigabyte [http://www.amdboard.com/gigabytega7vtxh.html GA-7VTXH] (KT266A 2001), [http://www.amdboard.com/gigabytega7vrxp.html Gigabyte 7VRXP] mobo (KT333 2002), MSI MS-6309, MS-6318, MS-6337 (815E Pro), MS-6339 (850Pro) and MS-6340, PCChips Motherboard M571 TXPRO, Soltek SL-65ME+,
|-
| VMware Virtual Workstation(TM)
| 0x1274
| 0x1371
| 0x02
| {{Yes|but not Hi-Fi modes}}
| {{maybe}}
| works
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
<pre>
Revision 0x04 = ES1371 REV_ES1373_A
Revision 0x06 = ES1371 REV_ES1373_B
Revision 0x07 = ES1371 REV_CT5880_A
Revision 0x02 = CT5880 REV_CT5880_C
Revision 0x03 = CT5880 REV_CT5880_D
Revision 0x04 = CT5880 REV_CT5880_E
Revision 0x09 = ES1371 REV_ES1371_B
Revision 0x00 = EV1938 REV_EV1938_A
Revision 0x08 = ES1371 REV_ES1373_8
</pre>
====1999-2001 via-ac97.audio====
*2021 5.10
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| <!--Description-->694X with 686A KT133 PM133 or 693A with VT8231
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3058
| <!--Revision-->
| <!--Playback-->{{Yes| }} redirects earphones correctly
| <!--Recording-->{{Yes| }}
| <!--Comments-->audio controller works but depends on the underlying invisible codec used see AC97 section
|-
| <!--Description-->686B KT133A with VT8231
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3058
| <!--Revision-->0x50
| <!--Playback-->{{Yes|}} reroutes ear pieces right
| <!--Recording-->{{Yes|}}
| <!--Comments-->audio controller works but depends on the underlying codec used see AC97 section below
|-
| <!--Description-->686C
| <!--Vendor ID-->0x1106
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->untested
|-
| <!--Description-->KM266 or KT266 with VT8233, KT266A with VT8233A, VT8233C
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3059
| <!--Revision-->0x10
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->KM333 KT333 with VT8235
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3059
| <!--Revision-->0x30
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
| <!--Description-->KM400 KT400 with VT8237, KT600 with VT8237R,
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3059
| <!--Revision-->0x40 0x50 0x60
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
|}
====1998-2003 emu10kx.audio - Creative Labs SoundBlaster Live! and Audigy====
*2021 6.5
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| PCI512 CT4790 (emu10k1)
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested (1st Gen)
|-
| Live CT4620
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Live CT4760
| 0x1102
| 0x0002
| 0x07
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| playback works
|-
| Live Value CT4670
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| works plays stereo (2nd Gen)
|-
| Live Value DELL CT4780
| 0x1102
| 0x0002
| 0x06
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| plays/records stereo - untested 4.1mode
|-
| Live Value Compaq CT4830
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{Maybe}}
| <!--Recording--> {{unk}}
| not working
|-
| Live Value CT4831
| 0x1102
| 0x0002
| 0x00
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Live Value CT4832
| 0x1102
| 0x0002
| 0x07
| <!--Playback--> {{yes}}
| <!--Recording--> {{partial|Line-In only}}
| works
|-
| Live Value CT4832
| 0x1102
| 0x0002
| 0x08
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| works
|-
| Live Value HP CT4870
| 0x1102
| 0x0002
|
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| Works
|-
| Live Value Gateway CT4871
| 0x1102
| 0x0002
|
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Live! Platinum 5.1 SB0060
| 0x1102
| 0x0002
| 0x00
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
| plays audio/records, untested 5.1 (3rd Gen)
|-
| Live 5.1 SB0100 -SFF
| 0x1102
| 0x0002
| 0x00
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| works
|-
| Live 5.1 Player SB0220
| 0x1102
| 0x0002
| 0x0a
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
| plays audio/records stereo, untested 5.1
|-
| Live 5.1 Digital SB0228
| 0x1102
| 0x0002
| 0x0a
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
| working
|-
| Audigy SB0090 (emu10k2)
| 0x1102
| 0x0004
|
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| <!--Description-->Audigy SB0230
| <!--Vendor ID-->0x1102
| <!--Product ID-->0x0004
| <!--Revision-->0x03
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Yes|Mic only}}
| <!--Comments-->5th Dec 2012 - untested optical tos link. contains also IEEE1394/Firewire (untested)
|-
| Audigy 2 Platinum 6.1 SB0240 SB0250 EMU10K2.5
| 0x1102
| 0x0004
| 0x04
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| works
|-
| Audigy 2 PRO SB0280 EMU10K2.5
| 0x1102
| 0x0004
|
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Audigy 2 ZS SB0350
| 0x1102
| 0x0004
| 0x04
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
|
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| Live 5.1 DELL SB0200 SB0203 emu10kx
| 0x1102
| 0x0006
| 0x0
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
|
|-
| Live 24bit SB0410
| 0x1102
| 0x0007
| 0x
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Live 24bit DELL SB0413
| 0x1102
| 0x0007
| 0x
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy LS SB0310
| 0x1102
| 0x0007
| 0x0
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy SE 7.1 SB0570
| 0x1102
| 0x0007
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 2 ZS SB0320 SB0360 (PRO)
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 2 VALUE SB0400
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 4 VALUE SB0610
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 4 PRO SB0380
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| EMU E-MU 0404 PCI (not USB) EM8852
| 0x1102
| 0x000
| 0x0
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver but linux support needs firmware
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
the green jack is for the main speaker pair AND headphones, so manual switching will be required
If your card is wired for the "AC97" standard, then it's up to your headphone jack to switch the green speaker output in and out
the headphone jack has Normally-closed contacts that will open on insertion, which breaks the signal path back to the sound card (FP_RETURN)
====2000-2010 cmi8738.audio - C-Media====
*2021 5.20
;Read [http://amigaworld.net/modules/news/article.php?storyid=2512 more] and imported on [http://repo.or.cz/w/AROS.git/commit/aff741d60160c6a9d7d39c9e004a25ea3aa13847 20th July 2011] and [http://alsa.opensrc.org/Cmipci alsa docs].
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| Audiotrak MAYA EX5
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| cmi8738-sx 4ch
| 0x13f6
| 0x0111
| 0x10
| <!--Playback-->
| <!--Recording-->
| untested
|-
| e3dx hsp56 CMedia 8738-sx 4ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| EDio SC3000D 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Genius SoundMaker Value PCI C3DX
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Guillemot Maxi Sound Muse
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Hercules Gamesurround Muse LT
| 0x13f6
| 0x0111
| 0x10
| <!--Playback--> {{yes}}
| <!--Recording--> {{no}}
|
|-
| Hercules Gamesurround Muse XL LT 5.1
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Inno audio extreme 5.1 cmi8738/lx pci 6ch
| 0x13f6
| 0x0111
| 0x
| <!--Playback-->
| <!--Recording-->
| untested
|-
| M-Audio (Midiman) DiO 2448
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Sabrent SBT-SP6C 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| StarTech PCISOUND4CH 8738sx 4ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Sweex SC012 CMI8738-lx 4ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Terratec 5.1 PCI
| 0x13f6
| 0x0111
| 0x10
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Terratec Aureon Fun 5.1
|
|
|
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| Has SPDIF
|-
| Trust Sound Expert Digital Surround 5.1 (cm8738-mx 6ch)
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Turtle Beach Riviera CMI8738-MX 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| XSonic CMI 8738 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->CMI8738 6ch PCI-E PCI Express version
| <!--Vendor ID-->0x13f6
| <!--Product ID-->0x0111
| <!--Revision-->0x10
| <!--Playback-->{{Yes|}}
| <!--Recording-->{{Maybe|}}
| <!--Comments-->Chinese based card with playback tested so far
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
====2001-2005 ac97.audio====
*6.4 27-12-2008
The AC97 chips were designed to be pinout interchangeable so that the sound support could change easily and quickly without motherboard redesigns
the green jack is for the main speaker pair AND headphones, so manual switching will be required
If your card is wired for the "AC97" standard, then it's up to your headphone jack to switch the green speaker output in and out, the headphone jack has Normally-closed contacts that will open on insertion, which breaks the signal path back to the sound card (FP_RETURN)
The ProductID and VendorID are for the audio controller only - the important additional codec is '''NOT''' so easily identified.
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| <!--Description-->Avance Logic (now Realtek) ALC100 and ALC101 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->ALC200 and ALC201 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->ALC201A and ALC202 and ALC202A codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->ALC650
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| <!--Comments-->most Nforce2 boards plays audio only - Abit NF7, Asus A7N8X, MSI K7N2, Epox 8RDA+, DFI
|-
| <!--Description-->ALC850 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{No}}
| <!--Comments-->no support for via P4P800 chipset on ASUS A8V-E SE Deluxe mobo - ICaros 1.3
|-
| <!--Description-->Realtek ALC653 codec and ALC655 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested Acorp 7NFU400
|-
| <!--Description-->Realtek ALC658 codec ALC658D
| <!--Vendor ID-->0x8080
| <!--Product ID-->0x24c5
| <!--Revision-->0x0
| <!--Playback-->{{Yes|Prefs Music and Units 0-3 set volume control - playback}}
| <!--Recording-->{{No}}
| <!--Comments-->MSI Motherboard on NB 22-09-2012
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->AD1881 SoundMAX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->Analog Devices first AC97
|-
| <!--Description-->AD1881A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Yes}}
| <!--Revision-->
| <!--Comments-->works with VIA Controller - untested Intel etc
|-
| <!--Description-->AD1881B
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1885 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{No}}
| <!--Comments-->Playback only with issues on D845HV but not working on MS-6367 because Units 0-3 have masked volume control
|-
| <!--Description-->AD1886
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1887
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->ADI AD1888 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{no}}
| <!--Recording-->{{No}}
| <!--Comments--> Icaros 1.51
|-
| <!--Description-->AD1980 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->AD1981A codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested IBM X30
|-
| <!--Description-->Analog Devices SoundMax(TM) AD1981B codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| <!--Comments-->plays back only on IBM T41 Thinkpad
|-
| <!--Description-->AD1985 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{No}}
| <!--Comments-->not working ahi prefs freezes on D865GLC mobo ([http://www.xbitlabs.com/articles/multimedia/display/int-sound2_3.html ]
|-
| <!--Description-->AD1986 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{No}}
| <!--Comments-->untested [http://uk.ts.fujitsu.com/rl/servicesupport/techsupport/Boards/Motherboards/Fujitsu/D1931/D1931.htm D1931] but works (Acer Aspire 3610 laptop)
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->Crystal Semiconductors CS4205, CS4202 codecs
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Cirrus Logic CrystalWare 4236
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->Cirrus Logic CrystalClear SoundFusion CS4297 CS4299 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested IBM T23
|-
| <!--Description-->conexant Cx20468-31 codec (id 30)
| <!--Vendor ID-->0x103c
| <!--Product ID-->0x3085
| <!--Revision-->
| <!--Playback-->{{No|AC97 appears in AHI Prefs}}
| <!--Recording-->{{No}}
| <!--Comments-->Tested AspireOS 1.8 on Gateway W322
|-
| <!--Description-->ESS Technology ES1921 AC'97 2.1
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->CMI 6501 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested on ASROCK SKT-AM2 AM2NF3-VSTA
|-
| <!--Description-->codec CMI9738
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->codec CMI9739
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->C-Media CMI 9739A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments--> untested on EPoX 8RDA3+
|-
| <!--Description-->CMedia CMI 9761A codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested ASRocK K7NF2-RAID
|-
| <!--Description-->C-Media CMI9880
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->National Semi conductor (now TI) LM4540, LM4543, LM4545, LM4546, LM4548, LM4549, LM4550 LM4560
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->STAC9708T codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->SigmaTel (now IDT) C-Major STAC 9460 (D/A only), 9461, 9462, 9463, 9200, 9202, 9250, 9251, 9220, 9221, 9223, 9750
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AKM (Asahi Kasei Microsystems) AK 4540, 4543, 4544A, 4545
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->codec VT1616 (VIA Six-TRAC Vinyl Audio)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->VIA VT1612, VT82C686
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->ESStech ESS ES1968 maestro-2
| <!--Vendor ID-->0x125d
| <!--Product ID-->0x1968
| <!--Revision-->0x
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->ESStech ESS ES1978 maestro2e
| <!--Vendor ID-->0x125d
| <!--Product ID-->0x1978
| <!--Revision-->0x
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->ESStech ESS ES1988 maestro3 allegro-1 codec
| <!--Vendor ID-->0x125d
| <!--Product ID-->0x1988
| <!--Revision-->0x12
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->Yamaha AC97 ymf-743 YMF752 YMF753 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->{{No}}
| <!--Comments-->untested ymf-753
|-
| <!--Description-->YMF724 YMF744 YMF-754 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| SIS 7018 / Trident 4dwave DX/NX / ALi 5451
| 0x1039 (0x1023 Trident)
| 0x7018 (0x2000 Trident DX) (0x2001 Trident NX)
| 0x02
| <!--Playback-->{{No}}
| <!--Recording-->{{No}}
| no support - introduced early 2000s
|-
| SIS 7012
| 0x1039
| 0x7012
|
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| working through 1 speaker only took over from SIS7018 (2002 onwards)
|-
| <!--Description-->Wolfson (now Cirrus Logic) WM9701, WM9701A (AC'97 1.03 spec), WM9703, WM9704 (AC'97 2.1), WM9705, WM9706, WM9707, WM9708
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->WM9709, WM9710, WM9711, WM9712, WM971
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->first Microsoft(TM) Xbox DAC sound chip (AC Link compliant D/A converter)
|-
| <!--Description-->Wolfson WM9717
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| Parallels
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested
|-
| VirtualBox
|
|
|
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| working
|-
| VirtualPC
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested
|-
| <!--Description-->Intel 82801AA Proxmox
| <!--Vendor ID-->0x8086
| <!--Product ID-->0x
| <!--Revision-->
| <!--Playback-->{{unk| }}
| <!--Recording-->{{unk| }}
| <!--Comments-->
|-
|}
====2005-20xx HDAUDIO.audio====
*6.36 2025 [https://github.com/aros-development-team/AROS/commit/43b33a9280b10963ca659de2cc3d1cf289b43a87 reset handler]
*6.35 202 []
*6.34 2019 AROS One 1.5 upwards
*6.29 2018
*6.27 2017 update
*6.25 2014 used for most Icaros 2.x
*6.20 July 2012
*6.17 Nov 2011
*6.15 Jun 2011
*[http://www.clusteruk.com/SitePortalPage.aspx?siteid=1&did=109 6.13] Sep 2010
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="5%" |Vendor ID
! width="5%" |Product ID
! width="5%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| <!--Description-->ALC260
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| <!--Description-->ALC262
* ALC262-VD2-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->LQFP-48
|-
| ALC268 codec
| 0x
| 0x
| 0x
| <!--Playback-->{{Yes|Version 6.17 Acer AOA110 and AOA150 netbooks), works (Dell Mini Inspiron 9 and 10v, }}
| <!--Recording-->{{Yes|Version 6.17 remove QUERY and select 'Mic 1' as input. Tested with 6.15 as well using QuickRecord and AE 4.0.23 under Icaros 1.4.}}
| <!--Comments-->AHI UNITS and Music are set to: hdaudio:HiFi 16 bit stereo++ / Frequency 48000 Hz, Volume +0.0 dB. The hdaudio.config in SYS:Prefs/Env-Archive is WITHOUT the QUERY-line. After changing and saving the config-file turn off and start again the computer. Switch from internal loudspeaker to headphone you must turn off the music before plug in the headphone-cable, otherwise there is no output on the socket. Back from line-out to internal speakers it is the same.
|-
| [http://blog.foool.net/wp-content/uploads/linuxdocs/sound.pdf Linux docs ALC269]
* ALC269Q-GR
* ALC269QSRS-GR
* ALC269W-GR
| 0x
| 0x
| 0x
| <!--Playback-->{{Maybe| }}
| <!--Recording-->{{Unk| }}
| <!--Comments-->TQFP 48 pin Power IC Chip From [https://patchwork.kernel.org/project/alsa-devel/patch/1408118123-15849-1-git-send-email-tiwai@suse.de/ ALC269 & co have many vendor-specific setups with COEF verbs, result in the codec stalling]
|-
| [http://www.alsa-project.org/db/?f=0321f8479fd670cd510f9912b1120fe7edcf2e07 ALC269VB]
* ALC269Q-VB5-GR
* ALC269Q-VB6-CG
* ALC269Q-VB6-GR
| 0x10ec
| 0x0269
| 0x100004, 0x100100, 0x100202
| <!--Playback-->{{Maybe|some versions work}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* v1 works Asus eee PC netbook 901/1000HA 1005HA/1008HA, 1001P,
* v2 maybe working Lenovo S9 S10 S10-2 S10-3 under HDAudio version 6.13
* v3 maybe dell wyse 7010
|-
| [http://alsa-project.org/db/?f=9c1746c5957b0ce72ff9cfffa312e97d14baf785 ALC269VC aka ALC3202]
* ALC269Q-VC2-GR
* ALC269Q-VC3-GR
| 0x10ec
| 0x0269
| 0x100203,
| <!--Playback-->{{Maybe|some versions work}}
| <!--Recording-->{{Unk}}
| <!--Comments-->SMT SMD QFN-48 -
* v1 unknown
* v2 unknown
* v3 x230, dell wyse,
|-
| ALC272
* ALC272-VA4-GR
| 0x10ec
| 0x0272
| 0x0
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Unk}}
|
* works Acer AOD150 and Acer AOD250 works [http://amigaworld.net/modules/newbb/viewtopic.php?topic_id=33755&forum=28#616910 Samsung NP-NC10], works Samsung NF210-A02] netbooks,
|-
| <!--Description-->ALC273
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| <!--Description-->ALC270
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC282
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x
| <!--Revision-->
| <!--Playback-->{{No|Version 6.17}}
| <!--Recording-->{{No|Version 6.17}}
| <!--Comments-->needs retest
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC660 ALC660-VD
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes| }}
| <!--Recording-->
| <!--Comments-->
* works asus F9s, F9e
* untested asus w7j, M51SN, A6Tc, A8Sr,
|-
| <!--Description-->ALC661-GR (2011)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| ALC662
| 0x1043
| 0x82a1
| 0x0
| <!--Playback-->{{Yes|Version 6.17 if QUERY added to top of hdaudio.config}}
| <!--Recording-->{{No|Version 6.17 not working for eee pc 900}}
|
* works Asus eee PC netbook 700/701/900, Atom 270 and 330 mobos, odd clicks (D410 NM10 PineTrail),
|-
| <!--Description-->[http://outpost.fr/rmaa/ALC663.htm ALC663]
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0861
| <!--Revision-->
| <!--Playback-->{{No|Version 6.13}}
| <!--Recording-->{{Unk}}
| <!--Comments-->not bad output like headphone amp part of the codec actually works well but messed up by undersized coupling capacitors to actually support such a low impedance
* not working Asus n50vn x71vn,
|-
| <!--Description-->ALC665
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC666
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC667
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC668
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC670
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->ALC880
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->some 915 and 925 chipset mobos
|-
| <!--Description-->ALC882M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| Realtek ALC883 ALC883-GR ALC883D-GR ALC883DTS-GR ALC883DD-GR codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe|some early versions work }}
| <!--Recording-->{{Unk| }}
| 2005 to 2007 HD Audio codec untested (Asus ),
|-
| Codec ALC885
| 0x10ec
| 0x0885
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
|-
| ALC888
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
|
|-
| ALC888s
* ALC888S-VD2-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}} MSI Wind U90/U100,
| <!--Recording-->{{Unk}}
| LQFP-48
|-
| ALC888b
| 0x8086
| 0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| untested (D510 NM10 Dual Core PineTrail mobo),
|-
| ALC888-VD
| 0x8086
| 0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| untested
|-
| ALC889A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes|works if QUERY added to the top of hdaudio.config in Prefs drawer/directory}}
| <!--Recording-->{{Unk}}
|
|-
| ALC889 Gr
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}} with crackles
| <!--Recording-->{{Unk}}
|
|-
| ALC889
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
| Tested with MSI H55 board
|-
| ALC887 ALC887-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
|
* working on ASUS P5KPL/EPU and Gigabyte GA-E350N-Win8 Rev1.0
|-
| ALC887-VD-CG
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0887
| <!--Revision-->0x100302
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}} Subsystem Id: 0x1458a002
|
|-
| ALC887-VD
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0887 0x1458
| <!--Revision-->0xa002
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{Unk}} index = 2
| ALC887 does not have any volume control ability on the mixer NIDs, so put the volume controls on the dac NIDs instead
* working with intermittent corrupting pop popping skipping stuttering sound issues MSI 760GM-P23 (FX),
* not working Gigabyte H61MA-D3V, AT3IONT-I Deluxe,
|-
| ALC887-VD2
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
| 3jacks
|-
| ALC887-VD2-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
|-
| ALC887-
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
|
|-
| ALC892-CG rev
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| 2011 48-pin LQFP Green package -
|-
| ALC892 ALC892-DTS-CG rev
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
| 2009 introduced
* works
* not working
* untested
|-
| ALC892 rev
| <!--Vendor ID-->0x0x10ec
| <!--Product ID-->0x0892
| <!--Revision-->0x100302
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| 2014
|-
| Realtek ALC886-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| LQFP-48
|-
| Codec ALC861 ALC861-VD
| 0x10ec
| <!--Product ID-->0x0663
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
|
* not working Toshiba Tecra A7
|-
| <!--Description-->ALC1200
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| ALC898
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
| not working
|-
| <!--Description-->ALC1500
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC3232 (aka ALC292)
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0292
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC3234 aka ALC255
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0255
| <!--Revision-->003
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC3287 aka ALC257
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes| }}
| <!--Recording-->{{no| }}
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->AD1882
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1883 HD Codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1884
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| Analog Devices SoundMAX AD1981
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| IBM Thinkpad T60,
|-
| AD1984 hp-m4 codec
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
* audio not working on Lenovo X61, Thinkpad T61,
|-
| AD1986
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
|
|-
| AD1988
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
|-
| <!--Description-->AD1988A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->Cirrus Logic CS4207
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->
| <!--Recording-->
|
|-
| <!--Description-->Cirrus Logic CS4208
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->
| <!--Recording-->
|
|-
| <!--Description-->Conexant CX20549 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe|very very very low volume}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested Fujitsu Amilo SI 1510 1520 no datasheet for the general public
|-
| <!--Description-->Conexant CX20549-12Z codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested HP 530
|-
| <!--Description-->Conexant CX20561 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* working lenovo x200s
* untested Lenovo Essential G555 Notebook, HP Pavilion dv6700,
|-
| <!--Description-->Conexant CX20582 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX2059x CX20590 CX20594-21Z codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX20585 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* working Lenovo Thinkpad T410,
|-
| <!--Description-->Conexant CX20672 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX20671 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX20751-21Z codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes| }}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| <!--Description-->Conexant CX11852 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX11880 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant after 2015 up to 2018 CX7501 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{no|no driver codec}}
| <!--Recording-->{{no|no driver codec}}
| <!--Comments-->Conexant bought by synaptics 2019
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->C-Media CMI9880 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->Gigabyte GA-8GPNXP
|-
| <!--Description-->Silicon Labs 3054
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| VIA 1708A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| untested,
|-
| VIA VT1708B
| <!--Vendor ID-->
| <!--Product ID-->
| 0x0010
| <!--Playback-->{{No|VIA PicoITX}}
| <!--Recording-->{{Unk}}
|
|-
| VIA 1708S
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
|
|-
| <!--Description-->VT2021 10ch
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->Gigabyte Z77MX-D3H, GA-H61M-S2H S2P,
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Creative CA0110-IBG
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->SigmaTel STAC 9220 9221 9223 8ch (7+1)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| <!--Comments-->ECS 945GCT/M-1333 (version 3.0),
|-
| IDT SigmaTec [http://explorer.cekli.com/articles/pdf/hd-audio STAC9227] /28/29/30 codec
| <!--Vendor ID-->0x8384
| <!--Product ID-->0x7626
| <!--Revision-->0x0002
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Unk}}
|
* works HP Compaq mini 110
* untested HP Pavilion HDX9000 CTO Notebook, Intel DG33TL mobo, Dell E520, Intel DP35DP mobo, Dell E6410 Laptop,
|-
| IDT (formerly SigmaTel) IDC STAC 9271/71D
| <!--Vendor ID-->0x8384
| <!--Product ID-->0x7626
| <!--Revision-->0x0002
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
|
|-
| <!--Description-->IDC STAC 9272 9273 9274
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->Intel D5400XS,
|-
| <!--Description-->IDT 92HD73C
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes}}
| <!--Recording-->
| <!--Comments-->headphones only Asus AT4NM10 mobo
|-
| <!--Description-->IDT 92HD75B
| <!--Vendor ID-->0x111d
| <!--Product ID-->0x7608
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* working [http://koti.kapsi.fi/jvaltane/aros/hdaudio/ HP Compaq Mini 700 Netbook - feedback required]
* untested HP Mini 5103 and 5102, HP Compaq 610, HP ProBook Laptop 4520s 4525s 6450b 6550b 6555b, HP EliteBook 2540p 2740p 8440p, Mobile Workstation 8540w 8740w, Pavilion NoteBook DV8,
|-
| <!--Description-->IDC 92HD81XX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC 92HD83XX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC STAC 92HD89XX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Wolfson (now Cirrus Logic) WM8850
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Wolfson WM8860
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->Intel High Definition Audio Revision 1.0. - 4-Channel DAC, 4-channel ADC. - DAC sampling
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
Using Prefs/AHI ensure you set the music unit and at least Units 0 (where most audio comes from) in top left drop down menu to HDaudio - HIFI in the section below. Set Units 1 or 2 to microphone or other outputs. Plus allow more than one channel for multiple audio streams and set frequency up to 44 kHz or higher on the right hand side of the ahi prefs. If sound beeps when you press the test button then all should be OK.
Output <- Codec <- Audio Controller (HDA) <-> Computer
codecs and exact hardware identifier. As mentioned above, HDA is only part of the work here, it gets the audio out of the main chipset in digital format (on a bus called I2S). This is not enough, there is another step needed which is routing that I2S signal to the output, converting it to actual audio, amplifying it, etc. This is handled by a separate chip called a "codec". Sometimes it is initialized by the BIOS, but this is not always the case.
Most audio drivers are made up of two parts a [http://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio.txt Controller + a Codec]. The ProductID and VendorID are for the audio controller only - the important additional codec is '''NOT''' so easily identified.
Some newer versions of codecs are missing at the moment.
Things to try if sound not working
* try to connect something to the audio jack, maybe it is not playing on internal speakers or vice versa
* make sure you try and select all music units e.g. unit0, unit1....
* even if PCI ID's are in Prefs/Env-Archive/HDaudio.config, this doesn't mean it is working, it is the codec that matters
* it might be internally muted
<pre>
add debug=memory to grub boot line - continue booting with F10
Open a shell
Tools/Debug/Bifteck > RAM:audio.txt
</pre>
or
<pre>
Open a shell
Tools/Debug/Sashimi > RAM:audio.txt
Run ahi prefs
Click test tone button
Stop sashimi with Ctrl-C
</pre>
If the boot sound is enabled, you have to use Bifteck to capture AHI debug output. In the GRUB menu, press E on your selected entry, then add "debug=memory" to the options (alongside ATA=, vesa= etc.). Then F10 or Ctrl-X to boot. Once booted, run Tools/Debug/Bifteck again.
or
* try adding QUERYD to the start of ENVARC:hdaudio.config file (also known as Prefs/Env-Archive/) ie. on the first line
* '''OR''' try removing QUERY and QUERYD from the start of the hdaudio.config file
* Reboot
* open a shell
* type: sys:tools/debug/sashimi > ram:debug.txt
* open ahi prefs
* select one of the audio modes - HIFI or otherwise
* press the 'test sound' button
* press ctrl-c in the shell
* post the results to Aros-World
The HD Audio standard was designed to be hardware pinout interchangeable so that the sound support could change easily and quickly. HDA is a standard around particular chips. Each kind of chip has a certain number of DACs and pins, and even the same chip could be hooked up in different ways on different motherboards. The chips are programmable and the operating system can adjust how things are routed. Some pins aren’t even hooked up, so it makes no sense to route sound to them. Also some pins have sensors that can tell when something is plugged in, so that for example the speakers in a laptop can be muted when headphones are plugged in. Pins are also grouped, so for example all the outputs for a 5.1 sound system are grouped. Generally the HDA driver in the operating system is supposed to read the pin set up and figure out a reasonable way to set things up, and disconnected pins should be ignored, etc.
HDAudio standard has headphones on a separate DAC, and it's up to the driver.. it can even send different audio to the headphones without interrupting the main (green) outputs
====Envy24 series ====
A little history. VIA bought the ICE created Envy chipsets [http://www.via.com.tw/en/products/audio/controllers/comparison_controller.jsp VT1712] first. A few years later, they created several cheaper variants VT1724 (mixer missing), VT1721 (low end cut down), VT1720 (embedded on motherboard) and lastly the VT1723 (no support apart from Windows Envy24DT like SYBA SD-PEX63034).
There are PCI Express versions appearing.
The Envy24 is the base product that was originally designed by ICEnsemble, and it supports multi-channel hardware mixing, which is great for professional use. The HT version removes the hardware mixer (unimportant for non-professional uses). The [http://www.avsforum.com/t/364771/envy24ht-s-the-definitive-source HT-S] version is almost exactly the same as the HT, it just uses cheaper DACs. The PT version is exactly the same as the HT-S version, it is just the edition used for on-board audio on motherboards.
N.B. [http://www.soundonsound.com/sos/dec04/articles/pcnotes.htm PCI slot identification] and [http://hsi.web.cern.ch/HSI/s-link/devices/s32pci64/slottypes.html 3.3v PCI].
=====[http://www.opensound.com/readme/README.Envy24.html envy24.audio] - [http://www.anime.net/~goemon/alsa/ VT1712] =====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Playback
! Recording
! Comments
|-
| M-Audio Delta 66 - Rev B 1999
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested AK4524VF CS8404A-CS - needs Delta Series break out box with D-sub lead -
|-
| [http://ixbtlabs.com/articles/maudioaudiophile/index.html Audiophile 2496] Rev A 2000
| 0x14
| 0x
|
| <!--Playback-->{{unk| }}
| <!--Recording-->{{unk| }}
| works audio out on - I2S stereo codec AKM AK4528VF with the 24bit/96kHz DAC and ADC; CS8427 digital transceiver
|-
| [http://ixbtlabs.com/articles/maudioaudiophile/index.html Audiophile 2496] Rev B 2003
| 0x14
| 0x
|
| <!--Playback-->{{Yes }}
| <!--Recording-->
| works well - I2S stereo codec AKM AK4528VF with the 24bit/96kHz DAC and ADC; CS8427 digital transceiver
|-
| M-Audio Delta 410 - 2001 2001 REV-B
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested for D-A AK4529VQ converters with CS8427-CS 5532 1158B or Event Echo Gina 20-Bit Multitrack Interface Breakout Box -
|-
| M-Audio Delta 1010
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested AK5383 and AK4393 - 25 pin dsub -
|-
| M-Audio Delta 1010LT 1010E
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested for D-A AK4529 converters with 2 XLR Microphone inputs with pre amps
* be aware of redesign in 2007 - possible issues
|-
| M Audio Delta 44 - Rev A 2002 - Rev B 2003 - Rev D 2003
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested ICE1712G AK4524VF needs breakout box with 15 pin D-sub lead -
|-
| M-Audio Delta 66 Rev E 2006 - Omni Studio
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested needs break out box with 15 pin D-sub lead -
|-
| <!--Description-->M-Audio Delta DiO 2496
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| Terratec EWX24/96
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| [http://ixbtlabs.com/articles2/terratecdmx6fire/index.html TerraTec 6fire DMX 24/96]
| <!--Vendor ID-->0x1412
| <!--Product ID-->0x1712
| <!--Revision-->0x02
| <!--Playback-->{{No|tried line 1-2 3-4 5-6 7-8 }}
| <!--Recording-->{{No| }}
| untested - AKM and codec
|-
| <!--Description-->Terratec EWSA88MT
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| [http://lists.freebsd.org/pipermail/freebsd-multimedia/2007-March/006087.html Audiotrak Prodigy HD2] 24/96
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Audiotrak (ESI) Maya 1010 1010L
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| EMU 1212M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| EMU 1616M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| <!--Description-->Terratec EWS 88MT EWS 88D
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Hoontech Soundtrack DSP 24
Soundtrack DSP 24 Value
Soundtrack DSP 24 Media 7.1
Event Electronics EZ8
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Digigram VX442
Lionstracs
Mediastation
Terrasoniq TS 88
Roland/Edirol DA-2496
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
=====envy24ht.audio - VIA VT1724=====
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| ESI Juli@
| 0x3031
| 0x4553
| 0x0
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Yes}}
| reported working years ago [http://envy24.svobodno.com/ Envy24HT-S] - AKM 4358 DAC - AKM 4114/4112 DIT
|-
| ESI Juli@ Ego Igo rev K
| 0x3031
| 0x
| 0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| AK4358? DAC - AK4114 AK4112 DIT
|-
| [http://ixbtlabs.com/articles2/multimedia/m-audio-revolution51.html M-Audio Revolution 5.1]
| 0x1412
| 0x3631
| 0x0
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| reported working years ago but discontinued - (Envy24GT) - 3ch AKM 4358 DAC - ADC AKM 5365 -
|-
| [http://ixbtlabs.com/articles2/m-audio-revolution71/index.html M-Audio Revolution 7.1] 24/192
| 0x1412
| 0x3630 0x1724
| 0x0
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| not working - illegal semaphore - 6ch ADC AKM AK4355 24-bit 192 kHz - 2ch DAC AKM AK4381 24-bit 192 kHz - ADC AKM AK5380
|-
| Terratec Aureon Sky 5.1
| 0x153b
| 0x1147
| 0x
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - discontinued
|-
| [http://ixbtlabs.com/articles2/terratec-aureon71/index.html Terratec Aureon Space 7.1]
| 0x153b
| 0x1145
| 0x0
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - Wolfson WM8770 DAC, AC'97 codec SigmaTel STAC9744
|-
| Terratec Aureon Universe 7.1
| 0x153b
| 0x1153 (rev x) 0x1724 (rev3)
| 0x0
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| not working - semaphore error on rev 3 - DAC ADC
|-
| Terratec Phase 22
| 0x153b
| 0x1150
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - Envy24HT-S - AK4524
|-
| Terratec Phase 28
| 0x153b
| 0x1149
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - Envy24HT-S - AK4524
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Playback
| Recording
| Revision
| Comments
|-
| Audiotrak (ESI) Prodigy 7.1
| 0x4933
| 0x4553
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - Wolfson WM8770 and AC'97 SigmaTel STAC9744 codec
|-
| Audiotrak (ESI) Prodigy 7.1 LT
| 0x3132
| 0x4154
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver -
|-
| [http://ixbtlabs.com/articles2/sound/audiotrak-prodigy192.html Audiotrak (ESI) Prodigy 192] 24/96
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - STAC9460S codec
|-
| <!--Description-->Echo Layla 24/96
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
| [http://www.bit-tech.net/custompc/labs/80752/hercules-gamesurround-fortissimo-4.html Hercules Gamesurround Fortissimo 4]
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - Wolfson WM8776 Codec and WM8766 DAC
|-
| [http://ixbtlabs.com/articles2/multimedia/m-audio-audiophile192.html M-Audio Audiophile Delta AP 192k]
| 0x1412
| 0x3632
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - Stereo ADC AKM AK5385A 24-bit 192 kHZ - 8-channel DAC AKM AK4358 24-bit 192 kHz - AKM 4114/4112 DIT
|-
| ONKYO SE-150PCI
| 0x160b
| 0x0001
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver
|-
| <!--Description-->ESI Waveterminal 192x
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
| <!--Description-->Quartet
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments--> - AKM 4114/4112 DIT
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
|}
====hdmiaudio.audio - hdmi no support====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Comments-->
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->ATI R6xx HDMI Audio codec support output
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x9840
| <!--Revision-->
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->Not detected
|-
| <!--Description-->NVidia HDMI
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Intel Series 6 CougarPoint HDMI codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Intel HDMI
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|}
[[#top|...to the top]]
===Graphic GFX Chipsets===
[https://gallium.readthedocs.io/en/latest/systems.html PCIe based] graphic chipset is defacto on 64bit AROS and recommended on 32bit.
AGP works on 32bit but faster transfers through the AGP slot are only available on a few supported motherboard chipsets
* Faster AGP Working = SIS 650 board, Intel 865pe AGP slot on MSI 6788-050,
* Not Supported = NForce2 chipsets, most Intel 815/820 chipsets, VIA chipsets, ALi chipsets,
The fallback for all graphics modes is vesa if any native support does not work. There is a choice of very low resolution vga as the last resort
2D tests performed with [http://download.aros3d.org/software/gfxbench.zip gfxbench] in the shell type gfxbench > out.txt (40 seconds blank screen is part of the test), via FreeDoom via limit-removing engine like odamex, chocolate or vanilla doom -timedemo demo1 or doom2 -timedemo demo1, doom.exe -iwad doom2 -file mymap.wad, Duke DNRATE 640x480 windowed
3D tests performed with Demos/Mesa/ , Cube 1080p, Cube 2 windowed not fullscreen 1920 x 1025, Quake3 ~ cl_drawFPS 1, Xonotic , [http://shinh.skr.jp/sdlbench/showtestgl.cgi test gl],
HDMI, DVI and DisplayPort monitors have a native resolution of 480p, 720p, 1080i, 1080p and up
* HDMI 1.2 720p res.
* HDMI 1.3 1080 resolution
* HDMI 1.4 above 1080 res.
* HDMI 2.0
* HDMI 2.1
* HDMI 2.2 ultra96
* GPMI
====vga.hidd====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Comments
|-
|
| 0x
| 0x
| 0x0
| Generic VGA Driver, limited to 640x480 in 16 colours - no 3D support
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Comments-->
|-
|}
====vesa.hidd====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Comments
|-
|
| 0x
| 0x
| 0x0
| 2D support for VBE1, VBE2 and VBE3 (most cards) - various resolutions and 24bit colour - no 3D support
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Comments-->
|-
|}
[[#top|...to the top]]
====[[w:en:Intel GMA|Intel GMA]]====
DVI output is not supported at the moment.
If having problems:
* Ensure the latest version is being used.
* Set GMA_MEM to 128 or 256 to test
* Try the FORCEGMA ToolType for 2D, and try the FORCEGALLIUM ToolType for 3D acceleration after 2D is verified to work. ToolTypes should be applied to the Devs/Monitors/IntelGMA monitor icon.
If still having problems:
* At GRUB boot screen edit boot line and add option: debug=memory
* Boot.
* Use shell command: tools/debug/bifteck > RAM:debug.txt
* And post [GMA MONITOR DETECTION] and other related debug lines
{| class="wikitable sortable" width="90%"
! width="5%" |Description
! width="5%" |Vendor ID
! width="5%" |Product ID
! width="3%" |Rev
! width="5%" |2D
! width="5%" |3D
! width="5%" |Analog Output
! width="5%" |Digital Output
! width="5%" |Laptop LCD
! width="30%" |Comments
|-
| 910GL 82910GL GMCH + ICH6
| 0x8086
| 0x2582 0x2592
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| 910GML 82910 GML GMCH + ICH6 Mobile
| 0x8086
| 0x2582 0x2592
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| may need to add forceGMA to grub boot line to work
|-
| 915G 82915G GMCH + ICH6-M
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
|
|-
| 915GL 82915GL GMCH
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
|
|-
| 915GV 82915GV GMCH
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Yes|}}
| <!--3D-->{{No|}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{N/A}}
| HP DC5100 small form factor
|-
| 915GM GMA900
| 0x8086
| 0x
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| tunnel gearbox }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes}}
| asus eee pc 900
|-
| 915GMS
| 0x8086
| 0x
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| tunnel }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes| }}
|
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| [http://www.notebookcheck.net/Intel-Graphics-Media-Accelerator-950.2177.0.html 945GU] - 133 MHz (Lake port for Intel A100 and A110)
| 0x8086
| 0x2772
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| Fujitsu LifeBook U1010,
|-
| 945GMS - 166 MHz / 250 MHz (1.05V)
| 0x8086
| 0x27a2
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes}}
| Dell D430
|-
| 945GSE - 166 MHz (for Atom)
| 0x8086
| 0x27ae
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Yes|[http://www.x.org/wiki/GalliumStatus]}}
| {{Yes}}
| {{No|dvi port}}
| {{Yes| }}
| for atom motherboards and most 2008/2009 netbooks
* 3D Works - AOA110 AOA150, Dell Mini 9, Samsung NC10, Toshiba NB100,
|-
| 945G 82945G GMCH + ICH7
| 0x8086
| 0x27a6
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| untested 2D and 3D
|-
| 945GC 82945GC MCH
| 0x8086
| 0x27a6
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| untested 2D and 3D
|-
| 945PM
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| Dell D420, Compaq nc6400,
|-
| 945GMS - 250 MHz Calistoga
| 0x8086
| 0x
| 0x0
| <!--2D--> {{Yes}}
| <!--3D--> {{Yes|most models}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes}}
|
* 3D Works Dell Latitude 2100, HP Compaq nc6320, Lenovo 3000, Lenovo T60, Samsung Q35, Dell D620, Dell D820,
* 3D untested Toshiba Satellite L100-120, Toshiba Portege M400,
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
|
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GMA 3100 G31
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works 2D but no 3D
|-
| GMA 3100 G33
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works 2D but no 3D
|-
| [http://en.wikipedia.org/wiki/Intel_GMA GMA 3150] netbooks and nettops
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works 2D but no 3D. no vga, dvi or hdmi output for nettops
|-
| <!--Description--> G965
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments-->
|-
| <!--Description--> Q965
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x2992
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{No}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments--> Only tested with VGA output.
|-
| 965GM X3100 (500 MHz)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| some support 2D but no hardware 3D - could not get it to work with VGA or dvi output
* untested Apple MacBook Air, Lenovo Thinkpad X300, Dell Inspiron 1525, Toshiba M9,
|-
| 960GM X3100 (400 MHz)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
|
|-
| 965M X3100 (400 MHz)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| Dell D830,
|-
| 965PM ??
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| Toshiba A9 works with limited 2D acceleration but no hardware 3D
|-
| GL965
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works with limited 2D acceleration but no hardware 3D
|-
| GM965
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works with limited 2D acceleration but no hardware 3D
|-
| GMA X3500 G35
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->X4500M G41 G43 G45 (400Mhz) Mobile 4 Series
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x2a42 0x2a43
| <!--Revision-->0x07
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue--> {{No|}}
| <!--Digital--> {{No|}}
| <!--Laptop LCD--> {{Yes| VESA}}
| <!--Comments-->works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->GMA 4500M HD (533 MHz)
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments-->works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->GMA 4700M HD (640MHZ)
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x2a42
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments-->works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
====[http://nouveau.freedesktop.org/wiki/FeatureMatrix nouveau].hidd (nvidia pci, agp, pci-e desktop)====
PCIe based nvidia graphics (gfx 8xxx) are the base level for 64bit AROS but earlier models still has some support on 32bit AROS
*Desktop, more likely hit rather than miss on early nvidia on Aros 32bit but on Aros 64bit ...
*Laptop, limited support for '''very''' early non-optimus (i.e. just Nvidia gfx only so no Intel and nvidia gfx combinations on 32bit but on 64bit ...)
Please note that the nouveau project is reverse engineering a nvidia graphics driver but takes time because of [https://nouveau.freedesktop.org/ nVidia's closed firmwares], etc
* 2026-06 - DEVS Nouveau.hidd Gallium.hidd Softpipe - LIBS Gallium GLU 20.0 Mesa OpenCL
* 2011-10 - DEVS 6.11 Nouveau.hidd 7.4 Gallium.hidd 9.4 Softpipe - LIBS 2.3 Gallium 1.3 GLU 19.0 Mesa OpenCL 1.x
* 2011-04 - DEVS 5.31 Nouveau.hidd 7.3 Gallium.hidd 9.3 Softpipe - LIBS 2.2 Gallium 1.1 GLU 18.0 Mesa OpenCL n/a
Nouveau support for AROS is limited to OpenGL 2.1 compliance on 32bit even for modern GL4 capable GPUs but on 64bit ...
On Aros 32bit OpenCL supports the NV50 (8000 9000) cards, less support in NVC0 fermi cards (300 upwards)
On Aros 64bit
ADoom3 graphic details ultra, benchmark while playing press the "`" key and type "Timedemo demo1" in the console
{| class="wikitable sortable" width="90%"
! width="5%" | Graphic Card
! width="5%" | Aros 32bit 1024 x 768
! width="5%" | Aros 32bit 800 x 600
! width="5%" | Aros 32bit 640 x 480
! width="5%" | Aros 64bit 1024 x 768
! width="5%" | Aros 64bit 800 x 600
! width="5%" | Aros 64bit 640 x 480
|-
| NV50 Asus EN8400GS SILENT/P/512M PCIe (G98) || || || || || ||
|-
| Gigabyte 8500GT 256M || 42,6 || 57,2 || 68,6 || || ||
|-
| NV96 (G96) Geforce 9500GT 512M || 43 || 53 || 57 || || ||
|-
| NV96 (G96) 9600GT || || || || || ||
|-
| NVA3 (GT215) GT240 || || || || || ||
|-
| NVA5 (GT216) Palit GT220 Sonic 512M || 39,7 || 55,8 || 63,7 || || ||
|-
| NVA8 (GT218) gt210 || || || || || ||
|-
| NVA8 (GT218) ION2 || || || || || ||
|-
| NVC3 (GF106) GT440 GTS 450 || || || || || ||
|-
| NVCF (GF116) NVC0 Fermi GTX 550Ti or GTS 450 v2 || || || || || ||
|-
| NVC8 (GF110) 580GTX || || || || || ||
|-
| NVE0 Kepler GT630 || || || || || ||
|-
| NVE6 (GK106) Kepler GTX660 || || || || || ||
|-
| NV110 Maxwell GTX 750 || || || || || ||
|-
| NV126 (GM206) GTX950 upwards no reclocking || N/A || N/A || N/A || poor || poor || poor
|-
| NV160 family (Turing) GTX 1650 and RTX 2000 upwards with GSP firmware || N/A || N/A || N/A || unknown || unknown || unknown
|-
| HostGL Ryzen 5 4600H - Nvidia 1650 - Linux mint 21.1 || 150fps || 154fps || 155fps || || ||
|-
| NVA8 (GT218) || || || || || ||
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| width="5%" | Graphic Card
| width="5%" | Aros 32bit 1024 x 768
| width="5%" | Aros 32bit 800 x 600
| width="5%" | Aros 32bit 640 x 480
| width="5%" | Aros 64bit 1024 x 768
| width="5%" | Aros 64bit 800 x 600
| width="5%" | Aros 64bit 640 x 480
|}
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|-
| <!--Description-->tnt1 (nv04) tnt2 (nv05) m64 value (1998)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|very slow}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| NV04 Riva TNT TNT2 Fahrenheit freezes on via motherboard chipset so rename agp.hidd in SYS:Devs/Drivers or Monitors
|-
| <!--Description-->tnt vanta lt (nv06) 1998 /9
| 0x10de
| 0x002c
| 0x15
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|slow}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| <!--Description-->Geforce 256 (nv10) (2000)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|slow }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| untested Geforce256
|-
| <!--Description-->Geforce 2 Geforce 3 Geforce 4 (nv20) 2000 / 2
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|slow }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| works for some PCI and AGP Geforce2 Geforce3 Geforce4
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| Geforce FX5200 nv34 (2003)
| 0x10DE
| 0x0322 0x
| 0xA1
| <!--2D-->{{Maybe| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->{{Maybe|VGA15 }}
| <!--Digital-->{{Maybe|DVI}}
| <!--Laptop LCD-->{{N/A}}
| NV30 GeForce 5 FX Rankine Hardware OpenGL 1.5 - slower than GF MX 4000 for 2D - max 1024 x768
* not working [https://eab.abime.net/showthread.php?t=92328&page=8 mobos with VIA chipsets 2018]
* working (MSI 0x9174) the previous nouveau 5.x driver
* Others work with 6.x series XFX PV-T34K-NA, ASUS V9520-X/TD
|-
| Geforce FX5500 (nv34) (2003)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{Maybe| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| works
|-
| Geforce 5100 (NV34)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce FX 5200LE (NV34)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5200 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce FX5600 (nv31) (2004)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Maybe| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| works
|-
| GeForce FX 5600 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5600SE
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5600XT
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce FX5700 (nv36) (2004)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes|some}}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{Maybe| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5700VE
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5700 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5700LE
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5800 (NV30)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5800 Ultra (NV30)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900 (NV35)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900XT
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900ZT
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5950 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce 5xxx
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
|
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| Geforce 6200 (nv44) (2005)
| 0x
| 0x00F3 0x014F
| 0x0
| <!--2D-->{{Yes|5.28 Pixel Text}}
| <!--3D-->{{Maybe| use 5.28}}
| <!--Analogue-->{{Yes|VGA15 and s-video - plain 4pin cable lead will work with 7pin}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| NV40 GeForce 6 GeForce 7 Curie AGP Hardware OpenGL 2.1 needing previous 5.x version as regression arose 2011-10
|-
| Geforce 6200 (nv44a) (2006)
| 0x
| 0x0221
| 0x0
| <!--2D-->{{Yes|5.28 Pixel Text }}
| <!--3D-->{{Yes|}}
| <!--Analogue-->{{Yes|VGA15}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| Hardware OpenGL 2.1, PCI version tested OK in 2014-01-02 - Icaros 1.5.2
* not working
*working
|-
| GeForce 6200 with Turbo Cache (NV43)
| 0x
| 0x0161
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce 6200SE with Turbo Cache (NV44)
| 0x
| 0x0162
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce 6200 LE
| 0x10de
| 0x0163
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| PCI-E
|-
| GeForce 6600 LE
| 0x
| 0x00F4 0x0142
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6600
| 0x
| 0x00F2 0x0141
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| 2006 PureVideo HD 1 or VP1 re-used the MPEG-1/MPEG-2 decoding pipeline from FX
|-
| Geforce 6600gt (nv4x) (2005)
| 0x
| 0x00F1 0x0140
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Yes| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| OpenGL tests -
|-
| Geforce 6800 (nv40) (2005)
| 0x
| 0x0041 0x00C1 0x00F0 0x0211
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Yes| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 XE (NV4x)
| 0x
| 0x0043
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 LE
| 0x
| 0x0042 0x00C2 0x0212
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 GT (quadro fx 1400)
| 0x
| 0x0045 0x0046 0x0215
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 6800 GS
| 0x
| 0x0047 0x00C0 0x00F6
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 GTS NV40
| 0x
| 0x0040 0x0F9
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 6800XT
| 0x
| 0x0044 0x0048 0x00C3 0x0218
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6600 VE
| 0x
| 0x0143
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6500 NV44
| 0x
| 0x0160
| 0x0
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6250
| 0x
| 0x0169
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 6xxx
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GeForce 7800 GTX
| 0x
| 0x0090 0x0091
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| tunnel gearbox cube cube2 25}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> 256MB DDR3 - 1 6pin psu connector -
* not working asus en7800gtx/2dhtv/256m/osp/a -
* Works XFX PV-T70F-UDD7 Works in steve jones' scrap pc aros build 2010 2 DVI-I ports
* Untested
|-
| GeForce 7800 GT
| 0x
| 0x0092
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7600gt (G8 ) (nv4 ) (2006)
| 0x
| 0x02E0 0x0391
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL 2.1
* not working
* working
|-
| GeForce 7800 SLI
| 0x
| 0x0095
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GTX
| 0x
| 0x0290
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GT GTO
| 0x
| 0x0291
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GS
| 0x10de
| 0x0292
| 0x0a1
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working
* Works with a few glitches with XFX Pine 0x2218
|-
| GeForce 7950 GX2
| 0x10de
| 0x0293 0x0294
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| GeForce 7950 GT
| 0x
| 0x0295 0x02E4
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GS
| 0x
| 0x02E3
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7600 GS
| 0x
| 0x02E1 0x0392
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7650 GS
| 0x
| 0x0390
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7600 LE
| 0x
| 0x0394
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7800GS (G8 ) (nv4 ) (2006)
| 0x
| 0x0093 0x00F5
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working
* works if AGP motherboard chipset is supported - Hardware OpenGL 2.1
|-
| GeForce 7100 GS
| 0x
| 0x016A
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7350 LE
| 0x
| 0x01D0
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7300le (G8 ) (nv4 ) (2006)
| 0x
| 0x01D1
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7300SE 7200GSGF-7200GS-N-B1 variant (G72)
| 0x10de
| 0x01D3
| 0x0a1
| <!--2D-->
| <!--3D-->
| <!--Analogue-->{{Unk|1x DVI, 1x VGA, 1x S-Video}}
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2007 40W pci-e 1.0 VP1 no unified shaders -
* not working Asus on via chipset (2015),
* works Asus on intel chipset (2015),
|-
| Geforce 7300gt (G8 ) (nv4 ) (2006)
| 0x
| 0x0395 0x0393
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working
* works
|-
| GeForce 7300 GS
| 0x
| 0x01DF
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7500 LE
| 0x
| 0x01DD
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7xxx
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GeForce 8800 Ultra (NV50 family)
| 0x
| 0x0194
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NV50 GeForce 8 to GeForce 200s opengl 3.x - max res - 80nm technology - PureVideo HD 2 or VP2 Nvidia VDPAU Feature Set A (absent from ultra and some 8800gt?) added a dedicated bitstream processor (BSP) and enhanced video processor for H.264, VC-1 acceleration
|-
| Geforce 8800gts (nv50) (G8x) (2007)
| 0x
| 0x0400 0x0600 0x0193
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2007 200w openGL3 openCL - 2x6pin psu
* not working 0x0193 models (2015) on via chipsets,
* works
|-
| Geforce 8800gtx (nv5 ) (G8x) (2007)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2008 200W 1x 6pin connector,
* not working
* working
* untested XFX PV-T88P-YDF4, Alpha Dog Edition runs extremely hot - Gigabyte GV-NX88T512H,
|-
| GeForce 8800 GT
| 0x
| 0x0602 0x0611 0x0193
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->DVI up to 2500 x 1600
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - 6pin psu power connector required
* not working
* untested Asus EN8800GT/HTDP/256M EN8800GT/HTDP/512M EN8800GT/G/HTDP/512M
* works
|-
| GeForce 8800 GT (G92)
| 0x10de
| 0x0611
| 0x0a2
| <!--2D-->{{Yes|6.11 Pixel Text}}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{N/A}}
| <!--Digital-->{{Yes}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3 pci-e 2.0 8800GT 512MB on Icaros 2.0.3 [[File:8800GT aros heads.png|thumb|8800GT]] [[File:8800GT aros tails.png|thumb|8800GT detail]]
|-
| Geforce 8600gt (nv5 ) (G8x) (2007)
| 0x
| 0x0401 0x0402
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res
* not working
* works
|-
| GeForce 8500 GT
| 0x
| 0x0421
| 0x0
| <!--2D-->{{Yes| some color }}
| <!--3D-->{{yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL tests - max opengl 3.x but 2.1 offered - max res
* not working
* works Gigabyte 8500 GT,
|-
| GeForce 8800 GS
| 0x
| 0x0606 0x060D
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res
|-
| GeForce 8600GS
| 0x
| 0x0403
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 3.x VP3 offers complete hardware-decoding for all 3 video codecs of the Blu-ray Disc format: MPEG-2, VC-1, and H.264 - Nvidia VDPAU Feature Set B
|-
| GeForce 8300 GS
| 0x
| 0x0423
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res
|-
| Geforce 8400gs G98GS (end 2007) GT218 (2009)
* Rev2 with 8/16 cores and 128-512MB of DDR2 or GDDR3 memory.
* Rev3 with 8 cores and 512MB-1GB of DDR3 memory (based on Tesla 2.0)
| 0x
| 0x0424 0x0422
| 0x0
| <!--2D-->{{Yes|Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 490 gearbox 505 Cube 135 Cube2 55 quake3 }}
| <!--Analogue-->{{Yes|works digital part of DVI but nothing from any display port}}
| <!--Digital-->{{Yes|output on digital 24 pin array of DDWG's DVI and hdmi}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 50W openGL 3.1 openCL - case single slot - one single-link DVI digital output, supporting up to one 1920x1080 resolution display - analog resolution 640 x 480 to 1024 x 768 16 and 24 bit color - [http://www.phoronix.com/scan.php?page=article&item=nouveau_comp_2011&num=19 runs a little hotter than expected] - G98 VP3 pci-e 2.0 512MB DDR2 -
* not working
* works Asus EN8400GS SILENT/P/512M PCIe (G98),
|-
| Geforce 8400gs (nv50) (G86) (mid-2007)
* Rev1 with 16 cores / 256MB of DDR2 memory.
| 0x
| 0x0404
| 0x0
| <!--2D-->{{Yes|Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 490 gearbox 505 Cube 135 Cube2 55 quake3 }}
| <!--Analogue-->{{Yes|works but not tested thru 4 pins of analog signal of DVI plug}}
| <!--Digital-->{{Yes|output on digital 24 pin array of DDWG's DVI and hdmi}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2008 50W openGL 3.1 openCL - case single slot - one single-link DVI digital output up to 1920x1080 resolution display - analog resolution 640 x 480 to 1024 x 768 16 and 24 bit color - [http://www.phoronix.com/scan.php?page=article&item=nouveau_comp_2011&num=19 runs a little hotter than expected] - G86 VP2 128MB -
* not working XFX PV-T86S-YAJG NVIDIA GeForce 8400 GS 512MB DDR2, Sparkle 8400GS 512MB SX84GS512D2L-DPP,
* works Asus EN8400GS SILENT/HTP/256M SILENT/HTP/512M/A,
|-
| GeForce 8400 SE
| 0x
| 0x0420
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 2.x openCL
|-
| NVidia Quadro NVS290 DMS-59
| 0x
| 0x0403
| 0x0
| <!--2D-->{{no| }}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk|DMS-59 socket}}
| <!--Digital-->{{unk|DMS-59 }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2008 21W - G86S (G86-827-A2) - 16 shading units, 8 texture mapping units, and 4 ROPs. NVIDIA has paired 256 MB DDR2 - PCIe 1.0 x16 Low Profile -
|-
| Geforce Quadro FX 4600 (SDI), 5600
| 0x
| 0x
| 0x0
| <!--2D-->{{Partial|VESA 2d}}
| <!--3D-->{{no| }}
| <!--Analogue-->{{partial| }}
| <!--Digital-->{{partial| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GeForce 9800 GX2 (NV50 family)
| 0x
| 0x0604
| 0x0
| <!--2D-->{{Partial|VESA }}
| <!--3D-->{{no| }}
| <!--Analogue-->{{Partial| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 150w - 65nm technology
|-
| GeForce 9800 GTX
| 0x10de
| 0x0612
| 0x0a2
| <!--2D-->{{Yes| }}
| <!--3D-->{{Maybe|6.11 }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 2x6pin psu -
* not working xfx on via chipset (2015),
* works xfx on chipset intel ,
|-
| GeForce 9800 GTX+
| 0x10de
| 0x0613
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res 2560 x 1920 - case dual slot - 26amp 12v rail on computer psu if 2x6pin connectors needed - 55nm version of the G92 chip - will not work with PCI-e 1.0a slots -
* not working
* works on a few models
|-
| Geforce 9800gt (nv50) (G92a) (2008)
| 0x10de
| 0x0614
| 0x0xa2
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel 495 gearbox 513 Cube 156 Cube2 120 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{partial| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL 3.1 openCL 1.x - case dual slot - 600w 26amp on both 12v rails for 2x6pin psu on gfx card - no fan control - some come with 1x6pin - renamed version of the venerable GeForce 8800 GT - randomly works
* not working Gainward 512M untested
* working Gainward CardExpert (0x0401) Green Edition NE39800TFHD02-PM8D92 1024MB (no 6pin)
|-
| Geforce gf9600 9600gt (nv5 ) (G9x) (2008)
| 0x10de
| 0x0622
| 0x0a1
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel 493 gearbox 675 Cube Cube2 100 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL 3.2 openCL but no fan control - case dual slot - 1 6pin pcie psu connector - 500 Watt or greater power supply with a minimum of 26 Amp on the +12 volt rail - Max Analog: 2048x1536 and Max Digital: 2560x1600 (Dual Link DVI Only) - PCI Express® 2.0 / 1.1 Support - g96 gpu randomly works -
* not working bfg tech ocx,
* works gigabyte gv-n96tsl-512i -
|-
| Geforce gf9500 9500gt (nv5 ) (G9x) (2008)
| 0x10de
| 0x0640
| 0x0a1
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel 480 gearbox 500 Cube Cube2 64 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.2 - case single slot - 350 Watt/400 Watt or greater power supply with a minimum of 18 Amp/22 Amp on the +12 volt rail - Max Analog: 2048x1536 and Max Digital: 2560x1600 (Dual Link DVI Only) - PCI Express® 2.0 / 1.1 Support -
* not working zotac zone fanless, Gainward USA NE29500THHD01-PM8796, PNY G9500GN2E50X+0TE,
* works xfx xne-9500t-td01-pm8596 1024mb ddr2,
|-
| GeForce 9600 GS
| 0x
| 0x0623
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res - will not work with PCI-e 1.0a slots -
* not working
* works
|-
| GeForce 9600 GSO
| 0x
| 0x0610
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res - G92 chopped down - 9600GSO is re-badged 8800GS both very power hungry cards -
|-
| GeForce 9300 GS
| 0x
| 0x06E1
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 opengl 3.x - max res
|-
| Geforce 9400 GT (nv5 ) (G86S) (2008)
| 0x
| 0x
| 0x0
| <!--2D-->{{partial|}}
| <!--3D-->{{unk|}}
| <!--Analogue-->{{unk|1x DVI, 1x VGA, 1x S-Video}}
| <!--Digital-->{{unk|1x DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 50W opengl 3.x - max res
|-
| Geforce 9xxx (nv5 ) (G9x) (2008)
| 0x
| 0x
| 0x0
| <!--2D-->{{unk|}}
| <!--3D-->{{unk|}}
| <!--Analogue-->{{unk|}}
| <!--Digital-->{{unk|}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 opengl 3.x - max res
|-
| <!--Description-->
NV84 (G84) GeForce 8600 (GT, GTS, M GT, M GS), 8700M GT,
NV92 (G92) GeForce 8800 (GT, GS, GTS 512, M GTS, M GTX)
GeForce 9600 GSO, 9800 (GT, GTX, GTX+, GX2, M GT, M GTX)
NV96 (G96) GeForce 9400 GT, 9500 (GT, M G), 9600 (M GS, M GT),
NV86 (G86) GeForce 8300 GS, 8400 (GS, M G, M GS, M GT), 8500 GT
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NVA0 (GT200) GeForce GTX (260, 275, 280, 285, 295)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->GeForce GTX 280 (NV50 family)
| <!--Vendor ID-->
| <!--Product ID-->0x05E1
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res PureVideo HD 4 (Nvidia Feature Set C or "VDPAU Feature Set C), VP4 added hardware to offload MPEG-4 Advanced Simple Profile (original DivX and Xvid)
|-
| <!--Description-->GeForce GTX 260
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x05E2
| <!--Revision-->
| <!--2D-->{{partial|Vesa}}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> 2 6pin - psu pci express 2.1 -
|-
| Geforce GTS250 250GTS (g92b) (2009)
| 0x10de
| 0x0615
| 0x0a2
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 486 gearbox 508-642 Cube Cube2 80 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> 2x6pin psu VP2 - pci-e 2.x - case dual slots - 738m 1gb ddr3 -
* not working Zotac branded version GDDR3 -
* works PNY gs-250x-zdfl and Gigabyte ??, BFG Tech RGTS2501024OCE, palit ne3ts250fhd52-pm8a92 with 2x6pin on top and hdmi output port,
|-
| <!--Description-->GeForce GT 240 (GT215 family)
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0ca3
| <!--Revision-->0xa2
| <!--2D-->{{Maybe|use VESA}}
| <!--3D-->{{No|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->late 2009 openGl 3.2 - case dual slots - no 6pin psu required with VP4 - All are pcie 2.1 cards and may not work in 1.0a slots -
* not working
* DDR3 with 512MB or 1GB -
* DDR5 -Asus ENGT240 - XFX Pine GT240XYHFC 0x3001 - Gigabyte GV-N240D5-512I rev 1.0 - Zotac AMP! with HDMI 1.3a with DisplayPort 1.1, Dual Link DVI -
* works
|-
| <!--Description-->GT220 (GT216) G220
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0a20
| <!--Revision-->0xa2
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Yes}}
| <!--Digital-->{{Yes|DVI }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> Icaros 2.0.3 GeForce GT220 1GB[[File:GT220 aros heads.png|thumb|GT220]][[File:GT220 aros tails.png|thumb|GT220]]
* untested NVIDIA Quadro® 400 512MB DDR3 GT216 DP DVI, AFox AF220 1Gb DDR3,
|-
| Geforce GT220 220GT G94 Tesla (g92b)
| 0x10de
| 0x0a20
| 0xa2
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 490 gearbox 505 cube 150 cube2 50 Quake3 }}
| <!--Analogue-->{{Unk|1x DVI, 1x VGA}}
| <!--Digital-->{{Yes|DVI but not 1x HDMI }}
| <!--Laptop LCD-->{{N/A}}
| 58W pci express 2.0 cards DDR3 - case single slot -
* not working ASUS ENGT220/DI/1GD2(LP)/V2 -
* works - gainward card expert 0x0401 GDDr3 512MB -
|-
| <!--Description-->GT210 GT 210 210GT G210 based on Tesla 2.0 GT218S GT218-300-A2 variant, GT218-300-B1
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0a65
| <!--Revision-->0xa2
| <!--2D-->{{Yes|6.11 Pixel Text}}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{Unk|1x DVI, 1x VGA}}
| <!--Digital-->{{Maybe|DVI out works but not hdmi or 1x DisplayPort}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 31W OpenGL 3.3 pci-e 2.0 cards - single slot -
* working GT218 based Asus EN210 based silent low profile large passively cooled -
* untested MSI GeForce 210 1GB DDR3 PCIe N210-MD1GD3H/LP,
* not working
|-
| <!--Description-->Quadro NVS 295 (256 MB GDDR3), NVS 450 (256M/512 MB DDR3)
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x
| <!--Revision-->
| <!--2D-->{{yes| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->
| <!--Digital-->{{partial|2 or 4 dp ports}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 25w low performance - G98s with 8 shading units, 4 texture mapping units, and 4 ROPs on PCI-Express 1.0 x16 -
*not working some NVIDIA Quadro NVS 295 2 dp ports (DELL, HP),
*working
|-
| <!--Description-->GT310 Tesla 310, 315, GT 320, GT 330 GT 340
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{Maybe|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2010 50w OpenGL 3.3 openCL all similar in performance to GT2xx except gt31x (poor)
|-
| <!--Description-->Quadro NVS310 NVIDIA NVS 310
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital--> 2 dp
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2012 25w GF119S (GF119-825-A1) 48 shading units, 8 texture mapping units, and 4 ROPs on PCI-Express 2.0 x16 - 512 MB DDR3 - PureVideo VP5 VDPAU Feature Set D -
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description--> GTX 470, GTX 480 GF10 GF10* core (NVC0 family)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{Maybe| tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2010 215w 2x6 plugs - NVC0 family (Fermi) GF100 (GF100-275-A3) Fermi 448 shading units, 56 texture mapping units, and 40 ROPs with 1,280 MB GDDR5 - OpenGL4.5 OpenCL1.1 Tessellation - case dual slots -
|-
| Geforce GTX460 460GTX (G104) 256bit, 1GB v2 192bit and GTX 465
| 0x10de
| 0x0e22
| 0xa1
| <!--2D-->{{Maybe|VESA }}
| <!--3D-->{{Maybe| tunnel gearbox cube 055-111 cube2 50}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVC0 family (Fermi) OpenGL 4.x but - 2x6pin psu - case dual slots -
* not working evga 768MB GDDR5 192bit 01G-P3-1373-ER or 01G-P3-1372-TR
* works 1GB GDDR5 256bit 01G-P3-1371-ER
|-
| <!--Description-->Geforce GTX 460SE 192bit
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0e23
| <!--Revision-->0x91 or 0xa1
| <!--2D-->{{Yes| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->{{Yes| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> nouveau 6.11 - 2 6pin psu needed - case dual slots -
* not working
* works EVGA 01g-p3-1366-b6 et 1024MB p1041 -
|-
| Geforce GT450 GTS450 450GTS GF106
| 0x10de
| 0x0dc4
| 0x0a1
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel gearbox cube cube2 50 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes|DVI }}
| <!--Laptop LCD-->{{N/A}}
| 2010 Hardware OpenGL 4.2 but nouveau at 3.3 - most need 1x 6pin psu - case dual slots -
* not working
* DDR3 1 or 2GB - Palit NEAS450NHD41F,
* GDDR5 512Mb or 1GB - MSI MPN N450GTSM2D1GD5OC, Asus MPN ENGTS450DI1GD5,
* works Gainward Card Expert NE5S4500FHd51,
|-
| <!--Description-->GT 440 GF108 chipset or better OEM GF106
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 6.11 Pixel Text}}
| <!--3D-->{{Maybe| tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGl 4.1 opencl 1.x - no 6 pin psu - 96 cuda cores 128bit - case dual slots -
* not working
* OEM
* GDDR5 512MB to 1GB ASUSTeK ENGT440/DI/1GD5
* GDDR3 Asus 1gb to 2gb,
* works
|-
| <!--Description-->GT430 430GT (GF108)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|6.11 Pixel Text}}
| <!--3D-->{{Maybe|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->ddr3 memory 64bit or 128bit - buggy await new revision of driver
* not working
* works
|-
| <!--Description-->nVidia Quadro FX1800 768MB GDDR3 Full Height Graphics Card Workstation
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 6.11 Pixel Text}}
| <!--3D-->{{no|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->{{Maybe|DVI-I 2xDP}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->59W 768 MB GDDR3 memory using a 192-bit memory interface - OpenGL 3.3 -
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GTX 590 Fermi
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->OpenGL4.4 OpenCL 1.1 - GDDR5 - 6pin and 8pin psu connectors - 512 cuda - case dual slots -
* not working
* works
|-
| <!--Description-->GTX 580,
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->PureVideo HD 5" or "VP5" (Nvidia Feature Set D or VDPAU Feature Set D) 4k UHD 3840 × 2160 H.264 decode -
|-
| <!--Description-->GTX 570,
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{Maybe|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working Zotac GTX 570, Gainward GTX560TI/570 Phantom,
* works gigabyte, evga
|-
| <!--Description-->Geforce 5xx 560gtx Fermi GTX 560,
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->opengl 4.x - 2 6pin psu - 384 cuda cores - case dual slots - will not work with PCI-e 1.0a slots -
* not working Asus ENGTX560 DC/2DI/1GD5,
* Ti LE 448 cuda GDDR5 320bit
* Ti 256bit
* works
|-
| <!--Description-->GTX 560 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working evga GTX 560Ti 01GP31560KR - Gainward GTX560TI/570 Phantom,
* works
|-
| <!--Description-->GTX 550 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x1201
| <!--Revision-->
| <!--2D-->{{Maybe|VESA Doom Doom2 Duke }}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->can hang on boot up on I2C Init or suffer random lockups on OpenGL apps - most need 1 6pin min 400W 24A on the +12V1 / +12V2 dual 12V rails of the computers' power supply unit - 192 cuda cores - case dual slots used - will not work with PCI-e 1.0a slots -
* not working eVGA GeForce GTX 550 Ti (1024 MB) (01GP31556KR) -
* untested asus Extreme, eVGA GeForce GTX 550 Ti (1024 MB) (01GP31557KR) - -
* works
|-
| <!--Description-->GT 545 and OEM GF116
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 4.2 opencl 1.x - GDDR5 with OEM only -
|-
| <!--Description-->GT530 OEM
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 6.11 Pixel Text}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->96 cuda cores - 1GB or 2GB DDR3 128bit
|-
| <!--Description-->GT520 520GT
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->untested 48 cuda cores - DDR3 64bit
|-
| <!--Description-->510, GT 530
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D 6.11 Pixel Text}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> ddr 3 - 50w max -
|-
| <!--Description-->GT610 Fermi GF119
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVS 315 300 GF119S
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{No|VESA}} needs special dms-59 cable
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 fermi 315 PNY VCNVS315-T 1Gb DDR3 but needs special dms-59 cable -
|-
| <!--Description-->GT630 GF108 Fermi
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->not accelerated 2015 - like the GT730 below - 96 cuda cores whilst kepler version has 384 - 128bit to keplers' 64bit bandwidth - kepler has 2GB DDR3
* not working Gigabyte
* DDR3
* GDDR5
* works
|-
| <!--Description-->Geforce GT 730
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe| use VESA 6.11 Pixel Text}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> fermi version has 96 cuda cores 128bit GF108
* not working Asus
* works
|-
| <!--Description-->nVIDIA Quadro 4000
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}} 2 dp ports
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->142W 2Gb GDDR5 - PCI Express 2.0 x16 ; full Height card with 1x 6-Pin PCIe power need - CUDA Cores 256 - OpenGL 4.5
|-
| <!--Description-->nVIDIA Quadro 5000
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2011 200W 2.5Gb GDDR5 320 bit - PCI Express 2.0 x16 full Height card with 2x 6-Pin PCIe power need -
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce GTX Titan GeForce GTX Titan Black GeForce GTX Titan Z
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVE0 family (Kepler) GeForce 600 GeForce 700 GeForce GTX Titan Kepler
|-
| <!--Description-->GeForce GTX 780 GeForce GTX 780 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->PureVideo HD 6" or "VP6" (Nvidia Feature Set E or VDPAU Feature Set E) significantly improved performance when decoding H.264 and MPEG-2
|-
| <!--Description-->GeForce GTX 770
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->opengl 4.4 opencl 1.1
|-
| <!--Description-->GeForce GTX 760 GeForce GTX 760 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce GT 740
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce GT 730 Kepler
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> two versions fermi 96 cores 128bit GF108 and kepler 384 cores 64bit GK208
|-
| <!--Description-->680gtx GK104 core gtx680 680m
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVE0 family (Kepler)
|-
| <!--Description-->GTX 690 Kepler NVE0
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->pci-e 3.0, OpenGL 4.4 OpenCL 1.1
|-
| <!--Description-->GTX 670
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GTX 660 GTX 660 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GTX 650 GTX 650 Ti GTX 650 Ti Boost
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVE0 family (Kepler) most need 1 6pin psu
* not working asus ENGTX560 DC/2DI/1GD5
* works
|-
| <!--Description-->Geforce GT 640
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* 128bit DDR3
* 192bit DDR3 1.5 to 3GB 50W
* 128bit GDDR5 75W
|-
| <!--Description-->GT 620 GT 640
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce 750ti, GeForce 900
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->[https://nouveau.freedesktop.org/FeatureMatrix.html NV110] Maxwell -
|-
| <!--Description-->Nvidia GTX 750
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x1381
| <!--Revision-->0xa2
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->2026 nvidia test
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->GM206 2nd gen maxwell PureVideo HD 7" or "VP7" (Nvidia Feature Set F or VDPAU Feature Set F) adds full hardware-decode of H.265 HEVC Version 1 (Main and Main 10 profiles and full fixed function VP9 (video codec) hardware decoding
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Quadro K620 quadro p620 2gb gddr5 128bit and quadro p1000 4gb gt1030 30w
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 50w slim low profile -
|-
| <!--Description-->GeForce gtx 1060, GeForce 1070
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NV130 Pascal
|-
| <!--Description-->gtx 1050ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->NV130 family (Pascal)
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV132 (GP102) NVIDIA Titan (X, Xp), GeForce GTX 1080 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV134 (GP104) GeForce GTX (1070, 1080)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV136 (GP106) GeForce GTX 1060
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV137 (GP107) GeForce GTX (1050, 1050 Ti)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV138 (GP108) GeForce GT 1030
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NV162 (TU102) NVIDIA Titan RTX, GeForce RTX 2080 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV164 (TU104) GeForce RTX (2070 Super, 2080, 2080 Super)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2020 NV160 family (Turing) unified gsp-rm firmware - best starting point for Vulkan support
|-
| <!--Description-->NV166 (TU106) GeForce RTX (2060, 2060 Super, 2070)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV168 (TU116) GeForce GTX (1650 Super, 1660, 1660 Ti, 1660 Super)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV167 (TU117) GeForce GTX 1650
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->gtx 1650ti super
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2018 old style
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NV172 (GA102) GeForce RTX (3080, 3090)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 av1 decoding ampere
|-
| <!--Description-->NV174 (GA104) GeForce RTX (3060 Ti, 3070, 3080 Mobile)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->NV170 family (Ampere)
|-
| <!--Description-->NV176 (GA106) GeForce RTX (3050, 3060)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV177 (GA107) GeForce RTX 3050
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NV192 (AD102) GeForce RTX 4090
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV193 (AD103) GeForce RTX 4080
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->NV190 family (Ada Lovelace)
|-
| <!--Description-->NV194 (AD104) GeForce RTX (4070, 4070 Ti)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV196 (AD106) GeForce RTX 4060 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV197 (AD107) GeForce RTX 4060
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
|}
==== nouveau mobile integrated ====
If you purchased a notebook with an NVidia sticker on it, most of the time you have a optimus based one, ie Intel CPU+GPU melded with Nvidia GPU, Optimus was slated at one point to go into desktop PCs but the industry ended up rejecting that concept
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|-
| GeForce 6100 nForce 405
| 0x
| 0x03D1 0x0242
| 0x0
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
|
|-
| <!--Description-->GeForce 6100 nForce 400
| <!--Vendor ID-->
| <!--Product ID-->0x03D2
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce 6100 nForce 420
| <!--Vendor ID-->
| <!--Product ID-->0x03D5
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce 6150 LE
| <!--Vendor ID-->
| <!--Product ID-->0x0241
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6150SE nForce 430
| 0x
| 0x03D0
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| working
|-
| <!--Description-->GeForce 6150
| <!--Vendor ID-->
| <!--Product ID-->0x0240
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7150M / nForce 630M
| <!--Vendor ID-->
| <!--Product ID-->0x0531
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7000M / nForce 610M
| <!--Vendor ID-->
| <!--Product ID-->0x0533
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7050 PV / NVIDIA nForce 630a
| <!--Vendor ID-->
| <!--Product ID-->0x053A 0x053B
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Geforce IGP 7025 nForce 630a
| 0x
| 0x053E
| 0x0
| <!--2D-->{{Yes|some}}
| <!--3D-->{{Yes|some}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No| }}
| some support on some chipsets
|-
| GeForce 7100 / nForce 630i (C73)
| 0x10de
| 0x07e1
| 0x0a2
| <!--2D-->{{Maybe}}
| <!--3D-->{{Maybe}}
| <!--Analogue-->{{Maybe}}
| <!--Digital-->{{Maybe}}
| <!--Laptop LCD-->{{N/A}}
| Icaros 2.0.3 and Gigabyte 73-pvm-s2h rev. 1.0 but will not boot on [https://ae.amigalife.org/index.php?topic=806.msg8765#new Acer x270 with Icaros 2.3]
|-
| <!--Description-->GeForce 7150 / NVIDIA nForce 630i
| <!--Vendor ID-->
| <!--Product ID-->0x07E0
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7050 / NVIDIA nForce 610i
| <!--Vendor ID-->
| <!--Product ID-->0x07E3
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Geforce IGP 8100 (nForce 720a)
| 0x
| 0x084F
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
|
|-
| GeForce 8100P
| 0x
| 0x0847
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
|
|-
| <!--Description-->Geforce 8200 8300 nForce 730a
| <!--Vendor ID-->
| <!--Product ID-->0x084A 0x0848 (GeForce 8300) 0x0849 (GeForce 8200) 0x084B (GeForce 8200)
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->working on some 8300's with Icaros 1.5 but others untested
|-
| <!--Description-->nForce 780a SLI
| <!--Vendor ID-->
| <!--Product ID-->0x084C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->nForce 750a SLI
| <!--Vendor ID-->
| <!--Product ID-->0x084D
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Nvidia Geforce IGP 9300 (nForce MCP7a)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->works
|
|-
| <!--Description-->9400 (ION)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->If AROS detects GPU chipset, works well
|-
| <!--Description-->9700M ()
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Geforce ION 2
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->works well
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce Go 6150
| <!--Vendor ID-->
| <!--Product ID-->0x0244
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6100
| <!--Vendor ID-->
| <!--Product ID-->0x0247
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6200
| <!--Vendor ID-->
| <!--Product ID-->0x0164 0x0167
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6400
| <!--Vendor ID-->
| <!--Product ID-->0x0166 0x0168
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->Sony Laptop
|-
| <!--Description-->GeForce Go 6800
| <!--Vendor ID-->
| <!--Product ID-->0x00C8
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6800 Ultra
| <!--Vendor ID-->
| <!--Product ID-->0x00C9
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600
| <!--Vendor ID-->
| <!--Product ID-->0x0144
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600 TE/6200 TE
| <!--Vendor ID-->
| <!--Product ID-->0x0146
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600
| <!--Vendor ID-->
| <!--Product ID-->0x0148
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600 GT
| <!--Vendor ID-->
| <!--Product ID-->0x0149
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7200
| <!--Vendor ID-->
| <!--Product ID-->0x01D6
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7300
| <!--Vendor ID-->
| <!--Product ID-->0x01D7
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->untested
|-
| <!--Description-->GeForce Go 7400
| <!--Vendor ID-->
| <!--Product ID-->0x01D8
| <!--Revision-->
| <!--2D-->
| <!--3D-->works 2D and 3d issues though
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7800
| <!--Vendor ID-->
| <!--Product ID-->0x098
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7800 GTX
| <!--Vendor ID-->
| <!--Product ID-->0x0099
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7950 GTX
| <!--Vendor ID-->
| <!--Product ID-->0x0297
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7900 GS
| <!--Vendor ID-->
| <!--Product ID-->0x0298
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7900 GTX
| <!--Vendor ID-->
| <!--Product ID-->0x0299
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7600
| <!--Vendor ID-->
| <!--Product ID-->0x0398
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7600 GT
| <!--Vendor ID-->
| <!--Product ID-->0x0399
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 6610 XL
| <!--Vendor ID-->
| <!--Product ID-->0x0145
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 6700 XL
| <!--Vendor ID-->
| <!--Product ID-->0x0147
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce 8700M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0409
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8600M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0425
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8400M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0426
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8400M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0427
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8400M G
| <!--Vendor ID-->
| <!--Product ID-->0x0428
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8800M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x0609
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8800M GTX
| <!--Vendor ID-->
| <!--Product ID-->0x060C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9500M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0405
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8600M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0407
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9650M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0408
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9400M GT
| <!--Vendor ID-->
| <!--Product ID-->0x042C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9300M G
| <!--Vendor ID-->
| <!--Product ID-->0x042E
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9100M G
| <!--Vendor ID-->
| <!--Product ID-->0x0844
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9800M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x0628
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9700M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x062A
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9800M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x062C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9600M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0647
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9600M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0648
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9600M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0649
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9500M G
| <!--Vendor ID-->
| <!--Product ID-->0x064B
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9300M GS
| <!--Vendor ID-->
| <!--Product ID-->0x06E5
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9200M GS
| <!--Vendor ID-->
| <!--Product ID-->0x06E8
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9300M GS
| <!--Vendor ID-->
| <!--Product ID-->0x06E8
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->NV50 (G80) Quadro FX (4600 (SDI), 5600)
Quadro FX (2800M, 3600M, 3700, 3700M, 3800M, 4700 X2), VX 200
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV94 (G94) 9700M GTS, 9800M GTS, GeForce G 110M, GT 130(M), GT 140, Quadro FX (1800, 2700M)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV84 (G84) 8700M GT, GeForce 9500M GS, 9650M GS
Quadro FX (370, 570, 570M, 1600M, 1700), NVS 320M
NV86 (G86) GeForce 8300 GS, 8400 (GS, M G, M GS, M GT), 8500 GT, GeForce 9300M G
Quadro FX 360M, NVS (130M, 135M, 140M, 290)
GeForce GTS 150(M), GTS 160M, GTS 240, GTS 250, GTX (260M, 280M, 285M), GT (330, 340)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV96 (G96) 9650M GT, 9700M GT
GeForce G 102M, GT 120
Quadro FX (380, 580, 770M, 1700M)
NV98 (G98) GeForce 8400 GS, GeForce 9200M GS, 9300 (GE, GS, M GS)
GeForce G 100, G 105M
Quadro FX (370 LP, 370M), NVS (150M, 160M, 295, 420, 450)
Quadro CX, FX (3800, 4800, 5800)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVA3 (GT215) GeForce GT (240, 320, 335M), GTS (250M, 260M, 350M, 360M) Quadro FX 1800M
NVA5 (GT216) GeForce GT (220, 230M, 240M, 325M, 330M), 315
Quadro 400, FX 880M, NVS 5100M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVA8 (GT218) GeForce 8400 GS, ION 2, GeForce 205, 210, G 210M, 305M, 310(M), 405
Quadro FX (380 LP, 380M), NVS (300, 2100M, 3100M)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVAA (MCP77/MCP78) GeForce 8100, 8200, 8300 mGPU / nForce 700a series, 8200M G
NVAC (MCP79/MCP7A) ION, GeForce 9300, 9400 mGPU / nForce 700i series, 8200M G, 9100M, 9400M (G)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVAF (MCP89) GeForce 320M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GT 605M, GT 610M GT 620M GT 630M GT 635M GT 645M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GTX 650M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GTX 1650 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2019 turing architecture - last old skool support pre Vulkan
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rtx 2050 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 ampere architecture best starting point for vulkan support
|-
| <!--Description-->rtx 2060 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rtx 4060 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
|}
====radeon.hidd====
Michel Shultz ''2D'' graphics driver (standard on most distributions but only for very old GPUs) and bearsofts updated 2013 around Icaros 1.3.1
3D is not implemented by AROS yet but could cover these AMD chipsets
<pre>
2014 SI AMD HD 7xxx
2016 GCN3rd AMD R5E R7E
2019 GCN5th AMD Vega 8
2022 RDNA1 AMD RX5500 desktop only
2023 RDNA2 AMD 680M 780M
2024 RDNA3 AMD 880M 890M
2025 RDNA3.5 AMD 8060S strix halo and AI
2027 RDNA4 AMD
</pre>
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! 2D
! 3D
! Analogue Output
! Digital Output
! Laptop LCD
! Comments
|-
| 7000 (r100)
| 0x1002
| 0x5159
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->{{Maybe|vga15 pin connection but not s-video}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.3
|-
| 7500 (rv200 but still r100 based)
| 0x1002
| 0x5157
| 0x
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->{{Yes|vga15}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.3
|-
| 8000 8500 (r200)
| 0x1002
| 0x514c (8500LE)
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.4
|-
| 9000 9100 9250 (r200)
| 0x1002
| 0x5964 (9000) 0x514d (9100)
| 0x0001
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->{{Maybe|VGA15 but not s-video}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.4
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| 9600 9800 (r300)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1
|-
| x300 x600 (r300)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1
|-
| x700, x800 ([http://en.wikipedia.org/wiki/Radeon_R600 r420])
| 0x
| 0x554d (R430 x800xl)
| 0x0
| <!--2D-->{{Yes|new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1 - x800 XL PCIE (problem with mouse-pointer, some part of the pointer is not transparent)
|-
| x1300 x1550 x1600 x1800 x1900 x1950 ([http://en.wikipedia.org/wiki/Radeon_R520 r520])
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes|new driver}}
| <!--3D-->{{no}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| HD2400 HD2600 HD2900 ([http://en.wikipedia.org/wiki/Radeon_R600 r600])
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|some features with new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 3.3 open CL 1.2 TeraScale architecture
|-
| HD3400 HD3600 HD3800 (r600)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|some features with new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->pci-e 2.0, openGL 3.3
|-
| HD4300 HD4500 HD4600 HD4700 HD4800 ([http://en.wikipedia.org/wiki/Radeon_R600 r700])
| 0x1002
| 0x
| 0x0
| <!--2D-->{{Maybe|but some later cards need 3D engine for faster and more flexible 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 3.3 - DDR3 - GDDR5 was one of AMD's aces for the 4800 series - 4670 liked -
|-
| HD6900 cayman series
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|some features with new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 3.3 open CL not mature (2014) -
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| HD5400 Series HD5430 HD5450 HD5470
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2010 openGL 3.3 openCL - GDDR3 -
|-
| HD5500 Series HD5550 HD5570 HD5600 Series HD5650 HD5670 HD5700 Series HD5750 HD5770
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 3.3 openCL - GDDR5
|-
| HD 5800 Series HD5850 HD5870 HD5900 Series HD5950 HD5970 - HD6xxx not NI chipset ([http://en.wikipedia.org/wiki/Evergreen_(GPU_family) r800 evergreen])
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 openGL 3.3 openCL - DDR5 pci-e 2.1 best avoided for all pci-e 1.0 mobos - Ati TeraScale2 architecture -
|-
| HD6450 [http://en.wikipedia.org/wiki/Northern_Islands_(GPU_family) Northern Islands chipset]
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> - DDR3 -
|-
| HD6600 Series HD6650 HD6570 HD6600 Series HD6650 HD6670
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2011 - DDR5 -
Radeon HD 8470 11 TeraScale 2
Radeon HD 8350 11 TeraScale 2
Radeon HD 7510 11 TeraScale 2
Radeon HD 6550D 11 TeraScale 2
Radeon HD 6530D 11 TeraScale 2
Radeon HD 6410D 11 TeraScale 2
Radeon HD 6370D 11 TeraScale 2
Radeon HD 6320 11 TeraScale 2
Radeon HD 6310 11 TeraScale 2
Radeon HD 6290 11 TeraScale 2
Radeon HD 6250 11 TeraScale 2
|-
| HD6800 Series HD6850 HD6870 HD6700 Series HD6790 to HD6990
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2011 - DDR5 - AMD TeraScale3 -
|-
| <!--Description-->HD7450-HD7670
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2012 OpenGL but not Vulkan
Radeon HD 7660D 11 TeraScale 3
Radeon HD 7560D 11 TeraScale 3
Radeon HD 7540D 11 TeraScale 3
Radeon HD 7480D 11 TeraScale 3
Radeon HD 6930 11 TeraScale 3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->HD7750 HD 7770 / R7 250X HD7850 HD7870 / R9 270X HD 7950 / R9 280 HD 7970 / R9 280X [http://en.wikipedia.org/wiki/Southern_Islands_(GPU_family) Southern Islands]
*AMD Radeon R7 250XE Cape Verde XT
*AMD Radeon R7 M465X Cape Verde
*AMD Radeon R9 255 Cape Verde PRX
*AMD Radeon HD 7750 Cape Verde PRO
*AMD Radeon R7 250E Cape Verde PRO
*AMD Radeon HD 8740 Cape Verde PRO
*AMD Radeon HD 7730 Cape Verde LE
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2012 pci-e 3.0 1st Gen GCN architecture -
|-
| <!--Description-->R5 430, FirePro W2100,
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2015 50W+ openGL openCL 1/3 speed of gtx750ti 1st gen gcn1
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->HD7790 [ Sea Islands ]
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 openGL 4.1 open CL - GCN2.0 Vulkan 1.0 introduced a Shader Engine (SE) comprising one geometry processor, up to 44 CUs (Hawaii chip), rasterizers, ROPs, and L1 cache and Graphics Command Processor for faster audio/video - suits Vulkan 1.1
|-
| <!--Description-->r5 240 240x (slow) R7 250 250x (faster) HD 7790 / R7 260 260X / R7 360 to R5 350 (fast) and last one R5 430 OEM Plus (slow again)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 50W+ openGL 4.x openCL 1.x Vulkan 1.0 GCN 1st gen -
|-
| <!--Description-->R9 290 / R9 390 R9 290X / R9 390X
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2014 openGL 4.x openCL 1.x 2nd Gen GCN Vulkan 1.1 architecture -
|-
| <!--Description-->R9 Fury Nano
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2015
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->r-200 series r8 275 285 295 375 [Volcanic Islands]
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 4.x openCL 1.x - GCN3 Vulkan 1.2
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Radeon™ RX 5700/5600/5500 Series and Radeon™ RX Vega Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 GCN 4 - OpenGL 4, Vulkan 1.3 -
|-
| <!--Description-->Radeon™ RX 400/500 Series like rx 580
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->Radeon™ Pro WX 9100, x200 Series and Radeon™ Pro W5700/W5500 Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Radeon™ RX 7900/7600 Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->Radeon™ RX 6900/6800/6700/6600/6500 Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|}
==== amd radeon mobile integrated ====
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|-
| <!--Description-->ATI RC410 [Radeon Xpress 200M]
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x5a62 0x5955 0x5974 (200m)
| <!--Revision-->0x00
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->
|-
| <!--Description-->Mobility Radeon 7500
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x4c57 (7500)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->
|-
| <!--Description-->Mobility Radeon 9000
| 0x1002
| 0x4966 (9000)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->
|-
| <!--Description-->Mobility Radeon 9500 9550 (rv360) 9600 (rv350)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon 9800 (rv420)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon X300 (RV370) X600 (RV380)
| 0x1002
| 0x (RV370) 0x5657 (RV380)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon X700 (RV410) X800 (RV423)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon X1200 (RS69M0)
| 0x1002
| 0x791f
| 0x0
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->X1200 IGP (RS690)
|-
| <!--Description-->Mobility Radeon X1300 X1350 X1400(rv515) X1600 (rv530) X1650 (RV535) X1800 (rv520) x1900 (rv570)
| 0x1002
| 0x71c7 (X1650)
| 0x009e
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon 2100
| 0x1002
| 0x796e (2100)
| 0x0
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{No|}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 2400 (rv610) HD2600 (rv630)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 3100 HD3200 HD3450 3470 (RS780MC RV620) 3670 (M86-XT RV635) HD3870 (M88-LXT RV670)
| 0x1002
| 0x9610 and 0x9612 (HD3200) 0x9614 (HD3300)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 4200 4250 (RV620)
| 0x1002
| 0x (HD4200) 0x9715 (HD4250)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 4330 4530 4550 (M92 RV710) 4650 (M96-XT RV730) 4670 RV730XT 4830 (M97 RV740) 4850 (M98 RV770)
| 0x1002
| 0x (HD4350) 0x9442 (RV770) 0x9490 (HD4670)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 530v (M92 RV710) HD 550v (M96 RV730)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->no support yet
|-
| <!--Description-->Mobility Radeon HD 5430 HD5650 (cedar Park LP)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->no support yet
|-
| <!--Description-->Radeon HD 6250 6290 6310 6320 6350M (Redwood Capilano PRO)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->no support yet
|-
| <!--Description-->AMD 7640G, 8450G, 8550G, 8650G Northern Islands
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 Last real support for old graphics standard before Vulkan takeover
|-
| <!--Description-->R5 M230 M240 M255 - R7 M260 M265 (Kaveri Crystal series with Mantle and HSA)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->2015 Maybe better with Vulkan
|-
| <!--Description-->R5E R7E
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->2016 bristol ridge GCN 3.0 IGP (Carrizo Mobile)
|-
| <!--Description-->AMD Vega 3, 6, 8, 11 iGP
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2018 raven ridge GCN 5th Gen
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->5500m 5600m 5800m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA1 NaviX1 Zen 2
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rx680m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA2 NaviX2 Zen 3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->phoenix apu 1103
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 RDNA3 NaviX3 zen 4
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
==== AMDGPU Vulkan desktop ====
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Kaveri 290 290X, 260 260X
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2015 AMDGPU Vulkan
|-
| <!--Description-->R9 285 / R9 380 R9 380X Fury / Fury X
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->opengl 4 opencl 1 3rd Gen GCN architecture
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX470 RX460 RX480 RX580 polaris10
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 opengl 4 opencl 2 4th Gen GCN architecture vulkan 1.3
|-
| <!--Description-->RX460 RX560D polaris11
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 opengl 4 opencl 2 4th Gen GCN architecture vulkan 1.3
|-
| <!--Description-->RX580 polaris20
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 opengl 4 opencl 2 4th Gen GCN architecture vulkan 1.3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX 5000 5500 Navi 1x
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RNDA 1
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX 6000 Navi 2x
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RNDA 2 Mesa 21.3 decode av1
|-
| <!--Description-->RX6000
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX 7000
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 RNDA 3 navi
|-
| <!--Description-->RX7000
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->RX9070 rx 9060 XT
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2025 rdna4 navi
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2026 udna (aka rdna5)
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
|}
==== AMDGPU Vulkan mobile ====
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->R5E R7E
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->2016 bristol ridge GCN 3.0 IGP (Carrizo Mobile)
|-
| <!--Description-->Vega iGP 3, 6, 8, 11
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2018 raven ridge - Graphics Core Next (GCN) 5th gen -
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->5500m 5600m 5800m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA1 NaviX1 Zen 2
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rx680m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA2 NaviX2 Zen 3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->phoenix apu 1103
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA3 NaviX3 zen 4
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
fyi if a notebooks with two graphic cards, the integrated Intel card (id 0x7d) for low power usage and a discrete Radeon card (id 0x56) which should be used for GPU-intensive applications. By default the Intel card is always used
[https://wiki.archlinux.org/title/ATI Gallium Radeon HD] is not ported yet but is [https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.9-AMDGPU-Stats really big] and complex so another solution may have to be [https://discuss.haiku-os.org/t/the-graphics-acceleration-can-of-worms/10515/5 found] like [https://discuss.haiku-os.org/t/vulkan-lavapipe-software-rendering-is-working-on-haiku/11363/10 vulkan] where support starts from very recent ISA GCN islands HD7000s cards only
*Vulkan
*Gallium
Vulkan software renderer allows to prepares the infrastructure for hardware rendering. Primary difference between software and hardware renderer is output to regular RAM vs GPU RAM, the rest is almost the same. It is possible to render to GPU RAM offscreen.
bare bones basics data flow
application,>>> api/opengl/vulkan>>>>, jit compiler, >>>>memory manger, >>>>gpu hardware
so you need to have a compiler that takes your api call/program/shaders/drawing commands and turns them into a program the gpu can render.
the vulkan to amd gpu compiler for shaders and textures is nearly os agnostic iirc as long as you have solid posix compliance
Unlike OpenGL, Vulkan does not depend on windowing system and it have driver add-on system with standardized API (Mesa also have OpenGL driver add-ons, but it have non-standard Mesa-specific API). OpenGL may need more work for windowing system related code at this point but developing Vulkan on real hardware is more strategic than developing OpenGL, since now Zink 3 running on Vulkan compensates for the lack of OpenGL support by giving performance similar to native accelerated OpenGL
RadeonGfx use client-server model with client-server thread pairs. For each client thread that calls 3D acceleration API, server side thread is created. If client thread terminates, server side thread also exit.
==Rough gfx comparison==
<pre>
Group 1
GeForce RTX 5090 5070 5060 5050
GeForce RTX 4090 4070 4060 4050
Group 2
GeForce RTX 2070
Radeon RX 7600
Quadro RTX 5000
Radeon PRO W6600
GeForce RTX 2060 12GB
Radeon PRO W7500
Quadro GP100
Radeon RX 6800S
GeForce RTX 3070 Laptop GPU
GeForce GTX 1080
GeForce RTX 3060 8GB
Quadro RTX 4000
Radeon Pro W5700
Radeon RX 6600
GeForce RTX 2080 (Mobile)
Radeon RX 7700S
Radeon RX 6700S
Radeon RX 6600S
Quadro RTX 5000 (Mobile)
GeForce GTX 1070 Ti
GeForce RTX 4050 Laptop GPU
Radeon Pro Vega 64X
Radeon RX 5700
Radeon RX Vega 64
GeForce RTX 2060
GeForce RTX 2070 Super with Max-Q Design
Group 3
Radeon RX 6600M
GeForce GTX 1070
Radeon RX 6650M
GeForce RTX 3060 Laptop GPU
Radeon RX Vega 56
Radeon RX 6700M
GeForce RTX 2080 with Max-Q Design
Radeon RX 6800M
GeForce GTX 980 Ti
Radeon R9 Fury
GeForce GTX 980
Quadro M5500
Radeon R9 390X
Radeon RX 580
Radeon RX 5500
Radeon RX 6550M
GeForce GTX 1660 Ti with Max-Q Design
GeForce GTX 780 Ti
GeForce GTX 970
Radeon R9 290X
Radeon RX 480
Radeon RX 5600M
Quadro RTX 3000 with Max-Q Design
Radeon R9 290X / 390X
Ryzen 5 4600HS with Radeon Graphics
Radeon R9 290
Radeon Pro 5500 XT
Radeon R9 M490 *
GeForce GTX 780
Radeon RX 6500M
Quadro M5500
GeForce GTX 1060 with Max-Q Design
Radeon RX 6500
Radeon RX 5300
Intel Arc A770M
GeForce GTX 1650 Ti
Radeon Pro 580X
Radeon RX 6400
GeForce RTX 2050
Ryzen 9 4900HS with Radeon Graphics
Radeon Ryzen 9 6900HS
GeForce GTX 980M
Quadro M5000M
Radeon RX 6300
GeForce GTX 1650 Ti with Max-Q Design
Radeon Pro 570
Ryzen 9 6900HS with Radeon Graphics
GeForce GTX 1050 Ti
Quadro M4000M
Radeon R9 280X 380X
GeForce GTX 1650 with Max-Q Design
GeForce MX570
Radeon R9 280X
Radeon R9 380
Radeon 780M
GeForce GTX 960
GeForce GTX 970M
Quadro M4000M *
GeForce GTX 680
Group 4
Radeon RX 6500M
Quadro M5500
Radeon Pro WX 7100
GeForce GTX 1060 with Max-Q Design
GeForce GTX 1650
Intel Arc A730M
Radeon HD 7970
Radeon R9 M395X
Radeon R9 M485X
Radeon R9 M480 *
Radeon R9 M295X
Radeon R9 M390X *
FirePro W7170M *
Radeon R9 M395
Radeon R7 370
Radeon RX 5500M
GeForce GTX 590
GeForce GTX 880M
GeForce GTX 950
Radeon R9 270X
GeForce GTX 660 Ti
GeForce GTX 760
GeForce GTX 780M
Quadro K5100M
GeForce GTX 680MX
Radeon HD 7870
GeForce GTX 965M
Quadro M3000M *
GeForce GTX 870M
Radeon R9 M290X
Radeon HD 8970M
Radeon Ryzen 7 7735U (680M), Radeon Ryzen 7 7735HS (680M 12C)
GeForce GTX 580
Radeon HD 6970
GeForce GTX 1050
GeForce GTX 680M
GeForce GTX 775M
GeForce GTX 1630
FirePro M6100
Radeon HD 7970M
Radeon R9 M390 *
GeForce GTX 750 Ti
Group 5
GeForce GTX 570
GeForce GTX 480
GeForce GTX 960M
Quadro M2000M *
Quadro K5000M
Quadro K4100M
GeForce GTX 770M
GeForce GTX 860M
GeForce GTX 675MX
GeForce GTX 950M
GeForce GTX 850M
Quadro M1000M
Radeon R9 M280X
Radeon HD 7950M *
GeForce GTX 560 Ti
Radeon HD 6870
GeForce GTX 470
GeForce GT 1030
GeForce MX330
Ryzen 5 PRO 5650GE with Radeon Graphics
Ryzen 7 5800HS
FirePro 3D V8800
GeForce MX250
Group 6
Radeon Pro WX 3200
Ryzen 7 PRO 5750G with Radeon Graphics
Radeon Ryzen 5 5600H
Ryzen 5 Pro 4650G with Radeon Graphics
Radeon Ryzen 7 5800U
Ryzen 7 7730U with Radeon Graphics
Radeon Ryzen 7 5825U
Radeon Pro WX 4150
Radeon Ryzen 5 PRO 4655G
Ryzen 5 4600G with Radeon Graphics
Radeon Ryzen 5 PRO 4655GE
GeForce GTX 485M
FirePro W6150M
Ryzen 7 5800U with Radeon Graphics
Ryzen 5 7530U with Radeon Graphics
Ryzen 7 4800U with Radeon Graphics
Radeon R9 M470
Ryzen 3 PRO 5350G with Radeon Graphics
Radeon RX Vega Ryzen 3 5300U
Ryzen 7 5825U with Radeon Graphics
Ryzen 5 PRO 4400G with Radeon Graphics
Radeon Ryzen 7 PRO 4750GE
Radeon Ryzen 7 4800U
FirePro V7900
Radeon HD 5970
Radeon Ryzen 7 7700X 8-Core
Radeon Ryzen 5 PRO 5650G
Radeon Ryzen 5 4400G
Radeon Ryzen 5 PRO 5650GE
Radeon RX 550X
FirePro V8800
Radeon RX Vega Ryzen 5 5500U
GeForce MX150
Quadro K3100M
Ryzen 7 PRO 5850U with Radeon Graphics
Radeon HD 6970M
Radeon R7 250X
Intel HD 5600
Ryzen 3 4300GE with Radeon Graphics
GeForce GTX 460
Ryzen 7 5700U with Radeon Graphics
Radeon Ryzen 5 7530U
Quadro K620
Ryzen 3 PRO 5350GE with Radeon Graphics
Intel Iris Pro P580
Intel UHD Graphics P630
Ryzen 5 4600H with Radeon Graphics
Ryzen 5 PRO 7530U with Radeon Graphics
Radeon HD 5870
Radeon HD 6870
Ryzen 7 4700G with Radeon Graphics
Ryzen 5 5600U with Radeon Graphics
Radeon HD 7770
Ryzen 3 Pro 4350G with Radeon Graphics
Radeon Ryzen 5 5625U
GeForce GTX 745
Radeon Ryzen 7 4850U Mobile
Radeon Ryzen 3 PRO 7330U
Quadro M600M
Radeon Ryzen 5 5500U
Ryzen 5 5560U with Radeon Graphics
Ryzen 7 4800H with Radeon Graphics
Group 7
GeForce 945M
Ryzen 5 PRO 4650GE with Radeon Graphics
FirePro M5100
Radeon Ryzen 5 5600U
Radeon Ryzen 5 PRO 4500U
GeForce GTX 580M
Ryzen 7 PRO 5875U with Radeon Graphics
Ryzen 3 5300GE with Radeon Graphics
Radeon R9 M385
Quadro 5000M
Radeon Ryzen 7 4700U
Ryzen 5 PRO 5650U with Radeon Graphics
Radeon Ryzen 7 PRO 4750U
Ryzen 7 4700U with Radeon Graphics
Ryzen 7 PRO 4750U with Radeon Graphics
FirePro V7800
Radeon R9 350
Ryzen 3 4300G with Radeon Graphics
Radeon Vega 11 Ryzen 5 PRO 3350G
Radeon Ryzen 5 5560U
GeForce GTX 460 SE
Radeon Pro W5500M
Radeon Vega 11 Ryzen 5 PRO 3400G
Ryzen 5 5500U with Radeon Graphics
Ryzen 5 PRO 4500U with Radeon Graphics
GeForce GT 645
GeForce GTX 765M
Radeon R9 M385X
Ryzen 5 5625U with Radeon Graphics
Ryzen 3 PRO 7330U with Radeon Graphics
Radeon HD 5850
Radeon Vega 11 Ryzen 5 PRO 2400G
Intel Iris Pro 580
Radeon HD 6850
Intel Iris Xe MAX
Radeon Ryzen 7 PRO 5875U
Radeon Ryzen 5 7600 6-Core
GeForce GTX 470M
Ryzen 3 5300G with Radeon Graphics
GeForce GTX 670MX
Radeon RX 640
Qualcomm Adreno Gen 3
Radeon R7 450
GeForce GTX 675M
Radeon Pro WX 4130
Intel Iris Xe MAX 100
Quadro 5000
Radeon RX 570X
Radeon HD 7700-serie
Ryzen 5 4600U with Radeon Graphics
Ryzen 3 PRO 4350GE with Radeon Graphics
Radeon Vega 8
Group 8
GeForce MX230
GeForce GTX 765M
Quadro K4000M
Iris Pro Graphics P580 *
Iris Pro Graphics 580 *
GeForce GTX 645
Quadro M520
GeForce GTX 570M
GeForce MX130
Radeon RX 540
Radeon Ryzen 5 PRO 5675U
Intel UHD Graphics 770
Radeon RX Vega 11 Ryzen 7 3750H
Radeon Vega 11 Ryzen 5 PRO 3400GE
Radeon HD 5850
GeForce GTX 675M
GeForce GTX 580M
Radeon HD 6990M
Radeon R9 M385X *
Radeon R9 M470X *
Radeon R9 M470 *
Radeon R9 M385 *
Radeon R9 M380 *
Radeon R9 M370X
Radeon R9 M275
Radeon HD 7770
GeForce GTX 485M
GeForce GTX 460 768MB
Radeon HD 6790
GeForce GTX 285M SLI
Quadro K3100M
FirePro W5170M *
GeForce GTX 670MX
Quadro 5010M
GeForce GTX 760M
GeForce GTX 670M
Group 9
GeForce 940MX *
Maxwell GPU (940M, GDDR5)
FirePro M8900
Radeon HD 6970M
Radeon R9 M270
Radeon HD 8870M
Radeon HD 7870M
Quadro K3000M
GeForce GTX 570M
FirePro M6000
FirePro M5100
Quadro K2100M
Radeon HD 5770
GeForce GTX 550 Ti
GeForce GTX 280M SLI
Radeon HD 6950M
Radeon R7 250
GeForce GT 755M
GeForce GTX 660M
GeForce 845M
Radeon HD 8850M
Radeon R9 M365X
Radeon R9 M265X
Ryzen 5 PRO 4400GE with Radeon Graphics
FirePro W5130M *
Radeon Vega 8 Ryzen 5 3500U
Radeon HD 7850M
Radeon HD 8790M
FirePro W4170M
FirePro W4190M
FirePro W4100
Radeon Vega 6 Ryzen 3 3300U
Quadro 4000M
GeForce GTX 470M
GeForce GTX 480M
GeForce GT 750M
Iris Pro Graphics 6200
Quadro K1100M
GeForce 940M
Radeon R9 M375
GeForce 930MX *
Radeon R7 M380 *
Radeon R7 M370
Quadro M600M *
GeForce GT 650M
Quadro K620M
GeForce 840M
Radeon R7 M275DX
GeForce GT 745M
Radeon HD 7770M
GeForce GTX 560M
Radeon R7
Iris Pro Graphics 5200
GeForce GT 740M
GeForce 930M
Radeon HD 4850
Group 10
Iris Graphics 550 *
GeForce 830M
Iris Graphics 540
Quadro M500M *
Quadro K2000M
GeForce GTS 450
GeForce GTX 260M SLI
GeForce GT 735M
Mobility Radeon HD 5870
GeForce 825M
Quadro 5000M
FirePro M4000
FirePro M7820
Radeon HD 6870M
GeForce 9800M GTX SLI
Radeon HD 8830M *
Radeon HD 8770M
Radeon R7 M260X
GeForce GTX 460M
GeForce 920MX *
GeForce GT 730M
Radeon HD 7750M
GeForce GT 645M *
FirePro M4100
Radeon HD 8750M
Radeon R6 A10-9600P 4C+6G
Quadro 3000M
Radeon R7 M270
Radeon R7 M265
Quadro FX 3800M
GeForce GTX 285M
Mobility Radeon HD 4870
GeForce GT 640M
Radeon R7 (Kaveri)
Radeon R8 M365DX
Radeon R7 M460 *
Radeon HD 7730M
Radeon R7 M360
GeForce GTX 280M
Radeon HD 8690M
Quadro FX 3700M
Radeon R7 M340
GeForce 920M
Radeon R6 M340DX
HD Graphics 530
HD Graphics P530
Tegra X1 Maxwell GPU
Radeon R7 M260
Radeon R6
Group 11
Mobility Radeon HD 4860
FirePro M7740
Mobility Radeon HD 4850
GeForce GTX 260M
GeForce 9800M GTX
Quadro FX 2800M
Radeon HD 8670D
Radeon HD 7690M XT
FirePro M5950
GeForce GT 640M LE
Radeon R6 (Kaveri)
Radeon HD 8650M *
Radeon HD 8730M
Radeon HD 6770M
GeForce GT 635M
GeForce GT 555M
Radeon R7 A10 PRO-7800B
Radeon HD 5670
Mobility Radeon HD 5850
Radeon HD 6850M
Quadro 2000M
GeForce 9800M GT
GeForce 8800M GTX
Quadro FX 3600M
GeForce GT 445M
GeForce GTS 360M
Group 12
GeForce GT 240
Radeon R7 PRO A10-9700
Radeon HD 7690M
HD Graphics 5600
Radeon HD 8570D
Radeon HD 8670M
Radeon R6 M255DX
Radeon HD 7660D
Radeon HD 6750M
Quadro K1000M
GeForce GT 550M
Radeon HD 8590M *
GeForce GTS 260M
GeForce GTS 160M
GeForce 9800M GTS
GeForce GT 430
Radeon HD 6830M
Mobility Radeon HD 5830
Radeon HD 6730M *
GeForce 9800M GS
Mobility Radeon HD 4830
Mobility Radeon HD 5770
Radeon HD 6570M
Radeon HD 8650G
Radeon HD 7670M
GeForce GT 630M
Radeon HD 7560D
GeForce GTS 150M *
Radeon R5 M335
Radeon R5 M430 *
Radeon R5 M330
Radeon R5 M255
Radeon Vega 3
Quadro 1000M
GeForce 820M
FirePro W2100
HD Graphics 520 620
Iris Graphics 6100
GeForce GT 720M
GeForce 8800M GTS
Radeon R5 M240
Radeon R5 M320 *
Radeon R5 M230
Radeon R5 M315 *
Mobility Radeon HD 5750 *
Radeon HD 8570M
Radeon R7 PRO A10-8850B
HD Graphics 6000
Quadro K610M
Radeon HD 8550M
Iris Graphics 5100
GeForce GT 540M
Mali-T880 MP12 *
Radeon HD 8610G *
Radeon HD 6650M
HD Graphics 4600
Mobility Radeon HD 5730
HD Graphics 5500
Radeon R5 (Carrizo) *
Radeon R5 (Kaveri)
FirePro M5800
NVS 5400M
GeForce 710M
Radeon HD 7660G
GeForce GT 435M
HD Graphics 5000
Quadro K510M *
Radeon HD 5570
Radeon HD 6550M
Radeon HD 7590M *
GeForce GTS 350M
GeForce GTS 250M
Radeon HD 6630M
Radeon HD 7650M
FirePro M2000
Radeon HD 7570M
Radeon HD 7630M
Quadro FX 1800M
Mobility Radeon HD 5650
Radeon HD 8510G *
Radeon HD 6530M
Radeon HD 8550G
Quadro K500M *
GeForce GT 625M *
GeForce GT 620M
GeForce GT 525M
Radeon HD 6550D *
Radeon HD 7610M
Radeon HD 7620G
Radeon HD 8470D
Radeon HD 7640G
Adreno 530
GeForce ULP K1 (Tegra K1 Kepler GPU)
HD Graphics 4400
HD Graphics 510 515 *
NVS 5200M
Mobility Radeon HD 565v
Radeon HD 7550M
Mobility Radeon HD 4670
GeForce GT 425M
GeForce 9700M GTS
Radeon HD 6645G2 *
Quadro FX 2700M
GeForce GT 335M
Radeon HD 7600G
Mobility Radeon HD 3870
Mobility Radeon HD 4650
GeForce GT 220
GeForce GT 420M
Radeon HD 7530M *
Mobility Radeon HD 3850
GeForce GT 330M
Quadro FX 880M
Quadro NVS 5100M
GeForce GT 240M
Radeon HD 7490M *
HD Graphics 5300
Radeon HD 7510M *
GeForce Go 7950 GTX
Quadro FX 3500M
GeForce 8700M GT SLI
GeForce 9700M GT
GeForce GT 230M
Mobility Radeon HD 550v
Radeon HD 7480D
HD Graphics 4000
Mali-T760 MP8
Radeon HD 6620G
HD Graphics (Broadwell) *
Adreno 430
Radeon R5 (Beema/Carrizo-L)
Radeon R4 (Beema) (Kaveri)
HD Graphics (Skylake) *
Radeon HD 6450 GDDR5
Radeon HD 7500G
Radeon HD 8450G
Radeon HD 7470M
Radeon HD 6490M
Radeon HD 8400
Mali-T880 MP4
GeForce GT 520MX
Radeon HD 7520G
GeForce GT 325M
GeForce Go 7800 GTX SLI
GeForce 8600M GT SLI
GeForce Go 7900 GS SLI
GeForce GT 130M
NVS 4200M
GeForce Go 7900 GTX
Quadro FX 2500M
Radeon HD 8350G
Radeon HD 8330
GeForce 9650M GS
GeForce 9650M GT
Radeon R3 (Mullins/Beema)
GeForce 8700M GT
Quadro FX 1700M
Quadro FX 1600M
GeForce Go 7800 GTX
GeForce Go 7900 GS
Quadro NVS 320M
Quadro FX 1500M
GeForce 9600M GT
GeForce GT 220M
Quadro FX 770M
GeForce GT 120M
Radeon HD 7450M
GeForce 610M
GeForce 705M
Mali-T760 MP6
Radeon HD 6470M
FirePro M3900 *
GeForce GT 520M
Radeon HD 7420G
Mobility Radeon HD 3670
Mobility FireGL V5725
PowerVR GX6450
Adreno 420
HD Graphics (Haswell)
Radeon HD 6520G
Radeon HD 8310G *
GeForce 320M
GeForce GT 320M
Mobility Radeon HD 2600 XT
Mobility Radeon X1900
Mobility Radeon X1800XT
Mobility Radeon X1800
GeForce Go 6800 Ultra
GeForce Go 7800
GeForce 9600M GS
GeForce 9500M GS
Radeon HD 7400G
Radeon HD 6480G *
Mobility Radeon HD 2700
GeForce GT 415M
GeForce 410M
Radeon HD 7370M
Adreno 418
HD Graphics (Cherry Trail)
Radeon HD 6370M
Radeon HD 8280
Mobility Radeon HD 5470
Radeon HD 6450M
Radeon HD 7430M *
Mobility Radeon HD 3650
Mobility FireGL V5700
Mobility Radeon HD 5145
Mobility Radeon HD 545v
Radeon R6 (Mullins) *
Radeon HD 8240
Radeon HD 8250
Mobility Radeon HD 4570
Quadro FX 570M
Mobility Radeon HD 5450 *
Radeon R2 (Mullins/Beema) *
GeForce 8600M GT
Mobility Radeon HD 2600
HD Graphics 3000
Quadro FX 380M
GeForce 310M
GeForce G210M
NVS 3100M
GeForce 405M
GeForce 315M
GeForce Go 7600 GT
GeForce 9500M G
GeForce 8600M GS
NVS 2100M
GeForce Go 7700
GeForce Go 6800
Quadro FX Go 1400
Mobility Radeon X800XT
Radeon HD 6430M *
Radeon HD 6380G *
Mobility Radeon HD 5430
Radeon HD 8210
Mobility Radeon HD 540v
Mobility Radeon HD 4550
HD Graphics 2500
HD Graphics (Ivy Bridge)
Quadro NVS 310
Radeon HD 7350M *
Radeon HD 6350M *
Mobility Radeon HD 4530
Mobility Radeon HD 4350
Radeon HD 4350
GeForce 305M
Mobility Radeon X1700
Mobility FireGL V5250
Mobility Radeon X2500
GeForce Go 7600
Quadro NVS 300M
Mobility Radeon X800
Mobility Radeon X1600
Mobility FireGL V5200
Mobility Radeon 9800
GeForce Go 6600
Mobility Radeon X1450
Mobility Radeon X700
Mobility FireGL V5000
GeForce G 110M
Quadro NVS 295
Radeon HD 6330M *
Mobility Radeon HD 4330
GeForce 8400M GT
Quadro NVS 140M
HD Graphics 2000
GeForce 9500M GE *
GeForce 9400M (G) / ION (LE)
HD Graphics (Sandy Bridge) *
Adreno 330
PowerVR G6430
PowerVR GX6250
PowerVR G6400
HD Graphics (Bay Trail)
Mali-T628 MP6
Mali-T760 MP4
Chrome9HD *
Radeon HD 7340
Radeon HD 6320 *
Radeon HD 7310
Radeon HD 6310 *
Radeon HD 8180
Mobility Radeon HD 3470
GeForce 9300M G
ION 2 *
GeForce 9300M GS
Quadro FX 370M
Quadro NVS 160M
GeForce 9200M GS
Mobility Radeon HD 3450
Mobility Radeon HD 3430
Mobility Radeon HD 3410
Mobility Radeon HD 2400 XT
Radeon HD 4270
Radeon HD 4250
Radeon HD 7290 *
Radeon HD 6290 *
Radeon HD 4200
Graphics Media Accelerator (GMA) HD Graphics
Radeon HD 6250
Quadro NVS 150M
Quadro FX 360M
Mobility Radeon X1350
Mobility Radeon X1400
GeForce 9100M G
GeForce 8400M GS
Quadro NVS 135M
Mobility Radeon HD 2400
Radeon HD 3200
Radeon HD 4225 *
Radeon HD 4100 *
SGX554MP4
Mali-T628 MP4
Mobility Radeon HD 3400 *
Radeon HD 3100
GeForce 8400M G
Mali-T860 MP2
Quadro NVS 130M
GeForce 8200M G
Graphics Media Accelerator (GMA) 4700MHD
Graphics Media Accelerator (GMA) 4500MHD
Graphics Media Accelerator (GMA) 4500M
Mali-T604 MP4
GeForce Go 7400
Quadro FX 350M
Quadro NVS 120M
GeForce Go 7300
GeForce Tegra 4 *
PowerVR G6200
Adreno 405 *
Quadro NVS 110M
Mobility Radeon X600
Mobility FireGL V3200
Mobility FireGL V3100
Mobility Radeon HD X2300
Mobility Radeon 9700
Mobility FireGL T2e
Mobility Radeon X1300
GeForce4 4200 Go
Mobility Radeon 9600
Mobility FireGL T2
Mobility Radeon 9550
GeForce Go 7200
GeForce Go 6400
Mobility Radeon X300
GeForce Go 6250
GeForce Go 6200
GeForce FX Go 5700
Quadro FX Go 1000
GeForce FX Go 5600 / 5650
Radeon Xpress X1270
Radeon Xpress X1250
Radeon Xpress X1200
Graphics Media Accelerator (GMA) X3100
Mali-T624
Adreno 320 *
Mali-T760 MP2
Mali-T720 MP4
Mali-450 MP4
Graphics Media Accelerator (GMA) 3650 *
GeForce 7190M *
GeForce 7150M
Radeon Xpress 1150
GeForce Go 6150
GeForce Go 6100
GeForce 7000M
Graphics Media Accelerator (GMA) 3600 *
Mobility Radeon 9200
Mobility FireGL 9000
GeForce FX Go 5200
Mobility Radeon 9000
GeForce 4 488 Go
GeForce 4 460 Go
GeForce 4 440 Go
GeForce 4 420 Go
Graphics Media Accelerator (GMA) 3150
Graphics Media Accelerator (GMA) 950
SGX545 SGX544MP2 SGX543MP2 *
Mali-T720 MP2
Mali-T720
Adreno 302 304 305 306
Mobility Radeon 7500
Mobility FireGL 7800
Graphics Media Accelerator (GMA) 900
Radeon Xpress 200M
Radeon Xpress 1100
Mirage 3+ 672MX
Mirage 3 671MX
Mali-400 MP4 *
GeForce ULP (Tegra 3) *
VideoCore-IV *
Adreno 220 225*
Vivante GC1000+ Dual-Core
Mali-400 MP2 *
GeForce ULP (Tegra 2) *
Graphics Media Accelerator (GMA) 600 *
SGX540 *
Graphics Media Accelerator (GMA) 500
Adreno 205 *
Adreno 203 *
GC800 *
SGX535
SGX531
SGX530
Adreno 200 *
Mali-200 *
GeForce 3 Go *
GeForce 2 Go 200 / 100
Mobility Radeon 9100 IGP
Mobility Radeon 9000 IGP
Mobility Radeon M7
Mobility Radeon M6
Chrome9 HC
Extreme Graphics 2
Mobility Radeon 7000 IGP
Radeon IGP 340M
Radeon IGP 320M
S3G UniChrome Pro II
S3G UniChrome Pro
Castle Rock
Mirage 2 M760
Mirage M661FX
S3 Graphics ProSavage8
Mobility 128 M3
SM502 *
</pre>
Not supported on AROS
*OpenGL4 GPU must have 64-bit floating point FP64 math support, which is a hard requirement for GL 4.0. The max last revision opengl 4.6 (2017) on [https://wiki.gentoo.org/wiki/AMDGPU AMDGPU] RX 5000's / 6000s ([https://forum.batocera.org/d/7491-enable-opengl-46-and-vulkan-for-an-old-radeon-video-card RDNA] might come to AROS) but Intel UHD, Iris Plus or Xe, Nvidia RTX (will not)
*OpenGL3 last revision 3.3 (2011)
Some support on AROS
*OpenGL2 nvidia-nouveau,
*OpenGL1 intel gma950,
Kernel-space drivers like '''radeon''' (older AMD driver for older GPUs), '''amdgpu''' (newer driver for newer GPUs, allows using a few new features), i915, nouveau and a few others. They are what handles the gory details of talking to the GPU itself (writing to proper registers, handling its memory directly, configuring outputs, and so on). Unfortunately most of what they're exposing can be only consumed by a single user of that GPU, which is why we need...
DRM and DRI (Direct Rendering Manager/Infrastructure) controls access to the GPUs, provides interfaces for talking to the GPU concurrently by multiple apps at once (without them breaking each other) and lets the system perform the most basic tasks like setting proper resolution and such if no userspace apps understand how to talk to the GPU exposed. DRI and DRM expose the GPU interfaces mostly as-is, not in a "vendor-neutral" portable way - if you don't have an application developed specifically for a GPU you have, it won't work.
"let's create a vendor-neutral interface for graphics so that apps can ignore the GPU-specific bits and get right to the drawing!" - which is what OpenGL is. User-space drivers implement the OpenGL specification and expose it as an OpenGL library to apps (like games, browsers, etc) instead of the GPU. Mesa is the most popular collection of open-source user-space drivers and contains a few user-space drivers for different GPU families: '''radeonsi''' for most modern AMD GPUs (and '''r600g''', r300g and others for older ones), '''i915/i965''' for old/new Intel GPUs and '''nouveau''' for Nvidia GPUs.
There's also Gallium, which is a bunch of utilities and common code shared among these drivers - if certain things can be done once and work everywhere, they'll land in Gallium and benefit all the drivers. Most Mesa drivers use Gallium (radeonsi, nouveau, software renderers), some don't (intel after gma950).
Displaying 2D windows supports device-specific 2D drivers as well, but nowadays most of these are no longer needed as the modesetting can handle most hardware on its own. As the DRM/DRI got some additional interfaces for what used to be hardware-specific (setting resolutions, refresh rates, etc) and software requiring accelerated 2D drawing was optimized OpenGL-based renderers, dedicated 2D acceleration is slowly going away. Since around 2012, the 3D part of the graphics card deals with 2D operations.
Modern GPUs can also decode video!? There's VDPAU (NVIDIA & AMD GPUs) and VA-API (AMD & Intel GPUs) that can also talk to the GPU exposed via DRM/DRI and issue proper commands to decode/encode a given video stream. Those drivers are GPU-specific too.
So let's say you have some example GPUs, here's how example stacks could look like:
* AMD Radeon HD8750: amdgpu -> DRM/DRI -> Mesa (radeonsi)
* AMD Radeon HD4850: radeon kernel driver -> DRM/DRI -> Mesa (r600g) -> games/apps/etc.
* NVIDIA GeForce 460: nouveau kernel driver -> DRM/DRI -> Mesa (nouveau) -> games/apps.
* Intel GMA950: i915 kernel driver -> DRM/DRI -> Mesa (i945) -> games/apps.
{| class="wikitable sortable" width="90%"
! width="15%" | Description
! width="15%" | Analog Output
! width="15%" | Digital Output
! width="15%" | Laptop LCD
! width=30%" | Comments
|-
| <!--Description-->Fudomi GC888A
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->1080p 100in throw projector
|-
| <!--Description-->Vamvo VF320 (720P)
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->720p 90in
|-
| <!--Description-->Happrun H1
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->1080p 90in
|-
| <!--Description-->Umbolite Magcubic HIPPUS HY320 Mini
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->720p 100in
|-
| <!--Description-->Zentality A10 Plus
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->720p 110in
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->nexigo nova mini
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->nebula mars 3
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->epson lifestudio flex plus portable projector
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->dangbei freedo
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->benq gv50
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
Unless your computer uses a Firewire chipset manufactured by Texas Instruments, FireWire interfaces are likely to act buggy.
AROS is unlikely to ever support FireWire.
Bluetooth is similarly unlikely to be ever supported due to huge cost to be certified.
No, x86 PCMCIA card.resource at the moment. Writing card.resource would be a similar amount of work to writing a typical driver. However, it might be complicated by having to support a variety of PCMCIA-controller chipsets like TI PCI1225, PCI1410, PCI1420, 1450, PCIxx12 and O2, etc. m68k card.resource does not really have many higher level functions, most functions are really simple or poke Gayle registers directly. only exception is CopyTuple(). Amiga card.resource has one significant flaw: it's single-unit. would need card.resource and pccard.library. There was talk in the past of designing a new API for PCMCIA because card.resource only supports one slot, but since most modern laptops only have one slot anyway, I think it might be worthwhile to implement card.resource as-is (at least as a first step). pccard.library would be trivial to port. So, a new API is needed.
<pre>
HDMI (licensing fee)
1.4 4K @ 30Hz
2.0 4K @ 60Hz
2.1 48Gbs for 4K @ 120Hz, 8K @ , VRR, etc
</pre>
<pre>
DisplayPort (VESA introduced)
1.4 4K @ 60Hz
2.1 96Gbs for 4K @ 240Hz, 8K @ 120Hz. MST daisy chain multiple monitors,
</pre>
dv0exj9nszoarh91yv0cz1fx6ge98t9
4640129
4640115
2026-06-13T15:30:35Z
Jeff1138
301139
4640129
wikitext
text/x-wiki
Google translation into [http://translate.google.com/translate?hl=en&sl=auto&tl=de&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support German], [http://translate.google.com/translate?hl=en&sl=auto&tl=fr&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support French], [http://translate.google.com/translate?hl=en&sl=auto&tl=nl&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Dutch], [http://translate.google.com/translate?hl=en&sl=auto&tl=it&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Italian], [http://translate.google.com/translate?hl=en&sl=auto&tl=es&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Spanish], [http://translate.google.com/translate?hl=en&sl=auto&tl=hi&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Hindi],
[http://translate.google.com/translate?hl=en&sl=auto&tl=zh-CN&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Chinese Simplified],
[http://translate.google.com/translate?hl=en&sl=auto&tl=pl&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Polish],
[http://translate.google.com/translate?hl=en&sl=auto&tl=ru&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Russian],
{{ArosNav}}
[[#Audio Chipsets]]
[[#Graphic GFX Chipsets]]
[[#Rough gfx comparison]]
[[#]]
==x86 Native Environment==
AROS should run on almost any i386 PC hardware so long as the CPU is newer than an i486, and has a "Floating Point Unit (FPU)". Ideally around 700Mhz and above with at least 256MB of memory is recommended for desktops and around 1GHz and at least 256MB for laptops/notebooks/netbooks. For web browsing, etc above 1GB is usually needed and offers the option to run web browsers, media players and other hard disk heavy usage from RAM: disk.
Motherboards supported
* Most Intel mobos are supported (Skt 775 is ok but newer is better) - additional pci / pci-e cards may be needed for networking, audio, etc
* AMD based socket 939 am2 am2+ am3+, fusion and am4 ryzen based systems work but additional pci / pci-e cards may be needed
Supported graphics cards (gfx)
* Nvidia 2D and 3D 2005-2017.
64bit AROS Nouveau covers '''2D''' 8xxxgs and higher to GTX 900s and '''3D''' from .
32bit AROS supports '''2D''' from TNT through to fermi gtx5xx and '''3D''' acceleration fx5xxx to gtx4xx.
* Intel GMA 2D and 3D 2006-2009.
'''2D''' for many old netbooks and motherboards. '''3D''' for many early netbooks and motherboards
* AMD/ATI 2D only and '''no 3D'''. 1999-2005.
Desktop ie external monitor support only (no laptop internal support) for very early Radeon 7000 through to x600. Experimental 2D version for up to HD3xxx came later
* VESA 2D fallback modes for all graphic cards (GPUs) and with [http://www.youtube.com/watch?v=HKCHZFYj9Kk screen dragging].
It's worth noting however that support isn't guaranteed. Nor will potential power of a card reflect its performance under AROS.
Sound wise there are
* HDaudio support for onboard intel and AMD netbooks, ultrabooks, notebooks and motherboards (2005 to 2020)
* some AC97 codec support for very old motherboards and laptops (ie pre 2004)
* PCI and some PCI-E C-Media CMI8738 for desktop plugin cards
* PCI Creative Soundblaster EMU10K1 cards [http://amigaworld.net/modules/news/article.php?storyid=2512 SBLive]
* PCI semi professional some early VIA Envy24 desktop sound cards
* PCI Sound Blaster 128 aka SB16
Supported [http://en.wikibooks.org/wiki/Aros/Platforms/x86_Network_support network] which could be desktop, laptop, etc
* PCI-E Realtek rtl8169 which also includes the rtl8111 and rtl8110
* PCI Realtek rtl8139 and includes rtl8101 and rtl8100
* PCI intel pro100
* Broadcom 44xx 10/100 integrated in laptops around 2005
* VIA 10/100
* 3com Etherlink 10/100
* Realtek rtl8029 10mbit
Wireless wifi
* atheros 5000 wireless
*realtek 8187 usb
It is very hard to recommend a completely supported motherboard because as soon as newer motherboards arrive so their features change subtly, often introducing non supported parts like ethernet and audio. It is a moving target.
* mini-itx motherboard will only get you 1 pci or pci-e slot
* micro mATX or uATX will have more, typically 2 pci-e or pci slots which helps if any onboard features are not supported.
* full atx will have more slots available
'''N.B''' It is frustrating when a piece of hardware is not supported. Hardware documentation can run to over 100 pages and a lot of hardware do not have any public documentation anyway. Chips from different manufacturers for sound, graphics, SATA, etc. vary just as much, unless they follow a standard such as [https://github.com/acidanthera/AppleALC/wiki/Supported-codecs HDAudio codecs], AHCI etc.
Coding drivers is a far cry from Hello World programs or even a port of existing software. If you do actually want to try then get a hold of documentation on the relevant hardware and start there. Alternatively you could try to find some '''BSD''', MIT or MPL licence drivers as a point of reference. Please , do not think you can just adapt strings in a driver for different strings, it does not work that way. You will '''need''' to start from scratch for each new bit of hardware. Device driver programming require '''embedded''' skills, like manipulation of bits within registers, good debugging skills, dealing with interrupts, lots of patience, etc.
The following specific chipsets and drivers are also available - use Tools/PCITool to confirm Vendor and Product IDs - Please let us know any mistakes or any information to be added, to this General Chat list on [https://arosworld.org/ AROS World]
: Brief Timeline
: 2000-12-06 HIDD first mouse.hidd completed ([http://msaros.blogspot.com/ Michal Schulz])
: 2001-03-31 BOOT first boot from floppy disk with IDE device
: 2001-10-30 BOOT first cd bootable version
: 2002-01-27 HIDD first pci.hidd added (Michal Schulz)
: 2002-04-13 BOOT software HDToolBox added ()
: 2003-04-03 HIDD vesa2.hidd graphic modes added ()
: 2004-03-08 HIDD new pci and ata (pata) devices worked on (Michal Schulz)
: 2004-03-17 HIDD nVidia 2D driver appears (Michal Schulz)
: 2005-01-05 AHI AHI v6 audio system ported (Martin Blom)
: 2005-01-06 AHI SBLive SoundBlaster Live driver ported (Georg Steger)
: 2005-02-04 AHI AC97 playback only driver added (Michal Schulz)
: 2005-06-27 NIC amiTCP stack ported with 3com, NE2000, prism2 drivers (Neil Cafferkey)
: 2005-08-25 NIC nForce2 support added (Michal Schulz)
: 2005-12-24 NIC Intel Pro100 network driver added (Neil Cafferkey)
: 2006-03-25 HIDD ATI radeon 2D driver added (Michal Schulz)
: 2007-03-06 HIDD vesa 1.0 video driver added (Pavel Fedin)
: 2007-03-08 HIDD dospackets and FAT filesystem (Rob Norris)
: 2007-03-21 HIDD usb initial commit (Michal Schulz)
: 2007-10-01 BOOT Installer added (Neil Cafferkey)
: 2007-11-29 PORT 64bit x86 added (Michal Schulz)
: 2008-04-12 BOOT GRUB2 added (Alain Greppin and Nick Andrews)
: 2008-08-26 NIC RTL8139 added ([http://kalamatee.blogspot.com/ Nick Andrews])
: 2008-10-22 PORT to SAM440ep (ppc) (Michal Schulz)
: 2009-02-25 PORT to efika (ppc) (Michal Schulz)
: 2009-05-18 HIDD poseidon usb2.0 stack ported to AROS (Chris Hodges)
: 2009-11-18 NIC RTL8169 network driver arrived (Nick Andrews and [http://pagesperso-orange.fr/franck.charlet/oldnews.html Franck Charlet])
: 2009-12-23 AHI HDAudio based Atom CPU and netbook audio driver arrived (Davy Wentzler)
: 2010-03-09 BOOT USB pendrive stick booting available (Neil Cafferkey)
: 2010-05-26 HIDD Intel GMA900 2D graphics card support (Michal Schulz)
: 2010-09-03 NIC Wireless PCI based NIC arrived (Neil Cafferkey)
: 2011-04-30 HIDD Nvidia 2D and 3D nouveau graphics card support (Deadwood)
: 2011-08-30 HIDD Radeon 2D enhanced AMD driver arrives (Bearsoft)
: 2011-09-17 NIC Wireless USB realtek arrives (Neil Cafferkey)
: 2011-12-09 HIDD Intel 945G 3D Gallium graphics support (Sami)
: 2013-02-25 AHI AC97 VIA 686 audio support (Davy Wentzler and Neil Cafferkey)
: 2013-03-31 PORT early Raspberry PI native support (Nik Andrews)
: 2014-01-16 AHI Envy24 audio chipset support (Davy Wentzler and Neil Cafferkey)
: 2017-02-17 PORT Symmetric MultiProcessing smp added for x86 64bit (Michal Schulz)
: 2018-10-20 PORT Big Endian ARM
: 2021-11-26 NIC Broadcom 44xx ethernet (Neil Cafferkey)
: 2023-01-12 NIC Nvidia MCP61 ethernet (Neil Cafferkey)
: 2025-11 HIDD xHCI USB3 and isoc (Nik Andrews)
[[#top|...to the top]]
===Audio Chipsets===
'''If sound beeps in AHI prefs after Music set then some support is there. Select more than one channel for multiple audio streams, set frequency up to 44 kHz or higher and set the volume if not already set. Ensure you set the music unit 0 to 3 which allows the extra features of the audio card like microphone, line-out, etc).'''
====1996-2000 sb128.audio aka SB16 PCI====
*2021 5.27
as per CREATIVE's website, the model number is the first two digits on the front and first two digits on the back. my card says CT4810 and 161TK110B 995; this translates to CT4816 as the model.
The original AudioPCI 3000 card with the ES1370 had a master clock crystal for 44.1 kHz (22.5792 MHz), used an AKM codec (AK4531, non-AC97) and had 4 channel output; Creative later modified the design with a crystal for 48 kHz (24.576 MHz) and Sigmatel AC97 codec (a CT4700 SB128 with a CT5507 chip, AK4531, 22.5792 MHz crystal and TDA7360 speaker power amp). The issue with these cards involved never quite eliminate the effects of resampling on the 64V, it also shows signs of undersized coupling caps. These Ensoniq cards automatically engaged headphone amplifier (with a 4565 opamp).
Porting involved [http://repo.or.cz/w/AROS.git/commit/b60abd12967144a844980c422ea9e99c056eabca 40897], [http://repo.or.cz/w/AROS.git/commit/b7d6511fca6430a63fbaaa390b4f51bf0203a460 40898 configure], [http://repo.or.cz/w/AROS.git/commit/f51034cd22759a4ec3a2547bddb3a7169d956eaa 40900 bugs], [http://repo.or.cz/w/AROS.git/commit/4f43fc38e3489ea45d12b7b5ba6fff50b69c5746 40901 further bugs], [http://repo.or.cz/w/AROS.git/commit/d23c78aec75f049484b6916d27b6804ce858bb2c 40913 memory IO fixes], [http://repo.or.cz/w/AROS.git/commit/d256860fe3035016952e88d143c6f2611997f2f3 40914 irq fix].
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| Ensoniq AudioPCI 1000
| 0x1274
| 0x5000
|
| {{unk}}
| {{unk}}
| untested - es1370 (u?) AK4531 (u?)
|-
| Ensoniq AudioPCI
| 0x1274
| 0x5000
| 0x00
| {{yes}}
| {{maybe}}
|
|-
| CT4700 Sound Blaster PCI 64 (audioPCI 3000)
| 0x1274
| 0x5000
| 0x7c
| {{yes}}
| {{maybe}}
| works - opamp JRC4565(u?) [http://en.wikipedia.org/wiki/Ensoniq_ES1370 es1370] (u?)
|-
| CT4750 Sound Blaster 64/PCI
|
|
|
| {{unk}}
| {{unk}}
| untested - 4565-1056W (u1) stac9708t(u2) [http://arstechnica.com/civis/viewtopic.php?f=6&t=916891 ct5880-dcq] (u3) 24wc012 (u4)
|-
| CT4751 (SB128PCI)
| 0x1274
| 0x8001
|
| {{unk}}
| {{unk}}
| untested - [http://en.wikipedia.org/wiki/Sound_Blaster#Ensoniq_AudioPCI-based_cards es1371] (u?)
|-
| CT4810 Creative AudioPCI64V
| 0x1274
| 0x1371
| 0x06
| {{yes}}
| {{maybe}}
| works
|-
| CT4811 (SB Vibra 128)
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4812 (Vibra 128)
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4813
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4815
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4816 es1373 (vibra 128)
|
|
|
| {{unk}}
| {{unk}}
| untested but this card has creative's ES1373 as the main chip(U1). it is also different from the other CT4810 (vibra128) in that it does not have a second chip in U2 position. Also there is only one jumper JP1 (2X3).
|-
| CT5801 HP
|
|
|
| {{unk}}
| {{unk}}
| untested - es1373 (u3)
|-
| CT5803 Gateway
| 0x1274
| 0x1371
| 0x08
| {{yes}}
| {{maybe}}
| works 4565-0005b jrc (u1) 4297a-jq ztae0c0002 (u2) es1373 (u3)
|-
| CT4740
| 0x1274
| 0x1371
| 0x08
| {{yes}}
| {{yes}}
|
|-
| CT5805 Compaq OEM Premier Sound Presario 7
|
|
|
| {{unk}}
| {{unk}}
| untested - es1373 (u3)
|-
| CT5806 (Sound Blaster AudioPCI 128D)
|
|
|
| {{unk}}
| {{unk}}
| untested - 4297A-JO EP (u?) ZTAPWC9933 (u2) es1373 (u3)
|-
| CT5807 Dell OEM Dimension 8100
|
|
|
| {{unk}}
| {{unk}}
| untested - es1373 (u?)
|-
| CT5808
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4730 Sound Blaster AudioPCI 64V Ectiva EV1938
| 0x1102
| 0x8938
|
| {{unk}}
| {{unk}}
| untested
|-
| CT5880 on various motherboards
| 0x1274
| 0x5880
|
| {{unk}}
| {{unk}}
| untested [http://www.xbitlabs.com/articles/mainboards/display/ga-6rx.html Gigabyte GA-6RX] (VIA ApolloPro 266 2001], Gigabyte GA-6VM7-4E mobo, [http://active-hardware.com/english/reviews/mainboard/ga-7vtx.htm Gigabyte GA-7VTX] (KT266 2001), Gigabyte [http://www.amdboard.com/gigabytega7vtxh.html GA-7VTXH] (KT266A 2001), [http://www.amdboard.com/gigabytega7vrxp.html Gigabyte 7VRXP] mobo (KT333 2002), MSI MS-6309, MS-6318, MS-6337 (815E Pro), MS-6339 (850Pro) and MS-6340, PCChips Motherboard M571 TXPRO, Soltek SL-65ME+,
|-
| VMware Virtual Workstation(TM)
| 0x1274
| 0x1371
| 0x02
| {{Yes|but not Hi-Fi modes}}
| {{maybe}}
| works
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
<pre>
Revision 0x04 = ES1371 REV_ES1373_A
Revision 0x06 = ES1371 REV_ES1373_B
Revision 0x07 = ES1371 REV_CT5880_A
Revision 0x02 = CT5880 REV_CT5880_C
Revision 0x03 = CT5880 REV_CT5880_D
Revision 0x04 = CT5880 REV_CT5880_E
Revision 0x09 = ES1371 REV_ES1371_B
Revision 0x00 = EV1938 REV_EV1938_A
Revision 0x08 = ES1371 REV_ES1373_8
</pre>
====1999-2001 via-ac97.audio====
*2021 5.10
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| <!--Description-->694X with 686A KT133 PM133 or 693A with VT8231
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3058
| <!--Revision-->
| <!--Playback-->{{Yes| }} redirects earphones correctly
| <!--Recording-->{{Yes| }}
| <!--Comments-->audio controller works but depends on the underlying invisible codec used see AC97 section
|-
| <!--Description-->686B KT133A with VT8231
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3058
| <!--Revision-->0x50
| <!--Playback-->{{Yes|}} reroutes ear pieces right
| <!--Recording-->{{Yes|}}
| <!--Comments-->audio controller works but depends on the underlying codec used see AC97 section below
|-
| <!--Description-->686C
| <!--Vendor ID-->0x1106
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->untested
|-
| <!--Description-->KM266 or KT266 with VT8233, KT266A with VT8233A, VT8233C
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3059
| <!--Revision-->0x10
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->KM333 KT333 with VT8235
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3059
| <!--Revision-->0x30
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
| <!--Description-->KM400 KT400 with VT8237, KT600 with VT8237R,
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3059
| <!--Revision-->0x40 0x50 0x60
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
|}
====1998-2003 emu10kx.audio - Creative Labs SoundBlaster Live! and Audigy====
*2021 6.5
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| PCI512 CT4790 (emu10k1)
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested (1st Gen)
|-
| Live CT4620
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Live CT4760
| 0x1102
| 0x0002
| 0x07
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| playback works
|-
| Live Value CT4670
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| works plays stereo (2nd Gen)
|-
| Live Value DELL CT4780
| 0x1102
| 0x0002
| 0x06
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| plays/records stereo - untested 4.1mode
|-
| Live Value Compaq CT4830
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{Maybe}}
| <!--Recording--> {{unk}}
| not working
|-
| Live Value CT4831
| 0x1102
| 0x0002
| 0x00
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Live Value CT4832
| 0x1102
| 0x0002
| 0x07
| <!--Playback--> {{yes}}
| <!--Recording--> {{partial|Line-In only}}
| works
|-
| Live Value CT4832
| 0x1102
| 0x0002
| 0x08
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| works
|-
| Live Value HP CT4870
| 0x1102
| 0x0002
|
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| Works
|-
| Live Value Gateway CT4871
| 0x1102
| 0x0002
|
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Live! Platinum 5.1 SB0060
| 0x1102
| 0x0002
| 0x00
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
| plays audio/records, untested 5.1 (3rd Gen)
|-
| Live 5.1 SB0100 -SFF
| 0x1102
| 0x0002
| 0x00
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| works
|-
| Live 5.1 Player SB0220
| 0x1102
| 0x0002
| 0x0a
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
| plays audio/records stereo, untested 5.1
|-
| Live 5.1 Digital SB0228
| 0x1102
| 0x0002
| 0x0a
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
| working
|-
| Audigy SB0090 (emu10k2)
| 0x1102
| 0x0004
|
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| <!--Description-->Audigy SB0230
| <!--Vendor ID-->0x1102
| <!--Product ID-->0x0004
| <!--Revision-->0x03
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Yes|Mic only}}
| <!--Comments-->5th Dec 2012 - untested optical tos link. contains also IEEE1394/Firewire (untested)
|-
| Audigy 2 Platinum 6.1 SB0240 SB0250 EMU10K2.5
| 0x1102
| 0x0004
| 0x04
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| works
|-
| Audigy 2 PRO SB0280 EMU10K2.5
| 0x1102
| 0x0004
|
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Audigy 2 ZS SB0350
| 0x1102
| 0x0004
| 0x04
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
|
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| Live 5.1 DELL SB0200 SB0203 emu10kx
| 0x1102
| 0x0006
| 0x0
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
|
|-
| Live 24bit SB0410
| 0x1102
| 0x0007
| 0x
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Live 24bit DELL SB0413
| 0x1102
| 0x0007
| 0x
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy LS SB0310
| 0x1102
| 0x0007
| 0x0
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy SE 7.1 SB0570
| 0x1102
| 0x0007
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 2 ZS SB0320 SB0360 (PRO)
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 2 VALUE SB0400
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 4 VALUE SB0610
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 4 PRO SB0380
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| EMU E-MU 0404 PCI (not USB) EM8852
| 0x1102
| 0x000
| 0x0
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver but linux support needs firmware
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
the green jack is for the main speaker pair AND headphones, so manual switching will be required
If your card is wired for the "AC97" standard, then it's up to your headphone jack to switch the green speaker output in and out
the headphone jack has Normally-closed contacts that will open on insertion, which breaks the signal path back to the sound card (FP_RETURN)
====2000-2010 cmi8738.audio - C-Media====
*2021 5.20
;Read [http://amigaworld.net/modules/news/article.php?storyid=2512 more] and imported on [http://repo.or.cz/w/AROS.git/commit/aff741d60160c6a9d7d39c9e004a25ea3aa13847 20th July 2011] and [http://alsa.opensrc.org/Cmipci alsa docs].
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| Audiotrak MAYA EX5
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| cmi8738-sx 4ch
| 0x13f6
| 0x0111
| 0x10
| <!--Playback-->
| <!--Recording-->
| untested
|-
| e3dx hsp56 CMedia 8738-sx 4ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| EDio SC3000D 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Genius SoundMaker Value PCI C3DX
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Guillemot Maxi Sound Muse
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Hercules Gamesurround Muse LT
| 0x13f6
| 0x0111
| 0x10
| <!--Playback--> {{yes}}
| <!--Recording--> {{no}}
|
|-
| Hercules Gamesurround Muse XL LT 5.1
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Inno audio extreme 5.1 cmi8738/lx pci 6ch
| 0x13f6
| 0x0111
| 0x
| <!--Playback-->
| <!--Recording-->
| untested
|-
| M-Audio (Midiman) DiO 2448
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Sabrent SBT-SP6C 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| StarTech PCISOUND4CH 8738sx 4ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Sweex SC012 CMI8738-lx 4ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Terratec 5.1 PCI
| 0x13f6
| 0x0111
| 0x10
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Terratec Aureon Fun 5.1
|
|
|
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| Has SPDIF
|-
| Trust Sound Expert Digital Surround 5.1 (cm8738-mx 6ch)
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Turtle Beach Riviera CMI8738-MX 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| XSonic CMI 8738 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->CMI8738 6ch PCI-E PCI Express version
| <!--Vendor ID-->0x13f6
| <!--Product ID-->0x0111
| <!--Revision-->0x10
| <!--Playback-->{{Yes|}}
| <!--Recording-->{{Maybe|}}
| <!--Comments-->Chinese based card with playback tested so far
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
====2001-2005 ac97.audio====
*6.4 27-12-2008
The AC97 chips were designed to be pinout interchangeable so that the sound support could change easily and quickly without motherboard redesigns
the green jack is for the main speaker pair AND headphones, so manual switching will be required
If your card is wired for the "AC97" standard, then it's up to your headphone jack to switch the green speaker output in and out, the headphone jack has Normally-closed contacts that will open on insertion, which breaks the signal path back to the sound card (FP_RETURN)
The ProductID and VendorID are for the audio controller only - the important additional codec is '''NOT''' so easily identified.
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| <!--Description-->Avance Logic (now Realtek) ALC100 and ALC101 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->ALC200 and ALC201 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->ALC201A and ALC202 and ALC202A codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->ALC650
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| <!--Comments-->most Nforce2 boards plays audio only - Abit NF7, Asus A7N8X, MSI K7N2, Epox 8RDA+, DFI
|-
| <!--Description-->ALC850 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{No}}
| <!--Comments-->no support for via P4P800 chipset on ASUS A8V-E SE Deluxe mobo - ICaros 1.3
|-
| <!--Description-->Realtek ALC653 codec and ALC655 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested Acorp 7NFU400
|-
| <!--Description-->Realtek ALC658 codec ALC658D
| <!--Vendor ID-->0x8080
| <!--Product ID-->0x24c5
| <!--Revision-->0x0
| <!--Playback-->{{Yes|Prefs Music and Units 0-3 set volume control - playback}}
| <!--Recording-->{{No}}
| <!--Comments-->MSI Motherboard on NB 22-09-2012
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->AD1881 SoundMAX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->Analog Devices first AC97
|-
| <!--Description-->AD1881A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Yes}}
| <!--Revision-->
| <!--Comments-->works with VIA Controller - untested Intel etc
|-
| <!--Description-->AD1881B
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1885 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{No}}
| <!--Comments-->Playback only with issues on D845HV but not working on MS-6367 because Units 0-3 have masked volume control
|-
| <!--Description-->AD1886
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1887
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->ADI AD1888 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{no}}
| <!--Recording-->{{No}}
| <!--Comments--> Icaros 1.51
|-
| <!--Description-->AD1980 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->AD1981A codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested IBM X30
|-
| <!--Description-->Analog Devices SoundMax(TM) AD1981B codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| <!--Comments-->plays back only on IBM T41 Thinkpad
|-
| <!--Description-->AD1985 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{No}}
| <!--Comments-->not working ahi prefs freezes on D865GLC mobo ([http://www.xbitlabs.com/articles/multimedia/display/int-sound2_3.html ]
|-
| <!--Description-->AD1986 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{No}}
| <!--Comments-->untested [http://uk.ts.fujitsu.com/rl/servicesupport/techsupport/Boards/Motherboards/Fujitsu/D1931/D1931.htm D1931] but works (Acer Aspire 3610 laptop)
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->Crystal Semiconductors CS4205, CS4202 codecs
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Cirrus Logic CrystalWare 4236
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->Cirrus Logic CrystalClear SoundFusion CS4297 CS4299 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested IBM T23
|-
| <!--Description-->conexant Cx20468-31 codec (id 30)
| <!--Vendor ID-->0x103c
| <!--Product ID-->0x3085
| <!--Revision-->
| <!--Playback-->{{No|AC97 appears in AHI Prefs}}
| <!--Recording-->{{No}}
| <!--Comments-->Tested AspireOS 1.8 on Gateway W322
|-
| <!--Description-->ESS Technology ES1921 AC'97 2.1
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->CMI 6501 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested on ASROCK SKT-AM2 AM2NF3-VSTA
|-
| <!--Description-->codec CMI9738
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->codec CMI9739
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->C-Media CMI 9739A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments--> untested on EPoX 8RDA3+
|-
| <!--Description-->CMedia CMI 9761A codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested ASRocK K7NF2-RAID
|-
| <!--Description-->C-Media CMI9880
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->National Semi conductor (now TI) LM4540, LM4543, LM4545, LM4546, LM4548, LM4549, LM4550 LM4560
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->STAC9708T codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->SigmaTel (now IDT) C-Major STAC 9460 (D/A only), 9461, 9462, 9463, 9200, 9202, 9250, 9251, 9220, 9221, 9223, 9750
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AKM (Asahi Kasei Microsystems) AK 4540, 4543, 4544A, 4545
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->codec VT1616 (VIA Six-TRAC Vinyl Audio)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->VIA VT1612, VT82C686
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->ESStech ESS ES1968 maestro-2
| <!--Vendor ID-->0x125d
| <!--Product ID-->0x1968
| <!--Revision-->0x
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->ESStech ESS ES1978 maestro2e
| <!--Vendor ID-->0x125d
| <!--Product ID-->0x1978
| <!--Revision-->0x
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->ESStech ESS ES1988 maestro3 allegro-1 codec
| <!--Vendor ID-->0x125d
| <!--Product ID-->0x1988
| <!--Revision-->0x12
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->Yamaha AC97 ymf-743 YMF752 YMF753 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->{{No}}
| <!--Comments-->untested ymf-753
|-
| <!--Description-->YMF724 YMF744 YMF-754 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| SIS 7018 / Trident 4dwave DX/NX / ALi 5451
| 0x1039 (0x1023 Trident)
| 0x7018 (0x2000 Trident DX) (0x2001 Trident NX)
| 0x02
| <!--Playback-->{{No}}
| <!--Recording-->{{No}}
| no support - introduced early 2000s
|-
| SIS 7012
| 0x1039
| 0x7012
|
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| working through 1 speaker only took over from SIS7018 (2002 onwards)
|-
| <!--Description-->Wolfson (now Cirrus Logic) WM9701, WM9701A (AC'97 1.03 spec), WM9703, WM9704 (AC'97 2.1), WM9705, WM9706, WM9707, WM9708
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->WM9709, WM9710, WM9711, WM9712, WM971
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->first Microsoft(TM) Xbox DAC sound chip (AC Link compliant D/A converter)
|-
| <!--Description-->Wolfson WM9717
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| Parallels
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested
|-
| VirtualBox
|
|
|
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| working
|-
| VirtualPC
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested
|-
| <!--Description-->Intel 82801AA Proxmox
| <!--Vendor ID-->0x8086
| <!--Product ID-->0x
| <!--Revision-->
| <!--Playback-->{{unk| }}
| <!--Recording-->{{unk| }}
| <!--Comments-->
|-
|}
====2005-20xx HDAUDIO.audio====
*6.36 2025 [https://github.com/aros-development-team/AROS/commit/43b33a9280b10963ca659de2cc3d1cf289b43a87 reset handler]
*6.35 202 []
*6.34 2019 AROS One 1.5 upwards
*6.29 2018
*6.27 2017 update
*6.25 2014 used for most Icaros 2.x
*6.20 July 2012
*6.17 Nov 2011
*6.15 Jun 2011
*[http://www.clusteruk.com/SitePortalPage.aspx?siteid=1&did=109 6.13] Sep 2010
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="5%" |Vendor ID
! width="5%" |Product ID
! width="5%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| <!--Description-->ALC260
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| <!--Description-->ALC262
* ALC262-VD2-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->LQFP-48
|-
| ALC268 codec
| 0x
| 0x
| 0x
| <!--Playback-->{{Yes|Version 6.17 Acer AOA110 and AOA150 netbooks), works (Dell Mini Inspiron 9 and 10v, }}
| <!--Recording-->{{Yes|Version 6.17 remove QUERY and select 'Mic 1' as input. Tested with 6.15 as well using QuickRecord and AE 4.0.23 under Icaros 1.4.}}
| <!--Comments-->AHI UNITS and Music are set to: hdaudio:HiFi 16 bit stereo++ / Frequency 48000 Hz, Volume +0.0 dB. The hdaudio.config in SYS:Prefs/Env-Archive is WITHOUT the QUERY-line. After changing and saving the config-file turn off and start again the computer. Switch from internal loudspeaker to headphone you must turn off the music before plug in the headphone-cable, otherwise there is no output on the socket. Back from line-out to internal speakers it is the same.
|-
| [http://blog.foool.net/wp-content/uploads/linuxdocs/sound.pdf Linux docs ALC269]
* ALC269Q-GR
* ALC269QSRS-GR
* ALC269W-GR
| 0x
| 0x
| 0x
| <!--Playback-->{{Maybe| }}
| <!--Recording-->{{Unk| }}
| <!--Comments-->TQFP 48 pin Power IC Chip From [https://patchwork.kernel.org/project/alsa-devel/patch/1408118123-15849-1-git-send-email-tiwai@suse.de/ ALC269 & co have many vendor-specific setups with COEF verbs, result in the codec stalling]
|-
| [http://www.alsa-project.org/db/?f=0321f8479fd670cd510f9912b1120fe7edcf2e07 ALC269VB]
* ALC269Q-VB5-GR
* ALC269Q-VB6-CG
* ALC269Q-VB6-GR
| 0x10ec
| 0x0269
| 0x100004, 0x100100, 0x100202
| <!--Playback-->{{Maybe|some versions work}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* v1 works Asus eee PC netbook 901/1000HA 1005HA/1008HA, 1001P,
* v2 maybe working Lenovo S9 S10 S10-2 S10-3 under HDAudio version 6.13
* v3 maybe dell wyse 7010
|-
| [http://alsa-project.org/db/?f=9c1746c5957b0ce72ff9cfffa312e97d14baf785 ALC269VC aka ALC3202]
* ALC269Q-VC2-GR
* ALC269Q-VC3-GR
| 0x10ec
| 0x0269
| 0x100203,
| <!--Playback-->{{Maybe|some versions work}}
| <!--Recording-->{{Unk}}
| <!--Comments-->SMT SMD QFN-48 -
* v1 unknown
* v2 unknown
* v3 x230, dell wyse,
|-
| ALC272
* ALC272-VA4-GR
| 0x10ec
| 0x0272
| 0x0
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Unk}}
|
* works Acer AOD150 and Acer AOD250 works [http://amigaworld.net/modules/newbb/viewtopic.php?topic_id=33755&forum=28#616910 Samsung NP-NC10], works Samsung NF210-A02] netbooks,
|-
| <!--Description-->ALC273
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| <!--Description-->ALC270
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC282
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x
| <!--Revision-->
| <!--Playback-->{{No|Version 6.17}}
| <!--Recording-->{{No|Version 6.17}}
| <!--Comments-->needs retest
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC660 ALC660-VD
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes| }}
| <!--Recording-->
| <!--Comments-->
* works asus F9s, F9e
* untested asus w7j, M51SN, A6Tc, A8Sr,
|-
| <!--Description-->ALC661-GR (2011)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| ALC662
| 0x1043
| 0x82a1
| 0x0
| <!--Playback-->{{Yes|Version 6.17 if QUERY added to top of hdaudio.config}}
| <!--Recording-->{{No|Version 6.17 not working for eee pc 900}}
|
* works Asus eee PC netbook 700/701/900, Atom 270 and 330 mobos, odd clicks (D410 NM10 PineTrail),
|-
| <!--Description-->[http://outpost.fr/rmaa/ALC663.htm ALC663]
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0861
| <!--Revision-->
| <!--Playback-->{{No|Version 6.13}}
| <!--Recording-->{{Unk}}
| <!--Comments-->not bad output like headphone amp part of the codec actually works well but messed up by undersized coupling capacitors to actually support such a low impedance
* not working Asus n50vn x71vn,
|-
| <!--Description-->ALC665
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC666
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC667
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC668
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC670
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->ALC880
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->some 915 and 925 chipset mobos
|-
| <!--Description-->ALC882M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| Realtek ALC883 ALC883-GR ALC883D-GR ALC883DTS-GR ALC883DD-GR codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe|some early versions work }}
| <!--Recording-->{{Unk| }}
| 2005 to 2007 HD Audio codec untested (Asus ),
|-
| Codec ALC885
| 0x10ec
| 0x0885
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
|-
| ALC888
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
|
|-
| ALC888s
* ALC888S-VD2-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}} MSI Wind U90/U100,
| <!--Recording-->{{Unk}}
| LQFP-48
|-
| ALC888b
| 0x8086
| 0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| untested (D510 NM10 Dual Core PineTrail mobo),
|-
| ALC888-VD
| 0x8086
| 0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| untested
|-
| ALC889A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes|works if QUERY added to the top of hdaudio.config in Prefs drawer/directory}}
| <!--Recording-->{{Unk}}
|
|-
| ALC889 Gr
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}} with crackles
| <!--Recording-->{{Unk}}
|
|-
| ALC889
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
| Tested with MSI H55 board
|-
| ALC887 ALC887-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
|
* working on ASUS P5KPL/EPU and Gigabyte GA-E350N-Win8 Rev1.0
|-
| ALC887-VD-CG
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0887
| <!--Revision-->0x100302
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}} Subsystem Id: 0x1458a002
|
|-
| ALC887-VD
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0887 0x1458
| <!--Revision-->0xa002
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{Unk}} index = 2
| ALC887 does not have any volume control ability on the mixer NIDs, so put the volume controls on the dac NIDs instead
* working with intermittent corrupting pop popping skipping stuttering sound issues MSI 760GM-P23 (FX),
* not working Gigabyte H61MA-D3V, AT3IONT-I Deluxe,
|-
| ALC887-VD2
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
| 3jacks
|-
| ALC887-VD2-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
|-
| ALC887-
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
|
|-
| ALC892-CG rev
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| 2011 48-pin LQFP Green package -
|-
| ALC892 ALC892-DTS-CG rev
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
| 2009 introduced
* works
* not working
* untested
|-
| ALC892 rev
| <!--Vendor ID-->0x0x10ec
| <!--Product ID-->0x0892
| <!--Revision-->0x100302
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| 2014
|-
| Realtek ALC886-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| LQFP-48
|-
| Codec ALC861 ALC861-VD
| 0x10ec
| <!--Product ID-->0x0663
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
|
* not working Toshiba Tecra A7
|-
| <!--Description-->ALC1200
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| ALC898
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
| not working
|-
| <!--Description-->ALC1500
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC3232 (aka ALC292)
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0292
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC3234 aka ALC255
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0255
| <!--Revision-->003
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC3287 aka ALC257
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes| }}
| <!--Recording-->{{no| }}
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->AD1882
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1883 HD Codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1884
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| Analog Devices SoundMAX AD1981
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| IBM Thinkpad T60,
|-
| AD1984 hp-m4 codec
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
* audio not working on Lenovo X61, Thinkpad T61,
|-
| AD1986
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
|
|-
| AD1988
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
|-
| <!--Description-->AD1988A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->Cirrus Logic CS4207
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->
| <!--Recording-->
|
|-
| <!--Description-->Cirrus Logic CS4208
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->
| <!--Recording-->
|
|-
| <!--Description-->Conexant CX20549 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe|very very very low volume}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested Fujitsu Amilo SI 1510 1520 no datasheet for the general public
|-
| <!--Description-->Conexant CX20549-12Z codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested HP 530
|-
| <!--Description-->Conexant CX20561 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* working lenovo x200s
* untested Lenovo Essential G555 Notebook, HP Pavilion dv6700,
|-
| <!--Description-->Conexant CX20582 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX2059x CX20590 CX20594-21Z codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX20585 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* working Lenovo Thinkpad T410,
|-
| <!--Description-->Conexant CX20672 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX20671 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX20751-21Z codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes| }}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| <!--Description-->Conexant CX11852 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX11880 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant after 2015 up to 2018 CX7501 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{no|no driver codec}}
| <!--Recording-->{{no|no driver codec}}
| <!--Comments-->Conexant bought by synaptics 2019
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->C-Media CMI9880 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->Gigabyte GA-8GPNXP
|-
| <!--Description-->Silicon Labs 3054
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| VIA 1708A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| untested,
|-
| VIA VT1708B
| <!--Vendor ID-->
| <!--Product ID-->
| 0x0010
| <!--Playback-->{{No|VIA PicoITX}}
| <!--Recording-->{{Unk}}
|
|-
| VIA 1708S
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
|
|-
| <!--Description-->VT2021 10ch
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->Gigabyte Z77MX-D3H, GA-H61M-S2H S2P,
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Creative CA0110-IBG
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->SigmaTel STAC 9220 9221 9223 8ch (7+1)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| <!--Comments-->ECS 945GCT/M-1333 (version 3.0),
|-
| IDT SigmaTec [http://explorer.cekli.com/articles/pdf/hd-audio STAC9227] /28/29/30 codec
| <!--Vendor ID-->0x8384
| <!--Product ID-->0x7626
| <!--Revision-->0x0002
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Unk}}
|
* works HP Compaq mini 110
* untested HP Pavilion HDX9000 CTO Notebook, Intel DG33TL mobo, Dell E520, Intel DP35DP mobo, Dell E6410 Laptop,
|-
| IDT (formerly SigmaTel) IDC STAC 9271/71D
| <!--Vendor ID-->0x8384
| <!--Product ID-->0x7626
| <!--Revision-->0x0002
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
|
|-
| <!--Description-->IDC STAC 9272 9273 9274
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->Intel D5400XS,
|-
| <!--Description-->IDT 92HD73C
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes}}
| <!--Recording-->
| <!--Comments-->headphones only Asus AT4NM10 mobo
|-
| <!--Description-->IDT 92HD75B
| <!--Vendor ID-->0x111d
| <!--Product ID-->0x7608
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* working [http://koti.kapsi.fi/jvaltane/aros/hdaudio/ HP Compaq Mini 700 Netbook - feedback required]
* untested HP Mini 5103 and 5102, HP Compaq 610, HP ProBook Laptop 4520s 4525s 6450b 6550b 6555b, HP EliteBook 2540p 2740p 8440p, Mobile Workstation 8540w 8740w, Pavilion NoteBook DV8,
|-
| <!--Description-->IDC 92HD81XX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC 92HD83XX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC STAC 92HD89XX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Wolfson (now Cirrus Logic) WM8850
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Wolfson WM8860
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->Intel High Definition Audio Revision 1.0. - 4-Channel DAC, 4-channel ADC. - DAC sampling
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
Using Prefs/AHI ensure you set the music unit and at least Units 0 (where most audio comes from) in top left drop down menu to HDaudio - HIFI in the section below. Set Units 1 or 2 to microphone or other outputs. Plus allow more than one channel for multiple audio streams and set frequency up to 44 kHz or higher on the right hand side of the ahi prefs. If sound beeps when you press the test button then all should be OK.
Output <- Codec <- Audio Controller (HDA) <-> Computer
codecs and exact hardware identifier. As mentioned above, HDA is only part of the work here, it gets the audio out of the main chipset in digital format (on a bus called I2S). This is not enough, there is another step needed which is routing that I2S signal to the output, converting it to actual audio, amplifying it, etc. This is handled by a separate chip called a "codec". Sometimes it is initialized by the BIOS, but this is not always the case.
Most audio drivers are made up of two parts a [http://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio.txt Controller + a Codec]. The ProductID and VendorID are for the audio controller only - the important additional codec is '''NOT''' so easily identified.
Some newer versions of codecs are missing at the moment.
Things to try if sound not working
* try to connect something to the audio jack, maybe it is not playing on internal speakers or vice versa
* make sure you try and select all music units e.g. unit0, unit1....
* even if PCI ID's are in Prefs/Env-Archive/HDaudio.config, this doesn't mean it is working, it is the codec that matters
* it might be internally muted
<pre>
add debug=memory to grub boot line - continue booting with F10
Open a shell
Tools/Debug/Bifteck > RAM:audio.txt
</pre>
or
<pre>
Open a shell
Tools/Debug/Sashimi > RAM:audio.txt
Run ahi prefs
Click test tone button
Stop sashimi with Ctrl-C
</pre>
If the boot sound is enabled, you have to use Bifteck to capture AHI debug output. In the GRUB menu, press E on your selected entry, then add "debug=memory" to the options (alongside ATA=, vesa= etc.). Then F10 or Ctrl-X to boot. Once booted, run Tools/Debug/Bifteck again.
or
* try adding QUERYD to the start of ENVARC:hdaudio.config file (also known as Prefs/Env-Archive/) ie. on the first line
* '''OR''' try removing QUERY and QUERYD from the start of the hdaudio.config file
* Reboot
* open a shell
* type: sys:tools/debug/sashimi > ram:debug.txt
* open ahi prefs
* select one of the audio modes - HIFI or otherwise
* press the 'test sound' button
* press ctrl-c in the shell
* post the results to Aros-World
The HD Audio standard was designed to be hardware pinout interchangeable so that the sound support could change easily and quickly. HDA is a standard around particular chips. Each kind of chip has a certain number of DACs and pins, and even the same chip could be hooked up in different ways on different motherboards. The chips are programmable and the operating system can adjust how things are routed. Some pins aren’t even hooked up, so it makes no sense to route sound to them. Also some pins have sensors that can tell when something is plugged in, so that for example the speakers in a laptop can be muted when headphones are plugged in. Pins are also grouped, so for example all the outputs for a 5.1 sound system are grouped. Generally the HDA driver in the operating system is supposed to read the pin set up and figure out a reasonable way to set things up, and disconnected pins should be ignored, etc.
HDAudio standard has headphones on a separate DAC, and it's up to the driver.. it can even send different audio to the headphones without interrupting the main (green) outputs
====Envy24 series ====
A little history. VIA bought the ICE created Envy chipsets [http://www.via.com.tw/en/products/audio/controllers/comparison_controller.jsp VT1712] first. A few years later, they created several cheaper variants VT1724 (mixer missing), VT1721 (low end cut down), VT1720 (embedded on motherboard) and lastly the VT1723 (no support apart from Windows Envy24DT like SYBA SD-PEX63034).
There are PCI Express versions appearing.
The Envy24 is the base product that was originally designed by ICEnsemble, and it supports multi-channel hardware mixing, which is great for professional use. The HT version removes the hardware mixer (unimportant for non-professional uses). The [http://www.avsforum.com/t/364771/envy24ht-s-the-definitive-source HT-S] version is almost exactly the same as the HT, it just uses cheaper DACs. The PT version is exactly the same as the HT-S version, it is just the edition used for on-board audio on motherboards.
N.B. [http://www.soundonsound.com/sos/dec04/articles/pcnotes.htm PCI slot identification] and [http://hsi.web.cern.ch/HSI/s-link/devices/s32pci64/slottypes.html 3.3v PCI].
=====[http://www.opensound.com/readme/README.Envy24.html envy24.audio] - [http://www.anime.net/~goemon/alsa/ VT1712] =====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Playback
! Recording
! Comments
|-
| M-Audio Delta 66 - Rev B 1999
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested AK4524VF CS8404A-CS - needs Delta Series break out box with D-sub lead -
|-
| [http://ixbtlabs.com/articles/maudioaudiophile/index.html Audiophile 2496] Rev A 2000
| 0x14
| 0x
|
| <!--Playback-->{{unk| }}
| <!--Recording-->{{unk| }}
| works audio out on - I2S stereo codec AKM AK4528VF with the 24bit/96kHz DAC and ADC; CS8427 digital transceiver
|-
| [http://ixbtlabs.com/articles/maudioaudiophile/index.html Audiophile 2496] Rev B 2003
| 0x14
| 0x
|
| <!--Playback-->{{Yes }}
| <!--Recording-->
| works well - I2S stereo codec AKM AK4528VF with the 24bit/96kHz DAC and ADC; CS8427 digital transceiver
|-
| M-Audio Delta 410 - 2001 2001 REV-B
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested for D-A AK4529VQ converters with CS8427-CS 5532 1158B or Event Echo Gina 20-Bit Multitrack Interface Breakout Box -
|-
| M-Audio Delta 1010
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested AK5383 and AK4393 - 25 pin dsub -
|-
| M-Audio Delta 1010LT 1010E
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested for D-A AK4529 converters with 2 XLR Microphone inputs with pre amps
* be aware of redesign in 2007 - possible issues
|-
| M Audio Delta 44 - Rev A 2002 - Rev B 2003 - Rev D 2003
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested ICE1712G AK4524VF needs breakout box with 15 pin D-sub lead -
|-
| M-Audio Delta 66 Rev E 2006 - Omni Studio
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested needs break out box with 15 pin D-sub lead -
|-
| <!--Description-->M-Audio Delta DiO 2496
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| Terratec EWX24/96
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| [http://ixbtlabs.com/articles2/terratecdmx6fire/index.html TerraTec 6fire DMX 24/96]
| <!--Vendor ID-->0x1412
| <!--Product ID-->0x1712
| <!--Revision-->0x02
| <!--Playback-->{{No|tried line 1-2 3-4 5-6 7-8 }}
| <!--Recording-->{{No| }}
| untested - AKM and codec
|-
| <!--Description-->Terratec EWSA88MT
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| [http://lists.freebsd.org/pipermail/freebsd-multimedia/2007-March/006087.html Audiotrak Prodigy HD2] 24/96
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Audiotrak (ESI) Maya 1010 1010L
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| EMU 1212M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| EMU 1616M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| <!--Description-->Terratec EWS 88MT EWS 88D
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Hoontech Soundtrack DSP 24
Soundtrack DSP 24 Value
Soundtrack DSP 24 Media 7.1
Event Electronics EZ8
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Digigram VX442
Lionstracs
Mediastation
Terrasoniq TS 88
Roland/Edirol DA-2496
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
=====envy24ht.audio - VIA VT1724=====
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| ESI Juli@
| 0x3031
| 0x4553
| 0x0
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Yes}}
| reported working years ago [http://envy24.svobodno.com/ Envy24HT-S] - AKM 4358 DAC - AKM 4114/4112 DIT
|-
| ESI Juli@ Ego Igo rev K
| 0x3031
| 0x
| 0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| AK4358? DAC - AK4114 AK4112 DIT
|-
| [http://ixbtlabs.com/articles2/multimedia/m-audio-revolution51.html M-Audio Revolution 5.1]
| 0x1412
| 0x3631
| 0x0
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| reported working years ago but discontinued - (Envy24GT) - 3ch AKM 4358 DAC - ADC AKM 5365 -
|-
| [http://ixbtlabs.com/articles2/m-audio-revolution71/index.html M-Audio Revolution 7.1] 24/192
| 0x1412
| 0x3630 0x1724
| 0x0
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| not working - illegal semaphore - 6ch ADC AKM AK4355 24-bit 192 kHz - 2ch DAC AKM AK4381 24-bit 192 kHz - ADC AKM AK5380
|-
| Terratec Aureon Sky 5.1
| 0x153b
| 0x1147
| 0x
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - discontinued
|-
| [http://ixbtlabs.com/articles2/terratec-aureon71/index.html Terratec Aureon Space 7.1]
| 0x153b
| 0x1145
| 0x0
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - Wolfson WM8770 DAC, AC'97 codec SigmaTel STAC9744
|-
| Terratec Aureon Universe 7.1
| 0x153b
| 0x1153 (rev x) 0x1724 (rev3)
| 0x0
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| not working - semaphore error on rev 3 - DAC ADC
|-
| Terratec Phase 22
| 0x153b
| 0x1150
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - Envy24HT-S - AK4524
|-
| Terratec Phase 28
| 0x153b
| 0x1149
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - Envy24HT-S - AK4524
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Playback
| Recording
| Revision
| Comments
|-
| Audiotrak (ESI) Prodigy 7.1
| 0x4933
| 0x4553
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - Wolfson WM8770 and AC'97 SigmaTel STAC9744 codec
|-
| Audiotrak (ESI) Prodigy 7.1 LT
| 0x3132
| 0x4154
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver -
|-
| [http://ixbtlabs.com/articles2/sound/audiotrak-prodigy192.html Audiotrak (ESI) Prodigy 192] 24/96
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - STAC9460S codec
|-
| <!--Description-->Echo Layla 24/96
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
| [http://www.bit-tech.net/custompc/labs/80752/hercules-gamesurround-fortissimo-4.html Hercules Gamesurround Fortissimo 4]
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - Wolfson WM8776 Codec and WM8766 DAC
|-
| [http://ixbtlabs.com/articles2/multimedia/m-audio-audiophile192.html M-Audio Audiophile Delta AP 192k]
| 0x1412
| 0x3632
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - Stereo ADC AKM AK5385A 24-bit 192 kHZ - 8-channel DAC AKM AK4358 24-bit 192 kHz - AKM 4114/4112 DIT
|-
| ONKYO SE-150PCI
| 0x160b
| 0x0001
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver
|-
| <!--Description-->ESI Waveterminal 192x
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
| <!--Description-->Quartet
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments--> - AKM 4114/4112 DIT
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
|}
====hdmiaudio.audio - hdmi no support====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Comments-->
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->ATI R6xx HDMI Audio codec support output
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x9840
| <!--Revision-->
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->Not detected
|-
| <!--Description-->NVidia HDMI
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Intel Series 6 CougarPoint HDMI codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Intel HDMI
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|}
[[#top|...to the top]]
===Graphic GFX Chipsets===
[https://gallium.readthedocs.io/en/latest/systems.html PCIe based] graphic chipset is defacto on 64bit AROS and recommended on 32bit.
AGP works on 32bit but faster transfers through the AGP slot are only available on a few supported motherboard chipsets
* Faster AGP Working = SIS 650 board, Intel 865pe AGP slot on MSI 6788-050,
* Not Supported = NForce2 chipsets, most Intel 815/820 chipsets, VIA chipsets, ALi chipsets,
The fallback for all graphics modes is vesa if any native support does not work. There is a choice of very low resolution vga as the last resort
2D tests performed with [http://download.aros3d.org/software/gfxbench.zip gfxbench] in the shell type gfxbench > out.txt (40 seconds blank screen is part of the test), via FreeDoom via limit-removing engine like odamex, chocolate or vanilla doom -timedemo demo1 or doom2 -timedemo demo1, doom.exe -iwad doom2 -file mymap.wad, Duke DNRATE 640x480 windowed
3D tests performed with Demos/Mesa/ , Cube 1080p, Cube 2 windowed not fullscreen 1920 x 1025, Quake3 ~ cl_drawFPS 1, Xonotic , [http://shinh.skr.jp/sdlbench/showtestgl.cgi test gl],
HDMI, DVI and DisplayPort monitors have a native resolution of 480p, 720p, 1080i, 1080p and up
<pre>
HDMI (licensing fee)
1.4 4K @ 30Hz
2.0 4K @ 60Hz
2.1 48Gbs for 4K @ 120Hz, 8K @ , VRR, etc
</pre>
<pre>
DisplayPort (VESA introduced)
1.4 4K @ 60Hz
2.1 96Gbs for 4K @ 240Hz, 8K @ 120Hz. MST daisy chain multiple monitors,
</pre>
* HDMI 1.2 720p res.
* HDMI 1.3 1080 resolution
* HDMI 1.4 above 1080 res.
* HDMI 2.0
* HDMI 2.1
* HDMI 2.2 ultra96
* GPMI
Might be supported on AROS
*OpenGL4 GPU must have 64-bit floating point FP64 math support, which is a hard requirement for GL 4.0. The max last revision opengl 4.6 (2017) on [https://wiki.gentoo.org/wiki/AMDGPU AMDGPU] RX 5000's / 6000s ([https://forum.batocera.org/d/7491-enable-opengl-46-and-vulkan-for-an-old-radeon-video-card RDNA] and Nvidia RTX might come to AROS) but Intel UHD, Iris Plus or Xe, (will not unless a developer wants the challenge)
*OpenGL3 last revision 3.3 (2011)
Already supported on AROS
*OpenGL2 nvidia-nouveau,
*OpenGL1 intel gma950,
====vga.hidd====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Comments
|-
|
| 0x
| 0x
| 0x0
| Generic VGA Driver, limited to 640x480 in 16 colours - no 3D support
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Comments-->
|-
|}
====vesa.hidd====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Comments
|-
|
| 0x
| 0x
| 0x0
| 2D support for VBE1, VBE2 and VBE3 (most cards) - various resolutions and 24bit colour - no 3D support
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Comments-->
|-
|}
[[#top|...to the top]]
====[[w:en:Intel GMA|Intel GMA]]====
DVI output is not supported at the moment.
If having problems:
* Ensure the latest version is being used.
* Set GMA_MEM to 128 or 256 to test
* Try the FORCEGMA ToolType for 2D, and try the FORCEGALLIUM ToolType for 3D acceleration after 2D is verified to work. ToolTypes should be applied to the Devs/Monitors/IntelGMA monitor icon.
If still having problems:
* At GRUB boot screen edit boot line and add option: debug=memory
* Boot.
* Use shell command: tools/debug/bifteck > RAM:debug.txt
* And post [GMA MONITOR DETECTION] and other related debug lines
{| class="wikitable sortable" width="90%"
! width="5%" |Description
! width="5%" |Vendor ID
! width="5%" |Product ID
! width="3%" |Rev
! width="5%" |2D
! width="5%" |3D
! width="5%" |Analog Output
! width="5%" |Digital Output
! width="5%" |Laptop LCD
! width="30%" |Comments
|-
| 910GL 82910GL GMCH + ICH6
| 0x8086
| 0x2582 0x2592
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| 910GML 82910 GML GMCH + ICH6 Mobile
| 0x8086
| 0x2582 0x2592
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| may need to add forceGMA to grub boot line to work
|-
| 915G 82915G GMCH + ICH6-M
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
|
|-
| 915GL 82915GL GMCH
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
|
|-
| 915GV 82915GV GMCH
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Yes|}}
| <!--3D-->{{No|}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{N/A}}
| HP DC5100 small form factor
|-
| 915GM GMA900
| 0x8086
| 0x
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| tunnel gearbox }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes}}
| asus eee pc 900
|-
| 915GMS
| 0x8086
| 0x
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| tunnel }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes| }}
|
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| [http://www.notebookcheck.net/Intel-Graphics-Media-Accelerator-950.2177.0.html 945GU] - 133 MHz (Lake port for Intel A100 and A110)
| 0x8086
| 0x2772
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| Fujitsu LifeBook U1010,
|-
| 945GMS - 166 MHz / 250 MHz (1.05V)
| 0x8086
| 0x27a2
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes}}
| Dell D430
|-
| 945GSE - 166 MHz (for Atom)
| 0x8086
| 0x27ae
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Yes|[http://www.x.org/wiki/GalliumStatus]}}
| {{Yes}}
| {{No|dvi port}}
| {{Yes| }}
| for atom motherboards and most 2008/2009 netbooks
* 3D Works - AOA110 AOA150, Dell Mini 9, Samsung NC10, Toshiba NB100,
|-
| 945G 82945G GMCH + ICH7
| 0x8086
| 0x27a6
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| untested 2D and 3D
|-
| 945GC 82945GC MCH
| 0x8086
| 0x27a6
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| untested 2D and 3D
|-
| 945PM
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| Dell D420, Compaq nc6400,
|-
| 945GMS - 250 MHz Calistoga
| 0x8086
| 0x
| 0x0
| <!--2D--> {{Yes}}
| <!--3D--> {{Yes|most models}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes}}
|
* 3D Works Dell Latitude 2100, HP Compaq nc6320, Lenovo 3000, Lenovo T60, Samsung Q35, Dell D620, Dell D820,
* 3D untested Toshiba Satellite L100-120, Toshiba Portege M400,
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
|
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GMA 3100 G31
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works 2D but no 3D
|-
| GMA 3100 G33
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works 2D but no 3D
|-
| [http://en.wikipedia.org/wiki/Intel_GMA GMA 3150] netbooks and nettops
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works 2D but no 3D. no vga, dvi or hdmi output for nettops
|-
| <!--Description--> G965
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments-->
|-
| <!--Description--> Q965
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x2992
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{No}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments--> Only tested with VGA output.
|-
| 965GM X3100 (500 MHz)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| some support 2D but no hardware 3D - could not get it to work with VGA or dvi output
* untested Apple MacBook Air, Lenovo Thinkpad X300, Dell Inspiron 1525, Toshiba M9,
|-
| 960GM X3100 (400 MHz)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
|
|-
| 965M X3100 (400 MHz)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| Dell D830,
|-
| 965PM ??
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| Toshiba A9 works with limited 2D acceleration but no hardware 3D
|-
| GL965
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works with limited 2D acceleration but no hardware 3D
|-
| GM965
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works with limited 2D acceleration but no hardware 3D
|-
| GMA X3500 G35
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->X4500M G41 G43 G45 (400Mhz) Mobile 4 Series
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x2a42 0x2a43
| <!--Revision-->0x07
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue--> {{No|}}
| <!--Digital--> {{No|}}
| <!--Laptop LCD--> {{Yes| VESA}}
| <!--Comments-->works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->GMA 4500M HD (533 MHz)
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments-->works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->GMA 4700M HD (640MHZ)
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x2a42
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments-->works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
====[http://nouveau.freedesktop.org/wiki/FeatureMatrix nouveau].hidd (nvidia pci, agp, pci-e desktop)====
PCIe based nvidia graphics (gfx 8xxx) are the base level for 64bit AROS but earlier models still has some support on 32bit AROS
*Desktop, more likely hit rather than miss on early nvidia on Aros 32bit but on Aros 64bit ...
*Laptop, limited support for '''very''' early non-optimus (i.e. just Nvidia gfx only so no Intel and nvidia gfx combinations on 32bit but on 64bit ...)
Please note that the nouveau project is reverse engineering a nvidia graphics driver but takes time because of [https://nouveau.freedesktop.org/ nVidia's closed firmwares], etc
* 2026-06 - DEVS Nouveau.hidd Gallium.hidd Softpipe - LIBS Gallium GLU 20.0 Mesa OpenCL
* 2011-10 - DEVS 6.11 Nouveau.hidd 7.4 Gallium.hidd 9.4 Softpipe - LIBS 2.3 Gallium 1.3 GLU 19.0 Mesa OpenCL 1.x
* 2011-04 - DEVS 5.31 Nouveau.hidd 7.3 Gallium.hidd 9.3 Softpipe - LIBS 2.2 Gallium 1.1 GLU 18.0 Mesa OpenCL n/a
Nouveau support for AROS is limited to OpenGL 2.1 compliance on 32bit even for modern GL4 capable GPUs but on 64bit ...
On Aros 32bit OpenCL supports the NV50 (8000 9000) cards, less support in NVC0 fermi cards (300 upwards)
On Aros 64bit
ADoom3 graphic details ultra, benchmark while playing press the "`" key and type "Timedemo demo1" in the console
{| class="wikitable sortable" width="90%"
! width="5%" | Graphic Card
! width="5%" | Aros 32bit 1024 x 768
! width="5%" | Aros 32bit 800 x 600
! width="5%" | Aros 32bit 640 x 480
! width="5%" | Aros 64bit 1024 x 768
! width="5%" | Aros 64bit 800 x 600
! width="5%" | Aros 64bit 640 x 480
|-
| NV50 Asus EN8400GS SILENT/P/512M PCIe (G98) || || || || || ||
|-
| Gigabyte 8500GT 256M || 42,6 || 57,2 || 68,6 || || ||
|-
| NV96 (G96) Geforce 9500GT 512M || 43 || 53 || 57 || || ||
|-
| NV96 (G96) 9600GT || || || || || ||
|-
| NVA3 (GT215) GT240 || || || || || ||
|-
| NVA5 (GT216) Palit GT220 Sonic 512M || 39,7 || 55,8 || 63,7 || || ||
|-
| NVA8 (GT218) gt210 || || || || || ||
|-
| NVA8 (GT218) ION2 || || || || || ||
|-
| NVC3 (GF106) GT440 GTS 450 || || || || || ||
|-
| NVCF (GF116) NVC0 Fermi GTX 550Ti or GTS 450 v2 || || || || || ||
|-
| NVC8 (GF110) 580GTX || || || || || ||
|-
| NVE0 Kepler GT630 || || || || || ||
|-
| NVE6 (GK106) Kepler GTX660 || || || || || ||
|-
| NV110 Maxwell GTX 750 || || || || || ||
|-
| NV126 (GM206) GTX950 upwards no reclocking || N/A || N/A || N/A || poor || poor || poor
|-
| NV160 family (Turing) GTX 1650 and RTX 2000 upwards with GSP firmware || N/A || N/A || N/A || unknown || unknown || unknown
|-
| HostGL Ryzen 5 4600H - Nvidia 1650 - Linux mint 21.1 || 150fps || 154fps || 155fps || || ||
|-
| NVA8 (GT218) || || || || || ||
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| width="5%" | Graphic Card
| width="5%" | Aros 32bit 1024 x 768
| width="5%" | Aros 32bit 800 x 600
| width="5%" | Aros 32bit 640 x 480
| width="5%" | Aros 64bit 1024 x 768
| width="5%" | Aros 64bit 800 x 600
| width="5%" | Aros 64bit 640 x 480
|}
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|-
| <!--Description-->tnt1 (nv04) tnt2 (nv05) m64 value (1998)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|very slow}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| NV04 Riva TNT TNT2 Fahrenheit freezes on via motherboard chipset so rename agp.hidd in SYS:Devs/Drivers or Monitors
|-
| <!--Description-->tnt vanta lt (nv06) 1998 /9
| 0x10de
| 0x002c
| 0x15
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|slow}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| <!--Description-->Geforce 256 (nv10) (2000)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|slow }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| untested Geforce256
|-
| <!--Description-->Geforce 2 Geforce 3 Geforce 4 (nv20) 2000 / 2
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|slow }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| works for some PCI and AGP Geforce2 Geforce3 Geforce4
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| Geforce FX5200 nv34 (2003)
| 0x10DE
| 0x0322 0x
| 0xA1
| <!--2D-->{{Maybe| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->{{Maybe|VGA15 }}
| <!--Digital-->{{Maybe|DVI}}
| <!--Laptop LCD-->{{N/A}}
| NV30 GeForce 5 FX Rankine Hardware OpenGL 1.5 - slower than GF MX 4000 for 2D - max 1024 x768
* not working [https://eab.abime.net/showthread.php?t=92328&page=8 mobos with VIA chipsets 2018]
* working (MSI 0x9174) the previous nouveau 5.x driver
* Others work with 6.x series XFX PV-T34K-NA, ASUS V9520-X/TD
|-
| Geforce FX5500 (nv34) (2003)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{Maybe| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| works
|-
| Geforce 5100 (NV34)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce FX 5200LE (NV34)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5200 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce FX5600 (nv31) (2004)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Maybe| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| works
|-
| GeForce FX 5600 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5600SE
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5600XT
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce FX5700 (nv36) (2004)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes|some}}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{Maybe| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5700VE
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5700 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5700LE
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5800 (NV30)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5800 Ultra (NV30)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900 (NV35)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900XT
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900ZT
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5950 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce 5xxx
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
|
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| Geforce 6200 (nv44) (2005)
| 0x
| 0x00F3 0x014F
| 0x0
| <!--2D-->{{Yes|5.28 Pixel Text}}
| <!--3D-->{{Maybe| use 5.28}}
| <!--Analogue-->{{Yes|VGA15 and s-video - plain 4pin cable lead will work with 7pin}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| NV40 GeForce 6 GeForce 7 Curie AGP Hardware OpenGL 2.1 needing previous 5.x version as regression arose 2011-10
|-
| Geforce 6200 (nv44a) (2006)
| 0x
| 0x0221
| 0x0
| <!--2D-->{{Yes|5.28 Pixel Text }}
| <!--3D-->{{Yes|}}
| <!--Analogue-->{{Yes|VGA15}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| Hardware OpenGL 2.1, PCI version tested OK in 2014-01-02 - Icaros 1.5.2
* not working
*working
|-
| GeForce 6200 with Turbo Cache (NV43)
| 0x
| 0x0161
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce 6200SE with Turbo Cache (NV44)
| 0x
| 0x0162
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce 6200 LE
| 0x10de
| 0x0163
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| PCI-E
|-
| GeForce 6600 LE
| 0x
| 0x00F4 0x0142
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6600
| 0x
| 0x00F2 0x0141
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| 2006 PureVideo HD 1 or VP1 re-used the MPEG-1/MPEG-2 decoding pipeline from FX
|-
| Geforce 6600gt (nv4x) (2005)
| 0x
| 0x00F1 0x0140
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Yes| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| OpenGL tests -
|-
| Geforce 6800 (nv40) (2005)
| 0x
| 0x0041 0x00C1 0x00F0 0x0211
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Yes| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 XE (NV4x)
| 0x
| 0x0043
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 LE
| 0x
| 0x0042 0x00C2 0x0212
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 GT (quadro fx 1400)
| 0x
| 0x0045 0x0046 0x0215
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 6800 GS
| 0x
| 0x0047 0x00C0 0x00F6
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 GTS NV40
| 0x
| 0x0040 0x0F9
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 6800XT
| 0x
| 0x0044 0x0048 0x00C3 0x0218
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6600 VE
| 0x
| 0x0143
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6500 NV44
| 0x
| 0x0160
| 0x0
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6250
| 0x
| 0x0169
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 6xxx
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GeForce 7800 GTX
| 0x
| 0x0090 0x0091
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| tunnel gearbox cube cube2 25}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> 256MB DDR3 - 1 6pin psu connector -
* not working asus en7800gtx/2dhtv/256m/osp/a -
* Works XFX PV-T70F-UDD7 Works in steve jones' scrap pc aros build 2010 2 DVI-I ports
* Untested
|-
| GeForce 7800 GT
| 0x
| 0x0092
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7600gt (G8 ) (nv4 ) (2006)
| 0x
| 0x02E0 0x0391
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL 2.1
* not working
* working
|-
| GeForce 7800 SLI
| 0x
| 0x0095
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GTX
| 0x
| 0x0290
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GT GTO
| 0x
| 0x0291
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GS
| 0x10de
| 0x0292
| 0x0a1
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working
* Works with a few glitches with XFX Pine 0x2218
|-
| GeForce 7950 GX2
| 0x10de
| 0x0293 0x0294
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| GeForce 7950 GT
| 0x
| 0x0295 0x02E4
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GS
| 0x
| 0x02E3
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7600 GS
| 0x
| 0x02E1 0x0392
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7650 GS
| 0x
| 0x0390
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7600 LE
| 0x
| 0x0394
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7800GS (G8 ) (nv4 ) (2006)
| 0x
| 0x0093 0x00F5
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working
* works if AGP motherboard chipset is supported - Hardware OpenGL 2.1
|-
| GeForce 7100 GS
| 0x
| 0x016A
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7350 LE
| 0x
| 0x01D0
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7300le (G8 ) (nv4 ) (2006)
| 0x
| 0x01D1
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7300SE 7200GSGF-7200GS-N-B1 variant (G72)
| 0x10de
| 0x01D3
| 0x0a1
| <!--2D-->
| <!--3D-->
| <!--Analogue-->{{Unk|1x DVI, 1x VGA, 1x S-Video}}
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2007 40W pci-e 1.0 VP1 no unified shaders -
* not working Asus on via chipset (2015),
* works Asus on intel chipset (2015),
|-
| Geforce 7300gt (G8 ) (nv4 ) (2006)
| 0x
| 0x0395 0x0393
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working
* works
|-
| GeForce 7300 GS
| 0x
| 0x01DF
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7500 LE
| 0x
| 0x01DD
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7xxx
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GeForce 8800 Ultra (NV50 family)
| 0x
| 0x0194
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NV50 GeForce 8 to GeForce 200s opengl 3.x - max res - 80nm technology - PureVideo HD 2 or VP2 Nvidia VDPAU Feature Set A (absent from ultra and some 8800gt?) added a dedicated bitstream processor (BSP) and enhanced video processor for H.264, VC-1 acceleration
|-
| Geforce 8800gts (nv50) (G8x) (2007)
| 0x
| 0x0400 0x0600 0x0193
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2007 200w openGL3 openCL - 2x6pin psu
* not working 0x0193 models (2015) on via chipsets,
* works
|-
| Geforce 8800gtx (nv5 ) (G8x) (2007)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2008 200W 1x 6pin connector,
* not working
* working
* untested XFX PV-T88P-YDF4, Alpha Dog Edition runs extremely hot - Gigabyte GV-NX88T512H,
|-
| GeForce 8800 GT
| 0x
| 0x0602 0x0611 0x0193
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->DVI up to 2500 x 1600
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - 6pin psu power connector required
* not working
* untested Asus EN8800GT/HTDP/256M EN8800GT/HTDP/512M EN8800GT/G/HTDP/512M
* works
|-
| GeForce 8800 GT (G92)
| 0x10de
| 0x0611
| 0x0a2
| <!--2D-->{{Yes|6.11 Pixel Text}}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{N/A}}
| <!--Digital-->{{Yes}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3 pci-e 2.0 8800GT 512MB on Icaros 2.0.3 [[File:8800GT aros heads.png|thumb|8800GT]] [[File:8800GT aros tails.png|thumb|8800GT detail]]
|-
| Geforce 8600gt (nv5 ) (G8x) (2007)
| 0x
| 0x0401 0x0402
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res
* not working
* works
|-
| GeForce 8500 GT
| 0x
| 0x0421
| 0x0
| <!--2D-->{{Yes| some color }}
| <!--3D-->{{yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL tests - max opengl 3.x but 2.1 offered - max res
* not working
* works Gigabyte 8500 GT,
|-
| GeForce 8800 GS
| 0x
| 0x0606 0x060D
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res
|-
| GeForce 8600GS
| 0x
| 0x0403
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 3.x VP3 offers complete hardware-decoding for all 3 video codecs of the Blu-ray Disc format: MPEG-2, VC-1, and H.264 - Nvidia VDPAU Feature Set B
|-
| GeForce 8300 GS
| 0x
| 0x0423
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res
|-
| Geforce 8400gs G98GS (end 2007) GT218 (2009)
* Rev2 with 8/16 cores and 128-512MB of DDR2 or GDDR3 memory.
* Rev3 with 8 cores and 512MB-1GB of DDR3 memory (based on Tesla 2.0)
| 0x
| 0x0424 0x0422
| 0x0
| <!--2D-->{{Yes|Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 490 gearbox 505 Cube 135 Cube2 55 quake3 }}
| <!--Analogue-->{{Yes|works digital part of DVI but nothing from any display port}}
| <!--Digital-->{{Yes|output on digital 24 pin array of DDWG's DVI and hdmi}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 50W openGL 3.1 openCL - case single slot - one single-link DVI digital output, supporting up to one 1920x1080 resolution display - analog resolution 640 x 480 to 1024 x 768 16 and 24 bit color - [http://www.phoronix.com/scan.php?page=article&item=nouveau_comp_2011&num=19 runs a little hotter than expected] - G98 VP3 pci-e 2.0 512MB DDR2 -
* not working
* works Asus EN8400GS SILENT/P/512M PCIe (G98),
|-
| Geforce 8400gs (nv50) (G86) (mid-2007)
* Rev1 with 16 cores / 256MB of DDR2 memory.
| 0x
| 0x0404
| 0x0
| <!--2D-->{{Yes|Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 490 gearbox 505 Cube 135 Cube2 55 quake3 }}
| <!--Analogue-->{{Yes|works but not tested thru 4 pins of analog signal of DVI plug}}
| <!--Digital-->{{Yes|output on digital 24 pin array of DDWG's DVI and hdmi}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2008 50W openGL 3.1 openCL - case single slot - one single-link DVI digital output up to 1920x1080 resolution display - analog resolution 640 x 480 to 1024 x 768 16 and 24 bit color - [http://www.phoronix.com/scan.php?page=article&item=nouveau_comp_2011&num=19 runs a little hotter than expected] - G86 VP2 128MB -
* not working XFX PV-T86S-YAJG NVIDIA GeForce 8400 GS 512MB DDR2, Sparkle 8400GS 512MB SX84GS512D2L-DPP,
* works Asus EN8400GS SILENT/HTP/256M SILENT/HTP/512M/A,
|-
| GeForce 8400 SE
| 0x
| 0x0420
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 2.x openCL
|-
| NVidia Quadro NVS290 DMS-59
| 0x
| 0x0403
| 0x0
| <!--2D-->{{no| }}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk|DMS-59 socket}}
| <!--Digital-->{{unk|DMS-59 }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2008 21W - G86S (G86-827-A2) - 16 shading units, 8 texture mapping units, and 4 ROPs. NVIDIA has paired 256 MB DDR2 - PCIe 1.0 x16 Low Profile -
|-
| Geforce Quadro FX 4600 (SDI), 5600
| 0x
| 0x
| 0x0
| <!--2D-->{{Partial|VESA 2d}}
| <!--3D-->{{no| }}
| <!--Analogue-->{{partial| }}
| <!--Digital-->{{partial| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GeForce 9800 GX2 (NV50 family)
| 0x
| 0x0604
| 0x0
| <!--2D-->{{Partial|VESA }}
| <!--3D-->{{no| }}
| <!--Analogue-->{{Partial| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 150w - 65nm technology
|-
| GeForce 9800 GTX
| 0x10de
| 0x0612
| 0x0a2
| <!--2D-->{{Yes| }}
| <!--3D-->{{Maybe|6.11 }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 2x6pin psu -
* not working xfx on via chipset (2015),
* works xfx on chipset intel ,
|-
| GeForce 9800 GTX+
| 0x10de
| 0x0613
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res 2560 x 1920 - case dual slot - 26amp 12v rail on computer psu if 2x6pin connectors needed - 55nm version of the G92 chip - will not work with PCI-e 1.0a slots -
* not working
* works on a few models
|-
| Geforce 9800gt (nv50) (G92a) (2008)
| 0x10de
| 0x0614
| 0x0xa2
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel 495 gearbox 513 Cube 156 Cube2 120 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{partial| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL 3.1 openCL 1.x - case dual slot - 600w 26amp on both 12v rails for 2x6pin psu on gfx card - no fan control - some come with 1x6pin - renamed version of the venerable GeForce 8800 GT - randomly works
* not working Gainward 512M untested
* working Gainward CardExpert (0x0401) Green Edition NE39800TFHD02-PM8D92 1024MB (no 6pin)
|-
| Geforce gf9600 9600gt (nv5 ) (G9x) (2008)
| 0x10de
| 0x0622
| 0x0a1
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel 493 gearbox 675 Cube Cube2 100 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL 3.2 openCL but no fan control - case dual slot - 1 6pin pcie psu connector - 500 Watt or greater power supply with a minimum of 26 Amp on the +12 volt rail - Max Analog: 2048x1536 and Max Digital: 2560x1600 (Dual Link DVI Only) - PCI Express® 2.0 / 1.1 Support - g96 gpu randomly works -
* not working bfg tech ocx,
* works gigabyte gv-n96tsl-512i -
|-
| Geforce gf9500 9500gt (nv5 ) (G9x) (2008)
| 0x10de
| 0x0640
| 0x0a1
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel 480 gearbox 500 Cube Cube2 64 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.2 - case single slot - 350 Watt/400 Watt or greater power supply with a minimum of 18 Amp/22 Amp on the +12 volt rail - Max Analog: 2048x1536 and Max Digital: 2560x1600 (Dual Link DVI Only) - PCI Express® 2.0 / 1.1 Support -
* not working zotac zone fanless, Gainward USA NE29500THHD01-PM8796, PNY G9500GN2E50X+0TE,
* works xfx xne-9500t-td01-pm8596 1024mb ddr2,
|-
| GeForce 9600 GS
| 0x
| 0x0623
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res - will not work with PCI-e 1.0a slots -
* not working
* works
|-
| GeForce 9600 GSO
| 0x
| 0x0610
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res - G92 chopped down - 9600GSO is re-badged 8800GS both very power hungry cards -
|-
| GeForce 9300 GS
| 0x
| 0x06E1
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 opengl 3.x - max res
|-
| Geforce 9400 GT (nv5 ) (G86S) (2008)
| 0x
| 0x
| 0x0
| <!--2D-->{{partial|}}
| <!--3D-->{{unk|}}
| <!--Analogue-->{{unk|1x DVI, 1x VGA, 1x S-Video}}
| <!--Digital-->{{unk|1x DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 50W opengl 3.x - max res
|-
| Geforce 9xxx (nv5 ) (G9x) (2008)
| 0x
| 0x
| 0x0
| <!--2D-->{{unk|}}
| <!--3D-->{{unk|}}
| <!--Analogue-->{{unk|}}
| <!--Digital-->{{unk|}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 opengl 3.x - max res
|-
| <!--Description-->
NV84 (G84) GeForce 8600 (GT, GTS, M GT, M GS), 8700M GT,
NV92 (G92) GeForce 8800 (GT, GS, GTS 512, M GTS, M GTX)
GeForce 9600 GSO, 9800 (GT, GTX, GTX+, GX2, M GT, M GTX)
NV96 (G96) GeForce 9400 GT, 9500 (GT, M G), 9600 (M GS, M GT),
NV86 (G86) GeForce 8300 GS, 8400 (GS, M G, M GS, M GT), 8500 GT
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NVA0 (GT200) GeForce GTX (260, 275, 280, 285, 295)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->GeForce GTX 280 (NV50 family)
| <!--Vendor ID-->
| <!--Product ID-->0x05E1
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res PureVideo HD 4 (Nvidia Feature Set C or "VDPAU Feature Set C), VP4 added hardware to offload MPEG-4 Advanced Simple Profile (original DivX and Xvid)
|-
| <!--Description-->GeForce GTX 260
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x05E2
| <!--Revision-->
| <!--2D-->{{partial|Vesa}}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> 2 6pin - psu pci express 2.1 -
|-
| Geforce GTS250 250GTS (g92b) (2009)
| 0x10de
| 0x0615
| 0x0a2
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 486 gearbox 508-642 Cube Cube2 80 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> 2x6pin psu VP2 - pci-e 2.x - case dual slots - 738m 1gb ddr3 -
* not working Zotac branded version GDDR3 -
* works PNY gs-250x-zdfl and Gigabyte ??, BFG Tech RGTS2501024OCE, palit ne3ts250fhd52-pm8a92 with 2x6pin on top and hdmi output port,
|-
| <!--Description-->GeForce GT 240 (GT215 family)
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0ca3
| <!--Revision-->0xa2
| <!--2D-->{{Maybe|use VESA}}
| <!--3D-->{{No|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->late 2009 openGl 3.2 - case dual slots - no 6pin psu required with VP4 - All are pcie 2.1 cards and may not work in 1.0a slots -
* not working
* DDR3 with 512MB or 1GB -
* DDR5 -Asus ENGT240 - XFX Pine GT240XYHFC 0x3001 - Gigabyte GV-N240D5-512I rev 1.0 - Zotac AMP! with HDMI 1.3a with DisplayPort 1.1, Dual Link DVI -
* works
|-
| <!--Description-->GT220 (GT216) G220
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0a20
| <!--Revision-->0xa2
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Yes}}
| <!--Digital-->{{Yes|DVI }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> Icaros 2.0.3 GeForce GT220 1GB[[File:GT220 aros heads.png|thumb|GT220]][[File:GT220 aros tails.png|thumb|GT220]]
* untested NVIDIA Quadro® 400 512MB DDR3 GT216 DP DVI, AFox AF220 1Gb DDR3,
|-
| Geforce GT220 220GT G94 Tesla (g92b)
| 0x10de
| 0x0a20
| 0xa2
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 490 gearbox 505 cube 150 cube2 50 Quake3 }}
| <!--Analogue-->{{Unk|1x DVI, 1x VGA}}
| <!--Digital-->{{Yes|DVI but not 1x HDMI }}
| <!--Laptop LCD-->{{N/A}}
| 58W pci express 2.0 cards DDR3 - case single slot -
* not working ASUS ENGT220/DI/1GD2(LP)/V2 -
* works - gainward card expert 0x0401 GDDr3 512MB -
|-
| <!--Description-->GT210 GT 210 210GT G210 based on Tesla 2.0 GT218S GT218-300-A2 variant, GT218-300-B1
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0a65
| <!--Revision-->0xa2
| <!--2D-->{{Yes|6.11 Pixel Text}}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{Unk|1x DVI, 1x VGA}}
| <!--Digital-->{{Maybe|DVI out works but not hdmi or 1x DisplayPort}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 31W OpenGL 3.3 pci-e 2.0 cards - single slot -
* working GT218 based Asus EN210 based silent low profile large passively cooled -
* untested MSI GeForce 210 1GB DDR3 PCIe N210-MD1GD3H/LP,
* not working
|-
| <!--Description-->Quadro NVS 295 (256 MB GDDR3), NVS 450 (256M/512 MB DDR3)
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x
| <!--Revision-->
| <!--2D-->{{yes| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->
| <!--Digital-->{{partial|2 or 4 dp ports}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 25w low performance - G98s with 8 shading units, 4 texture mapping units, and 4 ROPs on PCI-Express 1.0 x16 -
*not working some NVIDIA Quadro NVS 295 2 dp ports (DELL, HP),
*working
|-
| <!--Description-->GT310 Tesla 310, 315, GT 320, GT 330 GT 340
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{Maybe|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2010 50w OpenGL 3.3 openCL all similar in performance to GT2xx except gt31x (poor)
|-
| <!--Description-->Quadro NVS310 NVIDIA NVS 310
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital--> 2 dp
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2012 25w GF119S (GF119-825-A1) 48 shading units, 8 texture mapping units, and 4 ROPs on PCI-Express 2.0 x16 - 512 MB DDR3 - PureVideo VP5 VDPAU Feature Set D -
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description--> GTX 470, GTX 480 GF10 GF10* core (NVC0 family)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{Maybe| tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2010 215w 2x6 plugs - NVC0 family (Fermi) GF100 (GF100-275-A3) Fermi 448 shading units, 56 texture mapping units, and 40 ROPs with 1,280 MB GDDR5 - OpenGL4.5 OpenCL1.1 Tessellation - case dual slots -
|-
| Geforce GTX460 460GTX (G104) 256bit, 1GB v2 192bit and GTX 465
| 0x10de
| 0x0e22
| 0xa1
| <!--2D-->{{Maybe|VESA }}
| <!--3D-->{{Maybe| tunnel gearbox cube 055-111 cube2 50}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVC0 family (Fermi) OpenGL 4.x but - 2x6pin psu - case dual slots -
* not working evga 768MB GDDR5 192bit 01G-P3-1373-ER or 01G-P3-1372-TR
* works 1GB GDDR5 256bit 01G-P3-1371-ER
|-
| <!--Description-->Geforce GTX 460SE 192bit
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0e23
| <!--Revision-->0x91 or 0xa1
| <!--2D-->{{Yes| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->{{Yes| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> nouveau 6.11 - 2 6pin psu needed - case dual slots -
* not working
* works EVGA 01g-p3-1366-b6 et 1024MB p1041 -
|-
| Geforce GT450 GTS450 450GTS GF106
| 0x10de
| 0x0dc4
| 0x0a1
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel gearbox cube cube2 50 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes|DVI }}
| <!--Laptop LCD-->{{N/A}}
| 2010 Hardware OpenGL 4.2 but nouveau at 3.3 - most need 1x 6pin psu - case dual slots -
* not working
* DDR3 1 or 2GB - Palit NEAS450NHD41F,
* GDDR5 512Mb or 1GB - MSI MPN N450GTSM2D1GD5OC, Asus MPN ENGTS450DI1GD5,
* works Gainward Card Expert NE5S4500FHd51,
|-
| <!--Description-->GT 440 GF108 chipset or better OEM GF106
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 6.11 Pixel Text}}
| <!--3D-->{{Maybe| tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGl 4.1 opencl 1.x - no 6 pin psu - 96 cuda cores 128bit - case dual slots -
* not working
* OEM
* GDDR5 512MB to 1GB ASUSTeK ENGT440/DI/1GD5
* GDDR3 Asus 1gb to 2gb,
* works
|-
| <!--Description-->GT430 430GT (GF108)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|6.11 Pixel Text}}
| <!--3D-->{{Maybe|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->ddr3 memory 64bit or 128bit - buggy await new revision of driver
* not working
* works
|-
| <!--Description-->nVidia Quadro FX1800 768MB GDDR3 Full Height Graphics Card Workstation
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 6.11 Pixel Text}}
| <!--3D-->{{no|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->{{Maybe|DVI-I 2xDP}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->59W 768 MB GDDR3 memory using a 192-bit memory interface - OpenGL 3.3 -
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GTX 590 Fermi
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->OpenGL4.4 OpenCL 1.1 - GDDR5 - 6pin and 8pin psu connectors - 512 cuda - case dual slots -
* not working
* works
|-
| <!--Description-->GTX 580,
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->PureVideo HD 5" or "VP5" (Nvidia Feature Set D or VDPAU Feature Set D) 4k UHD 3840 × 2160 H.264 decode -
|-
| <!--Description-->GTX 570,
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{Maybe|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working Zotac GTX 570, Gainward GTX560TI/570 Phantom,
* works gigabyte, evga
|-
| <!--Description-->Geforce 5xx 560gtx Fermi GTX 560,
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->opengl 4.x - 2 6pin psu - 384 cuda cores - case dual slots - will not work with PCI-e 1.0a slots -
* not working Asus ENGTX560 DC/2DI/1GD5,
* Ti LE 448 cuda GDDR5 320bit
* Ti 256bit
* works
|-
| <!--Description-->GTX 560 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working evga GTX 560Ti 01GP31560KR - Gainward GTX560TI/570 Phantom,
* works
|-
| <!--Description-->GTX 550 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x1201
| <!--Revision-->
| <!--2D-->{{Maybe|VESA Doom Doom2 Duke }}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->can hang on boot up on I2C Init or suffer random lockups on OpenGL apps - most need 1 6pin min 400W 24A on the +12V1 / +12V2 dual 12V rails of the computers' power supply unit - 192 cuda cores - case dual slots used - will not work with PCI-e 1.0a slots -
* not working eVGA GeForce GTX 550 Ti (1024 MB) (01GP31556KR) -
* untested asus Extreme, eVGA GeForce GTX 550 Ti (1024 MB) (01GP31557KR) - -
* works
|-
| <!--Description-->GT 545 and OEM GF116
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 4.2 opencl 1.x - GDDR5 with OEM only -
|-
| <!--Description-->GT530 OEM
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 6.11 Pixel Text}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->96 cuda cores - 1GB or 2GB DDR3 128bit
|-
| <!--Description-->GT520 520GT
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->untested 48 cuda cores - DDR3 64bit
|-
| <!--Description-->510, GT 530
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D 6.11 Pixel Text}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> ddr 3 - 50w max -
|-
| <!--Description-->GT610 Fermi GF119
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVS 315 300 GF119S
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{No|VESA}} needs special dms-59 cable
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 fermi 315 PNY VCNVS315-T 1Gb DDR3 but needs special dms-59 cable -
|-
| <!--Description-->GT630 GF108 Fermi
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->not accelerated 2015 - like the GT730 below - 96 cuda cores whilst kepler version has 384 - 128bit to keplers' 64bit bandwidth - kepler has 2GB DDR3
* not working Gigabyte
* DDR3
* GDDR5
* works
|-
| <!--Description-->Geforce GT 730
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe| use VESA 6.11 Pixel Text}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> fermi version has 96 cuda cores 128bit GF108
* not working Asus
* works
|-
| <!--Description-->nVIDIA Quadro 4000
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}} 2 dp ports
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->142W 2Gb GDDR5 - PCI Express 2.0 x16 ; full Height card with 1x 6-Pin PCIe power need - CUDA Cores 256 - OpenGL 4.5
|-
| <!--Description-->nVIDIA Quadro 5000
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2011 200W 2.5Gb GDDR5 320 bit - PCI Express 2.0 x16 full Height card with 2x 6-Pin PCIe power need -
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce GTX Titan GeForce GTX Titan Black GeForce GTX Titan Z
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVE0 family (Kepler) GeForce 600 GeForce 700 GeForce GTX Titan Kepler
|-
| <!--Description-->GeForce GTX 780 GeForce GTX 780 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->PureVideo HD 6" or "VP6" (Nvidia Feature Set E or VDPAU Feature Set E) significantly improved performance when decoding H.264 and MPEG-2
|-
| <!--Description-->GeForce GTX 770
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->opengl 4.4 opencl 1.1
|-
| <!--Description-->GeForce GTX 760 GeForce GTX 760 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce GT 740
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce GT 730 Kepler
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> two versions fermi 96 cores 128bit GF108 and kepler 384 cores 64bit GK208
|-
| <!--Description-->680gtx GK104 core gtx680 680m
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVE0 family (Kepler)
|-
| <!--Description-->GTX 690 Kepler NVE0
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->pci-e 3.0, OpenGL 4.4 OpenCL 1.1
|-
| <!--Description-->GTX 670
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GTX 660 GTX 660 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GTX 650 GTX 650 Ti GTX 650 Ti Boost
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVE0 family (Kepler) most need 1 6pin psu
* not working asus ENGTX560 DC/2DI/1GD5
* works
|-
| <!--Description-->Geforce GT 640
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* 128bit DDR3
* 192bit DDR3 1.5 to 3GB 50W
* 128bit GDDR5 75W
|-
| <!--Description-->GT 620 GT 640
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce 750ti, GeForce 900
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->[https://nouveau.freedesktop.org/FeatureMatrix.html NV110] Maxwell -
|-
| <!--Description-->Nvidia GTX 750
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x1381
| <!--Revision-->0xa2
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->2026 nvidia test
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->GM206 2nd gen maxwell PureVideo HD 7" or "VP7" (Nvidia Feature Set F or VDPAU Feature Set F) adds full hardware-decode of H.265 HEVC Version 1 (Main and Main 10 profiles and full fixed function VP9 (video codec) hardware decoding
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Quadro K620 quadro p620 2gb gddr5 128bit and quadro p1000 4gb gt1030 30w
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 50w slim low profile -
|-
| <!--Description-->GeForce gtx 1060, GeForce 1070
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NV130 Pascal
|-
| <!--Description-->gtx 1050ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->NV130 family (Pascal)
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV132 (GP102) NVIDIA Titan (X, Xp), GeForce GTX 1080 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV134 (GP104) GeForce GTX (1070, 1080)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV136 (GP106) GeForce GTX 1060
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV137 (GP107) GeForce GTX (1050, 1050 Ti)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV138 (GP108) GeForce GT 1030
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NV162 (TU102) NVIDIA Titan RTX, GeForce RTX 2080 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV164 (TU104) GeForce RTX (2070 Super, 2080, 2080 Super)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2020 NV160 family (Turing) unified gsp-rm firmware - best starting point for Vulkan support
|-
| <!--Description-->NV166 (TU106) GeForce RTX (2060, 2060 Super, 2070)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV168 (TU116) GeForce GTX (1650 Super, 1660, 1660 Ti, 1660 Super)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV167 (TU117) GeForce GTX 1650
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->gtx 1650ti super
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2018 old style
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NV172 (GA102) GeForce RTX (3080, 3090)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 av1 decoding ampere
|-
| <!--Description-->NV174 (GA104) GeForce RTX (3060 Ti, 3070, 3080 Mobile)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->NV170 family (Ampere)
|-
| <!--Description-->NV176 (GA106) GeForce RTX (3050, 3060)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV177 (GA107) GeForce RTX 3050
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NV192 (AD102) GeForce RTX 4090
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV193 (AD103) GeForce RTX 4080
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->NV190 family (Ada Lovelace)
|-
| <!--Description-->NV194 (AD104) GeForce RTX (4070, 4070 Ti)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV196 (AD106) GeForce RTX 4060 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV197 (AD107) GeForce RTX 4060
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
|}
==== nouveau mobile integrated ====
If you purchased a notebook with an NVidia sticker on it, most of the time you have a optimus based one, ie Intel CPU+GPU melded with Nvidia GPU, Optimus was slated at one point to go into desktop PCs but the industry ended up rejecting that concept
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|-
| GeForce 6100 nForce 405
| 0x
| 0x03D1 0x0242
| 0x0
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
|
|-
| <!--Description-->GeForce 6100 nForce 400
| <!--Vendor ID-->
| <!--Product ID-->0x03D2
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce 6100 nForce 420
| <!--Vendor ID-->
| <!--Product ID-->0x03D5
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce 6150 LE
| <!--Vendor ID-->
| <!--Product ID-->0x0241
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6150SE nForce 430
| 0x
| 0x03D0
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| working
|-
| <!--Description-->GeForce 6150
| <!--Vendor ID-->
| <!--Product ID-->0x0240
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7150M / nForce 630M
| <!--Vendor ID-->
| <!--Product ID-->0x0531
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7000M / nForce 610M
| <!--Vendor ID-->
| <!--Product ID-->0x0533
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7050 PV / NVIDIA nForce 630a
| <!--Vendor ID-->
| <!--Product ID-->0x053A 0x053B
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Geforce IGP 7025 nForce 630a
| 0x
| 0x053E
| 0x0
| <!--2D-->{{Yes|some}}
| <!--3D-->{{Yes|some}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No| }}
| some support on some chipsets
|-
| GeForce 7100 / nForce 630i (C73)
| 0x10de
| 0x07e1
| 0x0a2
| <!--2D-->{{Maybe}}
| <!--3D-->{{Maybe}}
| <!--Analogue-->{{Maybe}}
| <!--Digital-->{{Maybe}}
| <!--Laptop LCD-->{{N/A}}
| Icaros 2.0.3 and Gigabyte 73-pvm-s2h rev. 1.0 but will not boot on [https://ae.amigalife.org/index.php?topic=806.msg8765#new Acer x270 with Icaros 2.3]
|-
| <!--Description-->GeForce 7150 / NVIDIA nForce 630i
| <!--Vendor ID-->
| <!--Product ID-->0x07E0
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7050 / NVIDIA nForce 610i
| <!--Vendor ID-->
| <!--Product ID-->0x07E3
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Geforce IGP 8100 (nForce 720a)
| 0x
| 0x084F
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
|
|-
| GeForce 8100P
| 0x
| 0x0847
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
|
|-
| <!--Description-->Geforce 8200 8300 nForce 730a
| <!--Vendor ID-->
| <!--Product ID-->0x084A 0x0848 (GeForce 8300) 0x0849 (GeForce 8200) 0x084B (GeForce 8200)
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->working on some 8300's with Icaros 1.5 but others untested
|-
| <!--Description-->nForce 780a SLI
| <!--Vendor ID-->
| <!--Product ID-->0x084C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->nForce 750a SLI
| <!--Vendor ID-->
| <!--Product ID-->0x084D
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Nvidia Geforce IGP 9300 (nForce MCP7a)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->works
|
|-
| <!--Description-->9400 (ION)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->If AROS detects GPU chipset, works well
|-
| <!--Description-->9700M ()
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Geforce ION 2
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->works well
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce Go 6150
| <!--Vendor ID-->
| <!--Product ID-->0x0244
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6100
| <!--Vendor ID-->
| <!--Product ID-->0x0247
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6200
| <!--Vendor ID-->
| <!--Product ID-->0x0164 0x0167
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6400
| <!--Vendor ID-->
| <!--Product ID-->0x0166 0x0168
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->Sony Laptop
|-
| <!--Description-->GeForce Go 6800
| <!--Vendor ID-->
| <!--Product ID-->0x00C8
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6800 Ultra
| <!--Vendor ID-->
| <!--Product ID-->0x00C9
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600
| <!--Vendor ID-->
| <!--Product ID-->0x0144
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600 TE/6200 TE
| <!--Vendor ID-->
| <!--Product ID-->0x0146
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600
| <!--Vendor ID-->
| <!--Product ID-->0x0148
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600 GT
| <!--Vendor ID-->
| <!--Product ID-->0x0149
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7200
| <!--Vendor ID-->
| <!--Product ID-->0x01D6
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7300
| <!--Vendor ID-->
| <!--Product ID-->0x01D7
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->untested
|-
| <!--Description-->GeForce Go 7400
| <!--Vendor ID-->
| <!--Product ID-->0x01D8
| <!--Revision-->
| <!--2D-->
| <!--3D-->works 2D and 3d issues though
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7800
| <!--Vendor ID-->
| <!--Product ID-->0x098
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7800 GTX
| <!--Vendor ID-->
| <!--Product ID-->0x0099
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7950 GTX
| <!--Vendor ID-->
| <!--Product ID-->0x0297
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7900 GS
| <!--Vendor ID-->
| <!--Product ID-->0x0298
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7900 GTX
| <!--Vendor ID-->
| <!--Product ID-->0x0299
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7600
| <!--Vendor ID-->
| <!--Product ID-->0x0398
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7600 GT
| <!--Vendor ID-->
| <!--Product ID-->0x0399
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 6610 XL
| <!--Vendor ID-->
| <!--Product ID-->0x0145
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 6700 XL
| <!--Vendor ID-->
| <!--Product ID-->0x0147
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce 8700M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0409
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8600M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0425
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8400M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0426
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8400M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0427
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8400M G
| <!--Vendor ID-->
| <!--Product ID-->0x0428
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8800M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x0609
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8800M GTX
| <!--Vendor ID-->
| <!--Product ID-->0x060C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9500M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0405
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8600M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0407
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9650M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0408
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9400M GT
| <!--Vendor ID-->
| <!--Product ID-->0x042C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9300M G
| <!--Vendor ID-->
| <!--Product ID-->0x042E
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9100M G
| <!--Vendor ID-->
| <!--Product ID-->0x0844
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9800M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x0628
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9700M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x062A
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9800M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x062C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9600M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0647
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9600M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0648
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9600M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0649
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9500M G
| <!--Vendor ID-->
| <!--Product ID-->0x064B
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9300M GS
| <!--Vendor ID-->
| <!--Product ID-->0x06E5
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9200M GS
| <!--Vendor ID-->
| <!--Product ID-->0x06E8
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9300M GS
| <!--Vendor ID-->
| <!--Product ID-->0x06E8
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->NV50 (G80) Quadro FX (4600 (SDI), 5600)
Quadro FX (2800M, 3600M, 3700, 3700M, 3800M, 4700 X2), VX 200
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV94 (G94) 9700M GTS, 9800M GTS, GeForce G 110M, GT 130(M), GT 140, Quadro FX (1800, 2700M)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV84 (G84) 8700M GT, GeForce 9500M GS, 9650M GS
Quadro FX (370, 570, 570M, 1600M, 1700), NVS 320M
NV86 (G86) GeForce 8300 GS, 8400 (GS, M G, M GS, M GT), 8500 GT, GeForce 9300M G
Quadro FX 360M, NVS (130M, 135M, 140M, 290)
GeForce GTS 150(M), GTS 160M, GTS 240, GTS 250, GTX (260M, 280M, 285M), GT (330, 340)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV96 (G96) 9650M GT, 9700M GT
GeForce G 102M, GT 120
Quadro FX (380, 580, 770M, 1700M)
NV98 (G98) GeForce 8400 GS, GeForce 9200M GS, 9300 (GE, GS, M GS)
GeForce G 100, G 105M
Quadro FX (370 LP, 370M), NVS (150M, 160M, 295, 420, 450)
Quadro CX, FX (3800, 4800, 5800)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVA3 (GT215) GeForce GT (240, 320, 335M), GTS (250M, 260M, 350M, 360M) Quadro FX 1800M
NVA5 (GT216) GeForce GT (220, 230M, 240M, 325M, 330M), 315
Quadro 400, FX 880M, NVS 5100M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVA8 (GT218) GeForce 8400 GS, ION 2, GeForce 205, 210, G 210M, 305M, 310(M), 405
Quadro FX (380 LP, 380M), NVS (300, 2100M, 3100M)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVAA (MCP77/MCP78) GeForce 8100, 8200, 8300 mGPU / nForce 700a series, 8200M G
NVAC (MCP79/MCP7A) ION, GeForce 9300, 9400 mGPU / nForce 700i series, 8200M G, 9100M, 9400M (G)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVAF (MCP89) GeForce 320M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GT 605M, GT 610M GT 620M GT 630M GT 635M GT 645M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GTX 650M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GTX 1650 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2019 turing architecture - last old skool support pre Vulkan
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rtx 2050 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 ampere architecture best starting point for vulkan support
|-
| <!--Description-->rtx 2060 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rtx 4060 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
|}
====radeon.hidd====
Michel Shultz ''2D'' graphics driver (standard on most distributions but only for very old GPUs) and bearsofts updated 2013 around Icaros 1.3.1
3D is not implemented by AROS yet but could cover these AMD chipsets
<pre>
2014 SI AMD HD 7xxx
2016 GCN3rd AMD R5E R7E
2019 GCN5th AMD Vega 8
2022 RDNA1 AMD RX5500 desktop only
2023 RDNA2 AMD 680M 780M
2024 RDNA3 AMD 880M 890M
2025 RDNA3.5 AMD 8060S strix halo and AI
2027 RDNA4 AMD
</pre>
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! 2D
! 3D
! Analogue Output
! Digital Output
! Laptop LCD
! Comments
|-
| 7000 (r100)
| 0x1002
| 0x5159
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->{{Maybe|vga15 pin connection but not s-video}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.3
|-
| 7500 (rv200 but still r100 based)
| 0x1002
| 0x5157
| 0x
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->{{Yes|vga15}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.3
|-
| 8000 8500 (r200)
| 0x1002
| 0x514c (8500LE)
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.4
|-
| 9000 9100 9250 (r200)
| 0x1002
| 0x5964 (9000) 0x514d (9100)
| 0x0001
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->{{Maybe|VGA15 but not s-video}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.4
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| 9600 9800 (r300)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1
|-
| x300 x600 (r300)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1
|-
| x700, x800 ([http://en.wikipedia.org/wiki/Radeon_R600 r420])
| 0x
| 0x554d (R430 x800xl)
| 0x0
| <!--2D-->{{Yes|new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1 - x800 XL PCIE (problem with mouse-pointer, some part of the pointer is not transparent)
|-
| x1300 x1550 x1600 x1800 x1900 x1950 ([http://en.wikipedia.org/wiki/Radeon_R520 r520])
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes|new driver}}
| <!--3D-->{{no}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| HD2400 HD2600 HD2900 ([http://en.wikipedia.org/wiki/Radeon_R600 r600])
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|some features with new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 3.3 open CL 1.2 TeraScale architecture
|-
| HD3400 HD3600 HD3800 (r600)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|some features with new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->pci-e 2.0, openGL 3.3
|-
| HD4300 HD4500 HD4600 HD4700 HD4800 ([http://en.wikipedia.org/wiki/Radeon_R600 r700])
| 0x1002
| 0x
| 0x0
| <!--2D-->{{Maybe|but some later cards need 3D engine for faster and more flexible 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 3.3 - DDR3 - GDDR5 was one of AMD's aces for the 4800 series - 4670 liked -
|-
| HD6900 cayman series
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|some features with new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 3.3 open CL not mature (2014) -
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| HD5400 Series HD5430 HD5450 HD5470
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2010 openGL 3.3 openCL - GDDR3 -
|-
| HD5500 Series HD5550 HD5570 HD5600 Series HD5650 HD5670 HD5700 Series HD5750 HD5770
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 3.3 openCL - GDDR5
|-
| HD 5800 Series HD5850 HD5870 HD5900 Series HD5950 HD5970 - HD6xxx not NI chipset ([http://en.wikipedia.org/wiki/Evergreen_(GPU_family) r800 evergreen])
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 openGL 3.3 openCL - DDR5 pci-e 2.1 best avoided for all pci-e 1.0 mobos - Ati TeraScale2 architecture -
|-
| HD6450 [http://en.wikipedia.org/wiki/Northern_Islands_(GPU_family) Northern Islands chipset]
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> - DDR3 -
|-
| HD6600 Series HD6650 HD6570 HD6600 Series HD6650 HD6670
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2011 - DDR5 -
Radeon HD 8470 11 TeraScale 2
Radeon HD 8350 11 TeraScale 2
Radeon HD 7510 11 TeraScale 2
Radeon HD 6550D 11 TeraScale 2
Radeon HD 6530D 11 TeraScale 2
Radeon HD 6410D 11 TeraScale 2
Radeon HD 6370D 11 TeraScale 2
Radeon HD 6320 11 TeraScale 2
Radeon HD 6310 11 TeraScale 2
Radeon HD 6290 11 TeraScale 2
Radeon HD 6250 11 TeraScale 2
|-
| HD6800 Series HD6850 HD6870 HD6700 Series HD6790 to HD6990
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2011 - DDR5 - AMD TeraScale3 -
|-
| <!--Description-->HD7450-HD7670
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2012 OpenGL but not Vulkan
Radeon HD 7660D 11 TeraScale 3
Radeon HD 7560D 11 TeraScale 3
Radeon HD 7540D 11 TeraScale 3
Radeon HD 7480D 11 TeraScale 3
Radeon HD 6930 11 TeraScale 3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->HD7750 HD 7770 / R7 250X HD7850 HD7870 / R9 270X HD 7950 / R9 280 HD 7970 / R9 280X [http://en.wikipedia.org/wiki/Southern_Islands_(GPU_family) Southern Islands]
*AMD Radeon R7 250XE Cape Verde XT
*AMD Radeon R7 M465X Cape Verde
*AMD Radeon R9 255 Cape Verde PRX
*AMD Radeon HD 7750 Cape Verde PRO
*AMD Radeon R7 250E Cape Verde PRO
*AMD Radeon HD 8740 Cape Verde PRO
*AMD Radeon HD 7730 Cape Verde LE
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2012 pci-e 3.0 1st Gen GCN architecture -
|-
| <!--Description-->R5 430, FirePro W2100,
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2015 50W+ openGL openCL 1/3 speed of gtx750ti 1st gen gcn1
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->HD7790 [ Sea Islands ]
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 openGL 4.1 open CL - GCN2.0 Vulkan 1.0 introduced a Shader Engine (SE) comprising one geometry processor, up to 44 CUs (Hawaii chip), rasterizers, ROPs, and L1 cache and Graphics Command Processor for faster audio/video - suits Vulkan 1.1
|-
| <!--Description-->r5 240 240x (slow) R7 250 250x (faster) HD 7790 / R7 260 260X / R7 360 to R5 350 (fast) and last one R5 430 OEM Plus (slow again)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 50W+ openGL 4.x openCL 1.x Vulkan 1.0 GCN 1st gen -
|-
| <!--Description-->R9 290 / R9 390 R9 290X / R9 390X
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2014 openGL 4.x openCL 1.x 2nd Gen GCN Vulkan 1.1 architecture -
|-
| <!--Description-->R9 Fury Nano
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2015
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->r-200 series r8 275 285 295 375 [Volcanic Islands]
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 4.x openCL 1.x - GCN3 Vulkan 1.2
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Radeon™ RX 5700/5600/5500 Series and Radeon™ RX Vega Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 GCN 4 - OpenGL 4, Vulkan 1.3 -
|-
| <!--Description-->Radeon™ RX 400/500 Series like rx 580
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->Radeon™ Pro WX 9100, x200 Series and Radeon™ Pro W5700/W5500 Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Radeon™ RX 7900/7600 Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->Radeon™ RX 6900/6800/6700/6600/6500 Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|}
==== amd radeon mobile integrated ====
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|-
| <!--Description-->ATI RC410 [Radeon Xpress 200M]
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x5a62 0x5955 0x5974 (200m)
| <!--Revision-->0x00
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->
|-
| <!--Description-->Mobility Radeon 7500
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x4c57 (7500)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->
|-
| <!--Description-->Mobility Radeon 9000
| 0x1002
| 0x4966 (9000)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->
|-
| <!--Description-->Mobility Radeon 9500 9550 (rv360) 9600 (rv350)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon 9800 (rv420)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon X300 (RV370) X600 (RV380)
| 0x1002
| 0x (RV370) 0x5657 (RV380)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon X700 (RV410) X800 (RV423)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon X1200 (RS69M0)
| 0x1002
| 0x791f
| 0x0
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->X1200 IGP (RS690)
|-
| <!--Description-->Mobility Radeon X1300 X1350 X1400(rv515) X1600 (rv530) X1650 (RV535) X1800 (rv520) x1900 (rv570)
| 0x1002
| 0x71c7 (X1650)
| 0x009e
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon 2100
| 0x1002
| 0x796e (2100)
| 0x0
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{No|}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 2400 (rv610) HD2600 (rv630)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 3100 HD3200 HD3450 3470 (RS780MC RV620) 3670 (M86-XT RV635) HD3870 (M88-LXT RV670)
| 0x1002
| 0x9610 and 0x9612 (HD3200) 0x9614 (HD3300)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 4200 4250 (RV620)
| 0x1002
| 0x (HD4200) 0x9715 (HD4250)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 4330 4530 4550 (M92 RV710) 4650 (M96-XT RV730) 4670 RV730XT 4830 (M97 RV740) 4850 (M98 RV770)
| 0x1002
| 0x (HD4350) 0x9442 (RV770) 0x9490 (HD4670)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 530v (M92 RV710) HD 550v (M96 RV730)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->no support yet
|-
| <!--Description-->Mobility Radeon HD 5430 HD5650 (cedar Park LP)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->no support yet
|-
| <!--Description-->Radeon HD 6250 6290 6310 6320 6350M (Redwood Capilano PRO)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->no support yet
|-
| <!--Description-->AMD 7640G, 8450G, 8550G, 8650G Northern Islands
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 Last real support for old graphics standard before Vulkan takeover
|-
| <!--Description-->R5 M230 M240 M255 - R7 M260 M265 (Kaveri Crystal series with Mantle and HSA)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->2015 Maybe better with Vulkan
|-
| <!--Description-->R5E R7E
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->2016 bristol ridge GCN 3.0 IGP (Carrizo Mobile)
|-
| <!--Description-->AMD Vega 3, 6, 8, 11 iGP
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2018 raven ridge GCN 5th Gen
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->5500m 5600m 5800m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA1 NaviX1 Zen 2
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rx680m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA2 NaviX2 Zen 3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->phoenix apu 1103
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 RDNA3 NaviX3 zen 4
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
==== AMDGPU Vulkan desktop ====
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Kaveri 290 290X, 260 260X
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2015 AMDGPU Vulkan
|-
| <!--Description-->R9 285 / R9 380 R9 380X Fury / Fury X
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->opengl 4 opencl 1 3rd Gen GCN architecture
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX470 RX460 RX480 RX580 polaris10
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 opengl 4 opencl 2 4th Gen GCN architecture vulkan 1.3
|-
| <!--Description-->RX460 RX560D polaris11
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 opengl 4 opencl 2 4th Gen GCN architecture vulkan 1.3
|-
| <!--Description-->RX580 polaris20
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 opengl 4 opencl 2 4th Gen GCN architecture vulkan 1.3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX 5000 5500 Navi 1x
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RNDA 1
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX 6000 Navi 2x
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RNDA 2 Mesa 21.3 decode av1
|-
| <!--Description-->RX6000
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX 7000
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 RNDA 3 navi
|-
| <!--Description-->RX7000
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->RX9070 rx 9060 XT
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2025 rdna4 navi
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2026 udna (aka rdna5)
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
|}
==== AMDGPU Vulkan mobile ====
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->R5E R7E
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->2016 bristol ridge GCN 3.0 IGP (Carrizo Mobile)
|-
| <!--Description-->Vega iGP 3, 6, 8, 11
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2018 raven ridge - Graphics Core Next (GCN) 5th gen -
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->5500m 5600m 5800m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA1 NaviX1 Zen 2
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rx680m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA2 NaviX2 Zen 3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->phoenix apu 1103
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA3 NaviX3 zen 4
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
fyi if a notebooks with two graphic cards, the integrated Intel card (id 0x7d) for low power usage and a discrete Radeon card (id 0x56) which should be used for GPU-intensive applications. By default the Intel card is always used
[https://wiki.archlinux.org/title/ATI Gallium Radeon HD] is not ported yet but is [https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.9-AMDGPU-Stats really big] and complex so another solution may have to be [https://discuss.haiku-os.org/t/the-graphics-acceleration-can-of-worms/10515/5 found] like [https://discuss.haiku-os.org/t/vulkan-lavapipe-software-rendering-is-working-on-haiku/11363/10 vulkan] where support starts from very recent ISA GCN islands HD7000s cards only
*Vulkan
*Gallium
Vulkan software renderer allows to prepares the infrastructure for hardware rendering. Primary difference between software and hardware renderer is output to regular RAM vs GPU RAM, the rest is almost the same. It is possible to render to GPU RAM offscreen.
bare bones basics data flow
application,>>> api/opengl/vulkan>>>>, jit compiler, >>>>memory manger, >>>>gpu hardware
so you need to have a compiler that takes your api call/program/shaders/drawing commands and turns them into a program the gpu can render.
the vulkan to amd gpu compiler for shaders and textures is nearly os agnostic iirc as long as you have solid posix compliance
Unlike OpenGL, Vulkan does not depend on windowing system and it have driver add-on system with standardized API (Mesa also have OpenGL driver add-ons, but it have non-standard Mesa-specific API). OpenGL may need more work for windowing system related code at this point but developing Vulkan on real hardware is more strategic than developing OpenGL, since now Zink 3 running on Vulkan compensates for the lack of OpenGL support by giving performance similar to native accelerated OpenGL
RadeonGfx use client-server model with client-server thread pairs. For each client thread that calls 3D acceleration API, server side thread is created. If client thread terminates, server side thread also exit.
==Rough gfx comparison==
<pre>
Group 1
GeForce RTX 5090 5070 5060 5050
GeForce RTX 4090 4070 4060 4050
Group 2
GeForce RTX 2070
Radeon RX 7600
Quadro RTX 5000
Radeon PRO W6600
GeForce RTX 2060 12GB
Radeon PRO W7500
Quadro GP100
Radeon RX 6800S
GeForce RTX 3070 Laptop GPU
GeForce GTX 1080
GeForce RTX 3060 8GB
Quadro RTX 4000
Radeon Pro W5700
Radeon RX 6600
GeForce RTX 2080 (Mobile)
Radeon RX 7700S
Radeon RX 6700S
Radeon RX 6600S
Quadro RTX 5000 (Mobile)
GeForce GTX 1070 Ti
GeForce RTX 4050 Laptop GPU
Radeon Pro Vega 64X
Radeon RX 5700
Radeon RX Vega 64
GeForce RTX 2060
GeForce RTX 2070 Super with Max-Q Design
Group 3
Radeon RX 6600M
GeForce GTX 1070
Radeon RX 6650M
GeForce RTX 3060 Laptop GPU
Radeon RX Vega 56
Radeon RX 6700M
GeForce RTX 2080 with Max-Q Design
Radeon RX 6800M
GeForce GTX 980 Ti
Radeon R9 Fury
GeForce GTX 980
Quadro M5500
Radeon R9 390X
Radeon RX 580
Radeon RX 5500
Radeon RX 6550M
GeForce GTX 1660 Ti with Max-Q Design
GeForce GTX 780 Ti
GeForce GTX 970
Radeon R9 290X
Radeon RX 480
Radeon RX 5600M
Quadro RTX 3000 with Max-Q Design
Radeon R9 290X / 390X
Ryzen 5 4600HS with Radeon Graphics
Radeon R9 290
Radeon Pro 5500 XT
Radeon R9 M490 *
GeForce GTX 780
Radeon RX 6500M
Quadro M5500
GeForce GTX 1060 with Max-Q Design
Radeon RX 6500
Radeon RX 5300
Intel Arc A770M
GeForce GTX 1650 Ti
Radeon Pro 580X
Radeon RX 6400
GeForce RTX 2050
Ryzen 9 4900HS with Radeon Graphics
Radeon Ryzen 9 6900HS
GeForce GTX 980M
Quadro M5000M
Radeon RX 6300
GeForce GTX 1650 Ti with Max-Q Design
Radeon Pro 570
Ryzen 9 6900HS with Radeon Graphics
GeForce GTX 1050 Ti
Quadro M4000M
Radeon R9 280X 380X
GeForce GTX 1650 with Max-Q Design
GeForce MX570
Radeon R9 280X
Radeon R9 380
Radeon 780M
GeForce GTX 960
GeForce GTX 970M
Quadro M4000M *
GeForce GTX 680
Group 4
Radeon RX 6500M
Quadro M5500
Radeon Pro WX 7100
GeForce GTX 1060 with Max-Q Design
GeForce GTX 1650
Intel Arc A730M
Radeon HD 7970
Radeon R9 M395X
Radeon R9 M485X
Radeon R9 M480 *
Radeon R9 M295X
Radeon R9 M390X *
FirePro W7170M *
Radeon R9 M395
Radeon R7 370
Radeon RX 5500M
GeForce GTX 590
GeForce GTX 880M
GeForce GTX 950
Radeon R9 270X
GeForce GTX 660 Ti
GeForce GTX 760
GeForce GTX 780M
Quadro K5100M
GeForce GTX 680MX
Radeon HD 7870
GeForce GTX 965M
Quadro M3000M *
GeForce GTX 870M
Radeon R9 M290X
Radeon HD 8970M
Radeon Ryzen 7 7735U (680M), Radeon Ryzen 7 7735HS (680M 12C)
GeForce GTX 580
Radeon HD 6970
GeForce GTX 1050
GeForce GTX 680M
GeForce GTX 775M
GeForce GTX 1630
FirePro M6100
Radeon HD 7970M
Radeon R9 M390 *
GeForce GTX 750 Ti
Group 5
GeForce GTX 570
GeForce GTX 480
GeForce GTX 960M
Quadro M2000M *
Quadro K5000M
Quadro K4100M
GeForce GTX 770M
GeForce GTX 860M
GeForce GTX 675MX
GeForce GTX 950M
GeForce GTX 850M
Quadro M1000M
Radeon R9 M280X
Radeon HD 7950M *
GeForce GTX 560 Ti
Radeon HD 6870
GeForce GTX 470
GeForce GT 1030
GeForce MX330
Ryzen 5 PRO 5650GE with Radeon Graphics
Ryzen 7 5800HS
FirePro 3D V8800
GeForce MX250
Group 6
Radeon Pro WX 3200
Ryzen 7 PRO 5750G with Radeon Graphics
Radeon Ryzen 5 5600H
Ryzen 5 Pro 4650G with Radeon Graphics
Radeon Ryzen 7 5800U
Ryzen 7 7730U with Radeon Graphics
Radeon Ryzen 7 5825U
Radeon Pro WX 4150
Radeon Ryzen 5 PRO 4655G
Ryzen 5 4600G with Radeon Graphics
Radeon Ryzen 5 PRO 4655GE
GeForce GTX 485M
FirePro W6150M
Ryzen 7 5800U with Radeon Graphics
Ryzen 5 7530U with Radeon Graphics
Ryzen 7 4800U with Radeon Graphics
Radeon R9 M470
Ryzen 3 PRO 5350G with Radeon Graphics
Radeon RX Vega Ryzen 3 5300U
Ryzen 7 5825U with Radeon Graphics
Ryzen 5 PRO 4400G with Radeon Graphics
Radeon Ryzen 7 PRO 4750GE
Radeon Ryzen 7 4800U
FirePro V7900
Radeon HD 5970
Radeon Ryzen 7 7700X 8-Core
Radeon Ryzen 5 PRO 5650G
Radeon Ryzen 5 4400G
Radeon Ryzen 5 PRO 5650GE
Radeon RX 550X
FirePro V8800
Radeon RX Vega Ryzen 5 5500U
GeForce MX150
Quadro K3100M
Ryzen 7 PRO 5850U with Radeon Graphics
Radeon HD 6970M
Radeon R7 250X
Intel HD 5600
Ryzen 3 4300GE with Radeon Graphics
GeForce GTX 460
Ryzen 7 5700U with Radeon Graphics
Radeon Ryzen 5 7530U
Quadro K620
Ryzen 3 PRO 5350GE with Radeon Graphics
Intel Iris Pro P580
Intel UHD Graphics P630
Ryzen 5 4600H with Radeon Graphics
Ryzen 5 PRO 7530U with Radeon Graphics
Radeon HD 5870
Radeon HD 6870
Ryzen 7 4700G with Radeon Graphics
Ryzen 5 5600U with Radeon Graphics
Radeon HD 7770
Ryzen 3 Pro 4350G with Radeon Graphics
Radeon Ryzen 5 5625U
GeForce GTX 745
Radeon Ryzen 7 4850U Mobile
Radeon Ryzen 3 PRO 7330U
Quadro M600M
Radeon Ryzen 5 5500U
Ryzen 5 5560U with Radeon Graphics
Ryzen 7 4800H with Radeon Graphics
Group 7
GeForce 945M
Ryzen 5 PRO 4650GE with Radeon Graphics
FirePro M5100
Radeon Ryzen 5 5600U
Radeon Ryzen 5 PRO 4500U
GeForce GTX 580M
Ryzen 7 PRO 5875U with Radeon Graphics
Ryzen 3 5300GE with Radeon Graphics
Radeon R9 M385
Quadro 5000M
Radeon Ryzen 7 4700U
Ryzen 5 PRO 5650U with Radeon Graphics
Radeon Ryzen 7 PRO 4750U
Ryzen 7 4700U with Radeon Graphics
Ryzen 7 PRO 4750U with Radeon Graphics
FirePro V7800
Radeon R9 350
Ryzen 3 4300G with Radeon Graphics
Radeon Vega 11 Ryzen 5 PRO 3350G
Radeon Ryzen 5 5560U
GeForce GTX 460 SE
Radeon Pro W5500M
Radeon Vega 11 Ryzen 5 PRO 3400G
Ryzen 5 5500U with Radeon Graphics
Ryzen 5 PRO 4500U with Radeon Graphics
GeForce GT 645
GeForce GTX 765M
Radeon R9 M385X
Ryzen 5 5625U with Radeon Graphics
Ryzen 3 PRO 7330U with Radeon Graphics
Radeon HD 5850
Radeon Vega 11 Ryzen 5 PRO 2400G
Intel Iris Pro 580
Radeon HD 6850
Intel Iris Xe MAX
Radeon Ryzen 7 PRO 5875U
Radeon Ryzen 5 7600 6-Core
GeForce GTX 470M
Ryzen 3 5300G with Radeon Graphics
GeForce GTX 670MX
Radeon RX 640
Qualcomm Adreno Gen 3
Radeon R7 450
GeForce GTX 675M
Radeon Pro WX 4130
Intel Iris Xe MAX 100
Quadro 5000
Radeon RX 570X
Radeon HD 7700-serie
Ryzen 5 4600U with Radeon Graphics
Ryzen 3 PRO 4350GE with Radeon Graphics
Radeon Vega 8
Group 8
GeForce MX230
GeForce GTX 765M
Quadro K4000M
Iris Pro Graphics P580 *
Iris Pro Graphics 580 *
GeForce GTX 645
Quadro M520
GeForce GTX 570M
GeForce MX130
Radeon RX 540
Radeon Ryzen 5 PRO 5675U
Intel UHD Graphics 770
Radeon RX Vega 11 Ryzen 7 3750H
Radeon Vega 11 Ryzen 5 PRO 3400GE
Radeon HD 5850
GeForce GTX 675M
GeForce GTX 580M
Radeon HD 6990M
Radeon R9 M385X *
Radeon R9 M470X *
Radeon R9 M470 *
Radeon R9 M385 *
Radeon R9 M380 *
Radeon R9 M370X
Radeon R9 M275
Radeon HD 7770
GeForce GTX 485M
GeForce GTX 460 768MB
Radeon HD 6790
GeForce GTX 285M SLI
Quadro K3100M
FirePro W5170M *
GeForce GTX 670MX
Quadro 5010M
GeForce GTX 760M
GeForce GTX 670M
Group 9
GeForce 940MX *
Maxwell GPU (940M, GDDR5)
FirePro M8900
Radeon HD 6970M
Radeon R9 M270
Radeon HD 8870M
Radeon HD 7870M
Quadro K3000M
GeForce GTX 570M
FirePro M6000
FirePro M5100
Quadro K2100M
Radeon HD 5770
GeForce GTX 550 Ti
GeForce GTX 280M SLI
Radeon HD 6950M
Radeon R7 250
GeForce GT 755M
GeForce GTX 660M
GeForce 845M
Radeon HD 8850M
Radeon R9 M365X
Radeon R9 M265X
Ryzen 5 PRO 4400GE with Radeon Graphics
FirePro W5130M *
Radeon Vega 8 Ryzen 5 3500U
Radeon HD 7850M
Radeon HD 8790M
FirePro W4170M
FirePro W4190M
FirePro W4100
Radeon Vega 6 Ryzen 3 3300U
Quadro 4000M
GeForce GTX 470M
GeForce GTX 480M
GeForce GT 750M
Iris Pro Graphics 6200
Quadro K1100M
GeForce 940M
Radeon R9 M375
GeForce 930MX *
Radeon R7 M380 *
Radeon R7 M370
Quadro M600M *
GeForce GT 650M
Quadro K620M
GeForce 840M
Radeon R7 M275DX
GeForce GT 745M
Radeon HD 7770M
GeForce GTX 560M
Radeon R7
Iris Pro Graphics 5200
GeForce GT 740M
GeForce 930M
Radeon HD 4850
Group 10
Iris Graphics 550 *
GeForce 830M
Iris Graphics 540
Quadro M500M *
Quadro K2000M
GeForce GTS 450
GeForce GTX 260M SLI
GeForce GT 735M
Mobility Radeon HD 5870
GeForce 825M
Quadro 5000M
FirePro M4000
FirePro M7820
Radeon HD 6870M
GeForce 9800M GTX SLI
Radeon HD 8830M *
Radeon HD 8770M
Radeon R7 M260X
GeForce GTX 460M
GeForce 920MX *
GeForce GT 730M
Radeon HD 7750M
GeForce GT 645M *
FirePro M4100
Radeon HD 8750M
Radeon R6 A10-9600P 4C+6G
Quadro 3000M
Radeon R7 M270
Radeon R7 M265
Quadro FX 3800M
GeForce GTX 285M
Mobility Radeon HD 4870
GeForce GT 640M
Radeon R7 (Kaveri)
Radeon R8 M365DX
Radeon R7 M460 *
Radeon HD 7730M
Radeon R7 M360
GeForce GTX 280M
Radeon HD 8690M
Quadro FX 3700M
Radeon R7 M340
GeForce 920M
Radeon R6 M340DX
HD Graphics 530
HD Graphics P530
Tegra X1 Maxwell GPU
Radeon R7 M260
Radeon R6
Group 11
Mobility Radeon HD 4860
FirePro M7740
Mobility Radeon HD 4850
GeForce GTX 260M
GeForce 9800M GTX
Quadro FX 2800M
Radeon HD 8670D
Radeon HD 7690M XT
FirePro M5950
GeForce GT 640M LE
Radeon R6 (Kaveri)
Radeon HD 8650M *
Radeon HD 8730M
Radeon HD 6770M
GeForce GT 635M
GeForce GT 555M
Radeon R7 A10 PRO-7800B
Radeon HD 5670
Mobility Radeon HD 5850
Radeon HD 6850M
Quadro 2000M
GeForce 9800M GT
GeForce 8800M GTX
Quadro FX 3600M
GeForce GT 445M
GeForce GTS 360M
Group 12
GeForce GT 240
Radeon R7 PRO A10-9700
Radeon HD 7690M
HD Graphics 5600
Radeon HD 8570D
Radeon HD 8670M
Radeon R6 M255DX
Radeon HD 7660D
Radeon HD 6750M
Quadro K1000M
GeForce GT 550M
Radeon HD 8590M *
GeForce GTS 260M
GeForce GTS 160M
GeForce 9800M GTS
GeForce GT 430
Radeon HD 6830M
Mobility Radeon HD 5830
Radeon HD 6730M *
GeForce 9800M GS
Mobility Radeon HD 4830
Mobility Radeon HD 5770
Radeon HD 6570M
Radeon HD 8650G
Radeon HD 7670M
GeForce GT 630M
Radeon HD 7560D
GeForce GTS 150M *
Radeon R5 M335
Radeon R5 M430 *
Radeon R5 M330
Radeon R5 M255
Radeon Vega 3
Quadro 1000M
GeForce 820M
FirePro W2100
HD Graphics 520 620
Iris Graphics 6100
GeForce GT 720M
GeForce 8800M GTS
Radeon R5 M240
Radeon R5 M320 *
Radeon R5 M230
Radeon R5 M315 *
Mobility Radeon HD 5750 *
Radeon HD 8570M
Radeon R7 PRO A10-8850B
HD Graphics 6000
Quadro K610M
Radeon HD 8550M
Iris Graphics 5100
GeForce GT 540M
Mali-T880 MP12 *
Radeon HD 8610G *
Radeon HD 6650M
HD Graphics 4600
Mobility Radeon HD 5730
HD Graphics 5500
Radeon R5 (Carrizo) *
Radeon R5 (Kaveri)
FirePro M5800
NVS 5400M
GeForce 710M
Radeon HD 7660G
GeForce GT 435M
HD Graphics 5000
Quadro K510M *
Radeon HD 5570
Radeon HD 6550M
Radeon HD 7590M *
GeForce GTS 350M
GeForce GTS 250M
Radeon HD 6630M
Radeon HD 7650M
FirePro M2000
Radeon HD 7570M
Radeon HD 7630M
Quadro FX 1800M
Mobility Radeon HD 5650
Radeon HD 8510G *
Radeon HD 6530M
Radeon HD 8550G
Quadro K500M *
GeForce GT 625M *
GeForce GT 620M
GeForce GT 525M
Radeon HD 6550D *
Radeon HD 7610M
Radeon HD 7620G
Radeon HD 8470D
Radeon HD 7640G
Adreno 530
GeForce ULP K1 (Tegra K1 Kepler GPU)
HD Graphics 4400
HD Graphics 510 515 *
NVS 5200M
Mobility Radeon HD 565v
Radeon HD 7550M
Mobility Radeon HD 4670
GeForce GT 425M
GeForce 9700M GTS
Radeon HD 6645G2 *
Quadro FX 2700M
GeForce GT 335M
Radeon HD 7600G
Mobility Radeon HD 3870
Mobility Radeon HD 4650
GeForce GT 220
GeForce GT 420M
Radeon HD 7530M *
Mobility Radeon HD 3850
GeForce GT 330M
Quadro FX 880M
Quadro NVS 5100M
GeForce GT 240M
Radeon HD 7490M *
HD Graphics 5300
Radeon HD 7510M *
GeForce Go 7950 GTX
Quadro FX 3500M
GeForce 8700M GT SLI
GeForce 9700M GT
GeForce GT 230M
Mobility Radeon HD 550v
Radeon HD 7480D
HD Graphics 4000
Mali-T760 MP8
Radeon HD 6620G
HD Graphics (Broadwell) *
Adreno 430
Radeon R5 (Beema/Carrizo-L)
Radeon R4 (Beema) (Kaveri)
HD Graphics (Skylake) *
Radeon HD 6450 GDDR5
Radeon HD 7500G
Radeon HD 8450G
Radeon HD 7470M
Radeon HD 6490M
Radeon HD 8400
Mali-T880 MP4
GeForce GT 520MX
Radeon HD 7520G
GeForce GT 325M
GeForce Go 7800 GTX SLI
GeForce 8600M GT SLI
GeForce Go 7900 GS SLI
GeForce GT 130M
NVS 4200M
GeForce Go 7900 GTX
Quadro FX 2500M
Radeon HD 8350G
Radeon HD 8330
GeForce 9650M GS
GeForce 9650M GT
Radeon R3 (Mullins/Beema)
GeForce 8700M GT
Quadro FX 1700M
Quadro FX 1600M
GeForce Go 7800 GTX
GeForce Go 7900 GS
Quadro NVS 320M
Quadro FX 1500M
GeForce 9600M GT
GeForce GT 220M
Quadro FX 770M
GeForce GT 120M
Radeon HD 7450M
GeForce 610M
GeForce 705M
Mali-T760 MP6
Radeon HD 6470M
FirePro M3900 *
GeForce GT 520M
Radeon HD 7420G
Mobility Radeon HD 3670
Mobility FireGL V5725
PowerVR GX6450
Adreno 420
HD Graphics (Haswell)
Radeon HD 6520G
Radeon HD 8310G *
GeForce 320M
GeForce GT 320M
Mobility Radeon HD 2600 XT
Mobility Radeon X1900
Mobility Radeon X1800XT
Mobility Radeon X1800
GeForce Go 6800 Ultra
GeForce Go 7800
GeForce 9600M GS
GeForce 9500M GS
Radeon HD 7400G
Radeon HD 6480G *
Mobility Radeon HD 2700
GeForce GT 415M
GeForce 410M
Radeon HD 7370M
Adreno 418
HD Graphics (Cherry Trail)
Radeon HD 6370M
Radeon HD 8280
Mobility Radeon HD 5470
Radeon HD 6450M
Radeon HD 7430M *
Mobility Radeon HD 3650
Mobility FireGL V5700
Mobility Radeon HD 5145
Mobility Radeon HD 545v
Radeon R6 (Mullins) *
Radeon HD 8240
Radeon HD 8250
Mobility Radeon HD 4570
Quadro FX 570M
Mobility Radeon HD 5450 *
Radeon R2 (Mullins/Beema) *
GeForce 8600M GT
Mobility Radeon HD 2600
HD Graphics 3000
Quadro FX 380M
GeForce 310M
GeForce G210M
NVS 3100M
GeForce 405M
GeForce 315M
GeForce Go 7600 GT
GeForce 9500M G
GeForce 8600M GS
NVS 2100M
GeForce Go 7700
GeForce Go 6800
Quadro FX Go 1400
Mobility Radeon X800XT
Radeon HD 6430M *
Radeon HD 6380G *
Mobility Radeon HD 5430
Radeon HD 8210
Mobility Radeon HD 540v
Mobility Radeon HD 4550
HD Graphics 2500
HD Graphics (Ivy Bridge)
Quadro NVS 310
Radeon HD 7350M *
Radeon HD 6350M *
Mobility Radeon HD 4530
Mobility Radeon HD 4350
Radeon HD 4350
GeForce 305M
Mobility Radeon X1700
Mobility FireGL V5250
Mobility Radeon X2500
GeForce Go 7600
Quadro NVS 300M
Mobility Radeon X800
Mobility Radeon X1600
Mobility FireGL V5200
Mobility Radeon 9800
GeForce Go 6600
Mobility Radeon X1450
Mobility Radeon X700
Mobility FireGL V5000
GeForce G 110M
Quadro NVS 295
Radeon HD 6330M *
Mobility Radeon HD 4330
GeForce 8400M GT
Quadro NVS 140M
HD Graphics 2000
GeForce 9500M GE *
GeForce 9400M (G) / ION (LE)
HD Graphics (Sandy Bridge) *
Adreno 330
PowerVR G6430
PowerVR GX6250
PowerVR G6400
HD Graphics (Bay Trail)
Mali-T628 MP6
Mali-T760 MP4
Chrome9HD *
Radeon HD 7340
Radeon HD 6320 *
Radeon HD 7310
Radeon HD 6310 *
Radeon HD 8180
Mobility Radeon HD 3470
GeForce 9300M G
ION 2 *
GeForce 9300M GS
Quadro FX 370M
Quadro NVS 160M
GeForce 9200M GS
Mobility Radeon HD 3450
Mobility Radeon HD 3430
Mobility Radeon HD 3410
Mobility Radeon HD 2400 XT
Radeon HD 4270
Radeon HD 4250
Radeon HD 7290 *
Radeon HD 6290 *
Radeon HD 4200
Graphics Media Accelerator (GMA) HD Graphics
Radeon HD 6250
Quadro NVS 150M
Quadro FX 360M
Mobility Radeon X1350
Mobility Radeon X1400
GeForce 9100M G
GeForce 8400M GS
Quadro NVS 135M
Mobility Radeon HD 2400
Radeon HD 3200
Radeon HD 4225 *
Radeon HD 4100 *
SGX554MP4
Mali-T628 MP4
Mobility Radeon HD 3400 *
Radeon HD 3100
GeForce 8400M G
Mali-T860 MP2
Quadro NVS 130M
GeForce 8200M G
Graphics Media Accelerator (GMA) 4700MHD
Graphics Media Accelerator (GMA) 4500MHD
Graphics Media Accelerator (GMA) 4500M
Mali-T604 MP4
GeForce Go 7400
Quadro FX 350M
Quadro NVS 120M
GeForce Go 7300
GeForce Tegra 4 *
PowerVR G6200
Adreno 405 *
Quadro NVS 110M
Mobility Radeon X600
Mobility FireGL V3200
Mobility FireGL V3100
Mobility Radeon HD X2300
Mobility Radeon 9700
Mobility FireGL T2e
Mobility Radeon X1300
GeForce4 4200 Go
Mobility Radeon 9600
Mobility FireGL T2
Mobility Radeon 9550
GeForce Go 7200
GeForce Go 6400
Mobility Radeon X300
GeForce Go 6250
GeForce Go 6200
GeForce FX Go 5700
Quadro FX Go 1000
GeForce FX Go 5600 / 5650
Radeon Xpress X1270
Radeon Xpress X1250
Radeon Xpress X1200
Graphics Media Accelerator (GMA) X3100
Mali-T624
Adreno 320 *
Mali-T760 MP2
Mali-T720 MP4
Mali-450 MP4
Graphics Media Accelerator (GMA) 3650 *
GeForce 7190M *
GeForce 7150M
Radeon Xpress 1150
GeForce Go 6150
GeForce Go 6100
GeForce 7000M
Graphics Media Accelerator (GMA) 3600 *
Mobility Radeon 9200
Mobility FireGL 9000
GeForce FX Go 5200
Mobility Radeon 9000
GeForce 4 488 Go
GeForce 4 460 Go
GeForce 4 440 Go
GeForce 4 420 Go
Graphics Media Accelerator (GMA) 3150
Graphics Media Accelerator (GMA) 950
SGX545 SGX544MP2 SGX543MP2 *
Mali-T720 MP2
Mali-T720
Adreno 302 304 305 306
Mobility Radeon 7500
Mobility FireGL 7800
Graphics Media Accelerator (GMA) 900
Radeon Xpress 200M
Radeon Xpress 1100
Mirage 3+ 672MX
Mirage 3 671MX
Mali-400 MP4 *
GeForce ULP (Tegra 3) *
VideoCore-IV *
Adreno 220 225*
Vivante GC1000+ Dual-Core
Mali-400 MP2 *
GeForce ULP (Tegra 2) *
Graphics Media Accelerator (GMA) 600 *
SGX540 *
Graphics Media Accelerator (GMA) 500
Adreno 205 *
Adreno 203 *
GC800 *
SGX535
SGX531
SGX530
Adreno 200 *
Mali-200 *
GeForce 3 Go *
GeForce 2 Go 200 / 100
Mobility Radeon 9100 IGP
Mobility Radeon 9000 IGP
Mobility Radeon M7
Mobility Radeon M6
Chrome9 HC
Extreme Graphics 2
Mobility Radeon 7000 IGP
Radeon IGP 340M
Radeon IGP 320M
S3G UniChrome Pro II
S3G UniChrome Pro
Castle Rock
Mirage 2 M760
Mirage M661FX
S3 Graphics ProSavage8
Mobility 128 M3
SM502 *
</pre>
Kernel-space drivers like '''radeon''' (older AMD driver for older GPUs), '''amdgpu''' (newer driver for newer GPUs, allows using a few new features), i915, nouveau and a few others. They are what handles the gory details of talking to the GPU itself (writing to proper registers, handling its memory directly, configuring outputs, and so on). Unfortunately most of what they're exposing can be only consumed by a single user of that GPU, which is why we need...
DRM and DRI (Direct Rendering Manager/Infrastructure) controls access to the GPUs, provides interfaces for talking to the GPU concurrently by multiple apps at once (without them breaking each other) and lets the system perform the most basic tasks like setting proper resolution and such if no userspace apps understand how to talk to the GPU exposed. DRI and DRM expose the GPU interfaces mostly as-is, not in a "vendor-neutral" portable way - if you don't have an application developed specifically for a GPU you have, it won't work.
"let's create a vendor-neutral interface for graphics so that apps can ignore the GPU-specific bits and get right to the drawing!" - which is what OpenGL is. User-space drivers implement the OpenGL specification and expose it as an OpenGL library to apps (like games, browsers, etc) instead of the GPU. Mesa is the most popular collection of open-source user-space drivers and contains a few user-space drivers for different GPU families: '''radeonsi''' for most modern AMD GPUs (and '''r600g''', r300g and others for older ones), '''i915/i965''' for old/new Intel GPUs and '''nouveau''' for Nvidia GPUs.
There's also Gallium, which is a bunch of utilities and common code shared among these drivers - if certain things can be done once and work everywhere, they'll land in Gallium and benefit all the drivers. Most Mesa drivers use Gallium (radeonsi, nouveau, software renderers), some don't (intel after gma950).
Displaying 2D windows supports device-specific 2D drivers as well, but nowadays most of these are no longer needed as the modesetting can handle most hardware on its own. As the DRM/DRI got some additional interfaces for what used to be hardware-specific (setting resolutions, refresh rates, etc) and software requiring accelerated 2D drawing was optimized OpenGL-based renderers, dedicated 2D acceleration is slowly going away. Since around 2012, the 3D part of the graphics card deals with 2D operations.
Modern GPUs can also decode video!? There's VDPAU (NVIDIA & AMD GPUs) and VA-API (AMD & Intel GPUs) that can also talk to the GPU exposed via DRM/DRI and issue proper commands to decode/encode a given video stream. Those drivers are GPU-specific too.
So let's say you have some example GPUs, here's how example stacks could look like:
* AMD Radeon HD8750: amdgpu -> DRM/DRI -> Mesa (radeonsi)
* AMD Radeon HD4850: radeon kernel driver -> DRM/DRI -> Mesa (r600g) -> games/apps/etc.
* NVIDIA GeForce 460: nouveau kernel driver -> DRM/DRI -> Mesa (nouveau) -> games/apps.
* Intel GMA950: i915 kernel driver -> DRM/DRI -> Mesa (i945) -> games/apps.
{| class="wikitable sortable" width="90%"
! width="15%" | Description
! width="15%" | Analog Output
! width="15%" | Digital Output
! width="15%" | Laptop LCD
! width=30%" | Comments
|-
| <!--Description-->Fudomi GC888A
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->1080p 100in throw projector
|-
| <!--Description-->Vamvo VF320 (720P)
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->720p 90in
|-
| <!--Description-->Happrun H1
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->1080p 90in
|-
| <!--Description-->Umbolite Magcubic HIPPUS HY320 Mini
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->720p 100in
|-
| <!--Description-->Zentality A10 Plus
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->720p 110in
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->nexigo nova mini
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->nebula mars 3
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->epson lifestudio flex plus portable projector
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->dangbei freedo
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->benq gv50
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
Unless your computer uses a Firewire chipset manufactured by Texas Instruments, FireWire interfaces are likely to act buggy.
AROS is unlikely to ever support FireWire.
Bluetooth is similarly unlikely to be ever supported due to huge cost to be certified.
No, x86 PCMCIA card.resource at the moment. Writing card.resource would be a similar amount of work to writing a typical driver. However, it might be complicated by having to support a variety of PCMCIA-controller chipsets like TI PCI1225, PCI1410, PCI1420, 1450, PCIxx12 and O2, etc. m68k card.resource does not really have many higher level functions, most functions are really simple or poke Gayle registers directly. only exception is CopyTuple(). Amiga card.resource has one significant flaw: it's single-unit. would need card.resource and pccard.library. There was talk in the past of designing a new API for PCMCIA because card.resource only supports one slot, but since most modern laptops only have one slot anyway, I think it might be worthwhile to implement card.resource as-is (at least as a first step). pccard.library would be trivial to port. So, a new API is needed.
13r6gwapfeo8nvepobvk3zlkwvvckv2
4640135
4640129
2026-06-13T15:33:13Z
Jeff1138
301139
4640135
wikitext
text/x-wiki
Google translation into [http://translate.google.com/translate?hl=en&sl=auto&tl=de&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support German], [http://translate.google.com/translate?hl=en&sl=auto&tl=fr&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support French], [http://translate.google.com/translate?hl=en&sl=auto&tl=nl&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Dutch], [http://translate.google.com/translate?hl=en&sl=auto&tl=it&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Italian], [http://translate.google.com/translate?hl=en&sl=auto&tl=es&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Spanish], [http://translate.google.com/translate?hl=en&sl=auto&tl=hi&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Hindi],
[http://translate.google.com/translate?hl=en&sl=auto&tl=zh-CN&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Chinese Simplified],
[http://translate.google.com/translate?hl=en&sl=auto&tl=pl&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Polish],
[http://translate.google.com/translate?hl=en&sl=auto&tl=ru&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Russian],
{{ArosNav}}
[[#Audio Chipsets]]
[[#Graphic GFX Chipsets]]
[[#Rough gfx comparison]]
[[#]]
==x86 Native Environment==
AROS should run on almost any i386 PC hardware so long as the CPU is newer than an i486, and has a "Floating Point Unit (FPU)". Ideally around 700Mhz and above with at least 256MB of memory is recommended for desktops and around 1GHz and at least 256MB for laptops/notebooks/netbooks. For web browsing, etc above 1GB is usually needed and offers the option to run web browsers, media players and other hard disk heavy usage from RAM: disk.
Motherboards supported
* Most Intel mobos are supported (Skt 775 is ok but newer is better) - additional pci / pci-e cards may be needed for networking, audio, etc
* AMD based socket 939 am2 am2+ am3+, fusion and am4 ryzen based systems work but additional pci / pci-e cards may be needed
Supported graphics cards (gfx)
* Nvidia 2D and 3D 2005-2017.
64bit AROS Nouveau covers '''2D''' 8xxxgs and higher to GTX 900s and '''3D''' from .
32bit AROS supports '''2D''' from TNT through to fermi gtx5xx and '''3D''' acceleration fx5xxx to gtx4xx.
* Intel GMA 2D and 3D 2006-2009.
'''2D''' for many old netbooks and motherboards. '''3D''' for many early netbooks and motherboards
* AMD/ATI 2D only and '''no 3D'''. 1999-2005.
Desktop ie external monitor support only (no laptop internal support) for very early Radeon 7000 through to x600. Experimental 2D version for up to HD3xxx came later
* VESA 2D fallback modes for all graphic cards (GPUs) and with [http://www.youtube.com/watch?v=HKCHZFYj9Kk screen dragging].
It's worth noting however that support isn't guaranteed. Nor will potential power of a card reflect its performance under AROS.
Sound wise there are
* HDaudio support for onboard intel and AMD netbooks, ultrabooks, notebooks and motherboards (2005 to 2020)
* some AC97 codec support for very old motherboards and laptops (ie pre 2004)
* PCI and some PCI-E C-Media CMI8738 for desktop plugin cards
* PCI Creative Soundblaster EMU10K1 cards [http://amigaworld.net/modules/news/article.php?storyid=2512 SBLive]
* PCI semi professional some early VIA Envy24 desktop sound cards
* PCI Sound Blaster 128 aka SB16
Supported [http://en.wikibooks.org/wiki/Aros/Platforms/x86_Network_support network] which could be desktop, laptop, etc
* PCI-E Realtek rtl8169 which also includes the rtl8111 and rtl8110
* PCI Realtek rtl8139 and includes rtl8101 and rtl8100
* PCI intel pro100
* Broadcom 44xx 10/100 integrated in laptops around 2005
* VIA 10/100
* 3com Etherlink 10/100
* Realtek rtl8029 10mbit
Wireless wifi
* atheros 5000 wireless
*realtek 8187 usb
It is very hard to recommend a completely supported motherboard because as soon as newer motherboards arrive so their features change subtly, often introducing non supported parts like ethernet and audio. It is a moving target.
* mini-itx motherboard will only get you 1 pci or pci-e slot
* micro mATX or uATX will have more, typically 2 pci-e or pci slots which helps if any onboard features are not supported.
* full atx will have more slots available
'''N.B''' It is frustrating when a piece of hardware is not supported. Hardware documentation can run to over 100 pages and a lot of hardware do not have any public documentation anyway. Chips from different manufacturers for sound, graphics, SATA, etc. vary just as much, unless they follow a standard such as [https://github.com/acidanthera/AppleALC/wiki/Supported-codecs HDAudio codecs], AHCI etc.
Coding drivers is a far cry from Hello World programs or even a port of existing software. If you do actually want to try then get a hold of documentation on the relevant hardware and start there. Alternatively you could try to find some '''BSD''', MIT or MPL licence drivers as a point of reference. Please , do not think you can just adapt strings in a driver for different strings, it does not work that way. You will '''need''' to start from scratch for each new bit of hardware. Device driver programming require '''embedded''' skills, like manipulation of bits within registers, good debugging skills, dealing with interrupts, lots of patience, etc.
The following specific chipsets and drivers are also available - use Tools/PCITool to confirm Vendor and Product IDs - Please let us know any mistakes or any information to be added, to this General Chat list on [https://arosworld.org/ AROS World]
: Brief Timeline
: 2000-12-06 HIDD first mouse.hidd completed ([http://msaros.blogspot.com/ Michal Schulz])
: 2001-03-31 BOOT first boot from floppy disk with IDE device
: 2001-10-30 BOOT first cd bootable version
: 2002-01-27 HIDD first pci.hidd added (Michal Schulz)
: 2002-04-13 BOOT software HDToolBox added ()
: 2003-04-03 HIDD vesa2.hidd graphic modes added ()
: 2004-03-08 HIDD new pci and ata (pata) devices worked on (Michal Schulz)
: 2004-03-17 HIDD nVidia 2D driver appears (Michal Schulz)
: 2005-01-05 AHI AHI v6 audio system ported (Martin Blom)
: 2005-01-06 AHI SBLive SoundBlaster Live driver ported (Georg Steger)
: 2005-02-04 AHI AC97 playback only driver added (Michal Schulz)
: 2005-06-27 NIC amiTCP stack ported with 3com, NE2000, prism2 drivers (Neil Cafferkey)
: 2005-08-25 NIC nForce2 support added (Michal Schulz)
: 2005-12-24 NIC Intel Pro100 network driver added (Neil Cafferkey)
: 2006-03-25 HIDD ATI radeon 2D driver added (Michal Schulz)
: 2007-03-06 HIDD vesa 1.0 video driver added (Pavel Fedin)
: 2007-03-08 HIDD dospackets and FAT filesystem (Rob Norris)
: 2007-03-21 HIDD usb initial commit (Michal Schulz)
: 2007-10-01 BOOT Installer added (Neil Cafferkey)
: 2007-11-29 PORT 64bit x86 added (Michal Schulz)
: 2008-04-12 BOOT GRUB2 added (Alain Greppin and Nick Andrews)
: 2008-08-26 NIC RTL8139 added ([http://kalamatee.blogspot.com/ Nick Andrews])
: 2008-10-22 PORT to SAM440ep (ppc) (Michal Schulz)
: 2009-02-25 PORT to efika (ppc) (Michal Schulz)
: 2009-05-18 HIDD poseidon usb2.0 stack ported to AROS (Chris Hodges)
: 2009-11-18 NIC RTL8169 network driver arrived (Nick Andrews and [http://pagesperso-orange.fr/franck.charlet/oldnews.html Franck Charlet])
: 2009-12-23 AHI HDAudio based Atom CPU and netbook audio driver arrived (Davy Wentzler)
: 2010-03-09 BOOT USB pendrive stick booting available (Neil Cafferkey)
: 2010-05-26 HIDD Intel GMA900 2D graphics card support (Michal Schulz)
: 2010-09-03 NIC Wireless PCI based NIC arrived (Neil Cafferkey)
: 2011-04-30 HIDD Nvidia 2D and 3D nouveau graphics card support (Deadwood)
: 2011-08-30 HIDD Radeon 2D enhanced AMD driver arrives (Bearsoft)
: 2011-09-17 NIC Wireless USB realtek arrives (Neil Cafferkey)
: 2011-12-09 HIDD Intel 945G 3D Gallium graphics support (Sami)
: 2013-02-25 AHI AC97 VIA 686 audio support (Davy Wentzler and Neil Cafferkey)
: 2013-03-31 PORT early Raspberry PI native support (Nik Andrews)
: 2014-01-16 AHI Envy24 audio chipset support (Davy Wentzler and Neil Cafferkey)
: 2017-02-17 PORT Symmetric MultiProcessing smp added for x86 64bit (Michal Schulz)
: 2018-10-20 PORT Big Endian ARM
: 2021-11-26 NIC Broadcom 44xx ethernet (Neil Cafferkey)
: 2023-01-12 NIC Nvidia MCP61 ethernet (Neil Cafferkey)
: 2025-11 HIDD xHCI USB3 and isoc (Nik Andrews)
[[#top|...to the top]]
===Audio Chipsets===
'''If sound beeps in AHI prefs after Music set then some support is there. Select more than one channel for multiple audio streams, set frequency up to 44 kHz or higher and set the volume if not already set. Ensure you set the music unit 0 to 3 which allows the extra features of the audio card like microphone, line-out, etc).'''
====1996-2000 sb128.audio aka SB16 PCI====
*2021 5.27
as per CREATIVE's website, the model number is the first two digits on the front and first two digits on the back. my card says CT4810 and 161TK110B 995; this translates to CT4816 as the model.
The original AudioPCI 3000 card with the ES1370 had a master clock crystal for 44.1 kHz (22.5792 MHz), used an AKM codec (AK4531, non-AC97) and had 4 channel output; Creative later modified the design with a crystal for 48 kHz (24.576 MHz) and Sigmatel AC97 codec (a CT4700 SB128 with a CT5507 chip, AK4531, 22.5792 MHz crystal and TDA7360 speaker power amp). The issue with these cards involved never quite eliminate the effects of resampling on the 64V, it also shows signs of undersized coupling caps. These Ensoniq cards automatically engaged headphone amplifier (with a 4565 opamp).
Porting involved [http://repo.or.cz/w/AROS.git/commit/b60abd12967144a844980c422ea9e99c056eabca 40897], [http://repo.or.cz/w/AROS.git/commit/b7d6511fca6430a63fbaaa390b4f51bf0203a460 40898 configure], [http://repo.or.cz/w/AROS.git/commit/f51034cd22759a4ec3a2547bddb3a7169d956eaa 40900 bugs], [http://repo.or.cz/w/AROS.git/commit/4f43fc38e3489ea45d12b7b5ba6fff50b69c5746 40901 further bugs], [http://repo.or.cz/w/AROS.git/commit/d23c78aec75f049484b6916d27b6804ce858bb2c 40913 memory IO fixes], [http://repo.or.cz/w/AROS.git/commit/d256860fe3035016952e88d143c6f2611997f2f3 40914 irq fix].
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| Ensoniq AudioPCI 1000
| 0x1274
| 0x5000
|
| {{unk}}
| {{unk}}
| untested - es1370 (u?) AK4531 (u?)
|-
| Ensoniq AudioPCI
| 0x1274
| 0x5000
| 0x00
| {{yes}}
| {{maybe}}
|
|-
| CT4700 Sound Blaster PCI 64 (audioPCI 3000)
| 0x1274
| 0x5000
| 0x7c
| {{yes}}
| {{maybe}}
| works - opamp JRC4565(u?) [http://en.wikipedia.org/wiki/Ensoniq_ES1370 es1370] (u?)
|-
| CT4750 Sound Blaster 64/PCI
|
|
|
| {{unk}}
| {{unk}}
| untested - 4565-1056W (u1) stac9708t(u2) [http://arstechnica.com/civis/viewtopic.php?f=6&t=916891 ct5880-dcq] (u3) 24wc012 (u4)
|-
| CT4751 (SB128PCI)
| 0x1274
| 0x8001
|
| {{unk}}
| {{unk}}
| untested - [http://en.wikipedia.org/wiki/Sound_Blaster#Ensoniq_AudioPCI-based_cards es1371] (u?)
|-
| CT4810 Creative AudioPCI64V
| 0x1274
| 0x1371
| 0x06
| {{yes}}
| {{maybe}}
| works
|-
| CT4811 (SB Vibra 128)
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4812 (Vibra 128)
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4813
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4815
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4816 es1373 (vibra 128)
|
|
|
| {{unk}}
| {{unk}}
| untested but this card has creative's ES1373 as the main chip(U1). it is also different from the other CT4810 (vibra128) in that it does not have a second chip in U2 position. Also there is only one jumper JP1 (2X3).
|-
| CT5801 HP
|
|
|
| {{unk}}
| {{unk}}
| untested - es1373 (u3)
|-
| CT5803 Gateway
| 0x1274
| 0x1371
| 0x08
| {{yes}}
| {{maybe}}
| works 4565-0005b jrc (u1) 4297a-jq ztae0c0002 (u2) es1373 (u3)
|-
| CT4740
| 0x1274
| 0x1371
| 0x08
| {{yes}}
| {{yes}}
|
|-
| CT5805 Compaq OEM Premier Sound Presario 7
|
|
|
| {{unk}}
| {{unk}}
| untested - es1373 (u3)
|-
| CT5806 (Sound Blaster AudioPCI 128D)
|
|
|
| {{unk}}
| {{unk}}
| untested - 4297A-JO EP (u?) ZTAPWC9933 (u2) es1373 (u3)
|-
| CT5807 Dell OEM Dimension 8100
|
|
|
| {{unk}}
| {{unk}}
| untested - es1373 (u?)
|-
| CT5808
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4730 Sound Blaster AudioPCI 64V Ectiva EV1938
| 0x1102
| 0x8938
|
| {{unk}}
| {{unk}}
| untested
|-
| CT5880 on various motherboards
| 0x1274
| 0x5880
|
| {{unk}}
| {{unk}}
| untested [http://www.xbitlabs.com/articles/mainboards/display/ga-6rx.html Gigabyte GA-6RX] (VIA ApolloPro 266 2001], Gigabyte GA-6VM7-4E mobo, [http://active-hardware.com/english/reviews/mainboard/ga-7vtx.htm Gigabyte GA-7VTX] (KT266 2001), Gigabyte [http://www.amdboard.com/gigabytega7vtxh.html GA-7VTXH] (KT266A 2001), [http://www.amdboard.com/gigabytega7vrxp.html Gigabyte 7VRXP] mobo (KT333 2002), MSI MS-6309, MS-6318, MS-6337 (815E Pro), MS-6339 (850Pro) and MS-6340, PCChips Motherboard M571 TXPRO, Soltek SL-65ME+,
|-
| VMware Virtual Workstation(TM)
| 0x1274
| 0x1371
| 0x02
| {{Yes|but not Hi-Fi modes}}
| {{maybe}}
| works
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
<pre>
Revision 0x04 = ES1371 REV_ES1373_A
Revision 0x06 = ES1371 REV_ES1373_B
Revision 0x07 = ES1371 REV_CT5880_A
Revision 0x02 = CT5880 REV_CT5880_C
Revision 0x03 = CT5880 REV_CT5880_D
Revision 0x04 = CT5880 REV_CT5880_E
Revision 0x09 = ES1371 REV_ES1371_B
Revision 0x00 = EV1938 REV_EV1938_A
Revision 0x08 = ES1371 REV_ES1373_8
</pre>
====1999-2001 via-ac97.audio====
*2021 5.10
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| <!--Description-->694X with 686A KT133 PM133 or 693A with VT8231
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3058
| <!--Revision-->
| <!--Playback-->{{Yes| }} redirects earphones correctly
| <!--Recording-->{{Yes| }}
| <!--Comments-->audio controller works but depends on the underlying invisible codec used see AC97 section
|-
| <!--Description-->686B KT133A with VT8231
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3058
| <!--Revision-->0x50
| <!--Playback-->{{Yes|}} reroutes ear pieces right
| <!--Recording-->{{Yes|}}
| <!--Comments-->audio controller works but depends on the underlying codec used see AC97 section below
|-
| <!--Description-->686C
| <!--Vendor ID-->0x1106
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->untested
|-
| <!--Description-->KM266 or KT266 with VT8233, KT266A with VT8233A, VT8233C
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3059
| <!--Revision-->0x10
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->KM333 KT333 with VT8235
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3059
| <!--Revision-->0x30
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
| <!--Description-->KM400 KT400 with VT8237, KT600 with VT8237R,
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3059
| <!--Revision-->0x40 0x50 0x60
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
|}
====1998-2003 emu10kx.audio - Creative Labs SoundBlaster Live! and Audigy====
*2021 6.5
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| PCI512 CT4790 (emu10k1)
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested (1st Gen)
|-
| Live CT4620
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Live CT4760
| 0x1102
| 0x0002
| 0x07
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| playback works
|-
| Live Value CT4670
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| works plays stereo (2nd Gen)
|-
| Live Value DELL CT4780
| 0x1102
| 0x0002
| 0x06
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| plays/records stereo - untested 4.1mode
|-
| Live Value Compaq CT4830
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{Maybe}}
| <!--Recording--> {{unk}}
| not working
|-
| Live Value CT4831
| 0x1102
| 0x0002
| 0x00
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Live Value CT4832
| 0x1102
| 0x0002
| 0x07
| <!--Playback--> {{yes}}
| <!--Recording--> {{partial|Line-In only}}
| works
|-
| Live Value CT4832
| 0x1102
| 0x0002
| 0x08
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| works
|-
| Live Value HP CT4870
| 0x1102
| 0x0002
|
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| Works
|-
| Live Value Gateway CT4871
| 0x1102
| 0x0002
|
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Live! Platinum 5.1 SB0060
| 0x1102
| 0x0002
| 0x00
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
| plays audio/records, untested 5.1 (3rd Gen)
|-
| Live 5.1 SB0100 -SFF
| 0x1102
| 0x0002
| 0x00
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| works
|-
| Live 5.1 Player SB0220
| 0x1102
| 0x0002
| 0x0a
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
| plays audio/records stereo, untested 5.1
|-
| Live 5.1 Digital SB0228
| 0x1102
| 0x0002
| 0x0a
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
| working
|-
| Audigy SB0090 (emu10k2)
| 0x1102
| 0x0004
|
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| <!--Description-->Audigy SB0230
| <!--Vendor ID-->0x1102
| <!--Product ID-->0x0004
| <!--Revision-->0x03
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Yes|Mic only}}
| <!--Comments-->5th Dec 2012 - untested optical tos link. contains also IEEE1394/Firewire (untested)
|-
| Audigy 2 Platinum 6.1 SB0240 SB0250 EMU10K2.5
| 0x1102
| 0x0004
| 0x04
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| works
|-
| Audigy 2 PRO SB0280 EMU10K2.5
| 0x1102
| 0x0004
|
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Audigy 2 ZS SB0350
| 0x1102
| 0x0004
| 0x04
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
|
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| Live 5.1 DELL SB0200 SB0203 emu10kx
| 0x1102
| 0x0006
| 0x0
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
|
|-
| Live 24bit SB0410
| 0x1102
| 0x0007
| 0x
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Live 24bit DELL SB0413
| 0x1102
| 0x0007
| 0x
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy LS SB0310
| 0x1102
| 0x0007
| 0x0
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy SE 7.1 SB0570
| 0x1102
| 0x0007
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 2 ZS SB0320 SB0360 (PRO)
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 2 VALUE SB0400
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 4 VALUE SB0610
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 4 PRO SB0380
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| EMU E-MU 0404 PCI (not USB) EM8852
| 0x1102
| 0x000
| 0x0
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver but linux support needs firmware
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
the green jack is for the main speaker pair AND headphones, so manual switching will be required
If your card is wired for the "AC97" standard, then it's up to your headphone jack to switch the green speaker output in and out
the headphone jack has Normally-closed contacts that will open on insertion, which breaks the signal path back to the sound card (FP_RETURN)
====2000-2010 cmi8738.audio - C-Media====
*2021 5.20
;Read [http://amigaworld.net/modules/news/article.php?storyid=2512 more] and imported on [http://repo.or.cz/w/AROS.git/commit/aff741d60160c6a9d7d39c9e004a25ea3aa13847 20th July 2011] and [http://alsa.opensrc.org/Cmipci alsa docs].
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| Audiotrak MAYA EX5
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| cmi8738-sx 4ch
| 0x13f6
| 0x0111
| 0x10
| <!--Playback-->
| <!--Recording-->
| untested
|-
| e3dx hsp56 CMedia 8738-sx 4ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| EDio SC3000D 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Genius SoundMaker Value PCI C3DX
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Guillemot Maxi Sound Muse
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Hercules Gamesurround Muse LT
| 0x13f6
| 0x0111
| 0x10
| <!--Playback--> {{yes}}
| <!--Recording--> {{no}}
|
|-
| Hercules Gamesurround Muse XL LT 5.1
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Inno audio extreme 5.1 cmi8738/lx pci 6ch
| 0x13f6
| 0x0111
| 0x
| <!--Playback-->
| <!--Recording-->
| untested
|-
| M-Audio (Midiman) DiO 2448
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Sabrent SBT-SP6C 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| StarTech PCISOUND4CH 8738sx 4ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Sweex SC012 CMI8738-lx 4ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Terratec 5.1 PCI
| 0x13f6
| 0x0111
| 0x10
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Terratec Aureon Fun 5.1
|
|
|
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| Has SPDIF
|-
| Trust Sound Expert Digital Surround 5.1 (cm8738-mx 6ch)
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Turtle Beach Riviera CMI8738-MX 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| XSonic CMI 8738 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->CMI8738 6ch PCI-E PCI Express version
| <!--Vendor ID-->0x13f6
| <!--Product ID-->0x0111
| <!--Revision-->0x10
| <!--Playback-->{{Yes|}}
| <!--Recording-->{{Maybe|}}
| <!--Comments-->Chinese based card with playback tested so far
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
====2001-2005 ac97.audio====
*6.4 27-12-2008
The AC97 chips were designed to be pinout interchangeable so that the sound support could change easily and quickly without motherboard redesigns
the green jack is for the main speaker pair AND headphones, so manual switching will be required
If your card is wired for the "AC97" standard, then it's up to your headphone jack to switch the green speaker output in and out, the headphone jack has Normally-closed contacts that will open on insertion, which breaks the signal path back to the sound card (FP_RETURN)
The ProductID and VendorID are for the audio controller only - the important additional codec is '''NOT''' so easily identified.
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| <!--Description-->Avance Logic (now Realtek) ALC100 and ALC101 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->ALC200 and ALC201 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->ALC201A and ALC202 and ALC202A codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->ALC650
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| <!--Comments-->most Nforce2 boards plays audio only - Abit NF7, Asus A7N8X, MSI K7N2, Epox 8RDA+, DFI
|-
| <!--Description-->ALC850 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{No}}
| <!--Comments-->no support for via P4P800 chipset on ASUS A8V-E SE Deluxe mobo - ICaros 1.3
|-
| <!--Description-->Realtek ALC653 codec and ALC655 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested Acorp 7NFU400
|-
| <!--Description-->Realtek ALC658 codec ALC658D
| <!--Vendor ID-->0x8080
| <!--Product ID-->0x24c5
| <!--Revision-->0x0
| <!--Playback-->{{Yes|Prefs Music and Units 0-3 set volume control - playback}}
| <!--Recording-->{{No}}
| <!--Comments-->MSI Motherboard on NB 22-09-2012
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->AD1881 SoundMAX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->Analog Devices first AC97
|-
| <!--Description-->AD1881A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Yes}}
| <!--Revision-->
| <!--Comments-->works with VIA Controller - untested Intel etc
|-
| <!--Description-->AD1881B
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1885 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{No}}
| <!--Comments-->Playback only with issues on D845HV but not working on MS-6367 because Units 0-3 have masked volume control
|-
| <!--Description-->AD1886
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1887
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->ADI AD1888 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{no}}
| <!--Recording-->{{No}}
| <!--Comments--> Icaros 1.51
|-
| <!--Description-->AD1980 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->AD1981A codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested IBM X30
|-
| <!--Description-->Analog Devices SoundMax(TM) AD1981B codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| <!--Comments-->plays back only on IBM T41 Thinkpad
|-
| <!--Description-->AD1985 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{No}}
| <!--Comments-->not working ahi prefs freezes on D865GLC mobo ([http://www.xbitlabs.com/articles/multimedia/display/int-sound2_3.html ]
|-
| <!--Description-->AD1986 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{No}}
| <!--Comments-->untested [http://uk.ts.fujitsu.com/rl/servicesupport/techsupport/Boards/Motherboards/Fujitsu/D1931/D1931.htm D1931] but works (Acer Aspire 3610 laptop)
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->Crystal Semiconductors CS4205, CS4202 codecs
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Cirrus Logic CrystalWare 4236
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->Cirrus Logic CrystalClear SoundFusion CS4297 CS4299 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested IBM T23
|-
| <!--Description-->conexant Cx20468-31 codec (id 30)
| <!--Vendor ID-->0x103c
| <!--Product ID-->0x3085
| <!--Revision-->
| <!--Playback-->{{No|AC97 appears in AHI Prefs}}
| <!--Recording-->{{No}}
| <!--Comments-->Tested AspireOS 1.8 on Gateway W322
|-
| <!--Description-->ESS Technology ES1921 AC'97 2.1
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->CMI 6501 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested on ASROCK SKT-AM2 AM2NF3-VSTA
|-
| <!--Description-->codec CMI9738
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->codec CMI9739
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->C-Media CMI 9739A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments--> untested on EPoX 8RDA3+
|-
| <!--Description-->CMedia CMI 9761A codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested ASRocK K7NF2-RAID
|-
| <!--Description-->C-Media CMI9880
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->National Semi conductor (now TI) LM4540, LM4543, LM4545, LM4546, LM4548, LM4549, LM4550 LM4560
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->STAC9708T codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->SigmaTel (now IDT) C-Major STAC 9460 (D/A only), 9461, 9462, 9463, 9200, 9202, 9250, 9251, 9220, 9221, 9223, 9750
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AKM (Asahi Kasei Microsystems) AK 4540, 4543, 4544A, 4545
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->codec VT1616 (VIA Six-TRAC Vinyl Audio)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->VIA VT1612, VT82C686
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->ESStech ESS ES1968 maestro-2
| <!--Vendor ID-->0x125d
| <!--Product ID-->0x1968
| <!--Revision-->0x
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->ESStech ESS ES1978 maestro2e
| <!--Vendor ID-->0x125d
| <!--Product ID-->0x1978
| <!--Revision-->0x
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->ESStech ESS ES1988 maestro3 allegro-1 codec
| <!--Vendor ID-->0x125d
| <!--Product ID-->0x1988
| <!--Revision-->0x12
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->Yamaha AC97 ymf-743 YMF752 YMF753 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->{{No}}
| <!--Comments-->untested ymf-753
|-
| <!--Description-->YMF724 YMF744 YMF-754 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| SIS 7018 / Trident 4dwave DX/NX / ALi 5451
| 0x1039 (0x1023 Trident)
| 0x7018 (0x2000 Trident DX) (0x2001 Trident NX)
| 0x02
| <!--Playback-->{{No}}
| <!--Recording-->{{No}}
| no support - introduced early 2000s
|-
| SIS 7012
| 0x1039
| 0x7012
|
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| working through 1 speaker only took over from SIS7018 (2002 onwards)
|-
| <!--Description-->Wolfson (now Cirrus Logic) WM9701, WM9701A (AC'97 1.03 spec), WM9703, WM9704 (AC'97 2.1), WM9705, WM9706, WM9707, WM9708
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->WM9709, WM9710, WM9711, WM9712, WM971
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->first Microsoft(TM) Xbox DAC sound chip (AC Link compliant D/A converter)
|-
| <!--Description-->Wolfson WM9717
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| Parallels
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested
|-
| VirtualBox
|
|
|
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| working
|-
| VirtualPC
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested
|-
| <!--Description-->Intel 82801AA Proxmox
| <!--Vendor ID-->0x8086
| <!--Product ID-->0x
| <!--Revision-->
| <!--Playback-->{{unk| }}
| <!--Recording-->{{unk| }}
| <!--Comments-->
|-
|}
====2005-20xx HDAUDIO.audio====
*6.36 2025 [https://github.com/aros-development-team/AROS/commit/43b33a9280b10963ca659de2cc3d1cf289b43a87 reset handler]
*6.35 202 []
*6.34 2019 AROS One 1.5 upwards
*6.29 2018
*6.27 2017 update
*6.25 2014 used for most Icaros 2.x
*6.20 July 2012
*6.17 Nov 2011
*6.15 Jun 2011
*[http://www.clusteruk.com/SitePortalPage.aspx?siteid=1&did=109 6.13] Sep 2010
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="5%" |Vendor ID
! width="5%" |Product ID
! width="5%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| <!--Description-->ALC260
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| <!--Description-->ALC262
* ALC262-VD2-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->LQFP-48
|-
| ALC268 codec
| 0x
| 0x
| 0x
| <!--Playback-->{{Yes|Version 6.17 Acer AOA110 and AOA150 netbooks), works (Dell Mini Inspiron 9 and 10v, }}
| <!--Recording-->{{Yes|Version 6.17 remove QUERY and select 'Mic 1' as input. Tested with 6.15 as well using QuickRecord and AE 4.0.23 under Icaros 1.4.}}
| <!--Comments-->AHI UNITS and Music are set to: hdaudio:HiFi 16 bit stereo++ / Frequency 48000 Hz, Volume +0.0 dB. The hdaudio.config in SYS:Prefs/Env-Archive is WITHOUT the QUERY-line. After changing and saving the config-file turn off and start again the computer. Switch from internal loudspeaker to headphone you must turn off the music before plug in the headphone-cable, otherwise there is no output on the socket. Back from line-out to internal speakers it is the same.
|-
| [http://blog.foool.net/wp-content/uploads/linuxdocs/sound.pdf Linux docs ALC269]
* ALC269Q-GR
* ALC269QSRS-GR
* ALC269W-GR
| 0x
| 0x
| 0x
| <!--Playback-->{{Maybe| }}
| <!--Recording-->{{Unk| }}
| <!--Comments-->TQFP 48 pin Power IC Chip From [https://patchwork.kernel.org/project/alsa-devel/patch/1408118123-15849-1-git-send-email-tiwai@suse.de/ ALC269 & co have many vendor-specific setups with COEF verbs, result in the codec stalling]
|-
| [http://www.alsa-project.org/db/?f=0321f8479fd670cd510f9912b1120fe7edcf2e07 ALC269VB]
* ALC269Q-VB5-GR
* ALC269Q-VB6-CG
* ALC269Q-VB6-GR
| 0x10ec
| 0x0269
| 0x100004, 0x100100, 0x100202
| <!--Playback-->{{Maybe|some versions work}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* v1 works Asus eee PC netbook 901/1000HA 1005HA/1008HA, 1001P,
* v2 maybe working Lenovo S9 S10 S10-2 S10-3 under HDAudio version 6.13
* v3 maybe dell wyse 7010
|-
| [http://alsa-project.org/db/?f=9c1746c5957b0ce72ff9cfffa312e97d14baf785 ALC269VC aka ALC3202]
* ALC269Q-VC2-GR
* ALC269Q-VC3-GR
| 0x10ec
| 0x0269
| 0x100203,
| <!--Playback-->{{Maybe|some versions work}}
| <!--Recording-->{{Unk}}
| <!--Comments-->SMT SMD QFN-48 -
* v1 unknown
* v2 unknown
* v3 x230, dell wyse,
|-
| ALC272
* ALC272-VA4-GR
| 0x10ec
| 0x0272
| 0x0
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Unk}}
|
* works Acer AOD150 and Acer AOD250 works [http://amigaworld.net/modules/newbb/viewtopic.php?topic_id=33755&forum=28#616910 Samsung NP-NC10], works Samsung NF210-A02] netbooks,
|-
| <!--Description-->ALC273
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| <!--Description-->ALC270
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC282
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x
| <!--Revision-->
| <!--Playback-->{{No|Version 6.17}}
| <!--Recording-->{{No|Version 6.17}}
| <!--Comments-->needs retest
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC660 ALC660-VD
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes| }}
| <!--Recording-->
| <!--Comments-->
* works asus F9s, F9e
* untested asus w7j, M51SN, A6Tc, A8Sr,
|-
| <!--Description-->ALC661-GR (2011)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| ALC662
| 0x1043
| 0x82a1
| 0x0
| <!--Playback-->{{Yes|Version 6.17 if QUERY added to top of hdaudio.config}}
| <!--Recording-->{{No|Version 6.17 not working for eee pc 900}}
|
* works Asus eee PC netbook 700/701/900, Atom 270 and 330 mobos, odd clicks (D410 NM10 PineTrail),
|-
| <!--Description-->[http://outpost.fr/rmaa/ALC663.htm ALC663]
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0861
| <!--Revision-->
| <!--Playback-->{{No|Version 6.13}}
| <!--Recording-->{{Unk}}
| <!--Comments-->not bad output like headphone amp part of the codec actually works well but messed up by undersized coupling capacitors to actually support such a low impedance
* not working Asus n50vn x71vn,
|-
| <!--Description-->ALC665
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC666
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC667
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC668
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC670
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->ALC880
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->some 915 and 925 chipset mobos
|-
| <!--Description-->ALC882M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| Realtek ALC883 ALC883-GR ALC883D-GR ALC883DTS-GR ALC883DD-GR codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe|some early versions work }}
| <!--Recording-->{{Unk| }}
| 2005 to 2007 HD Audio codec untested (Asus ),
|-
| Codec ALC885
| 0x10ec
| 0x0885
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
|-
| ALC888
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
|
|-
| ALC888s
* ALC888S-VD2-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}} MSI Wind U90/U100,
| <!--Recording-->{{Unk}}
| LQFP-48
|-
| ALC888b
| 0x8086
| 0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| untested (D510 NM10 Dual Core PineTrail mobo),
|-
| ALC888-VD
| 0x8086
| 0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| untested
|-
| ALC889A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes|works if QUERY added to the top of hdaudio.config in Prefs drawer/directory}}
| <!--Recording-->{{Unk}}
|
|-
| ALC889 Gr
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}} with crackles
| <!--Recording-->{{Unk}}
|
|-
| ALC889
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
| Tested with MSI H55 board
|-
| ALC887 ALC887-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
|
* working on ASUS P5KPL/EPU and Gigabyte GA-E350N-Win8 Rev1.0
|-
| ALC887-VD-CG
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0887
| <!--Revision-->0x100302
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}} Subsystem Id: 0x1458a002
|
|-
| ALC887-VD
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0887 0x1458
| <!--Revision-->0xa002
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{Unk}} index = 2
| ALC887 does not have any volume control ability on the mixer NIDs, so put the volume controls on the dac NIDs instead
* working with intermittent corrupting pop popping skipping stuttering sound issues MSI 760GM-P23 (FX),
* not working Gigabyte H61MA-D3V, AT3IONT-I Deluxe,
|-
| ALC887-VD2
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
| 3jacks
|-
| ALC887-VD2-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
|-
| ALC887-
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
|
|-
| ALC892-CG rev
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| 2011 48-pin LQFP Green package -
|-
| ALC892 ALC892-DTS-CG rev
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
| 2009 introduced
* works
* not working
* untested
|-
| ALC892 rev
| <!--Vendor ID-->0x0x10ec
| <!--Product ID-->0x0892
| <!--Revision-->0x100302
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| 2014
|-
| Realtek ALC886-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| LQFP-48
|-
| Codec ALC861 ALC861-VD
| 0x10ec
| <!--Product ID-->0x0663
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
|
* not working Toshiba Tecra A7
|-
| <!--Description-->ALC1200
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| ALC898
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
| not working
|-
| <!--Description-->ALC1500
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC3232 (aka ALC292)
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0292
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC3234 aka ALC255
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0255
| <!--Revision-->003
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC3287 aka ALC257
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes| }}
| <!--Recording-->{{no| }}
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->AD1882
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1883 HD Codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1884
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| Analog Devices SoundMAX AD1981
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| IBM Thinkpad T60,
|-
| AD1984 hp-m4 codec
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
* audio not working on Lenovo X61, Thinkpad T61,
|-
| AD1986
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
|
|-
| AD1988
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
|-
| <!--Description-->AD1988A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->Cirrus Logic CS4207
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->
| <!--Recording-->
|
|-
| <!--Description-->Cirrus Logic CS4208
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->
| <!--Recording-->
|
|-
| <!--Description-->Conexant CX20549 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe|very very very low volume}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested Fujitsu Amilo SI 1510 1520 no datasheet for the general public
|-
| <!--Description-->Conexant CX20549-12Z codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested HP 530
|-
| <!--Description-->Conexant CX20561 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* working lenovo x200s
* untested Lenovo Essential G555 Notebook, HP Pavilion dv6700,
|-
| <!--Description-->Conexant CX20582 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX2059x CX20590 CX20594-21Z codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX20585 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* working Lenovo Thinkpad T410,
|-
| <!--Description-->Conexant CX20672 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX20671 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX20751-21Z codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes| }}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| <!--Description-->Conexant CX11852 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX11880 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant after 2015 up to 2018 CX7501 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{no|no driver codec}}
| <!--Recording-->{{no|no driver codec}}
| <!--Comments-->Conexant bought by synaptics 2019
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->C-Media CMI9880 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->Gigabyte GA-8GPNXP
|-
| <!--Description-->Silicon Labs 3054
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| VIA 1708A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| untested,
|-
| VIA VT1708B
| <!--Vendor ID-->
| <!--Product ID-->
| 0x0010
| <!--Playback-->{{No|VIA PicoITX}}
| <!--Recording-->{{Unk}}
|
|-
| VIA 1708S
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
|
|-
| <!--Description-->VT2021 10ch
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->Gigabyte Z77MX-D3H, GA-H61M-S2H S2P,
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Creative CA0110-IBG
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->SigmaTel STAC 9220 9221 9223 8ch (7+1)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| <!--Comments-->ECS 945GCT/M-1333 (version 3.0),
|-
| IDT SigmaTec [http://explorer.cekli.com/articles/pdf/hd-audio STAC9227] /28/29/30 codec
| <!--Vendor ID-->0x8384
| <!--Product ID-->0x7626
| <!--Revision-->0x0002
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Unk}}
|
* works HP Compaq mini 110
* untested HP Pavilion HDX9000 CTO Notebook, Intel DG33TL mobo, Dell E520, Intel DP35DP mobo, Dell E6410 Laptop,
|-
| IDT (formerly SigmaTel) IDC STAC 9271/71D
| <!--Vendor ID-->0x8384
| <!--Product ID-->0x7626
| <!--Revision-->0x0002
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
|
|-
| <!--Description-->IDC STAC 9272 9273 9274
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->Intel D5400XS,
|-
| <!--Description-->IDT 92HD73C
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes}}
| <!--Recording-->
| <!--Comments-->headphones only Asus AT4NM10 mobo
|-
| <!--Description-->IDT 92HD75B
| <!--Vendor ID-->0x111d
| <!--Product ID-->0x7608
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* working [http://koti.kapsi.fi/jvaltane/aros/hdaudio/ HP Compaq Mini 700 Netbook - feedback required]
* untested HP Mini 5103 and 5102, HP Compaq 610, HP ProBook Laptop 4520s 4525s 6450b 6550b 6555b, HP EliteBook 2540p 2740p 8440p, Mobile Workstation 8540w 8740w, Pavilion NoteBook DV8,
|-
| <!--Description-->IDC 92HD81XX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC 92HD83XX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC STAC 92HD89XX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Wolfson (now Cirrus Logic) WM8850
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Wolfson WM8860
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->Intel High Definition Audio Revision 1.0. - 4-Channel DAC, 4-channel ADC. - DAC sampling
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
Using Prefs/AHI ensure you set the music unit and at least Units 0 (where most audio comes from) in top left drop down menu to HDaudio - HIFI in the section below. Set Units 1 or 2 to microphone or other outputs. Plus allow more than one channel for multiple audio streams and set frequency up to 44 kHz or higher on the right hand side of the ahi prefs. If sound beeps when you press the test button then all should be OK.
Output <- Codec <- Audio Controller (HDA) <-> Computer
codecs and exact hardware identifier. As mentioned above, HDA is only part of the work here, it gets the audio out of the main chipset in digital format (on a bus called I2S). This is not enough, there is another step needed which is routing that I2S signal to the output, converting it to actual audio, amplifying it, etc. This is handled by a separate chip called a "codec". Sometimes it is initialized by the BIOS, but this is not always the case.
Most audio drivers are made up of two parts a [http://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio.txt Controller + a Codec]. The ProductID and VendorID are for the audio controller only - the important additional codec is '''NOT''' so easily identified.
Some newer versions of codecs are missing at the moment.
Things to try if sound not working
* try to connect something to the audio jack, maybe it is not playing on internal speakers or vice versa
* make sure you try and select all music units e.g. unit0, unit1....
* even if PCI ID's are in Prefs/Env-Archive/HDaudio.config, this doesn't mean it is working, it is the codec that matters
* it might be internally muted
<pre>
add debug=memory to grub boot line - continue booting with F10
Open a shell
Tools/Debug/Bifteck > RAM:audio.txt
</pre>
or
<pre>
Open a shell
Tools/Debug/Sashimi > RAM:audio.txt
Run ahi prefs
Click test tone button
Stop sashimi with Ctrl-C
</pre>
If the boot sound is enabled, you have to use Bifteck to capture AHI debug output. In the GRUB menu, press E on your selected entry, then add "debug=memory" to the options (alongside ATA=, vesa= etc.). Then F10 or Ctrl-X to boot. Once booted, run Tools/Debug/Bifteck again.
or
* try adding QUERYD to the start of ENVARC:hdaudio.config file (also known as Prefs/Env-Archive/) ie. on the first line
* '''OR''' try removing QUERY and QUERYD from the start of the hdaudio.config file
* Reboot
* open a shell
* type: sys:tools/debug/sashimi > ram:debug.txt
* open ahi prefs
* select one of the audio modes - HIFI or otherwise
* press the 'test sound' button
* press ctrl-c in the shell
* post the results to Aros-World
The HD Audio standard was designed to be hardware pinout interchangeable so that the sound support could change easily and quickly. HDA is a standard around particular chips. Each kind of chip has a certain number of DACs and pins, and even the same chip could be hooked up in different ways on different motherboards. The chips are programmable and the operating system can adjust how things are routed. Some pins aren’t even hooked up, so it makes no sense to route sound to them. Also some pins have sensors that can tell when something is plugged in, so that for example the speakers in a laptop can be muted when headphones are plugged in. Pins are also grouped, so for example all the outputs for a 5.1 sound system are grouped. Generally the HDA driver in the operating system is supposed to read the pin set up and figure out a reasonable way to set things up, and disconnected pins should be ignored, etc.
HDAudio standard has headphones on a separate DAC, and it's up to the driver.. it can even send different audio to the headphones without interrupting the main (green) outputs
====Envy24 series ====
A little history. VIA bought the ICE created Envy chipsets [http://www.via.com.tw/en/products/audio/controllers/comparison_controller.jsp VT1712] first. A few years later, they created several cheaper variants VT1724 (mixer missing), VT1721 (low end cut down), VT1720 (embedded on motherboard) and lastly the VT1723 (no support apart from Windows Envy24DT like SYBA SD-PEX63034).
There are PCI Express versions appearing.
The Envy24 is the base product that was originally designed by ICEnsemble, and it supports multi-channel hardware mixing, which is great for professional use. The HT version removes the hardware mixer (unimportant for non-professional uses). The [http://www.avsforum.com/t/364771/envy24ht-s-the-definitive-source HT-S] version is almost exactly the same as the HT, it just uses cheaper DACs. The PT version is exactly the same as the HT-S version, it is just the edition used for on-board audio on motherboards.
N.B. [http://www.soundonsound.com/sos/dec04/articles/pcnotes.htm PCI slot identification] and [http://hsi.web.cern.ch/HSI/s-link/devices/s32pci64/slottypes.html 3.3v PCI].
=====[http://www.opensound.com/readme/README.Envy24.html envy24.audio] - [http://www.anime.net/~goemon/alsa/ VT1712] =====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Playback
! Recording
! Comments
|-
| M-Audio Delta 66 - Rev B 1999
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested AK4524VF CS8404A-CS - needs Delta Series break out box with D-sub lead -
|-
| [http://ixbtlabs.com/articles/maudioaudiophile/index.html Audiophile 2496] Rev A 2000
| 0x14
| 0x
|
| <!--Playback-->{{unk| }}
| <!--Recording-->{{unk| }}
| works audio out on - I2S stereo codec AKM AK4528VF with the 24bit/96kHz DAC and ADC; CS8427 digital transceiver
|-
| [http://ixbtlabs.com/articles/maudioaudiophile/index.html Audiophile 2496] Rev B 2003
| 0x14
| 0x
|
| <!--Playback-->{{Yes }}
| <!--Recording-->
| works well - I2S stereo codec AKM AK4528VF with the 24bit/96kHz DAC and ADC; CS8427 digital transceiver
|-
| M-Audio Delta 410 - 2001 2001 REV-B
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested for D-A AK4529VQ converters with CS8427-CS 5532 1158B or Event Echo Gina 20-Bit Multitrack Interface Breakout Box -
|-
| M-Audio Delta 1010
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested AK5383 and AK4393 - 25 pin dsub -
|-
| M-Audio Delta 1010LT 1010E
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested for D-A AK4529 converters with 2 XLR Microphone inputs with pre amps
* be aware of redesign in 2007 - possible issues
|-
| M Audio Delta 44 - Rev A 2002 - Rev B 2003 - Rev D 2003
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested ICE1712G AK4524VF needs breakout box with 15 pin D-sub lead -
|-
| M-Audio Delta 66 Rev E 2006 - Omni Studio
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested needs break out box with 15 pin D-sub lead -
|-
| <!--Description-->M-Audio Delta DiO 2496
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| Terratec EWX24/96
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| [http://ixbtlabs.com/articles2/terratecdmx6fire/index.html TerraTec 6fire DMX 24/96]
| <!--Vendor ID-->0x1412
| <!--Product ID-->0x1712
| <!--Revision-->0x02
| <!--Playback-->{{No|tried line 1-2 3-4 5-6 7-8 }}
| <!--Recording-->{{No| }}
| untested - AKM and codec
|-
| <!--Description-->Terratec EWSA88MT
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| [http://lists.freebsd.org/pipermail/freebsd-multimedia/2007-March/006087.html Audiotrak Prodigy HD2] 24/96
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Audiotrak (ESI) Maya 1010 1010L
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| EMU 1212M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| EMU 1616M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| <!--Description-->Terratec EWS 88MT EWS 88D
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Hoontech Soundtrack DSP 24
Soundtrack DSP 24 Value
Soundtrack DSP 24 Media 7.1
Event Electronics EZ8
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Digigram VX442
Lionstracs
Mediastation
Terrasoniq TS 88
Roland/Edirol DA-2496
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
=====envy24ht.audio - VIA VT1724=====
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| ESI Juli@
| 0x3031
| 0x4553
| 0x0
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Yes}}
| reported working years ago [http://envy24.svobodno.com/ Envy24HT-S] - AKM 4358 DAC - AKM 4114/4112 DIT
|-
| ESI Juli@ Ego Igo rev K
| 0x3031
| 0x
| 0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| AK4358? DAC - AK4114 AK4112 DIT
|-
| [http://ixbtlabs.com/articles2/multimedia/m-audio-revolution51.html M-Audio Revolution 5.1]
| 0x1412
| 0x3631
| 0x0
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| reported working years ago but discontinued - (Envy24GT) - 3ch AKM 4358 DAC - ADC AKM 5365 -
|-
| [http://ixbtlabs.com/articles2/m-audio-revolution71/index.html M-Audio Revolution 7.1] 24/192
| 0x1412
| 0x3630 0x1724
| 0x0
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| not working - illegal semaphore - 6ch ADC AKM AK4355 24-bit 192 kHz - 2ch DAC AKM AK4381 24-bit 192 kHz - ADC AKM AK5380
|-
| Terratec Aureon Sky 5.1
| 0x153b
| 0x1147
| 0x
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - discontinued
|-
| [http://ixbtlabs.com/articles2/terratec-aureon71/index.html Terratec Aureon Space 7.1]
| 0x153b
| 0x1145
| 0x0
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - Wolfson WM8770 DAC, AC'97 codec SigmaTel STAC9744
|-
| Terratec Aureon Universe 7.1
| 0x153b
| 0x1153 (rev x) 0x1724 (rev3)
| 0x0
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| not working - semaphore error on rev 3 - DAC ADC
|-
| Terratec Phase 22
| 0x153b
| 0x1150
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - Envy24HT-S - AK4524
|-
| Terratec Phase 28
| 0x153b
| 0x1149
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - Envy24HT-S - AK4524
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Playback
| Recording
| Revision
| Comments
|-
| Audiotrak (ESI) Prodigy 7.1
| 0x4933
| 0x4553
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - Wolfson WM8770 and AC'97 SigmaTel STAC9744 codec
|-
| Audiotrak (ESI) Prodigy 7.1 LT
| 0x3132
| 0x4154
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver -
|-
| [http://ixbtlabs.com/articles2/sound/audiotrak-prodigy192.html Audiotrak (ESI) Prodigy 192] 24/96
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - STAC9460S codec
|-
| <!--Description-->Echo Layla 24/96
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
| [http://www.bit-tech.net/custompc/labs/80752/hercules-gamesurround-fortissimo-4.html Hercules Gamesurround Fortissimo 4]
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - Wolfson WM8776 Codec and WM8766 DAC
|-
| [http://ixbtlabs.com/articles2/multimedia/m-audio-audiophile192.html M-Audio Audiophile Delta AP 192k]
| 0x1412
| 0x3632
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - Stereo ADC AKM AK5385A 24-bit 192 kHZ - 8-channel DAC AKM AK4358 24-bit 192 kHz - AKM 4114/4112 DIT
|-
| ONKYO SE-150PCI
| 0x160b
| 0x0001
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver
|-
| <!--Description-->ESI Waveterminal 192x
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
| <!--Description-->Quartet
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments--> - AKM 4114/4112 DIT
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
|}
====hdmiaudio.audio - hdmi no support====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Comments-->
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->ATI R6xx HDMI Audio codec support output
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x9840
| <!--Revision-->
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->Not detected
|-
| <!--Description-->NVidia HDMI
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Intel Series 6 CougarPoint HDMI codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Intel HDMI
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|}
[[#top|...to the top]]
===Graphic GFX Chipsets===
[https://gallium.readthedocs.io/en/latest/systems.html PCIe based] graphic chipset is defacto on 64bit AROS and recommended on 32bit.
AGP works on 32bit but faster transfers through the AGP slot are only available on a few supported motherboard chipsets
* Faster AGP Working = SIS 650 board, Intel 865pe AGP slot on MSI 6788-050,
* Not Supported = NForce2 chipsets, most Intel 815/820 chipsets, VIA chipsets, ALi chipsets,
The fallback for all graphics modes is vesa if any native support does not work. There is a choice of very low resolution vga as the last resort
2D tests performed with [http://download.aros3d.org/software/gfxbench.zip gfxbench] in the shell type gfxbench > out.txt (40 seconds blank screen is part of the test), via FreeDoom via limit-removing engine like odamex, chocolate or vanilla doom -timedemo demo1 or doom2 -timedemo demo1, doom.exe -iwad doom2 -file mymap.wad, Duke DNRATE 640x480 windowed
3D tests performed with Demos/Mesa/ , Cube 1080p, Cube 2 windowed not fullscreen 1920 x 1025, Quake3 ~ cl_drawFPS 1, Xonotic , [http://shinh.skr.jp/sdlbench/showtestgl.cgi test gl],
HDMI, DVI and DisplayPort monitors have a native resolution of 480p, 720p, 1080i, 1080p and up
<pre>
HDMI (licensing fee)
1.2 720p res.
1.3 1080 resolution
1.4 4K @ 30Hz
2.0 4K @ 60Hz
2.1 48Gbs for 4K @ 120Hz, 8K @ , VRR, etc
2.2 ultra96
</pre>
<pre>
DisplayPort (VESA introduced)
1.4 4K @ 60Hz
2.1 96Gbs for 4K @ 240Hz, 8K @ 120Hz. MST daisy chain multiple monitors,
</pre>
<pre>
GPMI chinese standard
2.0
</pre>
Might be supported on AROS
*OpenGL4 GPU must have 64-bit floating point FP64 math support, which is a hard requirement for GL 4.0. The max last revision opengl 4.6 (2017) on [https://wiki.gentoo.org/wiki/AMDGPU AMDGPU] RX 5000's / 6000s ([https://forum.batocera.org/d/7491-enable-opengl-46-and-vulkan-for-an-old-radeon-video-card RDNA] and Nvidia RTX might come to AROS) but Intel UHD, Iris Plus or Xe, (will not unless a developer wants the challenge)
*OpenGL3 last revision 3.3 (2011)
Already supported on AROS
*OpenGL2 nvidia-nouveau,
*OpenGL1 intel gma950,
====vga.hidd====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Comments
|-
|
| 0x
| 0x
| 0x0
| Generic VGA Driver, limited to 640x480 in 16 colours - no 3D support
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Comments-->
|-
|}
====vesa.hidd====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Comments
|-
|
| 0x
| 0x
| 0x0
| 2D support for VBE1, VBE2 and VBE3 (most cards) - various resolutions and 24bit colour - no 3D support
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Comments-->
|-
|}
[[#top|...to the top]]
====[[w:en:Intel GMA|Intel GMA]]====
DVI output is not supported at the moment.
If having problems:
* Ensure the latest version is being used.
* Set GMA_MEM to 128 or 256 to test
* Try the FORCEGMA ToolType for 2D, and try the FORCEGALLIUM ToolType for 3D acceleration after 2D is verified to work. ToolTypes should be applied to the Devs/Monitors/IntelGMA monitor icon.
If still having problems:
* At GRUB boot screen edit boot line and add option: debug=memory
* Boot.
* Use shell command: tools/debug/bifteck > RAM:debug.txt
* And post [GMA MONITOR DETECTION] and other related debug lines
{| class="wikitable sortable" width="90%"
! width="5%" |Description
! width="5%" |Vendor ID
! width="5%" |Product ID
! width="3%" |Rev
! width="5%" |2D
! width="5%" |3D
! width="5%" |Analog Output
! width="5%" |Digital Output
! width="5%" |Laptop LCD
! width="30%" |Comments
|-
| 910GL 82910GL GMCH + ICH6
| 0x8086
| 0x2582 0x2592
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| 910GML 82910 GML GMCH + ICH6 Mobile
| 0x8086
| 0x2582 0x2592
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| may need to add forceGMA to grub boot line to work
|-
| 915G 82915G GMCH + ICH6-M
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
|
|-
| 915GL 82915GL GMCH
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
|
|-
| 915GV 82915GV GMCH
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Yes|}}
| <!--3D-->{{No|}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{N/A}}
| HP DC5100 small form factor
|-
| 915GM GMA900
| 0x8086
| 0x
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| tunnel gearbox }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes}}
| asus eee pc 900
|-
| 915GMS
| 0x8086
| 0x
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| tunnel }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes| }}
|
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| [http://www.notebookcheck.net/Intel-Graphics-Media-Accelerator-950.2177.0.html 945GU] - 133 MHz (Lake port for Intel A100 and A110)
| 0x8086
| 0x2772
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| Fujitsu LifeBook U1010,
|-
| 945GMS - 166 MHz / 250 MHz (1.05V)
| 0x8086
| 0x27a2
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes}}
| Dell D430
|-
| 945GSE - 166 MHz (for Atom)
| 0x8086
| 0x27ae
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Yes|[http://www.x.org/wiki/GalliumStatus]}}
| {{Yes}}
| {{No|dvi port}}
| {{Yes| }}
| for atom motherboards and most 2008/2009 netbooks
* 3D Works - AOA110 AOA150, Dell Mini 9, Samsung NC10, Toshiba NB100,
|-
| 945G 82945G GMCH + ICH7
| 0x8086
| 0x27a6
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| untested 2D and 3D
|-
| 945GC 82945GC MCH
| 0x8086
| 0x27a6
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| untested 2D and 3D
|-
| 945PM
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| Dell D420, Compaq nc6400,
|-
| 945GMS - 250 MHz Calistoga
| 0x8086
| 0x
| 0x0
| <!--2D--> {{Yes}}
| <!--3D--> {{Yes|most models}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes}}
|
* 3D Works Dell Latitude 2100, HP Compaq nc6320, Lenovo 3000, Lenovo T60, Samsung Q35, Dell D620, Dell D820,
* 3D untested Toshiba Satellite L100-120, Toshiba Portege M400,
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
|
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GMA 3100 G31
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works 2D but no 3D
|-
| GMA 3100 G33
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works 2D but no 3D
|-
| [http://en.wikipedia.org/wiki/Intel_GMA GMA 3150] netbooks and nettops
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works 2D but no 3D. no vga, dvi or hdmi output for nettops
|-
| <!--Description--> G965
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments-->
|-
| <!--Description--> Q965
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x2992
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{No}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments--> Only tested with VGA output.
|-
| 965GM X3100 (500 MHz)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| some support 2D but no hardware 3D - could not get it to work with VGA or dvi output
* untested Apple MacBook Air, Lenovo Thinkpad X300, Dell Inspiron 1525, Toshiba M9,
|-
| 960GM X3100 (400 MHz)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
|
|-
| 965M X3100 (400 MHz)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| Dell D830,
|-
| 965PM ??
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| Toshiba A9 works with limited 2D acceleration but no hardware 3D
|-
| GL965
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works with limited 2D acceleration but no hardware 3D
|-
| GM965
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works with limited 2D acceleration but no hardware 3D
|-
| GMA X3500 G35
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->X4500M G41 G43 G45 (400Mhz) Mobile 4 Series
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x2a42 0x2a43
| <!--Revision-->0x07
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue--> {{No|}}
| <!--Digital--> {{No|}}
| <!--Laptop LCD--> {{Yes| VESA}}
| <!--Comments-->works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->GMA 4500M HD (533 MHz)
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments-->works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->GMA 4700M HD (640MHZ)
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x2a42
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments-->works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
====[http://nouveau.freedesktop.org/wiki/FeatureMatrix nouveau].hidd (nvidia pci, agp, pci-e desktop)====
PCIe based nvidia graphics (gfx 8xxx) are the base level for 64bit AROS but earlier models still has some support on 32bit AROS
*Desktop, more likely hit rather than miss on early nvidia on Aros 32bit but on Aros 64bit ...
*Laptop, limited support for '''very''' early non-optimus (i.e. just Nvidia gfx only so no Intel and nvidia gfx combinations on 32bit but on 64bit ...)
Please note that the nouveau project is reverse engineering a nvidia graphics driver but takes time because of [https://nouveau.freedesktop.org/ nVidia's closed firmwares], etc
* 2026-06 - DEVS Nouveau.hidd Gallium.hidd Softpipe - LIBS Gallium GLU 20.0 Mesa OpenCL
* 2011-10 - DEVS 6.11 Nouveau.hidd 7.4 Gallium.hidd 9.4 Softpipe - LIBS 2.3 Gallium 1.3 GLU 19.0 Mesa OpenCL 1.x
* 2011-04 - DEVS 5.31 Nouveau.hidd 7.3 Gallium.hidd 9.3 Softpipe - LIBS 2.2 Gallium 1.1 GLU 18.0 Mesa OpenCL n/a
Nouveau support for AROS is limited to OpenGL 2.1 compliance on 32bit even for modern GL4 capable GPUs but on 64bit ...
On Aros 32bit OpenCL supports the NV50 (8000 9000) cards, less support in NVC0 fermi cards (300 upwards)
On Aros 64bit
ADoom3 graphic details ultra, benchmark while playing press the "`" key and type "Timedemo demo1" in the console
{| class="wikitable sortable" width="90%"
! width="5%" | Graphic Card
! width="5%" | Aros 32bit 1024 x 768
! width="5%" | Aros 32bit 800 x 600
! width="5%" | Aros 32bit 640 x 480
! width="5%" | Aros 64bit 1024 x 768
! width="5%" | Aros 64bit 800 x 600
! width="5%" | Aros 64bit 640 x 480
|-
| NV50 Asus EN8400GS SILENT/P/512M PCIe (G98) || || || || || ||
|-
| Gigabyte 8500GT 256M || 42,6 || 57,2 || 68,6 || || ||
|-
| NV96 (G96) Geforce 9500GT 512M || 43 || 53 || 57 || || ||
|-
| NV96 (G96) 9600GT || || || || || ||
|-
| NVA3 (GT215) GT240 || || || || || ||
|-
| NVA5 (GT216) Palit GT220 Sonic 512M || 39,7 || 55,8 || 63,7 || || ||
|-
| NVA8 (GT218) gt210 || || || || || ||
|-
| NVA8 (GT218) ION2 || || || || || ||
|-
| NVC3 (GF106) GT440 GTS 450 || || || || || ||
|-
| NVCF (GF116) NVC0 Fermi GTX 550Ti or GTS 450 v2 || || || || || ||
|-
| NVC8 (GF110) 580GTX || || || || || ||
|-
| NVE0 Kepler GT630 || || || || || ||
|-
| NVE6 (GK106) Kepler GTX660 || || || || || ||
|-
| NV110 Maxwell GTX 750 || || || || || ||
|-
| NV126 (GM206) GTX950 upwards no reclocking || N/A || N/A || N/A || poor || poor || poor
|-
| NV160 family (Turing) GTX 1650 and RTX 2000 upwards with GSP firmware || N/A || N/A || N/A || unknown || unknown || unknown
|-
| HostGL Ryzen 5 4600H - Nvidia 1650 - Linux mint 21.1 || 150fps || 154fps || 155fps || || ||
|-
| NVA8 (GT218) || || || || || ||
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| width="5%" | Graphic Card
| width="5%" | Aros 32bit 1024 x 768
| width="5%" | Aros 32bit 800 x 600
| width="5%" | Aros 32bit 640 x 480
| width="5%" | Aros 64bit 1024 x 768
| width="5%" | Aros 64bit 800 x 600
| width="5%" | Aros 64bit 640 x 480
|}
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|-
| <!--Description-->tnt1 (nv04) tnt2 (nv05) m64 value (1998)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|very slow}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| NV04 Riva TNT TNT2 Fahrenheit freezes on via motherboard chipset so rename agp.hidd in SYS:Devs/Drivers or Monitors
|-
| <!--Description-->tnt vanta lt (nv06) 1998 /9
| 0x10de
| 0x002c
| 0x15
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|slow}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| <!--Description-->Geforce 256 (nv10) (2000)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|slow }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| untested Geforce256
|-
| <!--Description-->Geforce 2 Geforce 3 Geforce 4 (nv20) 2000 / 2
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|slow }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| works for some PCI and AGP Geforce2 Geforce3 Geforce4
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| Geforce FX5200 nv34 (2003)
| 0x10DE
| 0x0322 0x
| 0xA1
| <!--2D-->{{Maybe| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->{{Maybe|VGA15 }}
| <!--Digital-->{{Maybe|DVI}}
| <!--Laptop LCD-->{{N/A}}
| NV30 GeForce 5 FX Rankine Hardware OpenGL 1.5 - slower than GF MX 4000 for 2D - max 1024 x768
* not working [https://eab.abime.net/showthread.php?t=92328&page=8 mobos with VIA chipsets 2018]
* working (MSI 0x9174) the previous nouveau 5.x driver
* Others work with 6.x series XFX PV-T34K-NA, ASUS V9520-X/TD
|-
| Geforce FX5500 (nv34) (2003)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{Maybe| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| works
|-
| Geforce 5100 (NV34)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce FX 5200LE (NV34)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5200 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce FX5600 (nv31) (2004)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Maybe| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| works
|-
| GeForce FX 5600 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5600SE
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5600XT
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce FX5700 (nv36) (2004)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes|some}}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{Maybe| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5700VE
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5700 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5700LE
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5800 (NV30)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5800 Ultra (NV30)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900 (NV35)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900XT
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900ZT
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5950 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce 5xxx
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
|
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| Geforce 6200 (nv44) (2005)
| 0x
| 0x00F3 0x014F
| 0x0
| <!--2D-->{{Yes|5.28 Pixel Text}}
| <!--3D-->{{Maybe| use 5.28}}
| <!--Analogue-->{{Yes|VGA15 and s-video - plain 4pin cable lead will work with 7pin}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| NV40 GeForce 6 GeForce 7 Curie AGP Hardware OpenGL 2.1 needing previous 5.x version as regression arose 2011-10
|-
| Geforce 6200 (nv44a) (2006)
| 0x
| 0x0221
| 0x0
| <!--2D-->{{Yes|5.28 Pixel Text }}
| <!--3D-->{{Yes|}}
| <!--Analogue-->{{Yes|VGA15}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| Hardware OpenGL 2.1, PCI version tested OK in 2014-01-02 - Icaros 1.5.2
* not working
*working
|-
| GeForce 6200 with Turbo Cache (NV43)
| 0x
| 0x0161
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce 6200SE with Turbo Cache (NV44)
| 0x
| 0x0162
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce 6200 LE
| 0x10de
| 0x0163
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| PCI-E
|-
| GeForce 6600 LE
| 0x
| 0x00F4 0x0142
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6600
| 0x
| 0x00F2 0x0141
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| 2006 PureVideo HD 1 or VP1 re-used the MPEG-1/MPEG-2 decoding pipeline from FX
|-
| Geforce 6600gt (nv4x) (2005)
| 0x
| 0x00F1 0x0140
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Yes| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| OpenGL tests -
|-
| Geforce 6800 (nv40) (2005)
| 0x
| 0x0041 0x00C1 0x00F0 0x0211
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Yes| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 XE (NV4x)
| 0x
| 0x0043
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 LE
| 0x
| 0x0042 0x00C2 0x0212
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 GT (quadro fx 1400)
| 0x
| 0x0045 0x0046 0x0215
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 6800 GS
| 0x
| 0x0047 0x00C0 0x00F6
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 GTS NV40
| 0x
| 0x0040 0x0F9
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 6800XT
| 0x
| 0x0044 0x0048 0x00C3 0x0218
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6600 VE
| 0x
| 0x0143
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6500 NV44
| 0x
| 0x0160
| 0x0
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6250
| 0x
| 0x0169
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 6xxx
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GeForce 7800 GTX
| 0x
| 0x0090 0x0091
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| tunnel gearbox cube cube2 25}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> 256MB DDR3 - 1 6pin psu connector -
* not working asus en7800gtx/2dhtv/256m/osp/a -
* Works XFX PV-T70F-UDD7 Works in steve jones' scrap pc aros build 2010 2 DVI-I ports
* Untested
|-
| GeForce 7800 GT
| 0x
| 0x0092
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7600gt (G8 ) (nv4 ) (2006)
| 0x
| 0x02E0 0x0391
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL 2.1
* not working
* working
|-
| GeForce 7800 SLI
| 0x
| 0x0095
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GTX
| 0x
| 0x0290
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GT GTO
| 0x
| 0x0291
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GS
| 0x10de
| 0x0292
| 0x0a1
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working
* Works with a few glitches with XFX Pine 0x2218
|-
| GeForce 7950 GX2
| 0x10de
| 0x0293 0x0294
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| GeForce 7950 GT
| 0x
| 0x0295 0x02E4
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GS
| 0x
| 0x02E3
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7600 GS
| 0x
| 0x02E1 0x0392
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7650 GS
| 0x
| 0x0390
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7600 LE
| 0x
| 0x0394
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7800GS (G8 ) (nv4 ) (2006)
| 0x
| 0x0093 0x00F5
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working
* works if AGP motherboard chipset is supported - Hardware OpenGL 2.1
|-
| GeForce 7100 GS
| 0x
| 0x016A
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7350 LE
| 0x
| 0x01D0
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7300le (G8 ) (nv4 ) (2006)
| 0x
| 0x01D1
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7300SE 7200GSGF-7200GS-N-B1 variant (G72)
| 0x10de
| 0x01D3
| 0x0a1
| <!--2D-->
| <!--3D-->
| <!--Analogue-->{{Unk|1x DVI, 1x VGA, 1x S-Video}}
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2007 40W pci-e 1.0 VP1 no unified shaders -
* not working Asus on via chipset (2015),
* works Asus on intel chipset (2015),
|-
| Geforce 7300gt (G8 ) (nv4 ) (2006)
| 0x
| 0x0395 0x0393
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working
* works
|-
| GeForce 7300 GS
| 0x
| 0x01DF
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7500 LE
| 0x
| 0x01DD
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7xxx
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GeForce 8800 Ultra (NV50 family)
| 0x
| 0x0194
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NV50 GeForce 8 to GeForce 200s opengl 3.x - max res - 80nm technology - PureVideo HD 2 or VP2 Nvidia VDPAU Feature Set A (absent from ultra and some 8800gt?) added a dedicated bitstream processor (BSP) and enhanced video processor for H.264, VC-1 acceleration
|-
| Geforce 8800gts (nv50) (G8x) (2007)
| 0x
| 0x0400 0x0600 0x0193
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2007 200w openGL3 openCL - 2x6pin psu
* not working 0x0193 models (2015) on via chipsets,
* works
|-
| Geforce 8800gtx (nv5 ) (G8x) (2007)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2008 200W 1x 6pin connector,
* not working
* working
* untested XFX PV-T88P-YDF4, Alpha Dog Edition runs extremely hot - Gigabyte GV-NX88T512H,
|-
| GeForce 8800 GT
| 0x
| 0x0602 0x0611 0x0193
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->DVI up to 2500 x 1600
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - 6pin psu power connector required
* not working
* untested Asus EN8800GT/HTDP/256M EN8800GT/HTDP/512M EN8800GT/G/HTDP/512M
* works
|-
| GeForce 8800 GT (G92)
| 0x10de
| 0x0611
| 0x0a2
| <!--2D-->{{Yes|6.11 Pixel Text}}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{N/A}}
| <!--Digital-->{{Yes}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3 pci-e 2.0 8800GT 512MB on Icaros 2.0.3 [[File:8800GT aros heads.png|thumb|8800GT]] [[File:8800GT aros tails.png|thumb|8800GT detail]]
|-
| Geforce 8600gt (nv5 ) (G8x) (2007)
| 0x
| 0x0401 0x0402
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res
* not working
* works
|-
| GeForce 8500 GT
| 0x
| 0x0421
| 0x0
| <!--2D-->{{Yes| some color }}
| <!--3D-->{{yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL tests - max opengl 3.x but 2.1 offered - max res
* not working
* works Gigabyte 8500 GT,
|-
| GeForce 8800 GS
| 0x
| 0x0606 0x060D
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res
|-
| GeForce 8600GS
| 0x
| 0x0403
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 3.x VP3 offers complete hardware-decoding for all 3 video codecs of the Blu-ray Disc format: MPEG-2, VC-1, and H.264 - Nvidia VDPAU Feature Set B
|-
| GeForce 8300 GS
| 0x
| 0x0423
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res
|-
| Geforce 8400gs G98GS (end 2007) GT218 (2009)
* Rev2 with 8/16 cores and 128-512MB of DDR2 or GDDR3 memory.
* Rev3 with 8 cores and 512MB-1GB of DDR3 memory (based on Tesla 2.0)
| 0x
| 0x0424 0x0422
| 0x0
| <!--2D-->{{Yes|Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 490 gearbox 505 Cube 135 Cube2 55 quake3 }}
| <!--Analogue-->{{Yes|works digital part of DVI but nothing from any display port}}
| <!--Digital-->{{Yes|output on digital 24 pin array of DDWG's DVI and hdmi}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 50W openGL 3.1 openCL - case single slot - one single-link DVI digital output, supporting up to one 1920x1080 resolution display - analog resolution 640 x 480 to 1024 x 768 16 and 24 bit color - [http://www.phoronix.com/scan.php?page=article&item=nouveau_comp_2011&num=19 runs a little hotter than expected] - G98 VP3 pci-e 2.0 512MB DDR2 -
* not working
* works Asus EN8400GS SILENT/P/512M PCIe (G98),
|-
| Geforce 8400gs (nv50) (G86) (mid-2007)
* Rev1 with 16 cores / 256MB of DDR2 memory.
| 0x
| 0x0404
| 0x0
| <!--2D-->{{Yes|Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 490 gearbox 505 Cube 135 Cube2 55 quake3 }}
| <!--Analogue-->{{Yes|works but not tested thru 4 pins of analog signal of DVI plug}}
| <!--Digital-->{{Yes|output on digital 24 pin array of DDWG's DVI and hdmi}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2008 50W openGL 3.1 openCL - case single slot - one single-link DVI digital output up to 1920x1080 resolution display - analog resolution 640 x 480 to 1024 x 768 16 and 24 bit color - [http://www.phoronix.com/scan.php?page=article&item=nouveau_comp_2011&num=19 runs a little hotter than expected] - G86 VP2 128MB -
* not working XFX PV-T86S-YAJG NVIDIA GeForce 8400 GS 512MB DDR2, Sparkle 8400GS 512MB SX84GS512D2L-DPP,
* works Asus EN8400GS SILENT/HTP/256M SILENT/HTP/512M/A,
|-
| GeForce 8400 SE
| 0x
| 0x0420
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 2.x openCL
|-
| NVidia Quadro NVS290 DMS-59
| 0x
| 0x0403
| 0x0
| <!--2D-->{{no| }}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk|DMS-59 socket}}
| <!--Digital-->{{unk|DMS-59 }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2008 21W - G86S (G86-827-A2) - 16 shading units, 8 texture mapping units, and 4 ROPs. NVIDIA has paired 256 MB DDR2 - PCIe 1.0 x16 Low Profile -
|-
| Geforce Quadro FX 4600 (SDI), 5600
| 0x
| 0x
| 0x0
| <!--2D-->{{Partial|VESA 2d}}
| <!--3D-->{{no| }}
| <!--Analogue-->{{partial| }}
| <!--Digital-->{{partial| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GeForce 9800 GX2 (NV50 family)
| 0x
| 0x0604
| 0x0
| <!--2D-->{{Partial|VESA }}
| <!--3D-->{{no| }}
| <!--Analogue-->{{Partial| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 150w - 65nm technology
|-
| GeForce 9800 GTX
| 0x10de
| 0x0612
| 0x0a2
| <!--2D-->{{Yes| }}
| <!--3D-->{{Maybe|6.11 }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 2x6pin psu -
* not working xfx on via chipset (2015),
* works xfx on chipset intel ,
|-
| GeForce 9800 GTX+
| 0x10de
| 0x0613
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res 2560 x 1920 - case dual slot - 26amp 12v rail on computer psu if 2x6pin connectors needed - 55nm version of the G92 chip - will not work with PCI-e 1.0a slots -
* not working
* works on a few models
|-
| Geforce 9800gt (nv50) (G92a) (2008)
| 0x10de
| 0x0614
| 0x0xa2
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel 495 gearbox 513 Cube 156 Cube2 120 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{partial| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL 3.1 openCL 1.x - case dual slot - 600w 26amp on both 12v rails for 2x6pin psu on gfx card - no fan control - some come with 1x6pin - renamed version of the venerable GeForce 8800 GT - randomly works
* not working Gainward 512M untested
* working Gainward CardExpert (0x0401) Green Edition NE39800TFHD02-PM8D92 1024MB (no 6pin)
|-
| Geforce gf9600 9600gt (nv5 ) (G9x) (2008)
| 0x10de
| 0x0622
| 0x0a1
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel 493 gearbox 675 Cube Cube2 100 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL 3.2 openCL but no fan control - case dual slot - 1 6pin pcie psu connector - 500 Watt or greater power supply with a minimum of 26 Amp on the +12 volt rail - Max Analog: 2048x1536 and Max Digital: 2560x1600 (Dual Link DVI Only) - PCI Express® 2.0 / 1.1 Support - g96 gpu randomly works -
* not working bfg tech ocx,
* works gigabyte gv-n96tsl-512i -
|-
| Geforce gf9500 9500gt (nv5 ) (G9x) (2008)
| 0x10de
| 0x0640
| 0x0a1
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel 480 gearbox 500 Cube Cube2 64 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.2 - case single slot - 350 Watt/400 Watt or greater power supply with a minimum of 18 Amp/22 Amp on the +12 volt rail - Max Analog: 2048x1536 and Max Digital: 2560x1600 (Dual Link DVI Only) - PCI Express® 2.0 / 1.1 Support -
* not working zotac zone fanless, Gainward USA NE29500THHD01-PM8796, PNY G9500GN2E50X+0TE,
* works xfx xne-9500t-td01-pm8596 1024mb ddr2,
|-
| GeForce 9600 GS
| 0x
| 0x0623
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res - will not work with PCI-e 1.0a slots -
* not working
* works
|-
| GeForce 9600 GSO
| 0x
| 0x0610
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res - G92 chopped down - 9600GSO is re-badged 8800GS both very power hungry cards -
|-
| GeForce 9300 GS
| 0x
| 0x06E1
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 opengl 3.x - max res
|-
| Geforce 9400 GT (nv5 ) (G86S) (2008)
| 0x
| 0x
| 0x0
| <!--2D-->{{partial|}}
| <!--3D-->{{unk|}}
| <!--Analogue-->{{unk|1x DVI, 1x VGA, 1x S-Video}}
| <!--Digital-->{{unk|1x DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 50W opengl 3.x - max res
|-
| Geforce 9xxx (nv5 ) (G9x) (2008)
| 0x
| 0x
| 0x0
| <!--2D-->{{unk|}}
| <!--3D-->{{unk|}}
| <!--Analogue-->{{unk|}}
| <!--Digital-->{{unk|}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 opengl 3.x - max res
|-
| <!--Description-->
NV84 (G84) GeForce 8600 (GT, GTS, M GT, M GS), 8700M GT,
NV92 (G92) GeForce 8800 (GT, GS, GTS 512, M GTS, M GTX)
GeForce 9600 GSO, 9800 (GT, GTX, GTX+, GX2, M GT, M GTX)
NV96 (G96) GeForce 9400 GT, 9500 (GT, M G), 9600 (M GS, M GT),
NV86 (G86) GeForce 8300 GS, 8400 (GS, M G, M GS, M GT), 8500 GT
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NVA0 (GT200) GeForce GTX (260, 275, 280, 285, 295)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->GeForce GTX 280 (NV50 family)
| <!--Vendor ID-->
| <!--Product ID-->0x05E1
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res PureVideo HD 4 (Nvidia Feature Set C or "VDPAU Feature Set C), VP4 added hardware to offload MPEG-4 Advanced Simple Profile (original DivX and Xvid)
|-
| <!--Description-->GeForce GTX 260
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x05E2
| <!--Revision-->
| <!--2D-->{{partial|Vesa}}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> 2 6pin - psu pci express 2.1 -
|-
| Geforce GTS250 250GTS (g92b) (2009)
| 0x10de
| 0x0615
| 0x0a2
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 486 gearbox 508-642 Cube Cube2 80 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> 2x6pin psu VP2 - pci-e 2.x - case dual slots - 738m 1gb ddr3 -
* not working Zotac branded version GDDR3 -
* works PNY gs-250x-zdfl and Gigabyte ??, BFG Tech RGTS2501024OCE, palit ne3ts250fhd52-pm8a92 with 2x6pin on top and hdmi output port,
|-
| <!--Description-->GeForce GT 240 (GT215 family)
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0ca3
| <!--Revision-->0xa2
| <!--2D-->{{Maybe|use VESA}}
| <!--3D-->{{No|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->late 2009 openGl 3.2 - case dual slots - no 6pin psu required with VP4 - All are pcie 2.1 cards and may not work in 1.0a slots -
* not working
* DDR3 with 512MB or 1GB -
* DDR5 -Asus ENGT240 - XFX Pine GT240XYHFC 0x3001 - Gigabyte GV-N240D5-512I rev 1.0 - Zotac AMP! with HDMI 1.3a with DisplayPort 1.1, Dual Link DVI -
* works
|-
| <!--Description-->GT220 (GT216) G220
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0a20
| <!--Revision-->0xa2
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Yes}}
| <!--Digital-->{{Yes|DVI }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> Icaros 2.0.3 GeForce GT220 1GB[[File:GT220 aros heads.png|thumb|GT220]][[File:GT220 aros tails.png|thumb|GT220]]
* untested NVIDIA Quadro® 400 512MB DDR3 GT216 DP DVI, AFox AF220 1Gb DDR3,
|-
| Geforce GT220 220GT G94 Tesla (g92b)
| 0x10de
| 0x0a20
| 0xa2
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 490 gearbox 505 cube 150 cube2 50 Quake3 }}
| <!--Analogue-->{{Unk|1x DVI, 1x VGA}}
| <!--Digital-->{{Yes|DVI but not 1x HDMI }}
| <!--Laptop LCD-->{{N/A}}
| 58W pci express 2.0 cards DDR3 - case single slot -
* not working ASUS ENGT220/DI/1GD2(LP)/V2 -
* works - gainward card expert 0x0401 GDDr3 512MB -
|-
| <!--Description-->GT210 GT 210 210GT G210 based on Tesla 2.0 GT218S GT218-300-A2 variant, GT218-300-B1
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0a65
| <!--Revision-->0xa2
| <!--2D-->{{Yes|6.11 Pixel Text}}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{Unk|1x DVI, 1x VGA}}
| <!--Digital-->{{Maybe|DVI out works but not hdmi or 1x DisplayPort}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 31W OpenGL 3.3 pci-e 2.0 cards - single slot -
* working GT218 based Asus EN210 based silent low profile large passively cooled -
* untested MSI GeForce 210 1GB DDR3 PCIe N210-MD1GD3H/LP,
* not working
|-
| <!--Description-->Quadro NVS 295 (256 MB GDDR3), NVS 450 (256M/512 MB DDR3)
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x
| <!--Revision-->
| <!--2D-->{{yes| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->
| <!--Digital-->{{partial|2 or 4 dp ports}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 25w low performance - G98s with 8 shading units, 4 texture mapping units, and 4 ROPs on PCI-Express 1.0 x16 -
*not working some NVIDIA Quadro NVS 295 2 dp ports (DELL, HP),
*working
|-
| <!--Description-->GT310 Tesla 310, 315, GT 320, GT 330 GT 340
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{Maybe|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2010 50w OpenGL 3.3 openCL all similar in performance to GT2xx except gt31x (poor)
|-
| <!--Description-->Quadro NVS310 NVIDIA NVS 310
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital--> 2 dp
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2012 25w GF119S (GF119-825-A1) 48 shading units, 8 texture mapping units, and 4 ROPs on PCI-Express 2.0 x16 - 512 MB DDR3 - PureVideo VP5 VDPAU Feature Set D -
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description--> GTX 470, GTX 480 GF10 GF10* core (NVC0 family)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{Maybe| tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2010 215w 2x6 plugs - NVC0 family (Fermi) GF100 (GF100-275-A3) Fermi 448 shading units, 56 texture mapping units, and 40 ROPs with 1,280 MB GDDR5 - OpenGL4.5 OpenCL1.1 Tessellation - case dual slots -
|-
| Geforce GTX460 460GTX (G104) 256bit, 1GB v2 192bit and GTX 465
| 0x10de
| 0x0e22
| 0xa1
| <!--2D-->{{Maybe|VESA }}
| <!--3D-->{{Maybe| tunnel gearbox cube 055-111 cube2 50}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVC0 family (Fermi) OpenGL 4.x but - 2x6pin psu - case dual slots -
* not working evga 768MB GDDR5 192bit 01G-P3-1373-ER or 01G-P3-1372-TR
* works 1GB GDDR5 256bit 01G-P3-1371-ER
|-
| <!--Description-->Geforce GTX 460SE 192bit
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0e23
| <!--Revision-->0x91 or 0xa1
| <!--2D-->{{Yes| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->{{Yes| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> nouveau 6.11 - 2 6pin psu needed - case dual slots -
* not working
* works EVGA 01g-p3-1366-b6 et 1024MB p1041 -
|-
| Geforce GT450 GTS450 450GTS GF106
| 0x10de
| 0x0dc4
| 0x0a1
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel gearbox cube cube2 50 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes|DVI }}
| <!--Laptop LCD-->{{N/A}}
| 2010 Hardware OpenGL 4.2 but nouveau at 3.3 - most need 1x 6pin psu - case dual slots -
* not working
* DDR3 1 or 2GB - Palit NEAS450NHD41F,
* GDDR5 512Mb or 1GB - MSI MPN N450GTSM2D1GD5OC, Asus MPN ENGTS450DI1GD5,
* works Gainward Card Expert NE5S4500FHd51,
|-
| <!--Description-->GT 440 GF108 chipset or better OEM GF106
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 6.11 Pixel Text}}
| <!--3D-->{{Maybe| tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGl 4.1 opencl 1.x - no 6 pin psu - 96 cuda cores 128bit - case dual slots -
* not working
* OEM
* GDDR5 512MB to 1GB ASUSTeK ENGT440/DI/1GD5
* GDDR3 Asus 1gb to 2gb,
* works
|-
| <!--Description-->GT430 430GT (GF108)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|6.11 Pixel Text}}
| <!--3D-->{{Maybe|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->ddr3 memory 64bit or 128bit - buggy await new revision of driver
* not working
* works
|-
| <!--Description-->nVidia Quadro FX1800 768MB GDDR3 Full Height Graphics Card Workstation
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 6.11 Pixel Text}}
| <!--3D-->{{no|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->{{Maybe|DVI-I 2xDP}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->59W 768 MB GDDR3 memory using a 192-bit memory interface - OpenGL 3.3 -
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GTX 590 Fermi
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->OpenGL4.4 OpenCL 1.1 - GDDR5 - 6pin and 8pin psu connectors - 512 cuda - case dual slots -
* not working
* works
|-
| <!--Description-->GTX 580,
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->PureVideo HD 5" or "VP5" (Nvidia Feature Set D or VDPAU Feature Set D) 4k UHD 3840 × 2160 H.264 decode -
|-
| <!--Description-->GTX 570,
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{Maybe|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working Zotac GTX 570, Gainward GTX560TI/570 Phantom,
* works gigabyte, evga
|-
| <!--Description-->Geforce 5xx 560gtx Fermi GTX 560,
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->opengl 4.x - 2 6pin psu - 384 cuda cores - case dual slots - will not work with PCI-e 1.0a slots -
* not working Asus ENGTX560 DC/2DI/1GD5,
* Ti LE 448 cuda GDDR5 320bit
* Ti 256bit
* works
|-
| <!--Description-->GTX 560 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working evga GTX 560Ti 01GP31560KR - Gainward GTX560TI/570 Phantom,
* works
|-
| <!--Description-->GTX 550 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x1201
| <!--Revision-->
| <!--2D-->{{Maybe|VESA Doom Doom2 Duke }}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->can hang on boot up on I2C Init or suffer random lockups on OpenGL apps - most need 1 6pin min 400W 24A on the +12V1 / +12V2 dual 12V rails of the computers' power supply unit - 192 cuda cores - case dual slots used - will not work with PCI-e 1.0a slots -
* not working eVGA GeForce GTX 550 Ti (1024 MB) (01GP31556KR) -
* untested asus Extreme, eVGA GeForce GTX 550 Ti (1024 MB) (01GP31557KR) - -
* works
|-
| <!--Description-->GT 545 and OEM GF116
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 4.2 opencl 1.x - GDDR5 with OEM only -
|-
| <!--Description-->GT530 OEM
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 6.11 Pixel Text}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->96 cuda cores - 1GB or 2GB DDR3 128bit
|-
| <!--Description-->GT520 520GT
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->untested 48 cuda cores - DDR3 64bit
|-
| <!--Description-->510, GT 530
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D 6.11 Pixel Text}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> ddr 3 - 50w max -
|-
| <!--Description-->GT610 Fermi GF119
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVS 315 300 GF119S
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{No|VESA}} needs special dms-59 cable
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 fermi 315 PNY VCNVS315-T 1Gb DDR3 but needs special dms-59 cable -
|-
| <!--Description-->GT630 GF108 Fermi
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->not accelerated 2015 - like the GT730 below - 96 cuda cores whilst kepler version has 384 - 128bit to keplers' 64bit bandwidth - kepler has 2GB DDR3
* not working Gigabyte
* DDR3
* GDDR5
* works
|-
| <!--Description-->Geforce GT 730
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe| use VESA 6.11 Pixel Text}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> fermi version has 96 cuda cores 128bit GF108
* not working Asus
* works
|-
| <!--Description-->nVIDIA Quadro 4000
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}} 2 dp ports
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->142W 2Gb GDDR5 - PCI Express 2.0 x16 ; full Height card with 1x 6-Pin PCIe power need - CUDA Cores 256 - OpenGL 4.5
|-
| <!--Description-->nVIDIA Quadro 5000
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2011 200W 2.5Gb GDDR5 320 bit - PCI Express 2.0 x16 full Height card with 2x 6-Pin PCIe power need -
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce GTX Titan GeForce GTX Titan Black GeForce GTX Titan Z
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVE0 family (Kepler) GeForce 600 GeForce 700 GeForce GTX Titan Kepler
|-
| <!--Description-->GeForce GTX 780 GeForce GTX 780 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->PureVideo HD 6" or "VP6" (Nvidia Feature Set E or VDPAU Feature Set E) significantly improved performance when decoding H.264 and MPEG-2
|-
| <!--Description-->GeForce GTX 770
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->opengl 4.4 opencl 1.1
|-
| <!--Description-->GeForce GTX 760 GeForce GTX 760 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce GT 740
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce GT 730 Kepler
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> two versions fermi 96 cores 128bit GF108 and kepler 384 cores 64bit GK208
|-
| <!--Description-->680gtx GK104 core gtx680 680m
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVE0 family (Kepler)
|-
| <!--Description-->GTX 690 Kepler NVE0
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->pci-e 3.0, OpenGL 4.4 OpenCL 1.1
|-
| <!--Description-->GTX 670
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GTX 660 GTX 660 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GTX 650 GTX 650 Ti GTX 650 Ti Boost
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVE0 family (Kepler) most need 1 6pin psu
* not working asus ENGTX560 DC/2DI/1GD5
* works
|-
| <!--Description-->Geforce GT 640
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* 128bit DDR3
* 192bit DDR3 1.5 to 3GB 50W
* 128bit GDDR5 75W
|-
| <!--Description-->GT 620 GT 640
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce 750ti, GeForce 900
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->[https://nouveau.freedesktop.org/FeatureMatrix.html NV110] Maxwell -
|-
| <!--Description-->Nvidia GTX 750
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x1381
| <!--Revision-->0xa2
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->2026 nvidia test
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->GM206 2nd gen maxwell PureVideo HD 7" or "VP7" (Nvidia Feature Set F or VDPAU Feature Set F) adds full hardware-decode of H.265 HEVC Version 1 (Main and Main 10 profiles and full fixed function VP9 (video codec) hardware decoding
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Quadro K620 quadro p620 2gb gddr5 128bit and quadro p1000 4gb gt1030 30w
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 50w slim low profile -
|-
| <!--Description-->GeForce gtx 1060, GeForce 1070
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NV130 Pascal
|-
| <!--Description-->gtx 1050ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->NV130 family (Pascal)
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV132 (GP102) NVIDIA Titan (X, Xp), GeForce GTX 1080 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV134 (GP104) GeForce GTX (1070, 1080)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV136 (GP106) GeForce GTX 1060
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV137 (GP107) GeForce GTX (1050, 1050 Ti)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV138 (GP108) GeForce GT 1030
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NV162 (TU102) NVIDIA Titan RTX, GeForce RTX 2080 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV164 (TU104) GeForce RTX (2070 Super, 2080, 2080 Super)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2020 NV160 family (Turing) unified gsp-rm firmware - best starting point for Vulkan support
|-
| <!--Description-->NV166 (TU106) GeForce RTX (2060, 2060 Super, 2070)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV168 (TU116) GeForce GTX (1650 Super, 1660, 1660 Ti, 1660 Super)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV167 (TU117) GeForce GTX 1650
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->gtx 1650ti super
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2018 old style
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NV172 (GA102) GeForce RTX (3080, 3090)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 av1 decoding ampere
|-
| <!--Description-->NV174 (GA104) GeForce RTX (3060 Ti, 3070, 3080 Mobile)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->NV170 family (Ampere)
|-
| <!--Description-->NV176 (GA106) GeForce RTX (3050, 3060)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV177 (GA107) GeForce RTX 3050
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NV192 (AD102) GeForce RTX 4090
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV193 (AD103) GeForce RTX 4080
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->NV190 family (Ada Lovelace)
|-
| <!--Description-->NV194 (AD104) GeForce RTX (4070, 4070 Ti)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV196 (AD106) GeForce RTX 4060 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV197 (AD107) GeForce RTX 4060
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
|}
==== nouveau mobile integrated ====
If you purchased a notebook with an NVidia sticker on it, most of the time you have a optimus based one, ie Intel CPU+GPU melded with Nvidia GPU, Optimus was slated at one point to go into desktop PCs but the industry ended up rejecting that concept
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|-
| GeForce 6100 nForce 405
| 0x
| 0x03D1 0x0242
| 0x0
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
|
|-
| <!--Description-->GeForce 6100 nForce 400
| <!--Vendor ID-->
| <!--Product ID-->0x03D2
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce 6100 nForce 420
| <!--Vendor ID-->
| <!--Product ID-->0x03D5
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce 6150 LE
| <!--Vendor ID-->
| <!--Product ID-->0x0241
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6150SE nForce 430
| 0x
| 0x03D0
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| working
|-
| <!--Description-->GeForce 6150
| <!--Vendor ID-->
| <!--Product ID-->0x0240
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7150M / nForce 630M
| <!--Vendor ID-->
| <!--Product ID-->0x0531
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7000M / nForce 610M
| <!--Vendor ID-->
| <!--Product ID-->0x0533
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7050 PV / NVIDIA nForce 630a
| <!--Vendor ID-->
| <!--Product ID-->0x053A 0x053B
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Geforce IGP 7025 nForce 630a
| 0x
| 0x053E
| 0x0
| <!--2D-->{{Yes|some}}
| <!--3D-->{{Yes|some}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No| }}
| some support on some chipsets
|-
| GeForce 7100 / nForce 630i (C73)
| 0x10de
| 0x07e1
| 0x0a2
| <!--2D-->{{Maybe}}
| <!--3D-->{{Maybe}}
| <!--Analogue-->{{Maybe}}
| <!--Digital-->{{Maybe}}
| <!--Laptop LCD-->{{N/A}}
| Icaros 2.0.3 and Gigabyte 73-pvm-s2h rev. 1.0 but will not boot on [https://ae.amigalife.org/index.php?topic=806.msg8765#new Acer x270 with Icaros 2.3]
|-
| <!--Description-->GeForce 7150 / NVIDIA nForce 630i
| <!--Vendor ID-->
| <!--Product ID-->0x07E0
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7050 / NVIDIA nForce 610i
| <!--Vendor ID-->
| <!--Product ID-->0x07E3
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Geforce IGP 8100 (nForce 720a)
| 0x
| 0x084F
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
|
|-
| GeForce 8100P
| 0x
| 0x0847
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
|
|-
| <!--Description-->Geforce 8200 8300 nForce 730a
| <!--Vendor ID-->
| <!--Product ID-->0x084A 0x0848 (GeForce 8300) 0x0849 (GeForce 8200) 0x084B (GeForce 8200)
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->working on some 8300's with Icaros 1.5 but others untested
|-
| <!--Description-->nForce 780a SLI
| <!--Vendor ID-->
| <!--Product ID-->0x084C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->nForce 750a SLI
| <!--Vendor ID-->
| <!--Product ID-->0x084D
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Nvidia Geforce IGP 9300 (nForce MCP7a)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->works
|
|-
| <!--Description-->9400 (ION)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->If AROS detects GPU chipset, works well
|-
| <!--Description-->9700M ()
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Geforce ION 2
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->works well
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce Go 6150
| <!--Vendor ID-->
| <!--Product ID-->0x0244
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6100
| <!--Vendor ID-->
| <!--Product ID-->0x0247
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6200
| <!--Vendor ID-->
| <!--Product ID-->0x0164 0x0167
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6400
| <!--Vendor ID-->
| <!--Product ID-->0x0166 0x0168
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->Sony Laptop
|-
| <!--Description-->GeForce Go 6800
| <!--Vendor ID-->
| <!--Product ID-->0x00C8
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6800 Ultra
| <!--Vendor ID-->
| <!--Product ID-->0x00C9
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600
| <!--Vendor ID-->
| <!--Product ID-->0x0144
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600 TE/6200 TE
| <!--Vendor ID-->
| <!--Product ID-->0x0146
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600
| <!--Vendor ID-->
| <!--Product ID-->0x0148
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600 GT
| <!--Vendor ID-->
| <!--Product ID-->0x0149
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7200
| <!--Vendor ID-->
| <!--Product ID-->0x01D6
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7300
| <!--Vendor ID-->
| <!--Product ID-->0x01D7
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->untested
|-
| <!--Description-->GeForce Go 7400
| <!--Vendor ID-->
| <!--Product ID-->0x01D8
| <!--Revision-->
| <!--2D-->
| <!--3D-->works 2D and 3d issues though
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7800
| <!--Vendor ID-->
| <!--Product ID-->0x098
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7800 GTX
| <!--Vendor ID-->
| <!--Product ID-->0x0099
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7950 GTX
| <!--Vendor ID-->
| <!--Product ID-->0x0297
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7900 GS
| <!--Vendor ID-->
| <!--Product ID-->0x0298
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7900 GTX
| <!--Vendor ID-->
| <!--Product ID-->0x0299
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7600
| <!--Vendor ID-->
| <!--Product ID-->0x0398
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7600 GT
| <!--Vendor ID-->
| <!--Product ID-->0x0399
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 6610 XL
| <!--Vendor ID-->
| <!--Product ID-->0x0145
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 6700 XL
| <!--Vendor ID-->
| <!--Product ID-->0x0147
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce 8700M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0409
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8600M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0425
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8400M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0426
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8400M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0427
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8400M G
| <!--Vendor ID-->
| <!--Product ID-->0x0428
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8800M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x0609
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8800M GTX
| <!--Vendor ID-->
| <!--Product ID-->0x060C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9500M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0405
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8600M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0407
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9650M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0408
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9400M GT
| <!--Vendor ID-->
| <!--Product ID-->0x042C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9300M G
| <!--Vendor ID-->
| <!--Product ID-->0x042E
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9100M G
| <!--Vendor ID-->
| <!--Product ID-->0x0844
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9800M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x0628
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9700M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x062A
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9800M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x062C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9600M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0647
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9600M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0648
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9600M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0649
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9500M G
| <!--Vendor ID-->
| <!--Product ID-->0x064B
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9300M GS
| <!--Vendor ID-->
| <!--Product ID-->0x06E5
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9200M GS
| <!--Vendor ID-->
| <!--Product ID-->0x06E8
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9300M GS
| <!--Vendor ID-->
| <!--Product ID-->0x06E8
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->NV50 (G80) Quadro FX (4600 (SDI), 5600)
Quadro FX (2800M, 3600M, 3700, 3700M, 3800M, 4700 X2), VX 200
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV94 (G94) 9700M GTS, 9800M GTS, GeForce G 110M, GT 130(M), GT 140, Quadro FX (1800, 2700M)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV84 (G84) 8700M GT, GeForce 9500M GS, 9650M GS
Quadro FX (370, 570, 570M, 1600M, 1700), NVS 320M
NV86 (G86) GeForce 8300 GS, 8400 (GS, M G, M GS, M GT), 8500 GT, GeForce 9300M G
Quadro FX 360M, NVS (130M, 135M, 140M, 290)
GeForce GTS 150(M), GTS 160M, GTS 240, GTS 250, GTX (260M, 280M, 285M), GT (330, 340)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV96 (G96) 9650M GT, 9700M GT
GeForce G 102M, GT 120
Quadro FX (380, 580, 770M, 1700M)
NV98 (G98) GeForce 8400 GS, GeForce 9200M GS, 9300 (GE, GS, M GS)
GeForce G 100, G 105M
Quadro FX (370 LP, 370M), NVS (150M, 160M, 295, 420, 450)
Quadro CX, FX (3800, 4800, 5800)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVA3 (GT215) GeForce GT (240, 320, 335M), GTS (250M, 260M, 350M, 360M) Quadro FX 1800M
NVA5 (GT216) GeForce GT (220, 230M, 240M, 325M, 330M), 315
Quadro 400, FX 880M, NVS 5100M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVA8 (GT218) GeForce 8400 GS, ION 2, GeForce 205, 210, G 210M, 305M, 310(M), 405
Quadro FX (380 LP, 380M), NVS (300, 2100M, 3100M)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVAA (MCP77/MCP78) GeForce 8100, 8200, 8300 mGPU / nForce 700a series, 8200M G
NVAC (MCP79/MCP7A) ION, GeForce 9300, 9400 mGPU / nForce 700i series, 8200M G, 9100M, 9400M (G)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVAF (MCP89) GeForce 320M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GT 605M, GT 610M GT 620M GT 630M GT 635M GT 645M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GTX 650M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GTX 1650 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2019 turing architecture - last old skool support pre Vulkan
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rtx 2050 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 ampere architecture best starting point for vulkan support
|-
| <!--Description-->rtx 2060 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rtx 4060 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
|}
====radeon.hidd====
Michel Shultz ''2D'' graphics driver (standard on most distributions but only for very old GPUs) and bearsofts updated 2013 around Icaros 1.3.1
3D is not implemented by AROS yet but could cover these AMD chipsets
<pre>
2014 SI AMD HD 7xxx
2016 GCN3rd AMD R5E R7E
2019 GCN5th AMD Vega 8
2022 RDNA1 AMD RX5500 desktop only
2023 RDNA2 AMD 680M 780M
2024 RDNA3 AMD 880M 890M
2025 RDNA3.5 AMD 8060S strix halo and AI
2027 RDNA4 AMD
</pre>
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! 2D
! 3D
! Analogue Output
! Digital Output
! Laptop LCD
! Comments
|-
| 7000 (r100)
| 0x1002
| 0x5159
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->{{Maybe|vga15 pin connection but not s-video}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.3
|-
| 7500 (rv200 but still r100 based)
| 0x1002
| 0x5157
| 0x
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->{{Yes|vga15}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.3
|-
| 8000 8500 (r200)
| 0x1002
| 0x514c (8500LE)
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.4
|-
| 9000 9100 9250 (r200)
| 0x1002
| 0x5964 (9000) 0x514d (9100)
| 0x0001
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->{{Maybe|VGA15 but not s-video}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.4
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| 9600 9800 (r300)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1
|-
| x300 x600 (r300)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1
|-
| x700, x800 ([http://en.wikipedia.org/wiki/Radeon_R600 r420])
| 0x
| 0x554d (R430 x800xl)
| 0x0
| <!--2D-->{{Yes|new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1 - x800 XL PCIE (problem with mouse-pointer, some part of the pointer is not transparent)
|-
| x1300 x1550 x1600 x1800 x1900 x1950 ([http://en.wikipedia.org/wiki/Radeon_R520 r520])
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes|new driver}}
| <!--3D-->{{no}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| HD2400 HD2600 HD2900 ([http://en.wikipedia.org/wiki/Radeon_R600 r600])
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|some features with new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 3.3 open CL 1.2 TeraScale architecture
|-
| HD3400 HD3600 HD3800 (r600)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|some features with new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->pci-e 2.0, openGL 3.3
|-
| HD4300 HD4500 HD4600 HD4700 HD4800 ([http://en.wikipedia.org/wiki/Radeon_R600 r700])
| 0x1002
| 0x
| 0x0
| <!--2D-->{{Maybe|but some later cards need 3D engine for faster and more flexible 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 3.3 - DDR3 - GDDR5 was one of AMD's aces for the 4800 series - 4670 liked -
|-
| HD6900 cayman series
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|some features with new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 3.3 open CL not mature (2014) -
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| HD5400 Series HD5430 HD5450 HD5470
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2010 openGL 3.3 openCL - GDDR3 -
|-
| HD5500 Series HD5550 HD5570 HD5600 Series HD5650 HD5670 HD5700 Series HD5750 HD5770
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 3.3 openCL - GDDR5
|-
| HD 5800 Series HD5850 HD5870 HD5900 Series HD5950 HD5970 - HD6xxx not NI chipset ([http://en.wikipedia.org/wiki/Evergreen_(GPU_family) r800 evergreen])
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 openGL 3.3 openCL - DDR5 pci-e 2.1 best avoided for all pci-e 1.0 mobos - Ati TeraScale2 architecture -
|-
| HD6450 [http://en.wikipedia.org/wiki/Northern_Islands_(GPU_family) Northern Islands chipset]
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> - DDR3 -
|-
| HD6600 Series HD6650 HD6570 HD6600 Series HD6650 HD6670
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2011 - DDR5 -
Radeon HD 8470 11 TeraScale 2
Radeon HD 8350 11 TeraScale 2
Radeon HD 7510 11 TeraScale 2
Radeon HD 6550D 11 TeraScale 2
Radeon HD 6530D 11 TeraScale 2
Radeon HD 6410D 11 TeraScale 2
Radeon HD 6370D 11 TeraScale 2
Radeon HD 6320 11 TeraScale 2
Radeon HD 6310 11 TeraScale 2
Radeon HD 6290 11 TeraScale 2
Radeon HD 6250 11 TeraScale 2
|-
| HD6800 Series HD6850 HD6870 HD6700 Series HD6790 to HD6990
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2011 - DDR5 - AMD TeraScale3 -
|-
| <!--Description-->HD7450-HD7670
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2012 OpenGL but not Vulkan
Radeon HD 7660D 11 TeraScale 3
Radeon HD 7560D 11 TeraScale 3
Radeon HD 7540D 11 TeraScale 3
Radeon HD 7480D 11 TeraScale 3
Radeon HD 6930 11 TeraScale 3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->HD7750 HD 7770 / R7 250X HD7850 HD7870 / R9 270X HD 7950 / R9 280 HD 7970 / R9 280X [http://en.wikipedia.org/wiki/Southern_Islands_(GPU_family) Southern Islands]
*AMD Radeon R7 250XE Cape Verde XT
*AMD Radeon R7 M465X Cape Verde
*AMD Radeon R9 255 Cape Verde PRX
*AMD Radeon HD 7750 Cape Verde PRO
*AMD Radeon R7 250E Cape Verde PRO
*AMD Radeon HD 8740 Cape Verde PRO
*AMD Radeon HD 7730 Cape Verde LE
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2012 pci-e 3.0 1st Gen GCN architecture -
|-
| <!--Description-->R5 430, FirePro W2100,
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2015 50W+ openGL openCL 1/3 speed of gtx750ti 1st gen gcn1
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->HD7790 [ Sea Islands ]
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 openGL 4.1 open CL - GCN2.0 Vulkan 1.0 introduced a Shader Engine (SE) comprising one geometry processor, up to 44 CUs (Hawaii chip), rasterizers, ROPs, and L1 cache and Graphics Command Processor for faster audio/video - suits Vulkan 1.1
|-
| <!--Description-->r5 240 240x (slow) R7 250 250x (faster) HD 7790 / R7 260 260X / R7 360 to R5 350 (fast) and last one R5 430 OEM Plus (slow again)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 50W+ openGL 4.x openCL 1.x Vulkan 1.0 GCN 1st gen -
|-
| <!--Description-->R9 290 / R9 390 R9 290X / R9 390X
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2014 openGL 4.x openCL 1.x 2nd Gen GCN Vulkan 1.1 architecture -
|-
| <!--Description-->R9 Fury Nano
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2015
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->r-200 series r8 275 285 295 375 [Volcanic Islands]
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 4.x openCL 1.x - GCN3 Vulkan 1.2
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Radeon™ RX 5700/5600/5500 Series and Radeon™ RX Vega Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 GCN 4 - OpenGL 4, Vulkan 1.3 -
|-
| <!--Description-->Radeon™ RX 400/500 Series like rx 580
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->Radeon™ Pro WX 9100, x200 Series and Radeon™ Pro W5700/W5500 Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Radeon™ RX 7900/7600 Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->Radeon™ RX 6900/6800/6700/6600/6500 Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|}
==== amd radeon mobile integrated ====
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|-
| <!--Description-->ATI RC410 [Radeon Xpress 200M]
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x5a62 0x5955 0x5974 (200m)
| <!--Revision-->0x00
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->
|-
| <!--Description-->Mobility Radeon 7500
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x4c57 (7500)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->
|-
| <!--Description-->Mobility Radeon 9000
| 0x1002
| 0x4966 (9000)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->
|-
| <!--Description-->Mobility Radeon 9500 9550 (rv360) 9600 (rv350)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon 9800 (rv420)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon X300 (RV370) X600 (RV380)
| 0x1002
| 0x (RV370) 0x5657 (RV380)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon X700 (RV410) X800 (RV423)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon X1200 (RS69M0)
| 0x1002
| 0x791f
| 0x0
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->X1200 IGP (RS690)
|-
| <!--Description-->Mobility Radeon X1300 X1350 X1400(rv515) X1600 (rv530) X1650 (RV535) X1800 (rv520) x1900 (rv570)
| 0x1002
| 0x71c7 (X1650)
| 0x009e
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon 2100
| 0x1002
| 0x796e (2100)
| 0x0
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{No|}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 2400 (rv610) HD2600 (rv630)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 3100 HD3200 HD3450 3470 (RS780MC RV620) 3670 (M86-XT RV635) HD3870 (M88-LXT RV670)
| 0x1002
| 0x9610 and 0x9612 (HD3200) 0x9614 (HD3300)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 4200 4250 (RV620)
| 0x1002
| 0x (HD4200) 0x9715 (HD4250)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 4330 4530 4550 (M92 RV710) 4650 (M96-XT RV730) 4670 RV730XT 4830 (M97 RV740) 4850 (M98 RV770)
| 0x1002
| 0x (HD4350) 0x9442 (RV770) 0x9490 (HD4670)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 530v (M92 RV710) HD 550v (M96 RV730)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->no support yet
|-
| <!--Description-->Mobility Radeon HD 5430 HD5650 (cedar Park LP)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->no support yet
|-
| <!--Description-->Radeon HD 6250 6290 6310 6320 6350M (Redwood Capilano PRO)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->no support yet
|-
| <!--Description-->AMD 7640G, 8450G, 8550G, 8650G Northern Islands
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 Last real support for old graphics standard before Vulkan takeover
|-
| <!--Description-->R5 M230 M240 M255 - R7 M260 M265 (Kaveri Crystal series with Mantle and HSA)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->2015 Maybe better with Vulkan
|-
| <!--Description-->R5E R7E
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->2016 bristol ridge GCN 3.0 IGP (Carrizo Mobile)
|-
| <!--Description-->AMD Vega 3, 6, 8, 11 iGP
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2018 raven ridge GCN 5th Gen
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->5500m 5600m 5800m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA1 NaviX1 Zen 2
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rx680m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA2 NaviX2 Zen 3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->phoenix apu 1103
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 RDNA3 NaviX3 zen 4
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
==== AMDGPU Vulkan desktop ====
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Kaveri 290 290X, 260 260X
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2015 AMDGPU Vulkan
|-
| <!--Description-->R9 285 / R9 380 R9 380X Fury / Fury X
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->opengl 4 opencl 1 3rd Gen GCN architecture
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX470 RX460 RX480 RX580 polaris10
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 opengl 4 opencl 2 4th Gen GCN architecture vulkan 1.3
|-
| <!--Description-->RX460 RX560D polaris11
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 opengl 4 opencl 2 4th Gen GCN architecture vulkan 1.3
|-
| <!--Description-->RX580 polaris20
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 opengl 4 opencl 2 4th Gen GCN architecture vulkan 1.3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX 5000 5500 Navi 1x
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RNDA 1
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX 6000 Navi 2x
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RNDA 2 Mesa 21.3 decode av1
|-
| <!--Description-->RX6000
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX 7000
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 RNDA 3 navi
|-
| <!--Description-->RX7000
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->RX9070 rx 9060 XT
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2025 rdna4 navi
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2026 udna (aka rdna5)
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
|}
==== AMDGPU Vulkan mobile ====
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->R5E R7E
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->2016 bristol ridge GCN 3.0 IGP (Carrizo Mobile)
|-
| <!--Description-->Vega iGP 3, 6, 8, 11
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2018 raven ridge - Graphics Core Next (GCN) 5th gen -
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->5500m 5600m 5800m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA1 NaviX1 Zen 2
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rx680m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA2 NaviX2 Zen 3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->phoenix apu 1103
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA3 NaviX3 zen 4
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
fyi if a notebooks with two graphic cards, the integrated Intel card (id 0x7d) for low power usage and a discrete Radeon card (id 0x56) which should be used for GPU-intensive applications. By default the Intel card is always used
[https://wiki.archlinux.org/title/ATI Gallium Radeon HD] is not ported yet but is [https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.9-AMDGPU-Stats really big] and complex so another solution may have to be [https://discuss.haiku-os.org/t/the-graphics-acceleration-can-of-worms/10515/5 found] like [https://discuss.haiku-os.org/t/vulkan-lavapipe-software-rendering-is-working-on-haiku/11363/10 vulkan] where support starts from very recent ISA GCN islands HD7000s cards only
*Vulkan
*Gallium
Vulkan software renderer allows to prepares the infrastructure for hardware rendering. Primary difference between software and hardware renderer is output to regular RAM vs GPU RAM, the rest is almost the same. It is possible to render to GPU RAM offscreen.
bare bones basics data flow
application,>>> api/opengl/vulkan>>>>, jit compiler, >>>>memory manger, >>>>gpu hardware
so you need to have a compiler that takes your api call/program/shaders/drawing commands and turns them into a program the gpu can render.
the vulkan to amd gpu compiler for shaders and textures is nearly os agnostic iirc as long as you have solid posix compliance
Unlike OpenGL, Vulkan does not depend on windowing system and it have driver add-on system with standardized API (Mesa also have OpenGL driver add-ons, but it have non-standard Mesa-specific API). OpenGL may need more work for windowing system related code at this point but developing Vulkan on real hardware is more strategic than developing OpenGL, since now Zink 3 running on Vulkan compensates for the lack of OpenGL support by giving performance similar to native accelerated OpenGL
RadeonGfx use client-server model with client-server thread pairs. For each client thread that calls 3D acceleration API, server side thread is created. If client thread terminates, server side thread also exit.
==Rough gfx comparison==
<pre>
Group 1
GeForce RTX 5090 5070 5060 5050
GeForce RTX 4090 4070 4060 4050
Group 2
GeForce RTX 2070
Radeon RX 7600
Quadro RTX 5000
Radeon PRO W6600
GeForce RTX 2060 12GB
Radeon PRO W7500
Quadro GP100
Radeon RX 6800S
GeForce RTX 3070 Laptop GPU
GeForce GTX 1080
GeForce RTX 3060 8GB
Quadro RTX 4000
Radeon Pro W5700
Radeon RX 6600
GeForce RTX 2080 (Mobile)
Radeon RX 7700S
Radeon RX 6700S
Radeon RX 6600S
Quadro RTX 5000 (Mobile)
GeForce GTX 1070 Ti
GeForce RTX 4050 Laptop GPU
Radeon Pro Vega 64X
Radeon RX 5700
Radeon RX Vega 64
GeForce RTX 2060
GeForce RTX 2070 Super with Max-Q Design
Group 3
Radeon RX 6600M
GeForce GTX 1070
Radeon RX 6650M
GeForce RTX 3060 Laptop GPU
Radeon RX Vega 56
Radeon RX 6700M
GeForce RTX 2080 with Max-Q Design
Radeon RX 6800M
GeForce GTX 980 Ti
Radeon R9 Fury
GeForce GTX 980
Quadro M5500
Radeon R9 390X
Radeon RX 580
Radeon RX 5500
Radeon RX 6550M
GeForce GTX 1660 Ti with Max-Q Design
GeForce GTX 780 Ti
GeForce GTX 970
Radeon R9 290X
Radeon RX 480
Radeon RX 5600M
Quadro RTX 3000 with Max-Q Design
Radeon R9 290X / 390X
Ryzen 5 4600HS with Radeon Graphics
Radeon R9 290
Radeon Pro 5500 XT
Radeon R9 M490 *
GeForce GTX 780
Radeon RX 6500M
Quadro M5500
GeForce GTX 1060 with Max-Q Design
Radeon RX 6500
Radeon RX 5300
Intel Arc A770M
GeForce GTX 1650 Ti
Radeon Pro 580X
Radeon RX 6400
GeForce RTX 2050
Ryzen 9 4900HS with Radeon Graphics
Radeon Ryzen 9 6900HS
GeForce GTX 980M
Quadro M5000M
Radeon RX 6300
GeForce GTX 1650 Ti with Max-Q Design
Radeon Pro 570
Ryzen 9 6900HS with Radeon Graphics
GeForce GTX 1050 Ti
Quadro M4000M
Radeon R9 280X 380X
GeForce GTX 1650 with Max-Q Design
GeForce MX570
Radeon R9 280X
Radeon R9 380
Radeon 780M
GeForce GTX 960
GeForce GTX 970M
Quadro M4000M *
GeForce GTX 680
Group 4
Radeon RX 6500M
Quadro M5500
Radeon Pro WX 7100
GeForce GTX 1060 with Max-Q Design
GeForce GTX 1650
Intel Arc A730M
Radeon HD 7970
Radeon R9 M395X
Radeon R9 M485X
Radeon R9 M480 *
Radeon R9 M295X
Radeon R9 M390X *
FirePro W7170M *
Radeon R9 M395
Radeon R7 370
Radeon RX 5500M
GeForce GTX 590
GeForce GTX 880M
GeForce GTX 950
Radeon R9 270X
GeForce GTX 660 Ti
GeForce GTX 760
GeForce GTX 780M
Quadro K5100M
GeForce GTX 680MX
Radeon HD 7870
GeForce GTX 965M
Quadro M3000M *
GeForce GTX 870M
Radeon R9 M290X
Radeon HD 8970M
Radeon Ryzen 7 7735U (680M), Radeon Ryzen 7 7735HS (680M 12C)
GeForce GTX 580
Radeon HD 6970
GeForce GTX 1050
GeForce GTX 680M
GeForce GTX 775M
GeForce GTX 1630
FirePro M6100
Radeon HD 7970M
Radeon R9 M390 *
GeForce GTX 750 Ti
Group 5
GeForce GTX 570
GeForce GTX 480
GeForce GTX 960M
Quadro M2000M *
Quadro K5000M
Quadro K4100M
GeForce GTX 770M
GeForce GTX 860M
GeForce GTX 675MX
GeForce GTX 950M
GeForce GTX 850M
Quadro M1000M
Radeon R9 M280X
Radeon HD 7950M *
GeForce GTX 560 Ti
Radeon HD 6870
GeForce GTX 470
GeForce GT 1030
GeForce MX330
Ryzen 5 PRO 5650GE with Radeon Graphics
Ryzen 7 5800HS
FirePro 3D V8800
GeForce MX250
Group 6
Radeon Pro WX 3200
Ryzen 7 PRO 5750G with Radeon Graphics
Radeon Ryzen 5 5600H
Ryzen 5 Pro 4650G with Radeon Graphics
Radeon Ryzen 7 5800U
Ryzen 7 7730U with Radeon Graphics
Radeon Ryzen 7 5825U
Radeon Pro WX 4150
Radeon Ryzen 5 PRO 4655G
Ryzen 5 4600G with Radeon Graphics
Radeon Ryzen 5 PRO 4655GE
GeForce GTX 485M
FirePro W6150M
Ryzen 7 5800U with Radeon Graphics
Ryzen 5 7530U with Radeon Graphics
Ryzen 7 4800U with Radeon Graphics
Radeon R9 M470
Ryzen 3 PRO 5350G with Radeon Graphics
Radeon RX Vega Ryzen 3 5300U
Ryzen 7 5825U with Radeon Graphics
Ryzen 5 PRO 4400G with Radeon Graphics
Radeon Ryzen 7 PRO 4750GE
Radeon Ryzen 7 4800U
FirePro V7900
Radeon HD 5970
Radeon Ryzen 7 7700X 8-Core
Radeon Ryzen 5 PRO 5650G
Radeon Ryzen 5 4400G
Radeon Ryzen 5 PRO 5650GE
Radeon RX 550X
FirePro V8800
Radeon RX Vega Ryzen 5 5500U
GeForce MX150
Quadro K3100M
Ryzen 7 PRO 5850U with Radeon Graphics
Radeon HD 6970M
Radeon R7 250X
Intel HD 5600
Ryzen 3 4300GE with Radeon Graphics
GeForce GTX 460
Ryzen 7 5700U with Radeon Graphics
Radeon Ryzen 5 7530U
Quadro K620
Ryzen 3 PRO 5350GE with Radeon Graphics
Intel Iris Pro P580
Intel UHD Graphics P630
Ryzen 5 4600H with Radeon Graphics
Ryzen 5 PRO 7530U with Radeon Graphics
Radeon HD 5870
Radeon HD 6870
Ryzen 7 4700G with Radeon Graphics
Ryzen 5 5600U with Radeon Graphics
Radeon HD 7770
Ryzen 3 Pro 4350G with Radeon Graphics
Radeon Ryzen 5 5625U
GeForce GTX 745
Radeon Ryzen 7 4850U Mobile
Radeon Ryzen 3 PRO 7330U
Quadro M600M
Radeon Ryzen 5 5500U
Ryzen 5 5560U with Radeon Graphics
Ryzen 7 4800H with Radeon Graphics
Group 7
GeForce 945M
Ryzen 5 PRO 4650GE with Radeon Graphics
FirePro M5100
Radeon Ryzen 5 5600U
Radeon Ryzen 5 PRO 4500U
GeForce GTX 580M
Ryzen 7 PRO 5875U with Radeon Graphics
Ryzen 3 5300GE with Radeon Graphics
Radeon R9 M385
Quadro 5000M
Radeon Ryzen 7 4700U
Ryzen 5 PRO 5650U with Radeon Graphics
Radeon Ryzen 7 PRO 4750U
Ryzen 7 4700U with Radeon Graphics
Ryzen 7 PRO 4750U with Radeon Graphics
FirePro V7800
Radeon R9 350
Ryzen 3 4300G with Radeon Graphics
Radeon Vega 11 Ryzen 5 PRO 3350G
Radeon Ryzen 5 5560U
GeForce GTX 460 SE
Radeon Pro W5500M
Radeon Vega 11 Ryzen 5 PRO 3400G
Ryzen 5 5500U with Radeon Graphics
Ryzen 5 PRO 4500U with Radeon Graphics
GeForce GT 645
GeForce GTX 765M
Radeon R9 M385X
Ryzen 5 5625U with Radeon Graphics
Ryzen 3 PRO 7330U with Radeon Graphics
Radeon HD 5850
Radeon Vega 11 Ryzen 5 PRO 2400G
Intel Iris Pro 580
Radeon HD 6850
Intel Iris Xe MAX
Radeon Ryzen 7 PRO 5875U
Radeon Ryzen 5 7600 6-Core
GeForce GTX 470M
Ryzen 3 5300G with Radeon Graphics
GeForce GTX 670MX
Radeon RX 640
Qualcomm Adreno Gen 3
Radeon R7 450
GeForce GTX 675M
Radeon Pro WX 4130
Intel Iris Xe MAX 100
Quadro 5000
Radeon RX 570X
Radeon HD 7700-serie
Ryzen 5 4600U with Radeon Graphics
Ryzen 3 PRO 4350GE with Radeon Graphics
Radeon Vega 8
Group 8
GeForce MX230
GeForce GTX 765M
Quadro K4000M
Iris Pro Graphics P580 *
Iris Pro Graphics 580 *
GeForce GTX 645
Quadro M520
GeForce GTX 570M
GeForce MX130
Radeon RX 540
Radeon Ryzen 5 PRO 5675U
Intel UHD Graphics 770
Radeon RX Vega 11 Ryzen 7 3750H
Radeon Vega 11 Ryzen 5 PRO 3400GE
Radeon HD 5850
GeForce GTX 675M
GeForce GTX 580M
Radeon HD 6990M
Radeon R9 M385X *
Radeon R9 M470X *
Radeon R9 M470 *
Radeon R9 M385 *
Radeon R9 M380 *
Radeon R9 M370X
Radeon R9 M275
Radeon HD 7770
GeForce GTX 485M
GeForce GTX 460 768MB
Radeon HD 6790
GeForce GTX 285M SLI
Quadro K3100M
FirePro W5170M *
GeForce GTX 670MX
Quadro 5010M
GeForce GTX 760M
GeForce GTX 670M
Group 9
GeForce 940MX *
Maxwell GPU (940M, GDDR5)
FirePro M8900
Radeon HD 6970M
Radeon R9 M270
Radeon HD 8870M
Radeon HD 7870M
Quadro K3000M
GeForce GTX 570M
FirePro M6000
FirePro M5100
Quadro K2100M
Radeon HD 5770
GeForce GTX 550 Ti
GeForce GTX 280M SLI
Radeon HD 6950M
Radeon R7 250
GeForce GT 755M
GeForce GTX 660M
GeForce 845M
Radeon HD 8850M
Radeon R9 M365X
Radeon R9 M265X
Ryzen 5 PRO 4400GE with Radeon Graphics
FirePro W5130M *
Radeon Vega 8 Ryzen 5 3500U
Radeon HD 7850M
Radeon HD 8790M
FirePro W4170M
FirePro W4190M
FirePro W4100
Radeon Vega 6 Ryzen 3 3300U
Quadro 4000M
GeForce GTX 470M
GeForce GTX 480M
GeForce GT 750M
Iris Pro Graphics 6200
Quadro K1100M
GeForce 940M
Radeon R9 M375
GeForce 930MX *
Radeon R7 M380 *
Radeon R7 M370
Quadro M600M *
GeForce GT 650M
Quadro K620M
GeForce 840M
Radeon R7 M275DX
GeForce GT 745M
Radeon HD 7770M
GeForce GTX 560M
Radeon R7
Iris Pro Graphics 5200
GeForce GT 740M
GeForce 930M
Radeon HD 4850
Group 10
Iris Graphics 550 *
GeForce 830M
Iris Graphics 540
Quadro M500M *
Quadro K2000M
GeForce GTS 450
GeForce GTX 260M SLI
GeForce GT 735M
Mobility Radeon HD 5870
GeForce 825M
Quadro 5000M
FirePro M4000
FirePro M7820
Radeon HD 6870M
GeForce 9800M GTX SLI
Radeon HD 8830M *
Radeon HD 8770M
Radeon R7 M260X
GeForce GTX 460M
GeForce 920MX *
GeForce GT 730M
Radeon HD 7750M
GeForce GT 645M *
FirePro M4100
Radeon HD 8750M
Radeon R6 A10-9600P 4C+6G
Quadro 3000M
Radeon R7 M270
Radeon R7 M265
Quadro FX 3800M
GeForce GTX 285M
Mobility Radeon HD 4870
GeForce GT 640M
Radeon R7 (Kaveri)
Radeon R8 M365DX
Radeon R7 M460 *
Radeon HD 7730M
Radeon R7 M360
GeForce GTX 280M
Radeon HD 8690M
Quadro FX 3700M
Radeon R7 M340
GeForce 920M
Radeon R6 M340DX
HD Graphics 530
HD Graphics P530
Tegra X1 Maxwell GPU
Radeon R7 M260
Radeon R6
Group 11
Mobility Radeon HD 4860
FirePro M7740
Mobility Radeon HD 4850
GeForce GTX 260M
GeForce 9800M GTX
Quadro FX 2800M
Radeon HD 8670D
Radeon HD 7690M XT
FirePro M5950
GeForce GT 640M LE
Radeon R6 (Kaveri)
Radeon HD 8650M *
Radeon HD 8730M
Radeon HD 6770M
GeForce GT 635M
GeForce GT 555M
Radeon R7 A10 PRO-7800B
Radeon HD 5670
Mobility Radeon HD 5850
Radeon HD 6850M
Quadro 2000M
GeForce 9800M GT
GeForce 8800M GTX
Quadro FX 3600M
GeForce GT 445M
GeForce GTS 360M
Group 12
GeForce GT 240
Radeon R7 PRO A10-9700
Radeon HD 7690M
HD Graphics 5600
Radeon HD 8570D
Radeon HD 8670M
Radeon R6 M255DX
Radeon HD 7660D
Radeon HD 6750M
Quadro K1000M
GeForce GT 550M
Radeon HD 8590M *
GeForce GTS 260M
GeForce GTS 160M
GeForce 9800M GTS
GeForce GT 430
Radeon HD 6830M
Mobility Radeon HD 5830
Radeon HD 6730M *
GeForce 9800M GS
Mobility Radeon HD 4830
Mobility Radeon HD 5770
Radeon HD 6570M
Radeon HD 8650G
Radeon HD 7670M
GeForce GT 630M
Radeon HD 7560D
GeForce GTS 150M *
Radeon R5 M335
Radeon R5 M430 *
Radeon R5 M330
Radeon R5 M255
Radeon Vega 3
Quadro 1000M
GeForce 820M
FirePro W2100
HD Graphics 520 620
Iris Graphics 6100
GeForce GT 720M
GeForce 8800M GTS
Radeon R5 M240
Radeon R5 M320 *
Radeon R5 M230
Radeon R5 M315 *
Mobility Radeon HD 5750 *
Radeon HD 8570M
Radeon R7 PRO A10-8850B
HD Graphics 6000
Quadro K610M
Radeon HD 8550M
Iris Graphics 5100
GeForce GT 540M
Mali-T880 MP12 *
Radeon HD 8610G *
Radeon HD 6650M
HD Graphics 4600
Mobility Radeon HD 5730
HD Graphics 5500
Radeon R5 (Carrizo) *
Radeon R5 (Kaveri)
FirePro M5800
NVS 5400M
GeForce 710M
Radeon HD 7660G
GeForce GT 435M
HD Graphics 5000
Quadro K510M *
Radeon HD 5570
Radeon HD 6550M
Radeon HD 7590M *
GeForce GTS 350M
GeForce GTS 250M
Radeon HD 6630M
Radeon HD 7650M
FirePro M2000
Radeon HD 7570M
Radeon HD 7630M
Quadro FX 1800M
Mobility Radeon HD 5650
Radeon HD 8510G *
Radeon HD 6530M
Radeon HD 8550G
Quadro K500M *
GeForce GT 625M *
GeForce GT 620M
GeForce GT 525M
Radeon HD 6550D *
Radeon HD 7610M
Radeon HD 7620G
Radeon HD 8470D
Radeon HD 7640G
Adreno 530
GeForce ULP K1 (Tegra K1 Kepler GPU)
HD Graphics 4400
HD Graphics 510 515 *
NVS 5200M
Mobility Radeon HD 565v
Radeon HD 7550M
Mobility Radeon HD 4670
GeForce GT 425M
GeForce 9700M GTS
Radeon HD 6645G2 *
Quadro FX 2700M
GeForce GT 335M
Radeon HD 7600G
Mobility Radeon HD 3870
Mobility Radeon HD 4650
GeForce GT 220
GeForce GT 420M
Radeon HD 7530M *
Mobility Radeon HD 3850
GeForce GT 330M
Quadro FX 880M
Quadro NVS 5100M
GeForce GT 240M
Radeon HD 7490M *
HD Graphics 5300
Radeon HD 7510M *
GeForce Go 7950 GTX
Quadro FX 3500M
GeForce 8700M GT SLI
GeForce 9700M GT
GeForce GT 230M
Mobility Radeon HD 550v
Radeon HD 7480D
HD Graphics 4000
Mali-T760 MP8
Radeon HD 6620G
HD Graphics (Broadwell) *
Adreno 430
Radeon R5 (Beema/Carrizo-L)
Radeon R4 (Beema) (Kaveri)
HD Graphics (Skylake) *
Radeon HD 6450 GDDR5
Radeon HD 7500G
Radeon HD 8450G
Radeon HD 7470M
Radeon HD 6490M
Radeon HD 8400
Mali-T880 MP4
GeForce GT 520MX
Radeon HD 7520G
GeForce GT 325M
GeForce Go 7800 GTX SLI
GeForce 8600M GT SLI
GeForce Go 7900 GS SLI
GeForce GT 130M
NVS 4200M
GeForce Go 7900 GTX
Quadro FX 2500M
Radeon HD 8350G
Radeon HD 8330
GeForce 9650M GS
GeForce 9650M GT
Radeon R3 (Mullins/Beema)
GeForce 8700M GT
Quadro FX 1700M
Quadro FX 1600M
GeForce Go 7800 GTX
GeForce Go 7900 GS
Quadro NVS 320M
Quadro FX 1500M
GeForce 9600M GT
GeForce GT 220M
Quadro FX 770M
GeForce GT 120M
Radeon HD 7450M
GeForce 610M
GeForce 705M
Mali-T760 MP6
Radeon HD 6470M
FirePro M3900 *
GeForce GT 520M
Radeon HD 7420G
Mobility Radeon HD 3670
Mobility FireGL V5725
PowerVR GX6450
Adreno 420
HD Graphics (Haswell)
Radeon HD 6520G
Radeon HD 8310G *
GeForce 320M
GeForce GT 320M
Mobility Radeon HD 2600 XT
Mobility Radeon X1900
Mobility Radeon X1800XT
Mobility Radeon X1800
GeForce Go 6800 Ultra
GeForce Go 7800
GeForce 9600M GS
GeForce 9500M GS
Radeon HD 7400G
Radeon HD 6480G *
Mobility Radeon HD 2700
GeForce GT 415M
GeForce 410M
Radeon HD 7370M
Adreno 418
HD Graphics (Cherry Trail)
Radeon HD 6370M
Radeon HD 8280
Mobility Radeon HD 5470
Radeon HD 6450M
Radeon HD 7430M *
Mobility Radeon HD 3650
Mobility FireGL V5700
Mobility Radeon HD 5145
Mobility Radeon HD 545v
Radeon R6 (Mullins) *
Radeon HD 8240
Radeon HD 8250
Mobility Radeon HD 4570
Quadro FX 570M
Mobility Radeon HD 5450 *
Radeon R2 (Mullins/Beema) *
GeForce 8600M GT
Mobility Radeon HD 2600
HD Graphics 3000
Quadro FX 380M
GeForce 310M
GeForce G210M
NVS 3100M
GeForce 405M
GeForce 315M
GeForce Go 7600 GT
GeForce 9500M G
GeForce 8600M GS
NVS 2100M
GeForce Go 7700
GeForce Go 6800
Quadro FX Go 1400
Mobility Radeon X800XT
Radeon HD 6430M *
Radeon HD 6380G *
Mobility Radeon HD 5430
Radeon HD 8210
Mobility Radeon HD 540v
Mobility Radeon HD 4550
HD Graphics 2500
HD Graphics (Ivy Bridge)
Quadro NVS 310
Radeon HD 7350M *
Radeon HD 6350M *
Mobility Radeon HD 4530
Mobility Radeon HD 4350
Radeon HD 4350
GeForce 305M
Mobility Radeon X1700
Mobility FireGL V5250
Mobility Radeon X2500
GeForce Go 7600
Quadro NVS 300M
Mobility Radeon X800
Mobility Radeon X1600
Mobility FireGL V5200
Mobility Radeon 9800
GeForce Go 6600
Mobility Radeon X1450
Mobility Radeon X700
Mobility FireGL V5000
GeForce G 110M
Quadro NVS 295
Radeon HD 6330M *
Mobility Radeon HD 4330
GeForce 8400M GT
Quadro NVS 140M
HD Graphics 2000
GeForce 9500M GE *
GeForce 9400M (G) / ION (LE)
HD Graphics (Sandy Bridge) *
Adreno 330
PowerVR G6430
PowerVR GX6250
PowerVR G6400
HD Graphics (Bay Trail)
Mali-T628 MP6
Mali-T760 MP4
Chrome9HD *
Radeon HD 7340
Radeon HD 6320 *
Radeon HD 7310
Radeon HD 6310 *
Radeon HD 8180
Mobility Radeon HD 3470
GeForce 9300M G
ION 2 *
GeForce 9300M GS
Quadro FX 370M
Quadro NVS 160M
GeForce 9200M GS
Mobility Radeon HD 3450
Mobility Radeon HD 3430
Mobility Radeon HD 3410
Mobility Radeon HD 2400 XT
Radeon HD 4270
Radeon HD 4250
Radeon HD 7290 *
Radeon HD 6290 *
Radeon HD 4200
Graphics Media Accelerator (GMA) HD Graphics
Radeon HD 6250
Quadro NVS 150M
Quadro FX 360M
Mobility Radeon X1350
Mobility Radeon X1400
GeForce 9100M G
GeForce 8400M GS
Quadro NVS 135M
Mobility Radeon HD 2400
Radeon HD 3200
Radeon HD 4225 *
Radeon HD 4100 *
SGX554MP4
Mali-T628 MP4
Mobility Radeon HD 3400 *
Radeon HD 3100
GeForce 8400M G
Mali-T860 MP2
Quadro NVS 130M
GeForce 8200M G
Graphics Media Accelerator (GMA) 4700MHD
Graphics Media Accelerator (GMA) 4500MHD
Graphics Media Accelerator (GMA) 4500M
Mali-T604 MP4
GeForce Go 7400
Quadro FX 350M
Quadro NVS 120M
GeForce Go 7300
GeForce Tegra 4 *
PowerVR G6200
Adreno 405 *
Quadro NVS 110M
Mobility Radeon X600
Mobility FireGL V3200
Mobility FireGL V3100
Mobility Radeon HD X2300
Mobility Radeon 9700
Mobility FireGL T2e
Mobility Radeon X1300
GeForce4 4200 Go
Mobility Radeon 9600
Mobility FireGL T2
Mobility Radeon 9550
GeForce Go 7200
GeForce Go 6400
Mobility Radeon X300
GeForce Go 6250
GeForce Go 6200
GeForce FX Go 5700
Quadro FX Go 1000
GeForce FX Go 5600 / 5650
Radeon Xpress X1270
Radeon Xpress X1250
Radeon Xpress X1200
Graphics Media Accelerator (GMA) X3100
Mali-T624
Adreno 320 *
Mali-T760 MP2
Mali-T720 MP4
Mali-450 MP4
Graphics Media Accelerator (GMA) 3650 *
GeForce 7190M *
GeForce 7150M
Radeon Xpress 1150
GeForce Go 6150
GeForce Go 6100
GeForce 7000M
Graphics Media Accelerator (GMA) 3600 *
Mobility Radeon 9200
Mobility FireGL 9000
GeForce FX Go 5200
Mobility Radeon 9000
GeForce 4 488 Go
GeForce 4 460 Go
GeForce 4 440 Go
GeForce 4 420 Go
Graphics Media Accelerator (GMA) 3150
Graphics Media Accelerator (GMA) 950
SGX545 SGX544MP2 SGX543MP2 *
Mali-T720 MP2
Mali-T720
Adreno 302 304 305 306
Mobility Radeon 7500
Mobility FireGL 7800
Graphics Media Accelerator (GMA) 900
Radeon Xpress 200M
Radeon Xpress 1100
Mirage 3+ 672MX
Mirage 3 671MX
Mali-400 MP4 *
GeForce ULP (Tegra 3) *
VideoCore-IV *
Adreno 220 225*
Vivante GC1000+ Dual-Core
Mali-400 MP2 *
GeForce ULP (Tegra 2) *
Graphics Media Accelerator (GMA) 600 *
SGX540 *
Graphics Media Accelerator (GMA) 500
Adreno 205 *
Adreno 203 *
GC800 *
SGX535
SGX531
SGX530
Adreno 200 *
Mali-200 *
GeForce 3 Go *
GeForce 2 Go 200 / 100
Mobility Radeon 9100 IGP
Mobility Radeon 9000 IGP
Mobility Radeon M7
Mobility Radeon M6
Chrome9 HC
Extreme Graphics 2
Mobility Radeon 7000 IGP
Radeon IGP 340M
Radeon IGP 320M
S3G UniChrome Pro II
S3G UniChrome Pro
Castle Rock
Mirage 2 M760
Mirage M661FX
S3 Graphics ProSavage8
Mobility 128 M3
SM502 *
</pre>
Kernel-space drivers like '''radeon''' (older AMD driver for older GPUs), '''amdgpu''' (newer driver for newer GPUs, allows using a few new features), i915, nouveau and a few others. They are what handles the gory details of talking to the GPU itself (writing to proper registers, handling its memory directly, configuring outputs, and so on). Unfortunately most of what they're exposing can be only consumed by a single user of that GPU, which is why we need...
DRM and DRI (Direct Rendering Manager/Infrastructure) controls access to the GPUs, provides interfaces for talking to the GPU concurrently by multiple apps at once (without them breaking each other) and lets the system perform the most basic tasks like setting proper resolution and such if no userspace apps understand how to talk to the GPU exposed. DRI and DRM expose the GPU interfaces mostly as-is, not in a "vendor-neutral" portable way - if you don't have an application developed specifically for a GPU you have, it won't work.
"let's create a vendor-neutral interface for graphics so that apps can ignore the GPU-specific bits and get right to the drawing!" - which is what OpenGL is. User-space drivers implement the OpenGL specification and expose it as an OpenGL library to apps (like games, browsers, etc) instead of the GPU. Mesa is the most popular collection of open-source user-space drivers and contains a few user-space drivers for different GPU families: '''radeonsi''' for most modern AMD GPUs (and '''r600g''', r300g and others for older ones), '''i915/i965''' for old/new Intel GPUs and '''nouveau''' for Nvidia GPUs.
There's also Gallium, which is a bunch of utilities and common code shared among these drivers - if certain things can be done once and work everywhere, they'll land in Gallium and benefit all the drivers. Most Mesa drivers use Gallium (radeonsi, nouveau, software renderers), some don't (intel after gma950).
Displaying 2D windows supports device-specific 2D drivers as well, but nowadays most of these are no longer needed as the modesetting can handle most hardware on its own. As the DRM/DRI got some additional interfaces for what used to be hardware-specific (setting resolutions, refresh rates, etc) and software requiring accelerated 2D drawing was optimized OpenGL-based renderers, dedicated 2D acceleration is slowly going away. Since around 2012, the 3D part of the graphics card deals with 2D operations.
Modern GPUs can also decode video!? There's VDPAU (NVIDIA & AMD GPUs) and VA-API (AMD & Intel GPUs) that can also talk to the GPU exposed via DRM/DRI and issue proper commands to decode/encode a given video stream. Those drivers are GPU-specific too.
So let's say you have some example GPUs, here's how example stacks could look like:
* AMD Radeon HD8750: amdgpu -> DRM/DRI -> Mesa (radeonsi)
* AMD Radeon HD4850: radeon kernel driver -> DRM/DRI -> Mesa (r600g) -> games/apps/etc.
* NVIDIA GeForce 460: nouveau kernel driver -> DRM/DRI -> Mesa (nouveau) -> games/apps.
* Intel GMA950: i915 kernel driver -> DRM/DRI -> Mesa (i945) -> games/apps.
{| class="wikitable sortable" width="90%"
! width="15%" | Description
! width="15%" | Analog Output
! width="15%" | Digital Output
! width="15%" | Laptop LCD
! width=30%" | Comments
|-
| <!--Description-->Fudomi GC888A
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->1080p 100in throw projector
|-
| <!--Description-->Vamvo VF320 (720P)
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->720p 90in
|-
| <!--Description-->Happrun H1
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->1080p 90in
|-
| <!--Description-->Umbolite Magcubic HIPPUS HY320 Mini
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->720p 100in
|-
| <!--Description-->Zentality A10 Plus
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->720p 110in
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->nexigo nova mini
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->nebula mars 3
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->epson lifestudio flex plus portable projector
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->dangbei freedo
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->benq gv50
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
Unless your computer uses a Firewire chipset manufactured by Texas Instruments, FireWire interfaces are likely to act buggy.
AROS is unlikely to ever support FireWire.
Bluetooth is similarly unlikely to be ever supported due to huge cost to be certified.
No, x86 PCMCIA card.resource at the moment. Writing card.resource would be a similar amount of work to writing a typical driver. However, it might be complicated by having to support a variety of PCMCIA-controller chipsets like TI PCI1225, PCI1410, PCI1420, 1450, PCIxx12 and O2, etc. m68k card.resource does not really have many higher level functions, most functions are really simple or poke Gayle registers directly. only exception is CopyTuple(). Amiga card.resource has one significant flaw: it's single-unit. would need card.resource and pccard.library. There was talk in the past of designing a new API for PCMCIA because card.resource only supports one slot, but since most modern laptops only have one slot anyway, I think it might be worthwhile to implement card.resource as-is (at least as a first step). pccard.library would be trivial to port. So, a new API is needed.
dmyfs2bjxr8n12ucm7roo7ep2p0t9qt
4640148
4640135
2026-06-13T15:39:04Z
Jeff1138
301139
4640148
wikitext
text/x-wiki
Google translation into [http://translate.google.com/translate?hl=en&sl=auto&tl=de&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support German], [http://translate.google.com/translate?hl=en&sl=auto&tl=fr&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support French], [http://translate.google.com/translate?hl=en&sl=auto&tl=nl&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Dutch], [http://translate.google.com/translate?hl=en&sl=auto&tl=it&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Italian], [http://translate.google.com/translate?hl=en&sl=auto&tl=es&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Spanish], [http://translate.google.com/translate?hl=en&sl=auto&tl=hi&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Hindi],
[http://translate.google.com/translate?hl=en&sl=auto&tl=zh-CN&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Chinese Simplified],
[http://translate.google.com/translate?hl=en&sl=auto&tl=pl&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Polish],
[http://translate.google.com/translate?hl=en&sl=auto&tl=ru&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Russian],
{{ArosNav}}
[[#Audio Chipsets]]
[[#Graphic GFX Chipsets]]
[[#Rough gfx comparison]]
[[#]]
==x86 Native Environment==
AROS should run on almost any i386 PC hardware so long as the CPU is newer than an i486, and has a "Floating Point Unit (FPU)". Ideally around 700Mhz and above with at least 256MB of memory is recommended for desktops and around 1GHz and at least 256MB for laptops/notebooks/netbooks. For web browsing, etc above 1GB is usually needed and offers the option to run web browsers, media players and other hard disk heavy usage from RAM: disk.
Motherboards supported
* Most Intel mobos are supported (Skt 775 is ok but newer is better) - additional pci / pci-e cards may be needed for networking, audio, etc
* AMD based socket 939 am2 am2+ am3+, fusion and am4 ryzen based systems work but additional pci / pci-e cards may be needed
Supported graphics cards (gfx)
* Nvidia 2D and 3D 2005-2017.
64bit AROS Nouveau covers '''2D''' 8xxxgs and higher to GTX 900s and '''3D''' from .
32bit AROS supports '''2D''' from TNT through to fermi gtx5xx and '''3D''' acceleration fx5xxx to gtx4xx.
* Intel GMA 2D and 3D 2006-2009.
'''2D''' for many old netbooks and motherboards. '''3D''' for many early netbooks and motherboards
* AMD/ATI 2D only and '''no 3D'''. 1999-2005.
Desktop ie external monitor support only (no laptop internal support) for very early Radeon 7000 through to x600. Experimental 2D version for up to HD3xxx came later
* VESA 2D fallback modes for all graphic cards (GPUs) and with [http://www.youtube.com/watch?v=HKCHZFYj9Kk screen dragging].
It's worth noting however that support isn't guaranteed. Nor will potential power of a card reflect its performance under AROS.
Sound wise there are
* HDaudio support for onboard intel and AMD netbooks, ultrabooks, notebooks and motherboards (2005 to 2020)
* some AC97 codec support for very old motherboards and laptops (ie pre 2004)
* PCI and some PCI-E C-Media CMI8738 for desktop plugin cards
* PCI Creative Soundblaster EMU10K1 cards [http://amigaworld.net/modules/news/article.php?storyid=2512 SBLive]
* PCI semi professional some early VIA Envy24 desktop sound cards
* PCI Sound Blaster 128 aka SB16
Supported [http://en.wikibooks.org/wiki/Aros/Platforms/x86_Network_support network] which could be desktop, laptop, etc
* PCI-E Realtek rtl8169 which also includes the rtl8111 and rtl8110
* PCI Realtek rtl8139 and includes rtl8101 and rtl8100
* PCI intel pro100
* Broadcom 44xx 10/100 integrated in laptops around 2005
* VIA 10/100
* 3com Etherlink 10/100
* Realtek rtl8029 10mbit
Wireless wifi
* atheros 5000 wireless
*realtek 8187 usb
It is very hard to recommend a completely supported motherboard because as soon as newer motherboards arrive so their features change subtly, often introducing non supported parts like ethernet and audio. It is a moving target.
* mini-itx motherboard will only get you 1 pci or pci-e slot
* micro mATX or uATX will have more, typically 2 pci-e or pci slots which helps if any onboard features are not supported.
* full atx will have more slots available
'''N.B''' It is frustrating when a piece of hardware is not supported. Hardware documentation can run to over 100 pages and a lot of hardware do not have any public documentation anyway. Chips from different manufacturers for sound, graphics, SATA, etc. vary just as much, unless they follow a standard such as [https://github.com/acidanthera/AppleALC/wiki/Supported-codecs HDAudio codecs], AHCI etc.
Coding drivers is a far cry from Hello World programs or even a port of existing software. If you do actually want to try then get a hold of documentation on the relevant hardware and start there. Alternatively you could try to find some '''BSD''', MIT or MPL licence drivers as a point of reference. Please , do not think you can just adapt strings in a driver for different strings, it does not work that way. You will '''need''' to start from scratch for each new bit of hardware. Device driver programming require '''embedded''' skills, like manipulation of bits within registers, good debugging skills, dealing with interrupts, lots of patience, etc.
The following specific chipsets and drivers are also available - use Tools/PCITool to confirm Vendor and Product IDs - Please let us know any mistakes or any information to be added, to this General Chat list on [https://arosworld.org/ AROS World]
: Brief Timeline
: 2000-12-06 HIDD first mouse.hidd completed ([http://msaros.blogspot.com/ Michal Schulz])
: 2001-03-31 BOOT first boot from floppy disk with IDE device
: 2001-10-30 BOOT first cd bootable version
: 2002-01-27 HIDD first pci.hidd added (Michal Schulz)
: 2002-04-13 BOOT software HDToolBox added ()
: 2003-04-03 HIDD vesa2.hidd graphic modes added ()
: 2004-03-08 HIDD new pci and ata (pata) devices worked on (Michal Schulz)
: 2004-03-17 HIDD nVidia 2D driver appears (Michal Schulz)
: 2005-01-05 AHI AHI v6 audio system ported (Martin Blom)
: 2005-01-06 AHI SBLive SoundBlaster Live driver ported (Georg Steger)
: 2005-02-04 AHI AC97 playback only driver added (Michal Schulz)
: 2005-06-27 NIC amiTCP stack ported with 3com, NE2000, prism2 drivers (Neil Cafferkey)
: 2005-08-25 NIC nForce2 support added (Michal Schulz)
: 2005-12-24 NIC Intel Pro100 network driver added (Neil Cafferkey)
: 2006-03-25 HIDD ATI radeon 2D driver added (Michal Schulz)
: 2007-03-06 HIDD vesa 1.0 video driver added (Pavel Fedin)
: 2007-03-08 HIDD dospackets and FAT filesystem (Rob Norris)
: 2007-03-21 HIDD usb initial commit (Michal Schulz)
: 2007-10-01 BOOT Installer added (Neil Cafferkey)
: 2007-11-29 PORT 64bit x86 added (Michal Schulz)
: 2008-04-12 BOOT GRUB2 added (Alain Greppin and Nick Andrews)
: 2008-08-26 NIC RTL8139 added ([http://kalamatee.blogspot.com/ Nick Andrews])
: 2008-10-22 PORT to SAM440ep (ppc) (Michal Schulz)
: 2009-02-25 PORT to efika (ppc) (Michal Schulz)
: 2009-05-18 HIDD poseidon usb2.0 stack ported to AROS (Chris Hodges)
: 2009-11-18 NIC RTL8169 network driver arrived (Nick Andrews and [http://pagesperso-orange.fr/franck.charlet/oldnews.html Franck Charlet])
: 2009-12-23 AHI HDAudio based Atom CPU and netbook audio driver arrived (Davy Wentzler)
: 2010-03-09 BOOT USB pendrive stick booting available (Neil Cafferkey)
: 2010-05-26 HIDD Intel GMA900 2D graphics card support (Michal Schulz)
: 2010-09-03 NIC Wireless PCI based NIC arrived (Neil Cafferkey)
: 2011-04-30 HIDD Nvidia 2D and 3D nouveau graphics card support (Deadwood)
: 2011-08-30 HIDD Radeon 2D enhanced AMD driver arrives (Bearsoft)
: 2011-09-17 NIC Wireless USB realtek arrives (Neil Cafferkey)
: 2011-12-09 HIDD Intel 945G 3D Gallium graphics support (Sami)
: 2013-02-25 AHI AC97 VIA 686 audio support (Davy Wentzler and Neil Cafferkey)
: 2013-03-31 PORT early Raspberry PI native support (Nik Andrews)
: 2014-01-16 AHI Envy24 audio chipset support (Davy Wentzler and Neil Cafferkey)
: 2017-02-17 PORT Symmetric MultiProcessing smp added for x86 64bit (Michal Schulz)
: 2018-10-20 PORT Big Endian ARM
: 2021-11-26 NIC Broadcom 44xx ethernet (Neil Cafferkey)
: 2023-01-12 NIC Nvidia MCP61 ethernet (Neil Cafferkey)
: 2025-11 HIDD xHCI USB3 and isoc (Nik Andrews)
[[#top|...to the top]]
===Audio Chipsets===
'''If sound beeps in AHI prefs after Music set then some support is there. Select more than one channel for multiple audio streams, set frequency up to 44 kHz or higher and set the volume if not already set. Ensure you set the music unit 0 to 3 which allows the extra features of the audio card like microphone, line-out, etc).'''
====1996-2000 sb128.audio aka SB16 PCI====
*2021 5.27
as per CREATIVE's website, the model number is the first two digits on the front and first two digits on the back. my card says CT4810 and 161TK110B 995; this translates to CT4816 as the model.
The original AudioPCI 3000 card with the ES1370 had a master clock crystal for 44.1 kHz (22.5792 MHz), used an AKM codec (AK4531, non-AC97) and had 4 channel output; Creative later modified the design with a crystal for 48 kHz (24.576 MHz) and Sigmatel AC97 codec (a CT4700 SB128 with a CT5507 chip, AK4531, 22.5792 MHz crystal and TDA7360 speaker power amp). The issue with these cards involved never quite eliminate the effects of resampling on the 64V, it also shows signs of undersized coupling caps. These Ensoniq cards automatically engaged headphone amplifier (with a 4565 opamp).
Porting involved [http://repo.or.cz/w/AROS.git/commit/b60abd12967144a844980c422ea9e99c056eabca 40897], [http://repo.or.cz/w/AROS.git/commit/b7d6511fca6430a63fbaaa390b4f51bf0203a460 40898 configure], [http://repo.or.cz/w/AROS.git/commit/f51034cd22759a4ec3a2547bddb3a7169d956eaa 40900 bugs], [http://repo.or.cz/w/AROS.git/commit/4f43fc38e3489ea45d12b7b5ba6fff50b69c5746 40901 further bugs], [http://repo.or.cz/w/AROS.git/commit/d23c78aec75f049484b6916d27b6804ce858bb2c 40913 memory IO fixes], [http://repo.or.cz/w/AROS.git/commit/d256860fe3035016952e88d143c6f2611997f2f3 40914 irq fix].
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| Ensoniq AudioPCI 1000
| 0x1274
| 0x5000
|
| {{unk}}
| {{unk}}
| untested - es1370 (u?) AK4531 (u?)
|-
| Ensoniq AudioPCI
| 0x1274
| 0x5000
| 0x00
| {{yes}}
| {{maybe}}
|
|-
| CT4700 Sound Blaster PCI 64 (audioPCI 3000)
| 0x1274
| 0x5000
| 0x7c
| {{yes}}
| {{maybe}}
| works - opamp JRC4565(u?) [http://en.wikipedia.org/wiki/Ensoniq_ES1370 es1370] (u?)
|-
| CT4750 Sound Blaster 64/PCI
|
|
|
| {{unk}}
| {{unk}}
| untested - 4565-1056W (u1) stac9708t(u2) [http://arstechnica.com/civis/viewtopic.php?f=6&t=916891 ct5880-dcq] (u3) 24wc012 (u4)
|-
| CT4751 (SB128PCI)
| 0x1274
| 0x8001
|
| {{unk}}
| {{unk}}
| untested - [http://en.wikipedia.org/wiki/Sound_Blaster#Ensoniq_AudioPCI-based_cards es1371] (u?)
|-
| CT4810 Creative AudioPCI64V
| 0x1274
| 0x1371
| 0x06
| {{yes}}
| {{maybe}}
| works
|-
| CT4811 (SB Vibra 128)
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4812 (Vibra 128)
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4813
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4815
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4816 es1373 (vibra 128)
|
|
|
| {{unk}}
| {{unk}}
| untested but this card has creative's ES1373 as the main chip(U1). it is also different from the other CT4810 (vibra128) in that it does not have a second chip in U2 position. Also there is only one jumper JP1 (2X3).
|-
| CT5801 HP
|
|
|
| {{unk}}
| {{unk}}
| untested - es1373 (u3)
|-
| CT5803 Gateway
| 0x1274
| 0x1371
| 0x08
| {{yes}}
| {{maybe}}
| works 4565-0005b jrc (u1) 4297a-jq ztae0c0002 (u2) es1373 (u3)
|-
| CT4740
| 0x1274
| 0x1371
| 0x08
| {{yes}}
| {{yes}}
|
|-
| CT5805 Compaq OEM Premier Sound Presario 7
|
|
|
| {{unk}}
| {{unk}}
| untested - es1373 (u3)
|-
| CT5806 (Sound Blaster AudioPCI 128D)
|
|
|
| {{unk}}
| {{unk}}
| untested - 4297A-JO EP (u?) ZTAPWC9933 (u2) es1373 (u3)
|-
| CT5807 Dell OEM Dimension 8100
|
|
|
| {{unk}}
| {{unk}}
| untested - es1373 (u?)
|-
| CT5808
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4730 Sound Blaster AudioPCI 64V Ectiva EV1938
| 0x1102
| 0x8938
|
| {{unk}}
| {{unk}}
| untested
|-
| CT5880 on various motherboards
| 0x1274
| 0x5880
|
| {{unk}}
| {{unk}}
| untested [http://www.xbitlabs.com/articles/mainboards/display/ga-6rx.html Gigabyte GA-6RX] (VIA ApolloPro 266 2001], Gigabyte GA-6VM7-4E mobo, [http://active-hardware.com/english/reviews/mainboard/ga-7vtx.htm Gigabyte GA-7VTX] (KT266 2001), Gigabyte [http://www.amdboard.com/gigabytega7vtxh.html GA-7VTXH] (KT266A 2001), [http://www.amdboard.com/gigabytega7vrxp.html Gigabyte 7VRXP] mobo (KT333 2002), MSI MS-6309, MS-6318, MS-6337 (815E Pro), MS-6339 (850Pro) and MS-6340, PCChips Motherboard M571 TXPRO, Soltek SL-65ME+,
|-
| VMware Virtual Workstation(TM)
| 0x1274
| 0x1371
| 0x02
| {{Yes|but not Hi-Fi modes}}
| {{maybe}}
| works
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
<pre>
Revision 0x04 = ES1371 REV_ES1373_A
Revision 0x06 = ES1371 REV_ES1373_B
Revision 0x07 = ES1371 REV_CT5880_A
Revision 0x02 = CT5880 REV_CT5880_C
Revision 0x03 = CT5880 REV_CT5880_D
Revision 0x04 = CT5880 REV_CT5880_E
Revision 0x09 = ES1371 REV_ES1371_B
Revision 0x00 = EV1938 REV_EV1938_A
Revision 0x08 = ES1371 REV_ES1373_8
</pre>
====1999-2001 via-ac97.audio====
*2021 5.10
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| <!--Description-->694X with 686A KT133 PM133 or 693A with VT8231
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3058
| <!--Revision-->
| <!--Playback-->{{Yes| }} redirects earphones correctly
| <!--Recording-->{{Yes| }}
| <!--Comments-->audio controller works but depends on the underlying invisible codec used see AC97 section
|-
| <!--Description-->686B KT133A with VT8231
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3058
| <!--Revision-->0x50
| <!--Playback-->{{Yes|}} reroutes ear pieces right
| <!--Recording-->{{Yes|}}
| <!--Comments-->audio controller works but depends on the underlying codec used see AC97 section below
|-
| <!--Description-->686C
| <!--Vendor ID-->0x1106
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->untested
|-
| <!--Description-->KM266 or KT266 with VT8233, KT266A with VT8233A, VT8233C
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3059
| <!--Revision-->0x10
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->KM333 KT333 with VT8235
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3059
| <!--Revision-->0x30
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
| <!--Description-->KM400 KT400 with VT8237, KT600 with VT8237R,
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3059
| <!--Revision-->0x40 0x50 0x60
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
|}
====1998-2003 emu10kx.audio - Creative Labs SoundBlaster Live! and Audigy====
*2021 6.5
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| PCI512 CT4790 (emu10k1)
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested (1st Gen)
|-
| Live CT4620
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Live CT4760
| 0x1102
| 0x0002
| 0x07
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| playback works
|-
| Live Value CT4670
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| works plays stereo (2nd Gen)
|-
| Live Value DELL CT4780
| 0x1102
| 0x0002
| 0x06
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| plays/records stereo - untested 4.1mode
|-
| Live Value Compaq CT4830
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{Maybe}}
| <!--Recording--> {{unk}}
| not working
|-
| Live Value CT4831
| 0x1102
| 0x0002
| 0x00
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Live Value CT4832
| 0x1102
| 0x0002
| 0x07
| <!--Playback--> {{yes}}
| <!--Recording--> {{partial|Line-In only}}
| works
|-
| Live Value CT4832
| 0x1102
| 0x0002
| 0x08
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| works
|-
| Live Value HP CT4870
| 0x1102
| 0x0002
|
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| Works
|-
| Live Value Gateway CT4871
| 0x1102
| 0x0002
|
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Live! Platinum 5.1 SB0060
| 0x1102
| 0x0002
| 0x00
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
| plays audio/records, untested 5.1 (3rd Gen)
|-
| Live 5.1 SB0100 -SFF
| 0x1102
| 0x0002
| 0x00
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| works
|-
| Live 5.1 Player SB0220
| 0x1102
| 0x0002
| 0x0a
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
| plays audio/records stereo, untested 5.1
|-
| Live 5.1 Digital SB0228
| 0x1102
| 0x0002
| 0x0a
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
| working
|-
| Audigy SB0090 (emu10k2)
| 0x1102
| 0x0004
|
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| <!--Description-->Audigy SB0230
| <!--Vendor ID-->0x1102
| <!--Product ID-->0x0004
| <!--Revision-->0x03
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Yes|Mic only}}
| <!--Comments-->5th Dec 2012 - untested optical tos link. contains also IEEE1394/Firewire (untested)
|-
| Audigy 2 Platinum 6.1 SB0240 SB0250 EMU10K2.5
| 0x1102
| 0x0004
| 0x04
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| works
|-
| Audigy 2 PRO SB0280 EMU10K2.5
| 0x1102
| 0x0004
|
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Audigy 2 ZS SB0350
| 0x1102
| 0x0004
| 0x04
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
|
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| Live 5.1 DELL SB0200 SB0203 emu10kx
| 0x1102
| 0x0006
| 0x0
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
|
|-
| Live 24bit SB0410
| 0x1102
| 0x0007
| 0x
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Live 24bit DELL SB0413
| 0x1102
| 0x0007
| 0x
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy LS SB0310
| 0x1102
| 0x0007
| 0x0
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy SE 7.1 SB0570
| 0x1102
| 0x0007
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 2 ZS SB0320 SB0360 (PRO)
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 2 VALUE SB0400
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 4 VALUE SB0610
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 4 PRO SB0380
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| EMU E-MU 0404 PCI (not USB) EM8852
| 0x1102
| 0x000
| 0x0
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver but linux support needs firmware
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
the green jack is for the main speaker pair AND headphones, so manual switching will be required
If your card is wired for the "AC97" standard, then it's up to your headphone jack to switch the green speaker output in and out
the headphone jack has Normally-closed contacts that will open on insertion, which breaks the signal path back to the sound card (FP_RETURN)
====2000-2010 cmi8738.audio - C-Media====
*2021 5.20
;Read [http://amigaworld.net/modules/news/article.php?storyid=2512 more] and imported on [http://repo.or.cz/w/AROS.git/commit/aff741d60160c6a9d7d39c9e004a25ea3aa13847 20th July 2011] and [http://alsa.opensrc.org/Cmipci alsa docs].
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| Audiotrak MAYA EX5
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| cmi8738-sx 4ch
| 0x13f6
| 0x0111
| 0x10
| <!--Playback-->
| <!--Recording-->
| untested
|-
| e3dx hsp56 CMedia 8738-sx 4ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| EDio SC3000D 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Genius SoundMaker Value PCI C3DX
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Guillemot Maxi Sound Muse
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Hercules Gamesurround Muse LT
| 0x13f6
| 0x0111
| 0x10
| <!--Playback--> {{yes}}
| <!--Recording--> {{no}}
|
|-
| Hercules Gamesurround Muse XL LT 5.1
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Inno audio extreme 5.1 cmi8738/lx pci 6ch
| 0x13f6
| 0x0111
| 0x
| <!--Playback-->
| <!--Recording-->
| untested
|-
| M-Audio (Midiman) DiO 2448
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Sabrent SBT-SP6C 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| StarTech PCISOUND4CH 8738sx 4ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Sweex SC012 CMI8738-lx 4ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Terratec 5.1 PCI
| 0x13f6
| 0x0111
| 0x10
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Terratec Aureon Fun 5.1
|
|
|
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| Has SPDIF
|-
| Trust Sound Expert Digital Surround 5.1 (cm8738-mx 6ch)
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Turtle Beach Riviera CMI8738-MX 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| XSonic CMI 8738 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->CMI8738 6ch PCI-E PCI Express version
| <!--Vendor ID-->0x13f6
| <!--Product ID-->0x0111
| <!--Revision-->0x10
| <!--Playback-->{{Yes|}}
| <!--Recording-->{{Maybe|}}
| <!--Comments-->Chinese based card with playback tested so far
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
====2001-2005 ac97.audio====
*6.4 27-12-2008
The AC97 chips were designed to be pinout interchangeable so that the sound support could change easily and quickly without motherboard redesigns
the green jack is for the main speaker pair AND headphones, so manual switching will be required
If your card is wired for the "AC97" standard, then it's up to your headphone jack to switch the green speaker output in and out, the headphone jack has Normally-closed contacts that will open on insertion, which breaks the signal path back to the sound card (FP_RETURN)
The ProductID and VendorID are for the audio controller only - the important additional codec is '''NOT''' so easily identified.
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| <!--Description-->Avance Logic (now Realtek) ALC100 and ALC101 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->ALC200 and ALC201 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->ALC201A and ALC202 and ALC202A codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->ALC650
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| <!--Comments-->most Nforce2 boards plays audio only - Abit NF7, Asus A7N8X, MSI K7N2, Epox 8RDA+, DFI
|-
| <!--Description-->ALC850 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{No}}
| <!--Comments-->no support for via P4P800 chipset on ASUS A8V-E SE Deluxe mobo - ICaros 1.3
|-
| <!--Description-->Realtek ALC653 codec and ALC655 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested Acorp 7NFU400
|-
| <!--Description-->Realtek ALC658 codec ALC658D
| <!--Vendor ID-->0x8080
| <!--Product ID-->0x24c5
| <!--Revision-->0x0
| <!--Playback-->{{Yes|Prefs Music and Units 0-3 set volume control - playback}}
| <!--Recording-->{{No}}
| <!--Comments-->MSI Motherboard on NB 22-09-2012
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->AD1881 SoundMAX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->Analog Devices first AC97
|-
| <!--Description-->AD1881A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Yes}}
| <!--Revision-->
| <!--Comments-->works with VIA Controller - untested Intel etc
|-
| <!--Description-->AD1881B
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1885 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{No}}
| <!--Comments-->Playback only with issues on D845HV but not working on MS-6367 because Units 0-3 have masked volume control
|-
| <!--Description-->AD1886
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1887
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->ADI AD1888 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{no}}
| <!--Recording-->{{No}}
| <!--Comments--> Icaros 1.51
|-
| <!--Description-->AD1980 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->AD1981A codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested IBM X30
|-
| <!--Description-->Analog Devices SoundMax(TM) AD1981B codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| <!--Comments-->plays back only on IBM T41 Thinkpad
|-
| <!--Description-->AD1985 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{No}}
| <!--Comments-->not working ahi prefs freezes on D865GLC mobo ([http://www.xbitlabs.com/articles/multimedia/display/int-sound2_3.html ]
|-
| <!--Description-->AD1986 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{No}}
| <!--Comments-->untested [http://uk.ts.fujitsu.com/rl/servicesupport/techsupport/Boards/Motherboards/Fujitsu/D1931/D1931.htm D1931] but works (Acer Aspire 3610 laptop)
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->Crystal Semiconductors CS4205, CS4202 codecs
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Cirrus Logic CrystalWare 4236
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->Cirrus Logic CrystalClear SoundFusion CS4297 CS4299 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested IBM T23
|-
| <!--Description-->conexant Cx20468-31 codec (id 30)
| <!--Vendor ID-->0x103c
| <!--Product ID-->0x3085
| <!--Revision-->
| <!--Playback-->{{No|AC97 appears in AHI Prefs}}
| <!--Recording-->{{No}}
| <!--Comments-->Tested AspireOS 1.8 on Gateway W322
|-
| <!--Description-->ESS Technology ES1921 AC'97 2.1
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->CMI 6501 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested on ASROCK SKT-AM2 AM2NF3-VSTA
|-
| <!--Description-->codec CMI9738
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->codec CMI9739
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->C-Media CMI 9739A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments--> untested on EPoX 8RDA3+
|-
| <!--Description-->CMedia CMI 9761A codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested ASRocK K7NF2-RAID
|-
| <!--Description-->C-Media CMI9880
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->National Semi conductor (now TI) LM4540, LM4543, LM4545, LM4546, LM4548, LM4549, LM4550 LM4560
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->STAC9708T codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->SigmaTel (now IDT) C-Major STAC 9460 (D/A only), 9461, 9462, 9463, 9200, 9202, 9250, 9251, 9220, 9221, 9223, 9750
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AKM (Asahi Kasei Microsystems) AK 4540, 4543, 4544A, 4545
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->codec VT1616 (VIA Six-TRAC Vinyl Audio)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->VIA VT1612, VT82C686
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->ESStech ESS ES1968 maestro-2
| <!--Vendor ID-->0x125d
| <!--Product ID-->0x1968
| <!--Revision-->0x
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->ESStech ESS ES1978 maestro2e
| <!--Vendor ID-->0x125d
| <!--Product ID-->0x1978
| <!--Revision-->0x
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->ESStech ESS ES1988 maestro3 allegro-1 codec
| <!--Vendor ID-->0x125d
| <!--Product ID-->0x1988
| <!--Revision-->0x12
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->Yamaha AC97 ymf-743 YMF752 YMF753 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->{{No}}
| <!--Comments-->untested ymf-753
|-
| <!--Description-->YMF724 YMF744 YMF-754 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| SIS 7018 / Trident 4dwave DX/NX / ALi 5451
| 0x1039 (0x1023 Trident)
| 0x7018 (0x2000 Trident DX) (0x2001 Trident NX)
| 0x02
| <!--Playback-->{{No}}
| <!--Recording-->{{No}}
| no support - introduced early 2000s
|-
| SIS 7012
| 0x1039
| 0x7012
|
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| working through 1 speaker only took over from SIS7018 (2002 onwards)
|-
| <!--Description-->Wolfson (now Cirrus Logic) WM9701, WM9701A (AC'97 1.03 spec), WM9703, WM9704 (AC'97 2.1), WM9705, WM9706, WM9707, WM9708
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->WM9709, WM9710, WM9711, WM9712, WM971
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->first Microsoft(TM) Xbox DAC sound chip (AC Link compliant D/A converter)
|-
| <!--Description-->Wolfson WM9717
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| Parallels
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested
|-
| VirtualBox
|
|
|
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| working
|-
| VirtualPC
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested
|-
| <!--Description-->Intel 82801AA Proxmox
| <!--Vendor ID-->0x8086
| <!--Product ID-->0x
| <!--Revision-->
| <!--Playback-->{{unk| }}
| <!--Recording-->{{unk| }}
| <!--Comments-->
|-
|}
====2005-20xx HDAUDIO.audio====
*6.36 2025 [https://github.com/aros-development-team/AROS/commit/43b33a9280b10963ca659de2cc3d1cf289b43a87 reset handler]
*6.35 202 []
*6.34 2019 AROS One 1.5 upwards
*6.29 2018
*6.27 2017 update
*6.25 2014 used for most Icaros 2.x
*6.20 July 2012
*6.17 Nov 2011
*6.15 Jun 2011
*[http://www.clusteruk.com/SitePortalPage.aspx?siteid=1&did=109 6.13] Sep 2010
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="5%" |Vendor ID
! width="5%" |Product ID
! width="5%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| <!--Description-->ALC260
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| <!--Description-->ALC262
* ALC262-VD2-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->LQFP-48
|-
| ALC268 codec
| 0x
| 0x
| 0x
| <!--Playback-->{{Yes|Version 6.17 Acer AOA110 and AOA150 netbooks), works (Dell Mini Inspiron 9 and 10v, }}
| <!--Recording-->{{Yes|Version 6.17 remove QUERY and select 'Mic 1' as input. Tested with 6.15 as well using QuickRecord and AE 4.0.23 under Icaros 1.4.}}
| <!--Comments-->AHI UNITS and Music are set to: hdaudio:HiFi 16 bit stereo++ / Frequency 48000 Hz, Volume +0.0 dB. The hdaudio.config in SYS:Prefs/Env-Archive is WITHOUT the QUERY-line. After changing and saving the config-file turn off and start again the computer. Switch from internal loudspeaker to headphone you must turn off the music before plug in the headphone-cable, otherwise there is no output on the socket. Back from line-out to internal speakers it is the same.
|-
| [http://blog.foool.net/wp-content/uploads/linuxdocs/sound.pdf Linux docs ALC269]
* ALC269Q-GR
* ALC269QSRS-GR
* ALC269W-GR
| 0x
| 0x
| 0x
| <!--Playback-->{{Maybe| }}
| <!--Recording-->{{Unk| }}
| <!--Comments-->TQFP 48 pin Power IC Chip From [https://patchwork.kernel.org/project/alsa-devel/patch/1408118123-15849-1-git-send-email-tiwai@suse.de/ ALC269 & co have many vendor-specific setups with COEF verbs, result in the codec stalling]
|-
| [http://www.alsa-project.org/db/?f=0321f8479fd670cd510f9912b1120fe7edcf2e07 ALC269VB]
* ALC269Q-VB5-GR
* ALC269Q-VB6-CG
* ALC269Q-VB6-GR
| 0x10ec
| 0x0269
| 0x100004, 0x100100, 0x100202
| <!--Playback-->{{Maybe|some versions work}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* v1 works Asus eee PC netbook 901/1000HA 1005HA/1008HA, 1001P,
* v2 maybe working Lenovo S9 S10 S10-2 S10-3 under HDAudio version 6.13
* v3 maybe dell wyse 7010
|-
| [http://alsa-project.org/db/?f=9c1746c5957b0ce72ff9cfffa312e97d14baf785 ALC269VC aka ALC3202]
* ALC269Q-VC2-GR
* ALC269Q-VC3-GR
| 0x10ec
| 0x0269
| 0x100203,
| <!--Playback-->{{Maybe|some versions work}}
| <!--Recording-->{{Unk}}
| <!--Comments-->SMT SMD QFN-48 -
* v1 unknown
* v2 unknown
* v3 x230, dell wyse,
|-
| ALC272
* ALC272-VA4-GR
| 0x10ec
| 0x0272
| 0x0
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Unk}}
|
* works Acer AOD150 and Acer AOD250 works [http://amigaworld.net/modules/newbb/viewtopic.php?topic_id=33755&forum=28#616910 Samsung NP-NC10], works Samsung NF210-A02] netbooks,
|-
| <!--Description-->ALC273
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| <!--Description-->ALC270
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC282
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x
| <!--Revision-->
| <!--Playback-->{{No|Version 6.17}}
| <!--Recording-->{{No|Version 6.17}}
| <!--Comments-->needs retest
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC660 ALC660-VD
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes| }}
| <!--Recording-->
| <!--Comments-->
* works asus F9s, F9e
* untested asus w7j, M51SN, A6Tc, A8Sr,
|-
| <!--Description-->ALC661-GR (2011)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| ALC662
| 0x1043
| 0x82a1
| 0x0
| <!--Playback-->{{Yes|Version 6.17 if QUERY added to top of hdaudio.config}}
| <!--Recording-->{{No|Version 6.17 not working for eee pc 900}}
|
* works Asus eee PC netbook 700/701/900, Atom 270 and 330 mobos, odd clicks (D410 NM10 PineTrail),
|-
| <!--Description-->[http://outpost.fr/rmaa/ALC663.htm ALC663]
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0861
| <!--Revision-->
| <!--Playback-->{{No|Version 6.13}}
| <!--Recording-->{{Unk}}
| <!--Comments-->not bad output like headphone amp part of the codec actually works well but messed up by undersized coupling capacitors to actually support such a low impedance
* not working Asus n50vn x71vn,
|-
| <!--Description-->ALC665
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC666
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC667
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC668
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC670
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->ALC880
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->some 915 and 925 chipset mobos
|-
| <!--Description-->ALC882M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| Realtek ALC883 ALC883-GR ALC883D-GR ALC883DTS-GR ALC883DD-GR codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe|some early versions work }}
| <!--Recording-->{{Unk| }}
| 2005 to 2007 HD Audio codec untested (Asus ),
|-
| Codec ALC885
| 0x10ec
| 0x0885
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
|-
| ALC888
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
|
|-
| ALC888s
* ALC888S-VD2-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}} MSI Wind U90/U100,
| <!--Recording-->{{Unk}}
| LQFP-48
|-
| ALC888b
| 0x8086
| 0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| untested (D510 NM10 Dual Core PineTrail mobo),
|-
| ALC888-VD
| 0x8086
| 0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| untested
|-
| ALC889A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes|works if QUERY added to the top of hdaudio.config in Prefs drawer/directory}}
| <!--Recording-->{{Unk}}
|
|-
| ALC889 Gr
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}} with crackles
| <!--Recording-->{{Unk}}
|
|-
| ALC889
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
| Tested with MSI H55 board
|-
| ALC887 ALC887-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
|
* working on ASUS P5KPL/EPU and Gigabyte GA-E350N-Win8 Rev1.0
|-
| ALC887-VD-CG
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0887
| <!--Revision-->0x100302
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}} Subsystem Id: 0x1458a002
|
|-
| ALC887-VD
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0887 0x1458
| <!--Revision-->0xa002
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{Unk}} index = 2
| ALC887 does not have any volume control ability on the mixer NIDs, so put the volume controls on the dac NIDs instead
* working with intermittent corrupting pop popping skipping stuttering sound issues MSI 760GM-P23 (FX),
* not working Gigabyte H61MA-D3V, AT3IONT-I Deluxe,
|-
| ALC887-VD2
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
| 3jacks
|-
| ALC887-VD2-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
|-
| ALC887-
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
|
|-
| ALC892-CG rev
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| 2011 48-pin LQFP Green package -
|-
| ALC892 ALC892-DTS-CG rev
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
| 2009 introduced
* works
* not working
* untested
|-
| ALC892 rev
| <!--Vendor ID-->0x0x10ec
| <!--Product ID-->0x0892
| <!--Revision-->0x100302
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| 2014
|-
| Realtek ALC886-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| LQFP-48
|-
| Codec ALC861 ALC861-VD
| 0x10ec
| <!--Product ID-->0x0663
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
|
* not working Toshiba Tecra A7
|-
| <!--Description-->ALC1200
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| ALC898
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
| not working
|-
| <!--Description-->ALC1500
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC3232 (aka ALC292)
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0292
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC3234 aka ALC255
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0255
| <!--Revision-->003
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC3287 aka ALC257
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes| }}
| <!--Recording-->{{no| }}
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->AD1882
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1883 HD Codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1884
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| Analog Devices SoundMAX AD1981
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| IBM Thinkpad T60,
|-
| AD1984 hp-m4 codec
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
* audio not working on Lenovo X61, Thinkpad T61,
|-
| AD1986
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
|
|-
| AD1988
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
|-
| <!--Description-->AD1988A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->Cirrus Logic CS4207
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->
| <!--Recording-->
|
|-
| <!--Description-->Cirrus Logic CS4208
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->
| <!--Recording-->
|
|-
| <!--Description-->Conexant CX20549 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe|very very very low volume}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested Fujitsu Amilo SI 1510 1520 no datasheet for the general public
|-
| <!--Description-->Conexant CX20549-12Z codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested HP 530
|-
| <!--Description-->Conexant CX20561 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* working lenovo x200s
* untested Lenovo Essential G555 Notebook, HP Pavilion dv6700,
|-
| <!--Description-->Conexant CX20582 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX2059x CX20590 CX20594-21Z codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX20585 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* working Lenovo Thinkpad T410,
|-
| <!--Description-->Conexant CX20672 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX20671 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX20751-21Z codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes| }}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| <!--Description-->Conexant CX11852 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX11880 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant after 2015 up to 2018 CX7501 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{no|no driver codec}}
| <!--Recording-->{{no|no driver codec}}
| <!--Comments-->Conexant bought by synaptics 2019
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->C-Media CMI9880 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->Gigabyte GA-8GPNXP
|-
| <!--Description-->Silicon Labs 3054
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| VIA 1708A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| untested,
|-
| VIA VT1708B
| <!--Vendor ID-->
| <!--Product ID-->
| 0x0010
| <!--Playback-->{{No|VIA PicoITX}}
| <!--Recording-->{{Unk}}
|
|-
| VIA 1708S
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
|
|-
| <!--Description-->VT2021 10ch
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->Gigabyte Z77MX-D3H, GA-H61M-S2H S2P,
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Creative CA0110-IBG
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->SigmaTel STAC 9220 9221 9223 8ch (7+1)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| <!--Comments-->ECS 945GCT/M-1333 (version 3.0),
|-
| IDT SigmaTec [http://explorer.cekli.com/articles/pdf/hd-audio STAC9227] /28/29/30 codec
| <!--Vendor ID-->0x8384
| <!--Product ID-->0x7626
| <!--Revision-->0x0002
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Unk}}
|
* works HP Compaq mini 110
* untested HP Pavilion HDX9000 CTO Notebook, Intel DG33TL mobo, Dell E520, Intel DP35DP mobo, Dell E6410 Laptop,
|-
| IDT (formerly SigmaTel) IDC STAC 9271/71D
| <!--Vendor ID-->0x8384
| <!--Product ID-->0x7626
| <!--Revision-->0x0002
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
|
|-
| <!--Description-->IDC STAC 9272 9273 9274
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->Intel D5400XS,
|-
| <!--Description-->IDT 92HD73C
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes}}
| <!--Recording-->
| <!--Comments-->headphones only Asus AT4NM10 mobo
|-
| <!--Description-->IDT 92HD75B
| <!--Vendor ID-->0x111d
| <!--Product ID-->0x7608
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* working [http://koti.kapsi.fi/jvaltane/aros/hdaudio/ HP Compaq Mini 700 Netbook - feedback required]
* untested HP Mini 5103 and 5102, HP Compaq 610, HP ProBook Laptop 4520s 4525s 6450b 6550b 6555b, HP EliteBook 2540p 2740p 8440p, Mobile Workstation 8540w 8740w, Pavilion NoteBook DV8,
|-
| <!--Description-->IDC 92HD81XX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC 92HD83XX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC STAC 92HD89XX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Wolfson (now Cirrus Logic) WM8850
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Wolfson WM8860
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->Intel High Definition Audio Revision 1.0. - 4-Channel DAC, 4-channel ADC. - DAC sampling
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
Using Prefs/AHI ensure you set the music unit and at least Units 0 (where most audio comes from) in top left drop down menu to HDaudio - HIFI in the section below. Set Units 1 or 2 to microphone or other outputs. Plus allow more than one channel for multiple audio streams and set frequency up to 44 kHz or higher on the right hand side of the ahi prefs. If sound beeps when you press the test button then all should be OK.
Output <- Codec <- Audio Controller (HDA) <-> Computer
codecs and exact hardware identifier. As mentioned above, HDA is only part of the work here, it gets the audio out of the main chipset in digital format (on a bus called I2S). This is not enough, there is another step needed which is routing that I2S signal to the output, converting it to actual audio, amplifying it, etc. This is handled by a separate chip called a "codec". Sometimes it is initialized by the BIOS, but this is not always the case.
Most audio drivers are made up of two parts a [http://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio.txt Controller + a Codec]. The ProductID and VendorID are for the audio controller only - the important additional codec is '''NOT''' so easily identified.
Some newer versions of codecs are missing at the moment.
Things to try if sound not working
* try to connect something to the audio jack, maybe it is not playing on internal speakers or vice versa
* make sure you try and select all music units e.g. unit0, unit1....
* even if PCI ID's are in Prefs/Env-Archive/HDaudio.config, this doesn't mean it is working, it is the codec that matters
* it might be internally muted
<pre>
add debug=memory to grub boot line - continue booting with F10
Open a shell
Tools/Debug/Bifteck > RAM:audio.txt
</pre>
or
<pre>
Open a shell
Tools/Debug/Sashimi > RAM:audio.txt
Run ahi prefs
Click test tone button
Stop sashimi with Ctrl-C
</pre>
If the boot sound is enabled, you have to use Bifteck to capture AHI debug output. In the GRUB menu, press E on your selected entry, then add "debug=memory" to the options (alongside ATA=, vesa= etc.). Then F10 or Ctrl-X to boot. Once booted, run Tools/Debug/Bifteck again.
or
* try adding QUERYD to the start of ENVARC:hdaudio.config file (also known as Prefs/Env-Archive/) ie. on the first line
* '''OR''' try removing QUERY and QUERYD from the start of the hdaudio.config file
* Reboot
* open a shell
* type: sys:tools/debug/sashimi > ram:debug.txt
* open ahi prefs
* select one of the audio modes - HIFI or otherwise
* press the 'test sound' button
* press ctrl-c in the shell
* post the results to Aros-World
The HD Audio standard was designed to be hardware pinout interchangeable so that the sound support could change easily and quickly. HDA is a standard around particular chips. Each kind of chip has a certain number of DACs and pins, and even the same chip could be hooked up in different ways on different motherboards. The chips are programmable and the operating system can adjust how things are routed. Some pins aren’t even hooked up, so it makes no sense to route sound to them. Also some pins have sensors that can tell when something is plugged in, so that for example the speakers in a laptop can be muted when headphones are plugged in. Pins are also grouped, so for example all the outputs for a 5.1 sound system are grouped. Generally the HDA driver in the operating system is supposed to read the pin set up and figure out a reasonable way to set things up, and disconnected pins should be ignored, etc.
HDAudio standard has headphones on a separate DAC, and it's up to the driver.. it can even send different audio to the headphones without interrupting the main (green) outputs
====Envy24 series ====
A little history. VIA bought the ICE created Envy chipsets [http://www.via.com.tw/en/products/audio/controllers/comparison_controller.jsp VT1712] first. A few years later, they created several cheaper variants VT1724 (mixer missing), VT1721 (low end cut down), VT1720 (embedded on motherboard) and lastly the VT1723 (no support apart from Windows Envy24DT like SYBA SD-PEX63034).
There are PCI Express versions appearing.
The Envy24 is the base product that was originally designed by ICEnsemble, and it supports multi-channel hardware mixing, which is great for professional use. The HT version removes the hardware mixer (unimportant for non-professional uses). The [http://www.avsforum.com/t/364771/envy24ht-s-the-definitive-source HT-S] version is almost exactly the same as the HT, it just uses cheaper DACs. The PT version is exactly the same as the HT-S version, it is just the edition used for on-board audio on motherboards.
N.B. [http://www.soundonsound.com/sos/dec04/articles/pcnotes.htm PCI slot identification] and [http://hsi.web.cern.ch/HSI/s-link/devices/s32pci64/slottypes.html 3.3v PCI].
=====[http://www.opensound.com/readme/README.Envy24.html envy24.audio] - [http://www.anime.net/~goemon/alsa/ VT1712] =====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Playback
! Recording
! Comments
|-
| M-Audio Delta 66 - Rev B 1999
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested AK4524VF CS8404A-CS - needs Delta Series break out box with D-sub lead -
|-
| [http://ixbtlabs.com/articles/maudioaudiophile/index.html Audiophile 2496] Rev A 2000
| 0x14
| 0x
|
| <!--Playback-->{{unk| }}
| <!--Recording-->{{unk| }}
| works audio out on - I2S stereo codec AKM AK4528VF with the 24bit/96kHz DAC and ADC; CS8427 digital transceiver
|-
| [http://ixbtlabs.com/articles/maudioaudiophile/index.html Audiophile 2496] Rev B 2003
| 0x14
| 0x
|
| <!--Playback-->{{Yes }}
| <!--Recording-->
| works well - I2S stereo codec AKM AK4528VF with the 24bit/96kHz DAC and ADC; CS8427 digital transceiver
|-
| M-Audio Delta 410 - 2001 2001 REV-B
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested for D-A AK4529VQ converters with CS8427-CS 5532 1158B or Event Echo Gina 20-Bit Multitrack Interface Breakout Box -
|-
| M-Audio Delta 1010
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested AK5383 and AK4393 - 25 pin dsub -
|-
| M-Audio Delta 1010LT 1010E
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested for D-A AK4529 converters with 2 XLR Microphone inputs with pre amps
* be aware of redesign in 2007 - possible issues
|-
| M Audio Delta 44 - Rev A 2002 - Rev B 2003 - Rev D 2003
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested ICE1712G AK4524VF needs breakout box with 15 pin D-sub lead -
|-
| M-Audio Delta 66 Rev E 2006 - Omni Studio
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested needs break out box with 15 pin D-sub lead -
|-
| <!--Description-->M-Audio Delta DiO 2496
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| Terratec EWX24/96
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| [http://ixbtlabs.com/articles2/terratecdmx6fire/index.html TerraTec 6fire DMX 24/96]
| <!--Vendor ID-->0x1412
| <!--Product ID-->0x1712
| <!--Revision-->0x02
| <!--Playback-->{{No|tried line 1-2 3-4 5-6 7-8 }}
| <!--Recording-->{{No| }}
| untested - AKM and codec
|-
| <!--Description-->Terratec EWSA88MT
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| [http://lists.freebsd.org/pipermail/freebsd-multimedia/2007-March/006087.html Audiotrak Prodigy HD2] 24/96
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Audiotrak (ESI) Maya 1010 1010L
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| EMU 1212M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| EMU 1616M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| <!--Description-->Terratec EWS 88MT EWS 88D
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Hoontech Soundtrack DSP 24
Soundtrack DSP 24 Value
Soundtrack DSP 24 Media 7.1
Event Electronics EZ8
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Digigram VX442
Lionstracs
Mediastation
Terrasoniq TS 88
Roland/Edirol DA-2496
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
=====envy24ht.audio - VIA VT1724=====
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| ESI Juli@
| 0x3031
| 0x4553
| 0x0
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Yes}}
| reported working years ago [http://envy24.svobodno.com/ Envy24HT-S] - AKM 4358 DAC - AKM 4114/4112 DIT
|-
| ESI Juli@ Ego Igo rev K
| 0x3031
| 0x
| 0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| AK4358? DAC - AK4114 AK4112 DIT
|-
| [http://ixbtlabs.com/articles2/multimedia/m-audio-revolution51.html M-Audio Revolution 5.1]
| 0x1412
| 0x3631
| 0x0
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| reported working years ago but discontinued - (Envy24GT) - 3ch AKM 4358 DAC - ADC AKM 5365 -
|-
| [http://ixbtlabs.com/articles2/m-audio-revolution71/index.html M-Audio Revolution 7.1] 24/192
| 0x1412
| 0x3630 0x1724
| 0x0
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| not working - illegal semaphore - 6ch ADC AKM AK4355 24-bit 192 kHz - 2ch DAC AKM AK4381 24-bit 192 kHz - ADC AKM AK5380
|-
| Terratec Aureon Sky 5.1
| 0x153b
| 0x1147
| 0x
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - discontinued
|-
| [http://ixbtlabs.com/articles2/terratec-aureon71/index.html Terratec Aureon Space 7.1]
| 0x153b
| 0x1145
| 0x0
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - Wolfson WM8770 DAC, AC'97 codec SigmaTel STAC9744
|-
| Terratec Aureon Universe 7.1
| 0x153b
| 0x1153 (rev x) 0x1724 (rev3)
| 0x0
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| not working - semaphore error on rev 3 - DAC ADC
|-
| Terratec Phase 22
| 0x153b
| 0x1150
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - Envy24HT-S - AK4524
|-
| Terratec Phase 28
| 0x153b
| 0x1149
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - Envy24HT-S - AK4524
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Playback
| Recording
| Revision
| Comments
|-
| Audiotrak (ESI) Prodigy 7.1
| 0x4933
| 0x4553
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - Wolfson WM8770 and AC'97 SigmaTel STAC9744 codec
|-
| Audiotrak (ESI) Prodigy 7.1 LT
| 0x3132
| 0x4154
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver -
|-
| [http://ixbtlabs.com/articles2/sound/audiotrak-prodigy192.html Audiotrak (ESI) Prodigy 192] 24/96
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - STAC9460S codec
|-
| <!--Description-->Echo Layla 24/96
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
| [http://www.bit-tech.net/custompc/labs/80752/hercules-gamesurround-fortissimo-4.html Hercules Gamesurround Fortissimo 4]
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - Wolfson WM8776 Codec and WM8766 DAC
|-
| [http://ixbtlabs.com/articles2/multimedia/m-audio-audiophile192.html M-Audio Audiophile Delta AP 192k]
| 0x1412
| 0x3632
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - Stereo ADC AKM AK5385A 24-bit 192 kHZ - 8-channel DAC AKM AK4358 24-bit 192 kHz - AKM 4114/4112 DIT
|-
| ONKYO SE-150PCI
| 0x160b
| 0x0001
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver
|-
| <!--Description-->ESI Waveterminal 192x
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
| <!--Description-->Quartet
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments--> - AKM 4114/4112 DIT
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
|}
====hdmiaudio.audio - hdmi no support====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Comments-->
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->ATI R6xx HDMI Audio codec support output
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x9840
| <!--Revision-->
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->Not detected
|-
| <!--Description-->NVidia HDMI
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Intel Series 6 CougarPoint HDMI codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Intel HDMI
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|}
[[#top|...to the top]]
===Graphic GFX Chipsets===
[https://gallium.readthedocs.io/en/latest/systems.html PCIe based] graphic chipset is defacto on 64bit AROS and recommended on 32bit.
AGP works on 32bit but faster transfers through the AGP slot are only available on a few supported motherboard chipsets
* Faster AGP Working = SIS 650 board, Intel 865pe AGP slot on MSI 6788-050,
* Not Supported = NForce2 chipsets, most Intel 815/820 chipsets, VIA chipsets, ALi chipsets,
The fallback for all graphics modes is vesa if any native support does not work. There is a choice of very low resolution vga as the last resort
2D tests performed with [http://download.aros3d.org/software/gfxbench.zip gfxbench] in the shell type gfxbench > out.txt (40 seconds blank screen is part of the test), via FreeDoom via limit-removing engine like odamex, chocolate or vanilla doom -timedemo demo1 or doom2 -timedemo demo1, doom.exe -iwad doom2 -file mymap.wad, Duke DNRATE 640x480 windowed
3D tests performed with Demos/Mesa/ , Cube 1080p, Cube 2 windowed not fullscreen 1920 x 1025, Quake3 ~ cl_drawFPS 1, Xonotic , [http://shinh.skr.jp/sdlbench/showtestgl.cgi test gl],
HDMI, DVI and DisplayPort monitors have a native resolution of 480p, 720p, 1080i, 1080p and up
<pre>
HDMI (licensing fee)
1.2 720p res.
1.3 1080 resolution
1.4 4K @ 30Hz
2.0 4K @ 60Hz
2.1 48Gbs for 4K @ 120Hz, 8K @ , VRR, etc
2.2 ultra96
</pre>
<pre>
DisplayPort (VESA introduced)
1.4 4K @ 60Hz
2.1 96Gbs for 4K @ 240Hz, 8K @ 120Hz. MST daisy chain multiple monitors,
</pre>
<pre>
GPMI chinese standard
2.0
</pre>
Might be supported on AROS
*OpenGL4 GPU must have 64-bit floating point FP64 math support, which is a hard requirement for GL 4.0. The max last revision opengl 4.6 (2017) on [https://wiki.gentoo.org/wiki/AMDGPU AMDGPU] RX 5000's / 6000s ([https://forum.batocera.org/d/7491-enable-opengl-46-and-vulkan-for-an-old-radeon-video-card RDNA] and Nvidia RTX might come to AROS) but Intel UHD, Iris Plus or Xe or Arc (will not unless a developer wants the challenge)
*OpenGL3 last revision 3.3 (2011)
Already supported on AROS
*OpenGL2 nvidia-nouveau,
*OpenGL1 intel gma950,
====vga.hidd====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Comments
|-
|
| 0x
| 0x
| 0x0
| Generic VGA Driver, limited to 640x480 in 16 colours - no 3D support
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Comments-->
|-
|}
====vesa.hidd====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Comments
|-
|
| 0x
| 0x
| 0x0
| 2D support for VBE1, VBE2 and VBE3 (most cards) - various resolutions and 24bit colour - no 3D support
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Comments-->
|-
|}
[[#top|...to the top]]
====[[w:en:Intel GMA|Intel GMA]]====
DVI output is not supported at the moment.
If having problems:
* Ensure the latest version is being used.
* Set GMA_MEM to 128 or 256 to test
* Try the FORCEGMA ToolType for 2D, and try the FORCEGALLIUM ToolType for 3D acceleration after 2D is verified to work. ToolTypes should be applied to the Devs/Monitors/IntelGMA monitor icon.
If still having problems:
* At GRUB boot screen edit boot line and add option: debug=memory
* Boot.
* Use shell command: tools/debug/bifteck > RAM:debug.txt
* And post [GMA MONITOR DETECTION] and other related debug lines
{| class="wikitable sortable" width="90%"
! width="5%" |Description
! width="5%" |Vendor ID
! width="5%" |Product ID
! width="3%" |Rev
! width="5%" |2D
! width="5%" |3D
! width="5%" |Analog Output
! width="5%" |Digital Output
! width="5%" |Laptop LCD
! width="30%" |Comments
|-
| 910GL 82910GL GMCH + ICH6
| 0x8086
| 0x2582 0x2592
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| 910GML 82910 GML GMCH + ICH6 Mobile
| 0x8086
| 0x2582 0x2592
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| may need to add forceGMA to grub boot line to work
|-
| 915G 82915G GMCH + ICH6-M
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
|
|-
| 915GL 82915GL GMCH
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
|
|-
| 915GV 82915GV GMCH
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Yes|}}
| <!--3D-->{{No|}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{N/A}}
| HP DC5100 small form factor
|-
| 915GM GMA900
| 0x8086
| 0x
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| tunnel gearbox }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes}}
| asus eee pc 900
|-
| 915GMS
| 0x8086
| 0x
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| tunnel }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes| }}
|
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| [http://www.notebookcheck.net/Intel-Graphics-Media-Accelerator-950.2177.0.html 945GU] - 133 MHz (Lake port for Intel A100 and A110)
| 0x8086
| 0x2772
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| Fujitsu LifeBook U1010,
|-
| 945GMS - 166 MHz / 250 MHz (1.05V)
| 0x8086
| 0x27a2
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes}}
| Dell D430
|-
| 945GSE - 166 MHz (for Atom)
| 0x8086
| 0x27ae
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Yes|[http://www.x.org/wiki/GalliumStatus]}}
| {{Yes}}
| {{No|dvi port}}
| {{Yes| }}
| for atom motherboards and most 2008/2009 netbooks
* 3D Works - AOA110 AOA150, Dell Mini 9, Samsung NC10, Toshiba NB100,
|-
| 945G 82945G GMCH + ICH7
| 0x8086
| 0x27a6
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| untested 2D and 3D
|-
| 945GC 82945GC MCH
| 0x8086
| 0x27a6
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| untested 2D and 3D
|-
| 945PM
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| Dell D420, Compaq nc6400,
|-
| 945GMS - 250 MHz Calistoga
| 0x8086
| 0x
| 0x0
| <!--2D--> {{Yes}}
| <!--3D--> {{Yes|most models}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes}}
|
* 3D Works Dell Latitude 2100, HP Compaq nc6320, Lenovo 3000, Lenovo T60, Samsung Q35, Dell D620, Dell D820,
* 3D untested Toshiba Satellite L100-120, Toshiba Portege M400,
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
|
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GMA 3100 G31
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works 2D but no 3D
|-
| GMA 3100 G33
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works 2D but no 3D
|-
| [http://en.wikipedia.org/wiki/Intel_GMA GMA 3150] netbooks and nettops
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works 2D but no 3D. no vga, dvi or hdmi output for nettops
|-
| <!--Description--> G965
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments-->
|-
| <!--Description--> Q965
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x2992
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{No}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments--> Only tested with VGA output.
|-
| 965GM X3100 (500 MHz)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| some support 2D but no hardware 3D - could not get it to work with VGA or dvi output
* untested Apple MacBook Air, Lenovo Thinkpad X300, Dell Inspiron 1525, Toshiba M9,
|-
| 960GM X3100 (400 MHz)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
|
|-
| 965M X3100 (400 MHz)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| Dell D830,
|-
| 965PM ??
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| Toshiba A9 works with limited 2D acceleration but no hardware 3D
|-
| GL965
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works with limited 2D acceleration but no hardware 3D
|-
| GM965
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works with limited 2D acceleration but no hardware 3D
|-
| GMA X3500 G35
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->X4500M G41 G43 G45 (400Mhz) Mobile 4 Series
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x2a42 0x2a43
| <!--Revision-->0x07
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue--> {{No|}}
| <!--Digital--> {{No|}}
| <!--Laptop LCD--> {{Yes| VESA}}
| <!--Comments-->works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->GMA 4500M HD (533 MHz)
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments-->works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->GMA 4700M HD (640MHZ)
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x2a42
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments-->works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
====[http://nouveau.freedesktop.org/wiki/FeatureMatrix nouveau].hidd (nvidia pci, agp, pci-e desktop)====
PCIe based nvidia graphics (gfx 8xxx) are the base level for 64bit AROS but earlier models still has some support on 32bit AROS
*Desktop, more likely hit rather than miss on early nvidia on Aros 32bit but on Aros 64bit ...
*Laptop, limited support for '''very''' early non-optimus (i.e. just Nvidia gfx only so no Intel and nvidia gfx combinations on 32bit but on 64bit ...)
Please note that the nouveau project is reverse engineering a nvidia graphics driver but takes time because of [https://nouveau.freedesktop.org/ nVidia's closed firmwares], etc
* 2026-06 - DEVS Nouveau.hidd Gallium.hidd Softpipe - LIBS Gallium GLU 20.0 Mesa OpenCL
* 2011-10 - DEVS 6.11 Nouveau.hidd 7.4 Gallium.hidd 9.4 Softpipe - LIBS 2.3 Gallium 1.3 GLU 19.0 Mesa OpenCL 1.x
* 2011-04 - DEVS 5.31 Nouveau.hidd 7.3 Gallium.hidd 9.3 Softpipe - LIBS 2.2 Gallium 1.1 GLU 18.0 Mesa OpenCL n/a
Nouveau support for AROS is limited to OpenGL 2.1 compliance on 32bit even for modern GL4 capable GPUs but on 64bit ...
On Aros 32bit OpenCL supports the NV50 (8000 9000) cards, less support in NVC0 fermi cards (300 upwards)
On Aros 64bit
ADoom3 graphic details ultra, benchmark while playing press the "`" key and type "Timedemo demo1" in the console
{| class="wikitable sortable" width="90%"
! width="5%" | Graphic Card
! width="5%" | Aros 32bit 1024 x 768
! width="5%" | Aros 32bit 800 x 600
! width="5%" | Aros 32bit 640 x 480
! width="5%" | Aros 64bit 1024 x 768
! width="5%" | Aros 64bit 800 x 600
! width="5%" | Aros 64bit 640 x 480
|-
| NV50 Asus EN8400GS SILENT/P/512M PCIe (G98) || || || || || ||
|-
| Gigabyte 8500GT 256M || 42,6 || 57,2 || 68,6 || || ||
|-
| NV96 (G96) Geforce 9500GT 512M || 43 || 53 || 57 || || ||
|-
| NV96 (G96) 9600GT || || || || || ||
|-
| NVA3 (GT215) GT240 || || || || || ||
|-
| NVA5 (GT216) Palit GT220 Sonic 512M || 39,7 || 55,8 || 63,7 || || ||
|-
| NVA8 (GT218) gt210 || || || || || ||
|-
| NVA8 (GT218) ION2 || || || || || ||
|-
| NVC3 (GF106) GT440 GTS 450 || || || || || ||
|-
| NVCF (GF116) NVC0 Fermi GTX 550Ti or GTS 450 v2 || || || || || ||
|-
| NVC8 (GF110) 580GTX || || || || || ||
|-
| NVE0 Kepler GT630 || || || || || ||
|-
| NVE6 (GK106) Kepler GTX660 || || || || || ||
|-
| NV110 Maxwell GTX 750 || || || || || ||
|-
| NV126 (GM206) GTX950 upwards no reclocking || N/A || N/A || N/A || poor || poor || poor
|-
| NV160 family (Turing) GTX 1650 and RTX 2000 upwards with GSP firmware || N/A || N/A || N/A || unknown || unknown || unknown
|-
| HostGL Ryzen 5 4600H - Nvidia 1650 - Linux mint 21.1 || 150fps || 154fps || 155fps || || ||
|-
| NVA8 (GT218) || || || || || ||
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| width="5%" | Graphic Card
| width="5%" | Aros 32bit 1024 x 768
| width="5%" | Aros 32bit 800 x 600
| width="5%" | Aros 32bit 640 x 480
| width="5%" | Aros 64bit 1024 x 768
| width="5%" | Aros 64bit 800 x 600
| width="5%" | Aros 64bit 640 x 480
|}
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|-
| <!--Description-->tnt1 (nv04) tnt2 (nv05) m64 value (1998)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|very slow}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| NV04 Riva TNT TNT2 Fahrenheit freezes on via motherboard chipset so rename agp.hidd in SYS:Devs/Drivers or Monitors
|-
| <!--Description-->tnt vanta lt (nv06) 1998 /9
| 0x10de
| 0x002c
| 0x15
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|slow}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| <!--Description-->Geforce 256 (nv10) (2000)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|slow }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| untested Geforce256
|-
| <!--Description-->Geforce 2 Geforce 3 Geforce 4 (nv20) 2000 / 2
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|slow }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| works for some PCI and AGP Geforce2 Geforce3 Geforce4
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| Geforce FX5200 nv34 (2003)
| 0x10DE
| 0x0322 0x
| 0xA1
| <!--2D-->{{Maybe| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->{{Maybe|VGA15 }}
| <!--Digital-->{{Maybe|DVI}}
| <!--Laptop LCD-->{{N/A}}
| NV30 GeForce 5 FX Rankine Hardware OpenGL 1.5 - slower than GF MX 4000 for 2D - max 1024 x768
* not working [https://eab.abime.net/showthread.php?t=92328&page=8 mobos with VIA chipsets 2018]
* working (MSI 0x9174) the previous nouveau 5.x driver
* Others work with 6.x series XFX PV-T34K-NA, ASUS V9520-X/TD
|-
| Geforce FX5500 (nv34) (2003)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{Maybe| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| works
|-
| Geforce 5100 (NV34)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce FX 5200LE (NV34)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5200 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce FX5600 (nv31) (2004)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Maybe| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| works
|-
| GeForce FX 5600 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5600SE
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5600XT
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce FX5700 (nv36) (2004)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes|some}}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{Maybe| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5700VE
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5700 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5700LE
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5800 (NV30)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5800 Ultra (NV30)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900 (NV35)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900XT
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900ZT
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5950 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce 5xxx
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
|
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| Geforce 6200 (nv44) (2005)
| 0x
| 0x00F3 0x014F
| 0x0
| <!--2D-->{{Yes|5.28 Pixel Text}}
| <!--3D-->{{Maybe| use 5.28}}
| <!--Analogue-->{{Yes|VGA15 and s-video - plain 4pin cable lead will work with 7pin}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| NV40 GeForce 6 GeForce 7 Curie AGP Hardware OpenGL 2.1 needing previous 5.x version as regression arose 2011-10
|-
| Geforce 6200 (nv44a) (2006)
| 0x
| 0x0221
| 0x0
| <!--2D-->{{Yes|5.28 Pixel Text }}
| <!--3D-->{{Yes|}}
| <!--Analogue-->{{Yes|VGA15}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| Hardware OpenGL 2.1, PCI version tested OK in 2014-01-02 - Icaros 1.5.2
* not working
*working
|-
| GeForce 6200 with Turbo Cache (NV43)
| 0x
| 0x0161
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce 6200SE with Turbo Cache (NV44)
| 0x
| 0x0162
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce 6200 LE
| 0x10de
| 0x0163
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| PCI-E
|-
| GeForce 6600 LE
| 0x
| 0x00F4 0x0142
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6600
| 0x
| 0x00F2 0x0141
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| 2006 PureVideo HD 1 or VP1 re-used the MPEG-1/MPEG-2 decoding pipeline from FX
|-
| Geforce 6600gt (nv4x) (2005)
| 0x
| 0x00F1 0x0140
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Yes| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| OpenGL tests -
|-
| Geforce 6800 (nv40) (2005)
| 0x
| 0x0041 0x00C1 0x00F0 0x0211
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Yes| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 XE (NV4x)
| 0x
| 0x0043
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 LE
| 0x
| 0x0042 0x00C2 0x0212
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 GT (quadro fx 1400)
| 0x
| 0x0045 0x0046 0x0215
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 6800 GS
| 0x
| 0x0047 0x00C0 0x00F6
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 GTS NV40
| 0x
| 0x0040 0x0F9
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 6800XT
| 0x
| 0x0044 0x0048 0x00C3 0x0218
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6600 VE
| 0x
| 0x0143
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6500 NV44
| 0x
| 0x0160
| 0x0
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6250
| 0x
| 0x0169
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 6xxx
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GeForce 7800 GTX
| 0x
| 0x0090 0x0091
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| tunnel gearbox cube cube2 25}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> 256MB DDR3 - 1 6pin psu connector -
* not working asus en7800gtx/2dhtv/256m/osp/a -
* Works XFX PV-T70F-UDD7 Works in steve jones' scrap pc aros build 2010 2 DVI-I ports
* Untested
|-
| GeForce 7800 GT
| 0x
| 0x0092
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7600gt (G8 ) (nv4 ) (2006)
| 0x
| 0x02E0 0x0391
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL 2.1
* not working
* working
|-
| GeForce 7800 SLI
| 0x
| 0x0095
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GTX
| 0x
| 0x0290
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GT GTO
| 0x
| 0x0291
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GS
| 0x10de
| 0x0292
| 0x0a1
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working
* Works with a few glitches with XFX Pine 0x2218
|-
| GeForce 7950 GX2
| 0x10de
| 0x0293 0x0294
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| GeForce 7950 GT
| 0x
| 0x0295 0x02E4
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GS
| 0x
| 0x02E3
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7600 GS
| 0x
| 0x02E1 0x0392
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7650 GS
| 0x
| 0x0390
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7600 LE
| 0x
| 0x0394
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7800GS (G8 ) (nv4 ) (2006)
| 0x
| 0x0093 0x00F5
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working
* works if AGP motherboard chipset is supported - Hardware OpenGL 2.1
|-
| GeForce 7100 GS
| 0x
| 0x016A
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7350 LE
| 0x
| 0x01D0
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7300le (G8 ) (nv4 ) (2006)
| 0x
| 0x01D1
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7300SE 7200GSGF-7200GS-N-B1 variant (G72)
| 0x10de
| 0x01D3
| 0x0a1
| <!--2D-->
| <!--3D-->
| <!--Analogue-->{{Unk|1x DVI, 1x VGA, 1x S-Video}}
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2007 40W pci-e 1.0 VP1 no unified shaders -
* not working Asus on via chipset (2015),
* works Asus on intel chipset (2015),
|-
| Geforce 7300gt (G8 ) (nv4 ) (2006)
| 0x
| 0x0395 0x0393
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working
* works
|-
| GeForce 7300 GS
| 0x
| 0x01DF
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7500 LE
| 0x
| 0x01DD
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7xxx
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GeForce 8800 Ultra (NV50 family)
| 0x
| 0x0194
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NV50 GeForce 8 to GeForce 200s opengl 3.x - max res - 80nm technology - PureVideo HD 2 or VP2 Nvidia VDPAU Feature Set A (absent from ultra and some 8800gt?) added a dedicated bitstream processor (BSP) and enhanced video processor for H.264, VC-1 acceleration
|-
| Geforce 8800gts (nv50) (G8x) (2007)
| 0x
| 0x0400 0x0600 0x0193
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2007 200w openGL3 openCL - 2x6pin psu
* not working 0x0193 models (2015) on via chipsets,
* works
|-
| Geforce 8800gtx (nv5 ) (G8x) (2007)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2008 200W 1x 6pin connector,
* not working
* working
* untested XFX PV-T88P-YDF4, Alpha Dog Edition runs extremely hot - Gigabyte GV-NX88T512H,
|-
| GeForce 8800 GT
| 0x
| 0x0602 0x0611 0x0193
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->DVI up to 2500 x 1600
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - 6pin psu power connector required
* not working
* untested Asus EN8800GT/HTDP/256M EN8800GT/HTDP/512M EN8800GT/G/HTDP/512M
* works
|-
| GeForce 8800 GT (G92)
| 0x10de
| 0x0611
| 0x0a2
| <!--2D-->{{Yes|6.11 Pixel Text}}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{N/A}}
| <!--Digital-->{{Yes}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3 pci-e 2.0 8800GT 512MB on Icaros 2.0.3 [[File:8800GT aros heads.png|thumb|8800GT]] [[File:8800GT aros tails.png|thumb|8800GT detail]]
|-
| Geforce 8600gt (nv5 ) (G8x) (2007)
| 0x
| 0x0401 0x0402
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res
* not working
* works
|-
| GeForce 8500 GT
| 0x
| 0x0421
| 0x0
| <!--2D-->{{Yes| some color }}
| <!--3D-->{{yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL tests - max opengl 3.x but 2.1 offered - max res
* not working
* works Gigabyte 8500 GT,
|-
| GeForce 8800 GS
| 0x
| 0x0606 0x060D
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res
|-
| GeForce 8600GS
| 0x
| 0x0403
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 3.x VP3 offers complete hardware-decoding for all 3 video codecs of the Blu-ray Disc format: MPEG-2, VC-1, and H.264 - Nvidia VDPAU Feature Set B
|-
| GeForce 8300 GS
| 0x
| 0x0423
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res
|-
| Geforce 8400gs G98GS (end 2007) GT218 (2009)
* Rev2 with 8/16 cores and 128-512MB of DDR2 or GDDR3 memory.
* Rev3 with 8 cores and 512MB-1GB of DDR3 memory (based on Tesla 2.0)
| 0x
| 0x0424 0x0422
| 0x0
| <!--2D-->{{Yes|Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 490 gearbox 505 Cube 135 Cube2 55 quake3 }}
| <!--Analogue-->{{Yes|works digital part of DVI but nothing from any display port}}
| <!--Digital-->{{Yes|output on digital 24 pin array of DDWG's DVI and hdmi}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 50W openGL 3.1 openCL - case single slot - one single-link DVI digital output, supporting up to one 1920x1080 resolution display - analog resolution 640 x 480 to 1024 x 768 16 and 24 bit color - [http://www.phoronix.com/scan.php?page=article&item=nouveau_comp_2011&num=19 runs a little hotter than expected] - G98 VP3 pci-e 2.0 512MB DDR2 -
* not working
* works Asus EN8400GS SILENT/P/512M PCIe (G98),
|-
| Geforce 8400gs (nv50) (G86) (mid-2007)
* Rev1 with 16 cores / 256MB of DDR2 memory.
| 0x
| 0x0404
| 0x0
| <!--2D-->{{Yes|Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 490 gearbox 505 Cube 135 Cube2 55 quake3 }}
| <!--Analogue-->{{Yes|works but not tested thru 4 pins of analog signal of DVI plug}}
| <!--Digital-->{{Yes|output on digital 24 pin array of DDWG's DVI and hdmi}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2008 50W openGL 3.1 openCL - case single slot - one single-link DVI digital output up to 1920x1080 resolution display - analog resolution 640 x 480 to 1024 x 768 16 and 24 bit color - [http://www.phoronix.com/scan.php?page=article&item=nouveau_comp_2011&num=19 runs a little hotter than expected] - G86 VP2 128MB -
* not working XFX PV-T86S-YAJG NVIDIA GeForce 8400 GS 512MB DDR2, Sparkle 8400GS 512MB SX84GS512D2L-DPP,
* works Asus EN8400GS SILENT/HTP/256M SILENT/HTP/512M/A,
|-
| GeForce 8400 SE
| 0x
| 0x0420
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 2.x openCL
|-
| NVidia Quadro NVS290 DMS-59
| 0x
| 0x0403
| 0x0
| <!--2D-->{{no| }}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk|DMS-59 socket}}
| <!--Digital-->{{unk|DMS-59 }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2008 21W - G86S (G86-827-A2) - 16 shading units, 8 texture mapping units, and 4 ROPs. NVIDIA has paired 256 MB DDR2 - PCIe 1.0 x16 Low Profile -
|-
| Geforce Quadro FX 4600 (SDI), 5600
| 0x
| 0x
| 0x0
| <!--2D-->{{Partial|VESA 2d}}
| <!--3D-->{{no| }}
| <!--Analogue-->{{partial| }}
| <!--Digital-->{{partial| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GeForce 9800 GX2 (NV50 family)
| 0x
| 0x0604
| 0x0
| <!--2D-->{{Partial|VESA }}
| <!--3D-->{{no| }}
| <!--Analogue-->{{Partial| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 150w - 65nm technology
|-
| GeForce 9800 GTX
| 0x10de
| 0x0612
| 0x0a2
| <!--2D-->{{Yes| }}
| <!--3D-->{{Maybe|6.11 }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 2x6pin psu -
* not working xfx on via chipset (2015),
* works xfx on chipset intel ,
|-
| GeForce 9800 GTX+
| 0x10de
| 0x0613
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res 2560 x 1920 - case dual slot - 26amp 12v rail on computer psu if 2x6pin connectors needed - 55nm version of the G92 chip - will not work with PCI-e 1.0a slots -
* not working
* works on a few models
|-
| Geforce 9800gt (nv50) (G92a) (2008)
| 0x10de
| 0x0614
| 0x0xa2
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel 495 gearbox 513 Cube 156 Cube2 120 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{partial| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL 3.1 openCL 1.x - case dual slot - 600w 26amp on both 12v rails for 2x6pin psu on gfx card - no fan control - some come with 1x6pin - renamed version of the venerable GeForce 8800 GT - randomly works
* not working Gainward 512M untested
* working Gainward CardExpert (0x0401) Green Edition NE39800TFHD02-PM8D92 1024MB (no 6pin)
|-
| Geforce gf9600 9600gt (nv5 ) (G9x) (2008)
| 0x10de
| 0x0622
| 0x0a1
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel 493 gearbox 675 Cube Cube2 100 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL 3.2 openCL but no fan control - case dual slot - 1 6pin pcie psu connector - 500 Watt or greater power supply with a minimum of 26 Amp on the +12 volt rail - Max Analog: 2048x1536 and Max Digital: 2560x1600 (Dual Link DVI Only) - PCI Express® 2.0 / 1.1 Support - g96 gpu randomly works -
* not working bfg tech ocx,
* works gigabyte gv-n96tsl-512i -
|-
| Geforce gf9500 9500gt (nv5 ) (G9x) (2008)
| 0x10de
| 0x0640
| 0x0a1
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel 480 gearbox 500 Cube Cube2 64 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.2 - case single slot - 350 Watt/400 Watt or greater power supply with a minimum of 18 Amp/22 Amp on the +12 volt rail - Max Analog: 2048x1536 and Max Digital: 2560x1600 (Dual Link DVI Only) - PCI Express® 2.0 / 1.1 Support -
* not working zotac zone fanless, Gainward USA NE29500THHD01-PM8796, PNY G9500GN2E50X+0TE,
* works xfx xne-9500t-td01-pm8596 1024mb ddr2,
|-
| GeForce 9600 GS
| 0x
| 0x0623
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res - will not work with PCI-e 1.0a slots -
* not working
* works
|-
| GeForce 9600 GSO
| 0x
| 0x0610
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res - G92 chopped down - 9600GSO is re-badged 8800GS both very power hungry cards -
|-
| GeForce 9300 GS
| 0x
| 0x06E1
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 opengl 3.x - max res
|-
| Geforce 9400 GT (nv5 ) (G86S) (2008)
| 0x
| 0x
| 0x0
| <!--2D-->{{partial|}}
| <!--3D-->{{unk|}}
| <!--Analogue-->{{unk|1x DVI, 1x VGA, 1x S-Video}}
| <!--Digital-->{{unk|1x DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 50W opengl 3.x - max res
|-
| Geforce 9xxx (nv5 ) (G9x) (2008)
| 0x
| 0x
| 0x0
| <!--2D-->{{unk|}}
| <!--3D-->{{unk|}}
| <!--Analogue-->{{unk|}}
| <!--Digital-->{{unk|}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 opengl 3.x - max res
|-
| <!--Description-->
NV84 (G84) GeForce 8600 (GT, GTS, M GT, M GS), 8700M GT,
NV92 (G92) GeForce 8800 (GT, GS, GTS 512, M GTS, M GTX)
GeForce 9600 GSO, 9800 (GT, GTX, GTX+, GX2, M GT, M GTX)
NV96 (G96) GeForce 9400 GT, 9500 (GT, M G), 9600 (M GS, M GT),
NV86 (G86) GeForce 8300 GS, 8400 (GS, M G, M GS, M GT), 8500 GT
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NVA0 (GT200) GeForce GTX (260, 275, 280, 285, 295)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->GeForce GTX 280 (NV50 family)
| <!--Vendor ID-->
| <!--Product ID-->0x05E1
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res PureVideo HD 4 (Nvidia Feature Set C or "VDPAU Feature Set C), VP4 added hardware to offload MPEG-4 Advanced Simple Profile (original DivX and Xvid)
|-
| <!--Description-->GeForce GTX 260
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x05E2
| <!--Revision-->
| <!--2D-->{{partial|Vesa}}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> 2 6pin - psu pci express 2.1 -
|-
| Geforce GTS250 250GTS (g92b) (2009)
| 0x10de
| 0x0615
| 0x0a2
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 486 gearbox 508-642 Cube Cube2 80 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> 2x6pin psu VP2 - pci-e 2.x - case dual slots - 738m 1gb ddr3 -
* not working Zotac branded version GDDR3 -
* works PNY gs-250x-zdfl and Gigabyte ??, BFG Tech RGTS2501024OCE, palit ne3ts250fhd52-pm8a92 with 2x6pin on top and hdmi output port,
|-
| <!--Description-->GeForce GT 240 (GT215 family)
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0ca3
| <!--Revision-->0xa2
| <!--2D-->{{Maybe|use VESA}}
| <!--3D-->{{No|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->late 2009 openGl 3.2 - case dual slots - no 6pin psu required with VP4 - All are pcie 2.1 cards and may not work in 1.0a slots -
* not working
* DDR3 with 512MB or 1GB -
* DDR5 -Asus ENGT240 - XFX Pine GT240XYHFC 0x3001 - Gigabyte GV-N240D5-512I rev 1.0 - Zotac AMP! with HDMI 1.3a with DisplayPort 1.1, Dual Link DVI -
* works
|-
| <!--Description-->GT220 (GT216) G220
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0a20
| <!--Revision-->0xa2
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Yes}}
| <!--Digital-->{{Yes|DVI }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> Icaros 2.0.3 GeForce GT220 1GB[[File:GT220 aros heads.png|thumb|GT220]][[File:GT220 aros tails.png|thumb|GT220]]
* untested NVIDIA Quadro® 400 512MB DDR3 GT216 DP DVI, AFox AF220 1Gb DDR3,
|-
| Geforce GT220 220GT G94 Tesla (g92b)
| 0x10de
| 0x0a20
| 0xa2
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 490 gearbox 505 cube 150 cube2 50 Quake3 }}
| <!--Analogue-->{{Unk|1x DVI, 1x VGA}}
| <!--Digital-->{{Yes|DVI but not 1x HDMI }}
| <!--Laptop LCD-->{{N/A}}
| 58W pci express 2.0 cards DDR3 - case single slot -
* not working ASUS ENGT220/DI/1GD2(LP)/V2 -
* works - gainward card expert 0x0401 GDDr3 512MB -
|-
| <!--Description-->GT210 GT 210 210GT G210 based on Tesla 2.0 GT218S GT218-300-A2 variant, GT218-300-B1
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0a65
| <!--Revision-->0xa2
| <!--2D-->{{Yes|6.11 Pixel Text}}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{Unk|1x DVI, 1x VGA}}
| <!--Digital-->{{Maybe|DVI out works but not hdmi or 1x DisplayPort}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 31W OpenGL 3.3 pci-e 2.0 cards - single slot -
* working GT218 based Asus EN210 based silent low profile large passively cooled -
* untested MSI GeForce 210 1GB DDR3 PCIe N210-MD1GD3H/LP,
* not working
|-
| <!--Description-->Quadro NVS 295 (256 MB GDDR3), NVS 450 (256M/512 MB DDR3)
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x
| <!--Revision-->
| <!--2D-->{{yes| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->
| <!--Digital-->{{partial|2 or 4 dp ports}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 25w low performance - G98s with 8 shading units, 4 texture mapping units, and 4 ROPs on PCI-Express 1.0 x16 -
*not working some NVIDIA Quadro NVS 295 2 dp ports (DELL, HP),
*working
|-
| <!--Description-->GT310 Tesla 310, 315, GT 320, GT 330 GT 340
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{Maybe|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2010 50w OpenGL 3.3 openCL all similar in performance to GT2xx except gt31x (poor)
|-
| <!--Description-->Quadro NVS310 NVIDIA NVS 310
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital--> 2 dp
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2012 25w GF119S (GF119-825-A1) 48 shading units, 8 texture mapping units, and 4 ROPs on PCI-Express 2.0 x16 - 512 MB DDR3 - PureVideo VP5 VDPAU Feature Set D -
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description--> GTX 470, GTX 480 GF10 GF10* core (NVC0 family)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{Maybe| tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2010 215w 2x6 plugs - NVC0 family (Fermi) GF100 (GF100-275-A3) Fermi 448 shading units, 56 texture mapping units, and 40 ROPs with 1,280 MB GDDR5 - OpenGL4.5 OpenCL1.1 Tessellation - case dual slots -
|-
| Geforce GTX460 460GTX (G104) 256bit, 1GB v2 192bit and GTX 465
| 0x10de
| 0x0e22
| 0xa1
| <!--2D-->{{Maybe|VESA }}
| <!--3D-->{{Maybe| tunnel gearbox cube 055-111 cube2 50}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVC0 family (Fermi) OpenGL 4.x but - 2x6pin psu - case dual slots -
* not working evga 768MB GDDR5 192bit 01G-P3-1373-ER or 01G-P3-1372-TR
* works 1GB GDDR5 256bit 01G-P3-1371-ER
|-
| <!--Description-->Geforce GTX 460SE 192bit
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0e23
| <!--Revision-->0x91 or 0xa1
| <!--2D-->{{Yes| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->{{Yes| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> nouveau 6.11 - 2 6pin psu needed - case dual slots -
* not working
* works EVGA 01g-p3-1366-b6 et 1024MB p1041 -
|-
| Geforce GT450 GTS450 450GTS GF106
| 0x10de
| 0x0dc4
| 0x0a1
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel gearbox cube cube2 50 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes|DVI }}
| <!--Laptop LCD-->{{N/A}}
| 2010 Hardware OpenGL 4.2 but nouveau at 3.3 - most need 1x 6pin psu - case dual slots -
* not working
* DDR3 1 or 2GB - Palit NEAS450NHD41F,
* GDDR5 512Mb or 1GB - MSI MPN N450GTSM2D1GD5OC, Asus MPN ENGTS450DI1GD5,
* works Gainward Card Expert NE5S4500FHd51,
|-
| <!--Description-->GT 440 GF108 chipset or better OEM GF106
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 6.11 Pixel Text}}
| <!--3D-->{{Maybe| tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGl 4.1 opencl 1.x - no 6 pin psu - 96 cuda cores 128bit - case dual slots -
* not working
* OEM
* GDDR5 512MB to 1GB ASUSTeK ENGT440/DI/1GD5
* GDDR3 Asus 1gb to 2gb,
* works
|-
| <!--Description-->GT430 430GT (GF108)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|6.11 Pixel Text}}
| <!--3D-->{{Maybe|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->ddr3 memory 64bit or 128bit - buggy await new revision of driver
* not working
* works
|-
| <!--Description-->nVidia Quadro FX1800 768MB GDDR3 Full Height Graphics Card Workstation
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 6.11 Pixel Text}}
| <!--3D-->{{no|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->{{Maybe|DVI-I 2xDP}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->59W 768 MB GDDR3 memory using a 192-bit memory interface - OpenGL 3.3 -
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GTX 590 Fermi
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->OpenGL4.4 OpenCL 1.1 - GDDR5 - 6pin and 8pin psu connectors - 512 cuda - case dual slots -
* not working
* works
|-
| <!--Description-->GTX 580,
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->PureVideo HD 5" or "VP5" (Nvidia Feature Set D or VDPAU Feature Set D) 4k UHD 3840 × 2160 H.264 decode -
|-
| <!--Description-->GTX 570,
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{Maybe|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working Zotac GTX 570, Gainward GTX560TI/570 Phantom,
* works gigabyte, evga
|-
| <!--Description-->Geforce 5xx 560gtx Fermi GTX 560,
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->opengl 4.x - 2 6pin psu - 384 cuda cores - case dual slots - will not work with PCI-e 1.0a slots -
* not working Asus ENGTX560 DC/2DI/1GD5,
* Ti LE 448 cuda GDDR5 320bit
* Ti 256bit
* works
|-
| <!--Description-->GTX 560 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working evga GTX 560Ti 01GP31560KR - Gainward GTX560TI/570 Phantom,
* works
|-
| <!--Description-->GTX 550 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x1201
| <!--Revision-->
| <!--2D-->{{Maybe|VESA Doom Doom2 Duke }}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->can hang on boot up on I2C Init or suffer random lockups on OpenGL apps - most need 1 6pin min 400W 24A on the +12V1 / +12V2 dual 12V rails of the computers' power supply unit - 192 cuda cores - case dual slots used - will not work with PCI-e 1.0a slots -
* not working eVGA GeForce GTX 550 Ti (1024 MB) (01GP31556KR) -
* untested asus Extreme, eVGA GeForce GTX 550 Ti (1024 MB) (01GP31557KR) - -
* works
|-
| <!--Description-->GT 545 and OEM GF116
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 4.2 opencl 1.x - GDDR5 with OEM only -
|-
| <!--Description-->GT530 OEM
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 6.11 Pixel Text}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->96 cuda cores - 1GB or 2GB DDR3 128bit
|-
| <!--Description-->GT520 520GT
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->untested 48 cuda cores - DDR3 64bit
|-
| <!--Description-->510, GT 530
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D 6.11 Pixel Text}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> ddr 3 - 50w max -
|-
| <!--Description-->GT610 Fermi GF119
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVS 315 300 GF119S
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{No|VESA}} needs special dms-59 cable
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 fermi 315 PNY VCNVS315-T 1Gb DDR3 but needs special dms-59 cable -
|-
| <!--Description-->GT630 GF108 Fermi
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->not accelerated 2015 - like the GT730 below - 96 cuda cores whilst kepler version has 384 - 128bit to keplers' 64bit bandwidth - kepler has 2GB DDR3
* not working Gigabyte
* DDR3
* GDDR5
* works
|-
| <!--Description-->Geforce GT 730
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe| use VESA 6.11 Pixel Text}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> fermi version has 96 cuda cores 128bit GF108
* not working Asus
* works
|-
| <!--Description-->nVIDIA Quadro 4000
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}} 2 dp ports
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->142W 2Gb GDDR5 - PCI Express 2.0 x16 ; full Height card with 1x 6-Pin PCIe power need - CUDA Cores 256 - OpenGL 4.5
|-
| <!--Description-->nVIDIA Quadro 5000
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2011 200W 2.5Gb GDDR5 320 bit - PCI Express 2.0 x16 full Height card with 2x 6-Pin PCIe power need -
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce GTX Titan GeForce GTX Titan Black GeForce GTX Titan Z
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVE0 family (Kepler) GeForce 600 GeForce 700 GeForce GTX Titan Kepler
|-
| <!--Description-->GeForce GTX 780 GeForce GTX 780 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->PureVideo HD 6" or "VP6" (Nvidia Feature Set E or VDPAU Feature Set E) significantly improved performance when decoding H.264 and MPEG-2
|-
| <!--Description-->GeForce GTX 770
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->opengl 4.4 opencl 1.1
|-
| <!--Description-->GeForce GTX 760 GeForce GTX 760 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce GT 740
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce GT 730 Kepler
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> two versions fermi 96 cores 128bit GF108 and kepler 384 cores 64bit GK208
|-
| <!--Description-->680gtx GK104 core gtx680 680m
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVE0 family (Kepler)
|-
| <!--Description-->GTX 690 Kepler NVE0
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->pci-e 3.0, OpenGL 4.4 OpenCL 1.1
|-
| <!--Description-->GTX 670
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GTX 660 GTX 660 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GTX 650 GTX 650 Ti GTX 650 Ti Boost
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVE0 family (Kepler) most need 1 6pin psu
* not working asus ENGTX560 DC/2DI/1GD5
* works
|-
| <!--Description-->Geforce GT 640
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* 128bit DDR3
* 192bit DDR3 1.5 to 3GB 50W
* 128bit GDDR5 75W
|-
| <!--Description-->GT 620 GT 640
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce 750ti, GeForce 900
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->[https://nouveau.freedesktop.org/FeatureMatrix.html NV110] Maxwell -
|-
| <!--Description-->Nvidia GTX 750
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x1381
| <!--Revision-->0xa2
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->2026 nvidia test
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->GM206 2nd gen maxwell PureVideo HD 7" or "VP7" (Nvidia Feature Set F or VDPAU Feature Set F) adds full hardware-decode of H.265 HEVC Version 1 (Main and Main 10 profiles and full fixed function VP9 (video codec) hardware decoding
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Quadro K620 quadro p620 2gb gddr5 128bit and quadro p1000 4gb gt1030 30w
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 50w slim low profile -
|-
| <!--Description-->GeForce gtx 1060, GeForce 1070
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NV130 Pascal
|-
| <!--Description-->gtx 1050ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->NV130 family (Pascal)
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV132 (GP102) NVIDIA Titan (X, Xp), GeForce GTX 1080 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV134 (GP104) GeForce GTX (1070, 1080)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV136 (GP106) GeForce GTX 1060
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV137 (GP107) GeForce GTX (1050, 1050 Ti)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV138 (GP108) GeForce GT 1030
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NV162 (TU102) NVIDIA Titan RTX, GeForce RTX 2080 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV164 (TU104) GeForce RTX (2070 Super, 2080, 2080 Super)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2020 NV160 family (Turing) unified gsp-rm firmware - best starting point for Vulkan support
|-
| <!--Description-->NV166 (TU106) GeForce RTX (2060, 2060 Super, 2070)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV168 (TU116) GeForce GTX (1650 Super, 1660, 1660 Ti, 1660 Super)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV167 (TU117) GeForce GTX 1650
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->gtx 1650ti super
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2018 old style
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NV172 (GA102) GeForce RTX (3080, 3090)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 av1 decoding ampere
|-
| <!--Description-->NV174 (GA104) GeForce RTX (3060 Ti, 3070, 3080 Mobile)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->NV170 family (Ampere)
|-
| <!--Description-->NV176 (GA106) GeForce RTX (3050, 3060)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV177 (GA107) GeForce RTX 3050
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NV192 (AD102) GeForce RTX 4090
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV193 (AD103) GeForce RTX 4080
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->NV190 family (Ada Lovelace)
|-
| <!--Description-->NV194 (AD104) GeForce RTX (4070, 4070 Ti)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV196 (AD106) GeForce RTX 4060 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV197 (AD107) GeForce RTX 4060
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
|}
==== nouveau mobile integrated ====
If you purchased a notebook with an NVidia sticker on it, most of the time you have a optimus based one, ie Intel CPU+GPU melded with Nvidia GPU, Optimus was slated at one point to go into desktop PCs but the industry ended up rejecting that concept
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|-
| GeForce 6100 nForce 405
| 0x
| 0x03D1 0x0242
| 0x0
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
|
|-
| <!--Description-->GeForce 6100 nForce 400
| <!--Vendor ID-->
| <!--Product ID-->0x03D2
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce 6100 nForce 420
| <!--Vendor ID-->
| <!--Product ID-->0x03D5
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce 6150 LE
| <!--Vendor ID-->
| <!--Product ID-->0x0241
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6150SE nForce 430
| 0x
| 0x03D0
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| working
|-
| <!--Description-->GeForce 6150
| <!--Vendor ID-->
| <!--Product ID-->0x0240
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7150M / nForce 630M
| <!--Vendor ID-->
| <!--Product ID-->0x0531
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7000M / nForce 610M
| <!--Vendor ID-->
| <!--Product ID-->0x0533
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7050 PV / NVIDIA nForce 630a
| <!--Vendor ID-->
| <!--Product ID-->0x053A 0x053B
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Geforce IGP 7025 nForce 630a
| 0x
| 0x053E
| 0x0
| <!--2D-->{{Yes|some}}
| <!--3D-->{{Yes|some}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No| }}
| some support on some chipsets
|-
| GeForce 7100 / nForce 630i (C73)
| 0x10de
| 0x07e1
| 0x0a2
| <!--2D-->{{Maybe}}
| <!--3D-->{{Maybe}}
| <!--Analogue-->{{Maybe}}
| <!--Digital-->{{Maybe}}
| <!--Laptop LCD-->{{N/A}}
| Icaros 2.0.3 and Gigabyte 73-pvm-s2h rev. 1.0 but will not boot on [https://ae.amigalife.org/index.php?topic=806.msg8765#new Acer x270 with Icaros 2.3]
|-
| <!--Description-->GeForce 7150 / NVIDIA nForce 630i
| <!--Vendor ID-->
| <!--Product ID-->0x07E0
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7050 / NVIDIA nForce 610i
| <!--Vendor ID-->
| <!--Product ID-->0x07E3
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Geforce IGP 8100 (nForce 720a)
| 0x
| 0x084F
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
|
|-
| GeForce 8100P
| 0x
| 0x0847
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
|
|-
| <!--Description-->Geforce 8200 8300 nForce 730a
| <!--Vendor ID-->
| <!--Product ID-->0x084A 0x0848 (GeForce 8300) 0x0849 (GeForce 8200) 0x084B (GeForce 8200)
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->working on some 8300's with Icaros 1.5 but others untested
|-
| <!--Description-->nForce 780a SLI
| <!--Vendor ID-->
| <!--Product ID-->0x084C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->nForce 750a SLI
| <!--Vendor ID-->
| <!--Product ID-->0x084D
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Nvidia Geforce IGP 9300 (nForce MCP7a)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->works
|
|-
| <!--Description-->9400 (ION)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->If AROS detects GPU chipset, works well
|-
| <!--Description-->9700M ()
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Geforce ION 2
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->works well
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce Go 6150
| <!--Vendor ID-->
| <!--Product ID-->0x0244
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6100
| <!--Vendor ID-->
| <!--Product ID-->0x0247
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6200
| <!--Vendor ID-->
| <!--Product ID-->0x0164 0x0167
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6400
| <!--Vendor ID-->
| <!--Product ID-->0x0166 0x0168
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->Sony Laptop
|-
| <!--Description-->GeForce Go 6800
| <!--Vendor ID-->
| <!--Product ID-->0x00C8
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6800 Ultra
| <!--Vendor ID-->
| <!--Product ID-->0x00C9
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600
| <!--Vendor ID-->
| <!--Product ID-->0x0144
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600 TE/6200 TE
| <!--Vendor ID-->
| <!--Product ID-->0x0146
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600
| <!--Vendor ID-->
| <!--Product ID-->0x0148
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600 GT
| <!--Vendor ID-->
| <!--Product ID-->0x0149
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7200
| <!--Vendor ID-->
| <!--Product ID-->0x01D6
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7300
| <!--Vendor ID-->
| <!--Product ID-->0x01D7
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->untested
|-
| <!--Description-->GeForce Go 7400
| <!--Vendor ID-->
| <!--Product ID-->0x01D8
| <!--Revision-->
| <!--2D-->
| <!--3D-->works 2D and 3d issues though
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7800
| <!--Vendor ID-->
| <!--Product ID-->0x098
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7800 GTX
| <!--Vendor ID-->
| <!--Product ID-->0x0099
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7950 GTX
| <!--Vendor ID-->
| <!--Product ID-->0x0297
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7900 GS
| <!--Vendor ID-->
| <!--Product ID-->0x0298
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7900 GTX
| <!--Vendor ID-->
| <!--Product ID-->0x0299
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7600
| <!--Vendor ID-->
| <!--Product ID-->0x0398
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7600 GT
| <!--Vendor ID-->
| <!--Product ID-->0x0399
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 6610 XL
| <!--Vendor ID-->
| <!--Product ID-->0x0145
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 6700 XL
| <!--Vendor ID-->
| <!--Product ID-->0x0147
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce 8700M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0409
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8600M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0425
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8400M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0426
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8400M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0427
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8400M G
| <!--Vendor ID-->
| <!--Product ID-->0x0428
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8800M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x0609
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8800M GTX
| <!--Vendor ID-->
| <!--Product ID-->0x060C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9500M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0405
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8600M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0407
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9650M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0408
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9400M GT
| <!--Vendor ID-->
| <!--Product ID-->0x042C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9300M G
| <!--Vendor ID-->
| <!--Product ID-->0x042E
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9100M G
| <!--Vendor ID-->
| <!--Product ID-->0x0844
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9800M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x0628
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9700M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x062A
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9800M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x062C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9600M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0647
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9600M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0648
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9600M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0649
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9500M G
| <!--Vendor ID-->
| <!--Product ID-->0x064B
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9300M GS
| <!--Vendor ID-->
| <!--Product ID-->0x06E5
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9200M GS
| <!--Vendor ID-->
| <!--Product ID-->0x06E8
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9300M GS
| <!--Vendor ID-->
| <!--Product ID-->0x06E8
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->NV50 (G80) Quadro FX (4600 (SDI), 5600)
Quadro FX (2800M, 3600M, 3700, 3700M, 3800M, 4700 X2), VX 200
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV94 (G94) 9700M GTS, 9800M GTS, GeForce G 110M, GT 130(M), GT 140, Quadro FX (1800, 2700M)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV84 (G84) 8700M GT, GeForce 9500M GS, 9650M GS
Quadro FX (370, 570, 570M, 1600M, 1700), NVS 320M
NV86 (G86) GeForce 8300 GS, 8400 (GS, M G, M GS, M GT), 8500 GT, GeForce 9300M G
Quadro FX 360M, NVS (130M, 135M, 140M, 290)
GeForce GTS 150(M), GTS 160M, GTS 240, GTS 250, GTX (260M, 280M, 285M), GT (330, 340)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV96 (G96) 9650M GT, 9700M GT
GeForce G 102M, GT 120
Quadro FX (380, 580, 770M, 1700M)
NV98 (G98) GeForce 8400 GS, GeForce 9200M GS, 9300 (GE, GS, M GS)
GeForce G 100, G 105M
Quadro FX (370 LP, 370M), NVS (150M, 160M, 295, 420, 450)
Quadro CX, FX (3800, 4800, 5800)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVA3 (GT215) GeForce GT (240, 320, 335M), GTS (250M, 260M, 350M, 360M) Quadro FX 1800M
NVA5 (GT216) GeForce GT (220, 230M, 240M, 325M, 330M), 315
Quadro 400, FX 880M, NVS 5100M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVA8 (GT218) GeForce 8400 GS, ION 2, GeForce 205, 210, G 210M, 305M, 310(M), 405
Quadro FX (380 LP, 380M), NVS (300, 2100M, 3100M)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVAA (MCP77/MCP78) GeForce 8100, 8200, 8300 mGPU / nForce 700a series, 8200M G
NVAC (MCP79/MCP7A) ION, GeForce 9300, 9400 mGPU / nForce 700i series, 8200M G, 9100M, 9400M (G)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVAF (MCP89) GeForce 320M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GT 605M, GT 610M GT 620M GT 630M GT 635M GT 645M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GTX 650M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GTX 1650 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2019 turing architecture - last old skool support pre Vulkan
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rtx 2050 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 ampere architecture best starting point for vulkan support
|-
| <!--Description-->rtx 2060 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rtx 4060 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
|}
====radeon.hidd====
Michel Shultz ''2D'' graphics driver (standard on most distributions but only for very old GPUs) and bearsofts updated 2013 around Icaros 1.3.1
3D is not implemented by AROS yet but could cover these AMD chipsets
<pre>
2014 SI AMD HD 7xxx
2016 GCN3rd AMD R5E R7E
2019 GCN5th AMD Vega 8
2022 RDNA1 AMD RX5500 desktop only
2023 RDNA2 AMD 680M 780M
2024 RDNA3 AMD 880M 890M
2025 RDNA3.5 AMD 8060S strix halo and AI
2027 RDNA4 AMD
</pre>
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! 2D
! 3D
! Analogue Output
! Digital Output
! Laptop LCD
! Comments
|-
| 7000 (r100)
| 0x1002
| 0x5159
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->{{Maybe|vga15 pin connection but not s-video}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.3
|-
| 7500 (rv200 but still r100 based)
| 0x1002
| 0x5157
| 0x
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->{{Yes|vga15}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.3
|-
| 8000 8500 (r200)
| 0x1002
| 0x514c (8500LE)
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.4
|-
| 9000 9100 9250 (r200)
| 0x1002
| 0x5964 (9000) 0x514d (9100)
| 0x0001
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->{{Maybe|VGA15 but not s-video}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.4
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| 9600 9800 (r300)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1
|-
| x300 x600 (r300)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1
|-
| x700, x800 ([http://en.wikipedia.org/wiki/Radeon_R600 r420])
| 0x
| 0x554d (R430 x800xl)
| 0x0
| <!--2D-->{{Yes|new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1 - x800 XL PCIE (problem with mouse-pointer, some part of the pointer is not transparent)
|-
| x1300 x1550 x1600 x1800 x1900 x1950 ([http://en.wikipedia.org/wiki/Radeon_R520 r520])
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes|new driver}}
| <!--3D-->{{no}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| HD2400 HD2600 HD2900 ([http://en.wikipedia.org/wiki/Radeon_R600 r600])
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|some features with new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 3.3 open CL 1.2 TeraScale architecture
|-
| HD3400 HD3600 HD3800 (r600)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|some features with new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->pci-e 2.0, openGL 3.3
|-
| HD4300 HD4500 HD4600 HD4700 HD4800 ([http://en.wikipedia.org/wiki/Radeon_R600 r700])
| 0x1002
| 0x
| 0x0
| <!--2D-->{{Maybe|but some later cards need 3D engine for faster and more flexible 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 3.3 - DDR3 - GDDR5 was one of AMD's aces for the 4800 series - 4670 liked -
|-
| HD6900 cayman series
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|some features with new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 3.3 open CL not mature (2014) -
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| HD5400 Series HD5430 HD5450 HD5470
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2010 openGL 3.3 openCL - GDDR3 -
|-
| HD5500 Series HD5550 HD5570 HD5600 Series HD5650 HD5670 HD5700 Series HD5750 HD5770
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 3.3 openCL - GDDR5
|-
| HD 5800 Series HD5850 HD5870 HD5900 Series HD5950 HD5970 - HD6xxx not NI chipset ([http://en.wikipedia.org/wiki/Evergreen_(GPU_family) r800 evergreen])
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 openGL 3.3 openCL - DDR5 pci-e 2.1 best avoided for all pci-e 1.0 mobos - Ati TeraScale2 architecture -
|-
| HD6450 [http://en.wikipedia.org/wiki/Northern_Islands_(GPU_family) Northern Islands chipset]
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> - DDR3 -
|-
| HD6600 Series HD6650 HD6570 HD6600 Series HD6650 HD6670
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2011 - DDR5 -
Radeon HD 8470 11 TeraScale 2
Radeon HD 8350 11 TeraScale 2
Radeon HD 7510 11 TeraScale 2
Radeon HD 6550D 11 TeraScale 2
Radeon HD 6530D 11 TeraScale 2
Radeon HD 6410D 11 TeraScale 2
Radeon HD 6370D 11 TeraScale 2
Radeon HD 6320 11 TeraScale 2
Radeon HD 6310 11 TeraScale 2
Radeon HD 6290 11 TeraScale 2
Radeon HD 6250 11 TeraScale 2
|-
| HD6800 Series HD6850 HD6870 HD6700 Series HD6790 to HD6990
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2011 - DDR5 - AMD TeraScale3 -
|-
| <!--Description-->HD7450-HD7670
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2012 OpenGL but not Vulkan
Radeon HD 7660D 11 TeraScale 3
Radeon HD 7560D 11 TeraScale 3
Radeon HD 7540D 11 TeraScale 3
Radeon HD 7480D 11 TeraScale 3
Radeon HD 6930 11 TeraScale 3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->HD7750 HD 7770 / R7 250X HD7850 HD7870 / R9 270X HD 7950 / R9 280 HD 7970 / R9 280X [http://en.wikipedia.org/wiki/Southern_Islands_(GPU_family) Southern Islands]
*AMD Radeon R7 250XE Cape Verde XT
*AMD Radeon R7 M465X Cape Verde
*AMD Radeon R9 255 Cape Verde PRX
*AMD Radeon HD 7750 Cape Verde PRO
*AMD Radeon R7 250E Cape Verde PRO
*AMD Radeon HD 8740 Cape Verde PRO
*AMD Radeon HD 7730 Cape Verde LE
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2012 pci-e 3.0 1st Gen GCN architecture -
|-
| <!--Description-->R5 430, FirePro W2100,
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2015 50W+ openGL openCL 1/3 speed of gtx750ti 1st gen gcn1
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->HD7790 [ Sea Islands ]
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 openGL 4.1 open CL - GCN2.0 Vulkan 1.0 introduced a Shader Engine (SE) comprising one geometry processor, up to 44 CUs (Hawaii chip), rasterizers, ROPs, and L1 cache and Graphics Command Processor for faster audio/video - suits Vulkan 1.1
|-
| <!--Description-->r5 240 240x (slow) R7 250 250x (faster) HD 7790 / R7 260 260X / R7 360 to R5 350 (fast) and last one R5 430 OEM Plus (slow again)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 50W+ openGL 4.x openCL 1.x Vulkan 1.0 GCN 1st gen -
|-
| <!--Description-->R9 290 / R9 390 R9 290X / R9 390X
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2014 openGL 4.x openCL 1.x 2nd Gen GCN Vulkan 1.1 architecture -
|-
| <!--Description-->R9 Fury Nano
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2015
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->r-200 series r8 275 285 295 375 [Volcanic Islands]
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 4.x openCL 1.x - GCN3 Vulkan 1.2
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Radeon™ RX 5700/5600/5500 Series and Radeon™ RX Vega Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 GCN 4 - OpenGL 4, Vulkan 1.3 -
|-
| <!--Description-->Radeon™ RX 400/500 Series like rx 580
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->Radeon™ Pro WX 9100, x200 Series and Radeon™ Pro W5700/W5500 Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Radeon™ RX 7900/7600 Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->Radeon™ RX 6900/6800/6700/6600/6500 Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|}
==== amd radeon mobile integrated ====
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|-
| <!--Description-->ATI RC410 [Radeon Xpress 200M]
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x5a62 0x5955 0x5974 (200m)
| <!--Revision-->0x00
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->
|-
| <!--Description-->Mobility Radeon 7500
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x4c57 (7500)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->
|-
| <!--Description-->Mobility Radeon 9000
| 0x1002
| 0x4966 (9000)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->
|-
| <!--Description-->Mobility Radeon 9500 9550 (rv360) 9600 (rv350)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon 9800 (rv420)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon X300 (RV370) X600 (RV380)
| 0x1002
| 0x (RV370) 0x5657 (RV380)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon X700 (RV410) X800 (RV423)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon X1200 (RS69M0)
| 0x1002
| 0x791f
| 0x0
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->X1200 IGP (RS690)
|-
| <!--Description-->Mobility Radeon X1300 X1350 X1400(rv515) X1600 (rv530) X1650 (RV535) X1800 (rv520) x1900 (rv570)
| 0x1002
| 0x71c7 (X1650)
| 0x009e
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon 2100
| 0x1002
| 0x796e (2100)
| 0x0
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{No|}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 2400 (rv610) HD2600 (rv630)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 3100 HD3200 HD3450 3470 (RS780MC RV620) 3670 (M86-XT RV635) HD3870 (M88-LXT RV670)
| 0x1002
| 0x9610 and 0x9612 (HD3200) 0x9614 (HD3300)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 4200 4250 (RV620)
| 0x1002
| 0x (HD4200) 0x9715 (HD4250)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 4330 4530 4550 (M92 RV710) 4650 (M96-XT RV730) 4670 RV730XT 4830 (M97 RV740) 4850 (M98 RV770)
| 0x1002
| 0x (HD4350) 0x9442 (RV770) 0x9490 (HD4670)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 530v (M92 RV710) HD 550v (M96 RV730)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->no support yet
|-
| <!--Description-->Mobility Radeon HD 5430 HD5650 (cedar Park LP)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->no support yet
|-
| <!--Description-->Radeon HD 6250 6290 6310 6320 6350M (Redwood Capilano PRO)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->no support yet
|-
| <!--Description-->AMD 7640G, 8450G, 8550G, 8650G Northern Islands
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 Last real support for old graphics standard before Vulkan takeover
|-
| <!--Description-->R5 M230 M240 M255 - R7 M260 M265 (Kaveri Crystal series with Mantle and HSA)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->2015 Maybe better with Vulkan
|-
| <!--Description-->R5E R7E
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->2016 bristol ridge GCN 3.0 IGP (Carrizo Mobile)
|-
| <!--Description-->AMD Vega 3, 6, 8, 11 iGP
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2018 raven ridge GCN 5th Gen
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->5500m 5600m 5800m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA1 NaviX1 Zen 2
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rx680m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA2 NaviX2 Zen 3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->phoenix apu 1103
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 RDNA3 NaviX3 zen 4
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
==== AMDGPU Vulkan desktop ====
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Kaveri 290 290X, 260 260X
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2015 AMDGPU Vulkan
|-
| <!--Description-->R9 285 / R9 380 R9 380X Fury / Fury X
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->opengl 4 opencl 1 3rd Gen GCN architecture
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX470 RX460 RX480 RX580 polaris10
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 opengl 4 opencl 2 4th Gen GCN architecture vulkan 1.3
|-
| <!--Description-->RX460 RX560D polaris11
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 opengl 4 opencl 2 4th Gen GCN architecture vulkan 1.3
|-
| <!--Description-->RX580 polaris20
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 opengl 4 opencl 2 4th Gen GCN architecture vulkan 1.3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX 5000 5500 Navi 1x
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RNDA 1
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX 6000 Navi 2x
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RNDA 2 Mesa 21.3 decode av1
|-
| <!--Description-->RX6000
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX 7000
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 RNDA 3 navi
|-
| <!--Description-->RX7000
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->RX9070 rx 9060 XT
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2025 rdna4 navi
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2026 udna (aka rdna5)
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
|}
==== AMDGPU Vulkan mobile ====
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->R5E R7E
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->2016 bristol ridge GCN 3.0 IGP (Carrizo Mobile)
|-
| <!--Description-->Vega iGP 3, 6, 8, 11
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2018 raven ridge - Graphics Core Next (GCN) 5th gen -
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->5500m 5600m 5800m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA1 NaviX1 Zen 2
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rx680m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA2 NaviX2 Zen 3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->phoenix apu 1103
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA3 NaviX3 zen 4
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
fyi if a notebooks with two graphic cards, the integrated Intel card (id 0x7d) for low power usage and a discrete Radeon card (id 0x56) which should be used for GPU-intensive applications. By default the Intel card is always used
[https://wiki.archlinux.org/title/ATI Gallium Radeon HD] is not ported yet but is [https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.9-AMDGPU-Stats really big] and complex so another solution may have to be [https://discuss.haiku-os.org/t/the-graphics-acceleration-can-of-worms/10515/5 found] like [https://discuss.haiku-os.org/t/vulkan-lavapipe-software-rendering-is-working-on-haiku/11363/10 vulkan] where support starts from very recent ISA GCN islands HD7000s cards only
*Vulkan
*Gallium
Vulkan software renderer allows to prepares the infrastructure for hardware rendering. Primary difference between software and hardware renderer is output to regular RAM vs GPU RAM, the rest is almost the same. It is possible to render to GPU RAM offscreen.
bare bones basics data flow
application,>>> api/opengl/vulkan>>>>, jit compiler, >>>>memory manger, >>>>gpu hardware
so you need to have a compiler that takes your api call/program/shaders/drawing commands and turns them into a program the gpu can render.
the vulkan to amd gpu compiler for shaders and textures is nearly os agnostic iirc as long as you have solid posix compliance
Unlike OpenGL, Vulkan does not depend on windowing system and it have driver add-on system with standardized API (Mesa also have OpenGL driver add-ons, but it have non-standard Mesa-specific API). OpenGL may need more work for windowing system related code at this point but developing Vulkan on real hardware is more strategic than developing OpenGL, since now Zink 3 running on Vulkan compensates for the lack of OpenGL support by giving performance similar to native accelerated OpenGL
RadeonGfx use client-server model with client-server thread pairs. For each client thread that calls 3D acceleration API, server side thread is created. If client thread terminates, server side thread also exit.
==Rough gfx comparison==
<pre>
Group 1
GeForce RTX 5090 5070 5060 5050
GeForce RTX 4090 4070 4060 4050
Group 2
GeForce RTX 2070
Radeon RX 7600
Quadro RTX 5000
Radeon PRO W6600
GeForce RTX 2060 12GB
Radeon PRO W7500
Quadro GP100
Radeon RX 6800S
GeForce RTX 3070 Laptop GPU
GeForce GTX 1080
GeForce RTX 3060 8GB
Quadro RTX 4000
Radeon Pro W5700
Radeon RX 6600
GeForce RTX 2080 (Mobile)
Radeon RX 7700S
Radeon RX 6700S
Radeon RX 6600S
Quadro RTX 5000 (Mobile)
GeForce GTX 1070 Ti
GeForce RTX 4050 Laptop GPU
Radeon Pro Vega 64X
Radeon RX 5700
Radeon RX Vega 64
GeForce RTX 2060
GeForce RTX 2070 Super with Max-Q Design
Group 3
Radeon RX 6600M
GeForce GTX 1070
Radeon RX 6650M
GeForce RTX 3060 Laptop GPU
Radeon RX Vega 56
Radeon RX 6700M
GeForce RTX 2080 with Max-Q Design
Radeon RX 6800M
GeForce GTX 980 Ti
Radeon R9 Fury
GeForce GTX 980
Quadro M5500
Radeon R9 390X
Radeon RX 580
Radeon RX 5500
Radeon RX 6550M
GeForce GTX 1660 Ti with Max-Q Design
GeForce GTX 780 Ti
GeForce GTX 970
Radeon R9 290X
Radeon RX 480
Radeon RX 5600M
Quadro RTX 3000 with Max-Q Design
Radeon R9 290X / 390X
Ryzen 5 4600HS with Radeon Graphics
Radeon R9 290
Radeon Pro 5500 XT
Radeon R9 M490 *
GeForce GTX 780
Radeon RX 6500M
Quadro M5500
GeForce GTX 1060 with Max-Q Design
Radeon RX 6500
Radeon RX 5300
Intel Arc A770M
GeForce GTX 1650 Ti
Radeon Pro 580X
Radeon RX 6400
GeForce RTX 2050
Ryzen 9 4900HS with Radeon Graphics
Radeon Ryzen 9 6900HS
GeForce GTX 980M
Quadro M5000M
Radeon RX 6300
GeForce GTX 1650 Ti with Max-Q Design
Radeon Pro 570
Ryzen 9 6900HS with Radeon Graphics
GeForce GTX 1050 Ti
Quadro M4000M
Radeon R9 280X 380X
GeForce GTX 1650 with Max-Q Design
GeForce MX570
Radeon R9 280X
Radeon R9 380
Radeon 780M
GeForce GTX 960
GeForce GTX 970M
Quadro M4000M *
GeForce GTX 680
Group 4
Radeon RX 6500M
Quadro M5500
Radeon Pro WX 7100
GeForce GTX 1060 with Max-Q Design
GeForce GTX 1650
Intel Arc A730M
Radeon HD 7970
Radeon R9 M395X
Radeon R9 M485X
Radeon R9 M480 *
Radeon R9 M295X
Radeon R9 M390X *
FirePro W7170M *
Radeon R9 M395
Radeon R7 370
Radeon RX 5500M
GeForce GTX 590
GeForce GTX 880M
GeForce GTX 950
Radeon R9 270X
GeForce GTX 660 Ti
GeForce GTX 760
GeForce GTX 780M
Quadro K5100M
GeForce GTX 680MX
Radeon HD 7870
GeForce GTX 965M
Quadro M3000M *
GeForce GTX 870M
Radeon R9 M290X
Radeon HD 8970M
Radeon Ryzen 7 7735U (680M), Radeon Ryzen 7 7735HS (680M 12C)
GeForce GTX 580
Radeon HD 6970
GeForce GTX 1050
GeForce GTX 680M
GeForce GTX 775M
GeForce GTX 1630
FirePro M6100
Radeon HD 7970M
Radeon R9 M390 *
GeForce GTX 750 Ti
Group 5
GeForce GTX 570
GeForce GTX 480
GeForce GTX 960M
Quadro M2000M *
Quadro K5000M
Quadro K4100M
GeForce GTX 770M
GeForce GTX 860M
GeForce GTX 675MX
GeForce GTX 950M
GeForce GTX 850M
Quadro M1000M
Radeon R9 M280X
Radeon HD 7950M *
GeForce GTX 560 Ti
Radeon HD 6870
GeForce GTX 470
GeForce GT 1030
GeForce MX330
Ryzen 5 PRO 5650GE with Radeon Graphics
Ryzen 7 5800HS
FirePro 3D V8800
GeForce MX250
Group 6
Radeon Pro WX 3200
Ryzen 7 PRO 5750G with Radeon Graphics
Radeon Ryzen 5 5600H
Ryzen 5 Pro 4650G with Radeon Graphics
Radeon Ryzen 7 5800U
Ryzen 7 7730U with Radeon Graphics
Radeon Ryzen 7 5825U
Radeon Pro WX 4150
Radeon Ryzen 5 PRO 4655G
Ryzen 5 4600G with Radeon Graphics
Radeon Ryzen 5 PRO 4655GE
GeForce GTX 485M
FirePro W6150M
Ryzen 7 5800U with Radeon Graphics
Ryzen 5 7530U with Radeon Graphics
Ryzen 7 4800U with Radeon Graphics
Radeon R9 M470
Ryzen 3 PRO 5350G with Radeon Graphics
Radeon RX Vega Ryzen 3 5300U
Ryzen 7 5825U with Radeon Graphics
Ryzen 5 PRO 4400G with Radeon Graphics
Radeon Ryzen 7 PRO 4750GE
Radeon Ryzen 7 4800U
FirePro V7900
Radeon HD 5970
Radeon Ryzen 7 7700X 8-Core
Radeon Ryzen 5 PRO 5650G
Radeon Ryzen 5 4400G
Radeon Ryzen 5 PRO 5650GE
Radeon RX 550X
FirePro V8800
Radeon RX Vega Ryzen 5 5500U
GeForce MX150
Quadro K3100M
Ryzen 7 PRO 5850U with Radeon Graphics
Radeon HD 6970M
Radeon R7 250X
Intel HD 5600
Ryzen 3 4300GE with Radeon Graphics
GeForce GTX 460
Ryzen 7 5700U with Radeon Graphics
Radeon Ryzen 5 7530U
Quadro K620
Ryzen 3 PRO 5350GE with Radeon Graphics
Intel Iris Pro P580
Intel UHD Graphics P630
Ryzen 5 4600H with Radeon Graphics
Ryzen 5 PRO 7530U with Radeon Graphics
Radeon HD 5870
Radeon HD 6870
Ryzen 7 4700G with Radeon Graphics
Ryzen 5 5600U with Radeon Graphics
Radeon HD 7770
Ryzen 3 Pro 4350G with Radeon Graphics
Radeon Ryzen 5 5625U
GeForce GTX 745
Radeon Ryzen 7 4850U Mobile
Radeon Ryzen 3 PRO 7330U
Quadro M600M
Radeon Ryzen 5 5500U
Ryzen 5 5560U with Radeon Graphics
Ryzen 7 4800H with Radeon Graphics
Group 7
GeForce 945M
Ryzen 5 PRO 4650GE with Radeon Graphics
FirePro M5100
Radeon Ryzen 5 5600U
Radeon Ryzen 5 PRO 4500U
GeForce GTX 580M
Ryzen 7 PRO 5875U with Radeon Graphics
Ryzen 3 5300GE with Radeon Graphics
Radeon R9 M385
Quadro 5000M
Radeon Ryzen 7 4700U
Ryzen 5 PRO 5650U with Radeon Graphics
Radeon Ryzen 7 PRO 4750U
Ryzen 7 4700U with Radeon Graphics
Ryzen 7 PRO 4750U with Radeon Graphics
FirePro V7800
Radeon R9 350
Ryzen 3 4300G with Radeon Graphics
Radeon Vega 11 Ryzen 5 PRO 3350G
Radeon Ryzen 5 5560U
GeForce GTX 460 SE
Radeon Pro W5500M
Radeon Vega 11 Ryzen 5 PRO 3400G
Ryzen 5 5500U with Radeon Graphics
Ryzen 5 PRO 4500U with Radeon Graphics
GeForce GT 645
GeForce GTX 765M
Radeon R9 M385X
Ryzen 5 5625U with Radeon Graphics
Ryzen 3 PRO 7330U with Radeon Graphics
Radeon HD 5850
Radeon Vega 11 Ryzen 5 PRO 2400G
Intel Iris Pro 580
Radeon HD 6850
Intel Iris Xe MAX
Radeon Ryzen 7 PRO 5875U
Radeon Ryzen 5 7600 6-Core
GeForce GTX 470M
Ryzen 3 5300G with Radeon Graphics
GeForce GTX 670MX
Radeon RX 640
Qualcomm Adreno Gen 3
Radeon R7 450
GeForce GTX 675M
Radeon Pro WX 4130
Intel Iris Xe MAX 100
Quadro 5000
Radeon RX 570X
Radeon HD 7700-serie
Ryzen 5 4600U with Radeon Graphics
Ryzen 3 PRO 4350GE with Radeon Graphics
Radeon Vega 8
Group 8
GeForce MX230
GeForce GTX 765M
Quadro K4000M
Iris Pro Graphics P580 *
Iris Pro Graphics 580 *
GeForce GTX 645
Quadro M520
GeForce GTX 570M
GeForce MX130
Radeon RX 540
Radeon Ryzen 5 PRO 5675U
Intel UHD Graphics 770
Radeon RX Vega 11 Ryzen 7 3750H
Radeon Vega 11 Ryzen 5 PRO 3400GE
Radeon HD 5850
GeForce GTX 675M
GeForce GTX 580M
Radeon HD 6990M
Radeon R9 M385X *
Radeon R9 M470X *
Radeon R9 M470 *
Radeon R9 M385 *
Radeon R9 M380 *
Radeon R9 M370X
Radeon R9 M275
Radeon HD 7770
GeForce GTX 485M
GeForce GTX 460 768MB
Radeon HD 6790
GeForce GTX 285M SLI
Quadro K3100M
FirePro W5170M *
GeForce GTX 670MX
Quadro 5010M
GeForce GTX 760M
GeForce GTX 670M
Group 9
GeForce 940MX *
Maxwell GPU (940M, GDDR5)
FirePro M8900
Radeon HD 6970M
Radeon R9 M270
Radeon HD 8870M
Radeon HD 7870M
Quadro K3000M
GeForce GTX 570M
FirePro M6000
FirePro M5100
Quadro K2100M
Radeon HD 5770
GeForce GTX 550 Ti
GeForce GTX 280M SLI
Radeon HD 6950M
Radeon R7 250
GeForce GT 755M
GeForce GTX 660M
GeForce 845M
Radeon HD 8850M
Radeon R9 M365X
Radeon R9 M265X
Ryzen 5 PRO 4400GE with Radeon Graphics
FirePro W5130M *
Radeon Vega 8 Ryzen 5 3500U
Radeon HD 7850M
Radeon HD 8790M
FirePro W4170M
FirePro W4190M
FirePro W4100
Radeon Vega 6 Ryzen 3 3300U
Quadro 4000M
GeForce GTX 470M
GeForce GTX 480M
GeForce GT 750M
Iris Pro Graphics 6200
Quadro K1100M
GeForce 940M
Radeon R9 M375
GeForce 930MX *
Radeon R7 M380 *
Radeon R7 M370
Quadro M600M *
GeForce GT 650M
Quadro K620M
GeForce 840M
Radeon R7 M275DX
GeForce GT 745M
Radeon HD 7770M
GeForce GTX 560M
Radeon R7
Iris Pro Graphics 5200
GeForce GT 740M
GeForce 930M
Radeon HD 4850
Group 10
Iris Graphics 550 *
GeForce 830M
Iris Graphics 540
Quadro M500M *
Quadro K2000M
GeForce GTS 450
GeForce GTX 260M SLI
GeForce GT 735M
Mobility Radeon HD 5870
GeForce 825M
Quadro 5000M
FirePro M4000
FirePro M7820
Radeon HD 6870M
GeForce 9800M GTX SLI
Radeon HD 8830M *
Radeon HD 8770M
Radeon R7 M260X
GeForce GTX 460M
GeForce 920MX *
GeForce GT 730M
Radeon HD 7750M
GeForce GT 645M *
FirePro M4100
Radeon HD 8750M
Radeon R6 A10-9600P 4C+6G
Quadro 3000M
Radeon R7 M270
Radeon R7 M265
Quadro FX 3800M
GeForce GTX 285M
Mobility Radeon HD 4870
GeForce GT 640M
Radeon R7 (Kaveri)
Radeon R8 M365DX
Radeon R7 M460 *
Radeon HD 7730M
Radeon R7 M360
GeForce GTX 280M
Radeon HD 8690M
Quadro FX 3700M
Radeon R7 M340
GeForce 920M
Radeon R6 M340DX
HD Graphics 530
HD Graphics P530
Tegra X1 Maxwell GPU
Radeon R7 M260
Radeon R6
Group 11
Mobility Radeon HD 4860
FirePro M7740
Mobility Radeon HD 4850
GeForce GTX 260M
GeForce 9800M GTX
Quadro FX 2800M
Radeon HD 8670D
Radeon HD 7690M XT
FirePro M5950
GeForce GT 640M LE
Radeon R6 (Kaveri)
Radeon HD 8650M *
Radeon HD 8730M
Radeon HD 6770M
GeForce GT 635M
GeForce GT 555M
Radeon R7 A10 PRO-7800B
Radeon HD 5670
Mobility Radeon HD 5850
Radeon HD 6850M
Quadro 2000M
GeForce 9800M GT
GeForce 8800M GTX
Quadro FX 3600M
GeForce GT 445M
GeForce GTS 360M
Group 12
GeForce GT 240
Radeon R7 PRO A10-9700
Radeon HD 7690M
HD Graphics 5600
Radeon HD 8570D
Radeon HD 8670M
Radeon R6 M255DX
Radeon HD 7660D
Radeon HD 6750M
Quadro K1000M
GeForce GT 550M
Radeon HD 8590M *
GeForce GTS 260M
GeForce GTS 160M
GeForce 9800M GTS
GeForce GT 430
Radeon HD 6830M
Mobility Radeon HD 5830
Radeon HD 6730M *
GeForce 9800M GS
Mobility Radeon HD 4830
Mobility Radeon HD 5770
Radeon HD 6570M
Radeon HD 8650G
Radeon HD 7670M
GeForce GT 630M
Radeon HD 7560D
GeForce GTS 150M *
Radeon R5 M335
Radeon R5 M430 *
Radeon R5 M330
Radeon R5 M255
Radeon Vega 3
Quadro 1000M
GeForce 820M
FirePro W2100
HD Graphics 520 620
Iris Graphics 6100
GeForce GT 720M
GeForce 8800M GTS
Radeon R5 M240
Radeon R5 M320 *
Radeon R5 M230
Radeon R5 M315 *
Mobility Radeon HD 5750 *
Radeon HD 8570M
Radeon R7 PRO A10-8850B
HD Graphics 6000
Quadro K610M
Radeon HD 8550M
Iris Graphics 5100
GeForce GT 540M
Mali-T880 MP12 *
Radeon HD 8610G *
Radeon HD 6650M
HD Graphics 4600
Mobility Radeon HD 5730
HD Graphics 5500
Radeon R5 (Carrizo) *
Radeon R5 (Kaveri)
FirePro M5800
NVS 5400M
GeForce 710M
Radeon HD 7660G
GeForce GT 435M
HD Graphics 5000
Quadro K510M *
Radeon HD 5570
Radeon HD 6550M
Radeon HD 7590M *
GeForce GTS 350M
GeForce GTS 250M
Radeon HD 6630M
Radeon HD 7650M
FirePro M2000
Radeon HD 7570M
Radeon HD 7630M
Quadro FX 1800M
Mobility Radeon HD 5650
Radeon HD 8510G *
Radeon HD 6530M
Radeon HD 8550G
Quadro K500M *
GeForce GT 625M *
GeForce GT 620M
GeForce GT 525M
Radeon HD 6550D *
Radeon HD 7610M
Radeon HD 7620G
Radeon HD 8470D
Radeon HD 7640G
Adreno 530
GeForce ULP K1 (Tegra K1 Kepler GPU)
HD Graphics 4400
HD Graphics 510 515 *
NVS 5200M
Mobility Radeon HD 565v
Radeon HD 7550M
Mobility Radeon HD 4670
GeForce GT 425M
GeForce 9700M GTS
Radeon HD 6645G2 *
Quadro FX 2700M
GeForce GT 335M
Radeon HD 7600G
Mobility Radeon HD 3870
Mobility Radeon HD 4650
GeForce GT 220
GeForce GT 420M
Radeon HD 7530M *
Mobility Radeon HD 3850
GeForce GT 330M
Quadro FX 880M
Quadro NVS 5100M
GeForce GT 240M
Radeon HD 7490M *
HD Graphics 5300
Radeon HD 7510M *
GeForce Go 7950 GTX
Quadro FX 3500M
GeForce 8700M GT SLI
GeForce 9700M GT
GeForce GT 230M
Mobility Radeon HD 550v
Radeon HD 7480D
HD Graphics 4000
Mali-T760 MP8
Radeon HD 6620G
HD Graphics (Broadwell) *
Adreno 430
Radeon R5 (Beema/Carrizo-L)
Radeon R4 (Beema) (Kaveri)
HD Graphics (Skylake) *
Radeon HD 6450 GDDR5
Radeon HD 7500G
Radeon HD 8450G
Radeon HD 7470M
Radeon HD 6490M
Radeon HD 8400
Mali-T880 MP4
GeForce GT 520MX
Radeon HD 7520G
GeForce GT 325M
GeForce Go 7800 GTX SLI
GeForce 8600M GT SLI
GeForce Go 7900 GS SLI
GeForce GT 130M
NVS 4200M
GeForce Go 7900 GTX
Quadro FX 2500M
Radeon HD 8350G
Radeon HD 8330
GeForce 9650M GS
GeForce 9650M GT
Radeon R3 (Mullins/Beema)
GeForce 8700M GT
Quadro FX 1700M
Quadro FX 1600M
GeForce Go 7800 GTX
GeForce Go 7900 GS
Quadro NVS 320M
Quadro FX 1500M
GeForce 9600M GT
GeForce GT 220M
Quadro FX 770M
GeForce GT 120M
Radeon HD 7450M
GeForce 610M
GeForce 705M
Mali-T760 MP6
Radeon HD 6470M
FirePro M3900 *
GeForce GT 520M
Radeon HD 7420G
Mobility Radeon HD 3670
Mobility FireGL V5725
PowerVR GX6450
Adreno 420
HD Graphics (Haswell)
Radeon HD 6520G
Radeon HD 8310G *
GeForce 320M
GeForce GT 320M
Mobility Radeon HD 2600 XT
Mobility Radeon X1900
Mobility Radeon X1800XT
Mobility Radeon X1800
GeForce Go 6800 Ultra
GeForce Go 7800
GeForce 9600M GS
GeForce 9500M GS
Radeon HD 7400G
Radeon HD 6480G *
Mobility Radeon HD 2700
GeForce GT 415M
GeForce 410M
Radeon HD 7370M
Adreno 418
HD Graphics (Cherry Trail)
Radeon HD 6370M
Radeon HD 8280
Mobility Radeon HD 5470
Radeon HD 6450M
Radeon HD 7430M *
Mobility Radeon HD 3650
Mobility FireGL V5700
Mobility Radeon HD 5145
Mobility Radeon HD 545v
Radeon R6 (Mullins) *
Radeon HD 8240
Radeon HD 8250
Mobility Radeon HD 4570
Quadro FX 570M
Mobility Radeon HD 5450 *
Radeon R2 (Mullins/Beema) *
GeForce 8600M GT
Mobility Radeon HD 2600
HD Graphics 3000
Quadro FX 380M
GeForce 310M
GeForce G210M
NVS 3100M
GeForce 405M
GeForce 315M
GeForce Go 7600 GT
GeForce 9500M G
GeForce 8600M GS
NVS 2100M
GeForce Go 7700
GeForce Go 6800
Quadro FX Go 1400
Mobility Radeon X800XT
Radeon HD 6430M *
Radeon HD 6380G *
Mobility Radeon HD 5430
Radeon HD 8210
Mobility Radeon HD 540v
Mobility Radeon HD 4550
HD Graphics 2500
HD Graphics (Ivy Bridge)
Quadro NVS 310
Radeon HD 7350M *
Radeon HD 6350M *
Mobility Radeon HD 4530
Mobility Radeon HD 4350
Radeon HD 4350
GeForce 305M
Mobility Radeon X1700
Mobility FireGL V5250
Mobility Radeon X2500
GeForce Go 7600
Quadro NVS 300M
Mobility Radeon X800
Mobility Radeon X1600
Mobility FireGL V5200
Mobility Radeon 9800
GeForce Go 6600
Mobility Radeon X1450
Mobility Radeon X700
Mobility FireGL V5000
GeForce G 110M
Quadro NVS 295
Radeon HD 6330M *
Mobility Radeon HD 4330
GeForce 8400M GT
Quadro NVS 140M
HD Graphics 2000
GeForce 9500M GE *
GeForce 9400M (G) / ION (LE)
HD Graphics (Sandy Bridge) *
Adreno 330
PowerVR G6430
PowerVR GX6250
PowerVR G6400
HD Graphics (Bay Trail)
Mali-T628 MP6
Mali-T760 MP4
Chrome9HD *
Radeon HD 7340
Radeon HD 6320 *
Radeon HD 7310
Radeon HD 6310 *
Radeon HD 8180
Mobility Radeon HD 3470
GeForce 9300M G
ION 2 *
GeForce 9300M GS
Quadro FX 370M
Quadro NVS 160M
GeForce 9200M GS
Mobility Radeon HD 3450
Mobility Radeon HD 3430
Mobility Radeon HD 3410
Mobility Radeon HD 2400 XT
Radeon HD 4270
Radeon HD 4250
Radeon HD 7290 *
Radeon HD 6290 *
Radeon HD 4200
Graphics Media Accelerator (GMA) HD Graphics
Radeon HD 6250
Quadro NVS 150M
Quadro FX 360M
Mobility Radeon X1350
Mobility Radeon X1400
GeForce 9100M G
GeForce 8400M GS
Quadro NVS 135M
Mobility Radeon HD 2400
Radeon HD 3200
Radeon HD 4225 *
Radeon HD 4100 *
SGX554MP4
Mali-T628 MP4
Mobility Radeon HD 3400 *
Radeon HD 3100
GeForce 8400M G
Mali-T860 MP2
Quadro NVS 130M
GeForce 8200M G
Graphics Media Accelerator (GMA) 4700MHD
Graphics Media Accelerator (GMA) 4500MHD
Graphics Media Accelerator (GMA) 4500M
Mali-T604 MP4
GeForce Go 7400
Quadro FX 350M
Quadro NVS 120M
GeForce Go 7300
GeForce Tegra 4 *
PowerVR G6200
Adreno 405 *
Quadro NVS 110M
Mobility Radeon X600
Mobility FireGL V3200
Mobility FireGL V3100
Mobility Radeon HD X2300
Mobility Radeon 9700
Mobility FireGL T2e
Mobility Radeon X1300
GeForce4 4200 Go
Mobility Radeon 9600
Mobility FireGL T2
Mobility Radeon 9550
GeForce Go 7200
GeForce Go 6400
Mobility Radeon X300
GeForce Go 6250
GeForce Go 6200
GeForce FX Go 5700
Quadro FX Go 1000
GeForce FX Go 5600 / 5650
Radeon Xpress X1270
Radeon Xpress X1250
Radeon Xpress X1200
Graphics Media Accelerator (GMA) X3100
Mali-T624
Adreno 320 *
Mali-T760 MP2
Mali-T720 MP4
Mali-450 MP4
Graphics Media Accelerator (GMA) 3650 *
GeForce 7190M *
GeForce 7150M
Radeon Xpress 1150
GeForce Go 6150
GeForce Go 6100
GeForce 7000M
Graphics Media Accelerator (GMA) 3600 *
Mobility Radeon 9200
Mobility FireGL 9000
GeForce FX Go 5200
Mobility Radeon 9000
GeForce 4 488 Go
GeForce 4 460 Go
GeForce 4 440 Go
GeForce 4 420 Go
Graphics Media Accelerator (GMA) 3150
Graphics Media Accelerator (GMA) 950
SGX545 SGX544MP2 SGX543MP2 *
Mali-T720 MP2
Mali-T720
Adreno 302 304 305 306
Mobility Radeon 7500
Mobility FireGL 7800
Graphics Media Accelerator (GMA) 900
Radeon Xpress 200M
Radeon Xpress 1100
Mirage 3+ 672MX
Mirage 3 671MX
Mali-400 MP4 *
GeForce ULP (Tegra 3) *
VideoCore-IV *
Adreno 220 225*
Vivante GC1000+ Dual-Core
Mali-400 MP2 *
GeForce ULP (Tegra 2) *
Graphics Media Accelerator (GMA) 600 *
SGX540 *
Graphics Media Accelerator (GMA) 500
Adreno 205 *
Adreno 203 *
GC800 *
SGX535
SGX531
SGX530
Adreno 200 *
Mali-200 *
GeForce 3 Go *
GeForce 2 Go 200 / 100
Mobility Radeon 9100 IGP
Mobility Radeon 9000 IGP
Mobility Radeon M7
Mobility Radeon M6
Chrome9 HC
Extreme Graphics 2
Mobility Radeon 7000 IGP
Radeon IGP 340M
Radeon IGP 320M
S3G UniChrome Pro II
S3G UniChrome Pro
Castle Rock
Mirage 2 M760
Mirage M661FX
S3 Graphics ProSavage8
Mobility 128 M3
SM502 *
</pre>
Kernel-space drivers like '''radeon''' (older AMD driver for older GPUs), '''amdgpu''' (newer driver for newer GPUs, allows using a few new features), i915, nouveau and a few others. They are what handles the gory details of talking to the GPU itself (writing to proper registers, handling its memory directly, configuring outputs, and so on). Unfortunately most of what they're exposing can be only consumed by a single user of that GPU, which is why we need...
DRM and DRI (Direct Rendering Manager/Infrastructure) controls access to the GPUs, provides interfaces for talking to the GPU concurrently by multiple apps at once (without them breaking each other) and lets the system perform the most basic tasks like setting proper resolution and such if no userspace apps understand how to talk to the GPU exposed. DRI and DRM expose the GPU interfaces mostly as-is, not in a "vendor-neutral" portable way - if you don't have an application developed specifically for a GPU you have, it won't work.
"let's create a vendor-neutral interface for graphics so that apps can ignore the GPU-specific bits and get right to the drawing!" - which is what OpenGL is. User-space drivers implement the OpenGL specification and expose it as an OpenGL library to apps (like games, browsers, etc) instead of the GPU. Mesa is the most popular collection of open-source user-space drivers and contains a few user-space drivers for different GPU families: '''radeonsi''' for most modern AMD GPUs (and '''r600g''', r300g and others for older ones), '''i915/i965''' for old/new Intel GPUs and '''nouveau''' for Nvidia GPUs.
There's also Gallium, which is a bunch of utilities and common code shared among these drivers - if certain things can be done once and work everywhere, they'll land in Gallium and benefit all the drivers. Most Mesa drivers use Gallium (radeonsi, nouveau, software renderers), some don't (intel after gma950).
Displaying 2D windows supports device-specific 2D drivers as well, but nowadays most of these are no longer needed as the modesetting can handle most hardware on its own. As the DRM/DRI got some additional interfaces for what used to be hardware-specific (setting resolutions, refresh rates, etc) and software requiring accelerated 2D drawing was optimized OpenGL-based renderers, dedicated 2D acceleration is slowly going away. Since around 2012, the 3D part of the graphics card deals with 2D operations.
Modern GPUs can also decode video!? There's VDPAU (NVIDIA & AMD GPUs) and VA-API (AMD & Intel GPUs) that can also talk to the GPU exposed via DRM/DRI and issue proper commands to decode/encode a given video stream. Those drivers are GPU-specific too.
So let's say you have some example GPUs, here's how example stacks could look like:
* AMD Radeon HD8750: amdgpu -> DRM/DRI -> Mesa (radeonsi)
* AMD Radeon HD4850: radeon kernel driver -> DRM/DRI -> Mesa (r600g) -> games/apps/etc.
* NVIDIA GeForce 460: nouveau kernel driver -> DRM/DRI -> Mesa (nouveau) -> games/apps.
* Intel GMA950: i915 kernel driver -> DRM/DRI -> Mesa (i945) -> games/apps.
{| class="wikitable sortable" width="90%"
! width="15%" | Description
! width="15%" | Analog Output
! width="15%" | Digital Output
! width="15%" | Laptop LCD
! width=30%" | Comments
|-
| <!--Description-->Fudomi GC888A
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->1080p 100in throw projector
|-
| <!--Description-->Vamvo VF320 (720P)
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->720p 90in
|-
| <!--Description-->Happrun H1
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->1080p 90in
|-
| <!--Description-->Umbolite Magcubic HIPPUS HY320 Mini
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->720p 100in
|-
| <!--Description-->Zentality A10 Plus
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->720p 110in
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->nexigo nova mini
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->nebula mars 3
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->epson lifestudio flex plus portable projector
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->dangbei freedo
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->benq gv50
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
Unless your computer uses a Firewire chipset manufactured by Texas Instruments, FireWire interfaces are likely to act buggy.
AROS is unlikely to ever support FireWire.
Bluetooth is similarly unlikely to be ever supported due to huge cost to be certified.
No, x86 PCMCIA card.resource at the moment. Writing card.resource would be a similar amount of work to writing a typical driver. However, it might be complicated by having to support a variety of PCMCIA-controller chipsets like TI PCI1225, PCI1410, PCI1420, 1450, PCIxx12 and O2, etc. m68k card.resource does not really have many higher level functions, most functions are really simple or poke Gayle registers directly. only exception is CopyTuple(). Amiga card.resource has one significant flaw: it's single-unit. would need card.resource and pccard.library. There was talk in the past of designing a new API for PCMCIA because card.resource only supports one slot, but since most modern laptops only have one slot anyway, I think it might be worthwhile to implement card.resource as-is (at least as a first step). pccard.library would be trivial to port. So, a new API is needed.
fq9udp1yqibcq7j2a5hyd2sc9rdvuqj
4640157
4640148
2026-06-13T15:43:36Z
Jeff1138
301139
4640157
wikitext
text/x-wiki
Google translation into [http://translate.google.com/translate?hl=en&sl=auto&tl=de&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support German], [http://translate.google.com/translate?hl=en&sl=auto&tl=fr&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support French], [http://translate.google.com/translate?hl=en&sl=auto&tl=nl&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Dutch], [http://translate.google.com/translate?hl=en&sl=auto&tl=it&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Italian], [http://translate.google.com/translate?hl=en&sl=auto&tl=es&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Spanish], [http://translate.google.com/translate?hl=en&sl=auto&tl=hi&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Hindi],
[http://translate.google.com/translate?hl=en&sl=auto&tl=zh-CN&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Chinese Simplified],
[http://translate.google.com/translate?hl=en&sl=auto&tl=pl&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Polish],
[http://translate.google.com/translate?hl=en&sl=auto&tl=ru&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Russian],
{{ArosNav}}
[[#Audio Chipsets]]
[[#Graphic GFX Chipsets]]
[[#Rough gfx comparison]]
[[#]]
==x86 Native Environment==
AROS should run on almost any i386 PC hardware so long as the CPU is newer than an i486, and has a "Floating Point Unit (FPU)". Ideally around 700Mhz and above with at least 256MB of memory is recommended for desktops and around 1GHz and at least 256MB for laptops/notebooks/netbooks. For web browsing, etc above 1GB is usually needed and offers the option to run web browsers, media players and other hard disk heavy usage from RAM: disk.
Motherboards supported
* Most Intel mobos are supported (Skt 775 is ok but newer is better) - additional pci / pci-e cards may be needed for networking, audio, etc
* AMD based socket 939 am2 am2+ am3+, fusion and am4 ryzen based systems work but additional pci / pci-e cards may be needed
Supported graphics cards (gfx)
* Nvidia 2D and 3D 2005-2017.
64bit AROS Nouveau covers '''2D''' 8xxxgs and higher to GTX 900s and '''3D''' from .
32bit AROS supports '''2D''' from TNT through to fermi gtx5xx and '''3D''' acceleration fx5xxx to gtx4xx.
* Intel GMA 2D and 3D 2006-2009.
'''2D''' for many old netbooks and motherboards. '''3D''' for many early netbooks and motherboards
* AMD/ATI 2D only and '''no 3D'''. 1999-2005.
Desktop ie external monitor support only (no laptop internal support) for very early Radeon 7000 through to x600. Experimental 2D version for up to HD3xxx came later
* VESA 2D fallback modes for all graphic cards (GPUs) and with [http://www.youtube.com/watch?v=HKCHZFYj9Kk screen dragging].
It's worth noting however that support isn't guaranteed. Nor will potential power of a card reflect its performance under AROS.
Sound wise there are
* HDaudio support for onboard intel and AMD netbooks, ultrabooks, notebooks and motherboards (2005 to 2020)
* some AC97 codec support for very old motherboards and laptops (ie pre 2004)
* PCI and some PCI-E C-Media CMI8738 for desktop plugin cards
* PCI Creative Soundblaster EMU10K1 cards [http://amigaworld.net/modules/news/article.php?storyid=2512 SBLive]
* PCI semi professional some early VIA Envy24 desktop sound cards
* PCI Sound Blaster 128 aka SB16
Supported [http://en.wikibooks.org/wiki/Aros/Platforms/x86_Network_support network] which could be desktop, laptop, etc
* PCI-E Realtek rtl8169 which also includes the rtl8111 and rtl8110
* PCI Realtek rtl8139 and includes rtl8101 and rtl8100
* PCI intel pro100
* Broadcom 44xx 10/100 integrated in laptops around 2005
* VIA 10/100
* 3com Etherlink 10/100
* Realtek rtl8029 10mbit
Wireless wifi
* atheros 5000 wireless
*realtek 8187 usb
It is very hard to recommend a completely supported motherboard because as soon as newer motherboards arrive so their features change subtly, often introducing non supported parts like ethernet and audio. It is a moving target.
* mini-itx motherboard will only get you 1 pci or pci-e slot
* micro mATX or uATX will have more, typically 2 pci-e or pci slots which helps if any onboard features are not supported.
* full atx will have more slots available
'''N.B''' It is frustrating when a piece of hardware is not supported. Hardware documentation can run to over 100 pages and a lot of hardware do not have any public documentation anyway. Chips from different manufacturers for sound, graphics, SATA, etc. vary just as much, unless they follow a standard such as [https://github.com/acidanthera/AppleALC/wiki/Supported-codecs HDAudio codecs], AHCI etc.
Coding drivers is a far cry from Hello World programs or even a port of existing software. If you do actually want to try then get a hold of documentation on the relevant hardware and start there. Alternatively you could try to find some '''BSD''', MIT or MPL licence drivers as a point of reference. Please , do not think you can just adapt strings in a driver for different strings, it does not work that way. You will '''need''' to start from scratch for each new bit of hardware. Device driver programming require '''embedded''' skills, like manipulation of bits within registers, good debugging skills, dealing with interrupts, lots of patience, etc.
The following specific chipsets and drivers are also available - use Tools/PCITool to confirm Vendor and Product IDs - Please let us know any mistakes or any information to be added, to this General Chat list on [https://arosworld.org/ AROS World]
: Brief Timeline
: 2000-12-06 HIDD first mouse.hidd completed ([http://msaros.blogspot.com/ Michal Schulz])
: 2001-03-31 BOOT first boot from floppy disk with IDE device
: 2001-10-30 BOOT first cd bootable version
: 2002-01-27 HIDD first pci.hidd added (Michal Schulz)
: 2002-04-13 BOOT software HDToolBox added ()
: 2003-04-03 HIDD vesa2.hidd graphic modes added ()
: 2004-03-08 HIDD new pci and ata (pata) devices worked on (Michal Schulz)
: 2004-03-17 HIDD nVidia 2D driver appears (Michal Schulz)
: 2005-01-05 AHI AHI v6 audio system ported (Martin Blom)
: 2005-01-06 AHI SBLive SoundBlaster Live driver ported (Georg Steger)
: 2005-02-04 AHI AC97 playback only driver added (Michal Schulz)
: 2005-06-27 NIC amiTCP stack ported with 3com, NE2000, prism2 drivers (Neil Cafferkey)
: 2005-08-25 NIC nForce2 support added (Michal Schulz)
: 2005-12-24 NIC Intel Pro100 network driver added (Neil Cafferkey)
: 2006-03-25 HIDD ATI radeon 2D driver added (Michal Schulz)
: 2007-03-06 HIDD vesa 1.0 video driver added (Pavel Fedin)
: 2007-03-08 HIDD dospackets and FAT filesystem (Rob Norris)
: 2007-03-21 HIDD usb initial commit (Michal Schulz)
: 2007-10-01 BOOT Installer added (Neil Cafferkey)
: 2007-11-29 PORT 64bit x86 added (Michal Schulz)
: 2008-04-12 BOOT GRUB2 added (Alain Greppin and Nick Andrews)
: 2008-08-26 NIC RTL8139 added ([http://kalamatee.blogspot.com/ Nick Andrews])
: 2008-10-22 PORT to SAM440ep (ppc) (Michal Schulz)
: 2009-02-25 PORT to efika (ppc) (Michal Schulz)
: 2009-05-18 HIDD poseidon usb2.0 stack ported to AROS (Chris Hodges)
: 2009-11-18 NIC RTL8169 network driver arrived (Nick Andrews and [http://pagesperso-orange.fr/franck.charlet/oldnews.html Franck Charlet])
: 2009-12-23 AHI HDAudio based Atom CPU and netbook audio driver arrived (Davy Wentzler)
: 2010-03-09 BOOT USB pendrive stick booting available (Neil Cafferkey)
: 2010-05-26 HIDD Intel GMA900 2D graphics card support (Michal Schulz)
: 2010-09-03 NIC Wireless PCI based NIC arrived (Neil Cafferkey)
: 2011-04-30 HIDD Nvidia 2D and 3D nouveau graphics card support (Deadwood)
: 2011-08-30 HIDD Radeon 2D enhanced AMD driver arrives (Bearsoft)
: 2011-09-17 NIC Wireless USB realtek arrives (Neil Cafferkey)
: 2011-12-09 HIDD Intel 945G 3D Gallium graphics support (Sami)
: 2013-02-25 AHI AC97 VIA 686 audio support (Davy Wentzler and Neil Cafferkey)
: 2013-03-31 PORT early Raspberry PI native support (Nik Andrews)
: 2014-01-16 AHI Envy24 audio chipset support (Davy Wentzler and Neil Cafferkey)
: 2017-02-17 PORT Symmetric MultiProcessing smp added for x86 64bit (Michal Schulz)
: 2018-10-20 PORT Big Endian ARM
: 2021-11-26 NIC Broadcom 44xx ethernet (Neil Cafferkey)
: 2023-01-12 NIC Nvidia MCP61 ethernet (Neil Cafferkey)
: 2025-11 HIDD xHCI USB3 and isoc (Nik Andrews)
[[#top|...to the top]]
===Audio Chipsets===
'''If sound beeps in AHI prefs after Music set then some support is there. Select more than one channel for multiple audio streams, set frequency up to 44 kHz or higher and set the volume if not already set. Ensure you set the music unit 0 to 3 which allows the extra features of the audio card like microphone, line-out, etc).'''
====1996-2000 sb128.audio aka SB16 PCI====
*2021 5.27
as per CREATIVE's website, the model number is the first two digits on the front and first two digits on the back. my card says CT4810 and 161TK110B 995; this translates to CT4816 as the model.
The original AudioPCI 3000 card with the ES1370 had a master clock crystal for 44.1 kHz (22.5792 MHz), used an AKM codec (AK4531, non-AC97) and had 4 channel output; Creative later modified the design with a crystal for 48 kHz (24.576 MHz) and Sigmatel AC97 codec (a CT4700 SB128 with a CT5507 chip, AK4531, 22.5792 MHz crystal and TDA7360 speaker power amp). The issue with these cards involved never quite eliminate the effects of resampling on the 64V, it also shows signs of undersized coupling caps. These Ensoniq cards automatically engaged headphone amplifier (with a 4565 opamp).
Porting involved [http://repo.or.cz/w/AROS.git/commit/b60abd12967144a844980c422ea9e99c056eabca 40897], [http://repo.or.cz/w/AROS.git/commit/b7d6511fca6430a63fbaaa390b4f51bf0203a460 40898 configure], [http://repo.or.cz/w/AROS.git/commit/f51034cd22759a4ec3a2547bddb3a7169d956eaa 40900 bugs], [http://repo.or.cz/w/AROS.git/commit/4f43fc38e3489ea45d12b7b5ba6fff50b69c5746 40901 further bugs], [http://repo.or.cz/w/AROS.git/commit/d23c78aec75f049484b6916d27b6804ce858bb2c 40913 memory IO fixes], [http://repo.or.cz/w/AROS.git/commit/d256860fe3035016952e88d143c6f2611997f2f3 40914 irq fix].
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| Ensoniq AudioPCI 1000
| 0x1274
| 0x5000
|
| {{unk}}
| {{unk}}
| untested - es1370 (u?) AK4531 (u?)
|-
| Ensoniq AudioPCI
| 0x1274
| 0x5000
| 0x00
| {{yes}}
| {{maybe}}
|
|-
| CT4700 Sound Blaster PCI 64 (audioPCI 3000)
| 0x1274
| 0x5000
| 0x7c
| {{yes}}
| {{maybe}}
| works - opamp JRC4565(u?) [http://en.wikipedia.org/wiki/Ensoniq_ES1370 es1370] (u?)
|-
| CT4750 Sound Blaster 64/PCI
|
|
|
| {{unk}}
| {{unk}}
| untested - 4565-1056W (u1) stac9708t(u2) [http://arstechnica.com/civis/viewtopic.php?f=6&t=916891 ct5880-dcq] (u3) 24wc012 (u4)
|-
| CT4751 (SB128PCI)
| 0x1274
| 0x8001
|
| {{unk}}
| {{unk}}
| untested - [http://en.wikipedia.org/wiki/Sound_Blaster#Ensoniq_AudioPCI-based_cards es1371] (u?)
|-
| CT4810 Creative AudioPCI64V
| 0x1274
| 0x1371
| 0x06
| {{yes}}
| {{maybe}}
| works
|-
| CT4811 (SB Vibra 128)
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4812 (Vibra 128)
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4813
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4815
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4816 es1373 (vibra 128)
|
|
|
| {{unk}}
| {{unk}}
| untested but this card has creative's ES1373 as the main chip(U1). it is also different from the other CT4810 (vibra128) in that it does not have a second chip in U2 position. Also there is only one jumper JP1 (2X3).
|-
| CT5801 HP
|
|
|
| {{unk}}
| {{unk}}
| untested - es1373 (u3)
|-
| CT5803 Gateway
| 0x1274
| 0x1371
| 0x08
| {{yes}}
| {{maybe}}
| works 4565-0005b jrc (u1) 4297a-jq ztae0c0002 (u2) es1373 (u3)
|-
| CT4740
| 0x1274
| 0x1371
| 0x08
| {{yes}}
| {{yes}}
|
|-
| CT5805 Compaq OEM Premier Sound Presario 7
|
|
|
| {{unk}}
| {{unk}}
| untested - es1373 (u3)
|-
| CT5806 (Sound Blaster AudioPCI 128D)
|
|
|
| {{unk}}
| {{unk}}
| untested - 4297A-JO EP (u?) ZTAPWC9933 (u2) es1373 (u3)
|-
| CT5807 Dell OEM Dimension 8100
|
|
|
| {{unk}}
| {{unk}}
| untested - es1373 (u?)
|-
| CT5808
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4730 Sound Blaster AudioPCI 64V Ectiva EV1938
| 0x1102
| 0x8938
|
| {{unk}}
| {{unk}}
| untested
|-
| CT5880 on various motherboards
| 0x1274
| 0x5880
|
| {{unk}}
| {{unk}}
| untested [http://www.xbitlabs.com/articles/mainboards/display/ga-6rx.html Gigabyte GA-6RX] (VIA ApolloPro 266 2001], Gigabyte GA-6VM7-4E mobo, [http://active-hardware.com/english/reviews/mainboard/ga-7vtx.htm Gigabyte GA-7VTX] (KT266 2001), Gigabyte [http://www.amdboard.com/gigabytega7vtxh.html GA-7VTXH] (KT266A 2001), [http://www.amdboard.com/gigabytega7vrxp.html Gigabyte 7VRXP] mobo (KT333 2002), MSI MS-6309, MS-6318, MS-6337 (815E Pro), MS-6339 (850Pro) and MS-6340, PCChips Motherboard M571 TXPRO, Soltek SL-65ME+,
|-
| VMware Virtual Workstation(TM)
| 0x1274
| 0x1371
| 0x02
| {{Yes|but not Hi-Fi modes}}
| {{maybe}}
| works
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
<pre>
Revision 0x04 = ES1371 REV_ES1373_A
Revision 0x06 = ES1371 REV_ES1373_B
Revision 0x07 = ES1371 REV_CT5880_A
Revision 0x02 = CT5880 REV_CT5880_C
Revision 0x03 = CT5880 REV_CT5880_D
Revision 0x04 = CT5880 REV_CT5880_E
Revision 0x09 = ES1371 REV_ES1371_B
Revision 0x00 = EV1938 REV_EV1938_A
Revision 0x08 = ES1371 REV_ES1373_8
</pre>
====1999-2001 via-ac97.audio====
*2021 5.10
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| <!--Description-->694X with 686A KT133 PM133 or 693A with VT8231
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3058
| <!--Revision-->
| <!--Playback-->{{Yes| }} redirects earphones correctly
| <!--Recording-->{{Yes| }}
| <!--Comments-->audio controller works but depends on the underlying invisible codec used see AC97 section
|-
| <!--Description-->686B KT133A with VT8231
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3058
| <!--Revision-->0x50
| <!--Playback-->{{Yes|}} reroutes ear pieces right
| <!--Recording-->{{Yes|}}
| <!--Comments-->audio controller works but depends on the underlying codec used see AC97 section below
|-
| <!--Description-->686C
| <!--Vendor ID-->0x1106
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->untested
|-
| <!--Description-->KM266 or KT266 with VT8233, KT266A with VT8233A, VT8233C
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3059
| <!--Revision-->0x10
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->KM333 KT333 with VT8235
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3059
| <!--Revision-->0x30
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
| <!--Description-->KM400 KT400 with VT8237, KT600 with VT8237R,
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3059
| <!--Revision-->0x40 0x50 0x60
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
|}
====1998-2003 emu10kx.audio - Creative Labs SoundBlaster Live! and Audigy====
*2021 6.5
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| PCI512 CT4790 (emu10k1)
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested (1st Gen)
|-
| Live CT4620
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Live CT4760
| 0x1102
| 0x0002
| 0x07
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| playback works
|-
| Live Value CT4670
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| works plays stereo (2nd Gen)
|-
| Live Value DELL CT4780
| 0x1102
| 0x0002
| 0x06
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| plays/records stereo - untested 4.1mode
|-
| Live Value Compaq CT4830
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{Maybe}}
| <!--Recording--> {{unk}}
| not working
|-
| Live Value CT4831
| 0x1102
| 0x0002
| 0x00
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Live Value CT4832
| 0x1102
| 0x0002
| 0x07
| <!--Playback--> {{yes}}
| <!--Recording--> {{partial|Line-In only}}
| works
|-
| Live Value CT4832
| 0x1102
| 0x0002
| 0x08
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| works
|-
| Live Value HP CT4870
| 0x1102
| 0x0002
|
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| Works
|-
| Live Value Gateway CT4871
| 0x1102
| 0x0002
|
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Live! Platinum 5.1 SB0060
| 0x1102
| 0x0002
| 0x00
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
| plays audio/records, untested 5.1 (3rd Gen)
|-
| Live 5.1 SB0100 -SFF
| 0x1102
| 0x0002
| 0x00
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| works
|-
| Live 5.1 Player SB0220
| 0x1102
| 0x0002
| 0x0a
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
| plays audio/records stereo, untested 5.1
|-
| Live 5.1 Digital SB0228
| 0x1102
| 0x0002
| 0x0a
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
| working
|-
| Audigy SB0090 (emu10k2)
| 0x1102
| 0x0004
|
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| <!--Description-->Audigy SB0230
| <!--Vendor ID-->0x1102
| <!--Product ID-->0x0004
| <!--Revision-->0x03
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Yes|Mic only}}
| <!--Comments-->5th Dec 2012 - untested optical tos link. contains also IEEE1394/Firewire (untested)
|-
| Audigy 2 Platinum 6.1 SB0240 SB0250 EMU10K2.5
| 0x1102
| 0x0004
| 0x04
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| works
|-
| Audigy 2 PRO SB0280 EMU10K2.5
| 0x1102
| 0x0004
|
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Audigy 2 ZS SB0350
| 0x1102
| 0x0004
| 0x04
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
|
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| Live 5.1 DELL SB0200 SB0203 emu10kx
| 0x1102
| 0x0006
| 0x0
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
|
|-
| Live 24bit SB0410
| 0x1102
| 0x0007
| 0x
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Live 24bit DELL SB0413
| 0x1102
| 0x0007
| 0x
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy LS SB0310
| 0x1102
| 0x0007
| 0x0
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy SE 7.1 SB0570
| 0x1102
| 0x0007
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 2 ZS SB0320 SB0360 (PRO)
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 2 VALUE SB0400
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 4 VALUE SB0610
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 4 PRO SB0380
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| EMU E-MU 0404 PCI (not USB) EM8852
| 0x1102
| 0x000
| 0x0
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver but linux support needs firmware
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
the green jack is for the main speaker pair AND headphones, so manual switching will be required
If your card is wired for the "AC97" standard, then it's up to your headphone jack to switch the green speaker output in and out
the headphone jack has Normally-closed contacts that will open on insertion, which breaks the signal path back to the sound card (FP_RETURN)
====2000-2010 cmi8738.audio - C-Media====
*2021 5.20
;Read [http://amigaworld.net/modules/news/article.php?storyid=2512 more] and imported on [http://repo.or.cz/w/AROS.git/commit/aff741d60160c6a9d7d39c9e004a25ea3aa13847 20th July 2011] and [http://alsa.opensrc.org/Cmipci alsa docs].
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| Audiotrak MAYA EX5
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| cmi8738-sx 4ch
| 0x13f6
| 0x0111
| 0x10
| <!--Playback-->
| <!--Recording-->
| untested
|-
| e3dx hsp56 CMedia 8738-sx 4ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| EDio SC3000D 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Genius SoundMaker Value PCI C3DX
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Guillemot Maxi Sound Muse
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Hercules Gamesurround Muse LT
| 0x13f6
| 0x0111
| 0x10
| <!--Playback--> {{yes}}
| <!--Recording--> {{no}}
|
|-
| Hercules Gamesurround Muse XL LT 5.1
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Inno audio extreme 5.1 cmi8738/lx pci 6ch
| 0x13f6
| 0x0111
| 0x
| <!--Playback-->
| <!--Recording-->
| untested
|-
| M-Audio (Midiman) DiO 2448
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Sabrent SBT-SP6C 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| StarTech PCISOUND4CH 8738sx 4ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Sweex SC012 CMI8738-lx 4ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Terratec 5.1 PCI
| 0x13f6
| 0x0111
| 0x10
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Terratec Aureon Fun 5.1
|
|
|
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| Has SPDIF
|-
| Trust Sound Expert Digital Surround 5.1 (cm8738-mx 6ch)
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Turtle Beach Riviera CMI8738-MX 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| XSonic CMI 8738 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->CMI8738 6ch PCI-E PCI Express version
| <!--Vendor ID-->0x13f6
| <!--Product ID-->0x0111
| <!--Revision-->0x10
| <!--Playback-->{{Yes|}}
| <!--Recording-->{{Maybe|}}
| <!--Comments-->Chinese based card with playback tested so far
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
====2001-2005 ac97.audio====
*6.4 27-12-2008
The AC97 chips were designed to be pinout interchangeable so that the sound support could change easily and quickly without motherboard redesigns
the green jack is for the main speaker pair AND headphones, so manual switching will be required
If your card is wired for the "AC97" standard, then it's up to your headphone jack to switch the green speaker output in and out, the headphone jack has Normally-closed contacts that will open on insertion, which breaks the signal path back to the sound card (FP_RETURN)
The ProductID and VendorID are for the audio controller only - the important additional codec is '''NOT''' so easily identified.
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| <!--Description-->Avance Logic (now Realtek) ALC100 and ALC101 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->ALC200 and ALC201 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->ALC201A and ALC202 and ALC202A codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->ALC650
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| <!--Comments-->most Nforce2 boards plays audio only - Abit NF7, Asus A7N8X, MSI K7N2, Epox 8RDA+, DFI
|-
| <!--Description-->ALC850 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{No}}
| <!--Comments-->no support for via P4P800 chipset on ASUS A8V-E SE Deluxe mobo - ICaros 1.3
|-
| <!--Description-->Realtek ALC653 codec and ALC655 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested Acorp 7NFU400
|-
| <!--Description-->Realtek ALC658 codec ALC658D
| <!--Vendor ID-->0x8080
| <!--Product ID-->0x24c5
| <!--Revision-->0x0
| <!--Playback-->{{Yes|Prefs Music and Units 0-3 set volume control - playback}}
| <!--Recording-->{{No}}
| <!--Comments-->MSI Motherboard on NB 22-09-2012
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->AD1881 SoundMAX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->Analog Devices first AC97
|-
| <!--Description-->AD1881A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Yes}}
| <!--Revision-->
| <!--Comments-->works with VIA Controller - untested Intel etc
|-
| <!--Description-->AD1881B
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1885 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{No}}
| <!--Comments-->Playback only with issues on D845HV but not working on MS-6367 because Units 0-3 have masked volume control
|-
| <!--Description-->AD1886
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1887
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->ADI AD1888 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{no}}
| <!--Recording-->{{No}}
| <!--Comments--> Icaros 1.51
|-
| <!--Description-->AD1980 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->AD1981A codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested IBM X30
|-
| <!--Description-->Analog Devices SoundMax(TM) AD1981B codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| <!--Comments-->plays back only on IBM T41 Thinkpad
|-
| <!--Description-->AD1985 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{No}}
| <!--Comments-->not working ahi prefs freezes on D865GLC mobo ([http://www.xbitlabs.com/articles/multimedia/display/int-sound2_3.html ]
|-
| <!--Description-->AD1986 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{No}}
| <!--Comments-->untested [http://uk.ts.fujitsu.com/rl/servicesupport/techsupport/Boards/Motherboards/Fujitsu/D1931/D1931.htm D1931] but works (Acer Aspire 3610 laptop)
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->Crystal Semiconductors CS4205, CS4202 codecs
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Cirrus Logic CrystalWare 4236
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->Cirrus Logic CrystalClear SoundFusion CS4297 CS4299 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested IBM T23
|-
| <!--Description-->conexant Cx20468-31 codec (id 30)
| <!--Vendor ID-->0x103c
| <!--Product ID-->0x3085
| <!--Revision-->
| <!--Playback-->{{No|AC97 appears in AHI Prefs}}
| <!--Recording-->{{No}}
| <!--Comments-->Tested AspireOS 1.8 on Gateway W322
|-
| <!--Description-->ESS Technology ES1921 AC'97 2.1
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->CMI 6501 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested on ASROCK SKT-AM2 AM2NF3-VSTA
|-
| <!--Description-->codec CMI9738
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->codec CMI9739
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->C-Media CMI 9739A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments--> untested on EPoX 8RDA3+
|-
| <!--Description-->CMedia CMI 9761A codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested ASRocK K7NF2-RAID
|-
| <!--Description-->C-Media CMI9880
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->National Semi conductor (now TI) LM4540, LM4543, LM4545, LM4546, LM4548, LM4549, LM4550 LM4560
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->STAC9708T codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->SigmaTel (now IDT) C-Major STAC 9460 (D/A only), 9461, 9462, 9463, 9200, 9202, 9250, 9251, 9220, 9221, 9223, 9750
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AKM (Asahi Kasei Microsystems) AK 4540, 4543, 4544A, 4545
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->codec VT1616 (VIA Six-TRAC Vinyl Audio)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->VIA VT1612, VT82C686
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->ESStech ESS ES1968 maestro-2
| <!--Vendor ID-->0x125d
| <!--Product ID-->0x1968
| <!--Revision-->0x
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->ESStech ESS ES1978 maestro2e
| <!--Vendor ID-->0x125d
| <!--Product ID-->0x1978
| <!--Revision-->0x
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->ESStech ESS ES1988 maestro3 allegro-1 codec
| <!--Vendor ID-->0x125d
| <!--Product ID-->0x1988
| <!--Revision-->0x12
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->Yamaha AC97 ymf-743 YMF752 YMF753 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->{{No}}
| <!--Comments-->untested ymf-753
|-
| <!--Description-->YMF724 YMF744 YMF-754 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| SIS 7018 / Trident 4dwave DX/NX / ALi 5451
| 0x1039 (0x1023 Trident)
| 0x7018 (0x2000 Trident DX) (0x2001 Trident NX)
| 0x02
| <!--Playback-->{{No}}
| <!--Recording-->{{No}}
| no support - introduced early 2000s
|-
| SIS 7012
| 0x1039
| 0x7012
|
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| working through 1 speaker only took over from SIS7018 (2002 onwards)
|-
| <!--Description-->Wolfson (now Cirrus Logic) WM9701, WM9701A (AC'97 1.03 spec), WM9703, WM9704 (AC'97 2.1), WM9705, WM9706, WM9707, WM9708
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->WM9709, WM9710, WM9711, WM9712, WM971
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->first Microsoft(TM) Xbox DAC sound chip (AC Link compliant D/A converter)
|-
| <!--Description-->Wolfson WM9717
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| Parallels
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested
|-
| VirtualBox
|
|
|
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| working
|-
| VirtualPC
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested
|-
| <!--Description-->Intel 82801AA Proxmox
| <!--Vendor ID-->0x8086
| <!--Product ID-->0x
| <!--Revision-->
| <!--Playback-->{{unk| }}
| <!--Recording-->{{unk| }}
| <!--Comments-->
|-
|}
====2005-20xx HDAUDIO.audio====
*6.36 2025 [https://github.com/aros-development-team/AROS/commit/43b33a9280b10963ca659de2cc3d1cf289b43a87 reset handler]
*6.35 202 []
*6.34 2019 AROS One 1.5 upwards
*6.29 2018
*6.27 2017 update
*6.25 2014 used for most Icaros 2.x
*6.20 July 2012
*6.17 Nov 2011
*6.15 Jun 2011
*[http://www.clusteruk.com/SitePortalPage.aspx?siteid=1&did=109 6.13] Sep 2010
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="5%" |Vendor ID
! width="5%" |Product ID
! width="5%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| <!--Description-->ALC260
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| <!--Description-->ALC262
* ALC262-VD2-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->LQFP-48
|-
| ALC268 codec
| 0x
| 0x
| 0x
| <!--Playback-->{{Yes|Version 6.17 Acer AOA110 and AOA150 netbooks), works (Dell Mini Inspiron 9 and 10v, }}
| <!--Recording-->{{Yes|Version 6.17 remove QUERY and select 'Mic 1' as input. Tested with 6.15 as well using QuickRecord and AE 4.0.23 under Icaros 1.4.}}
| <!--Comments-->AHI UNITS and Music are set to: hdaudio:HiFi 16 bit stereo++ / Frequency 48000 Hz, Volume +0.0 dB. The hdaudio.config in SYS:Prefs/Env-Archive is WITHOUT the QUERY-line. After changing and saving the config-file turn off and start again the computer. Switch from internal loudspeaker to headphone you must turn off the music before plug in the headphone-cable, otherwise there is no output on the socket. Back from line-out to internal speakers it is the same.
|-
| [http://blog.foool.net/wp-content/uploads/linuxdocs/sound.pdf Linux docs ALC269]
* ALC269Q-GR
* ALC269QSRS-GR
* ALC269W-GR
| 0x
| 0x
| 0x
| <!--Playback-->{{Maybe| }}
| <!--Recording-->{{Unk| }}
| <!--Comments-->TQFP 48 pin Power IC Chip From [https://patchwork.kernel.org/project/alsa-devel/patch/1408118123-15849-1-git-send-email-tiwai@suse.de/ ALC269 & co have many vendor-specific setups with COEF verbs, result in the codec stalling]
|-
| [http://www.alsa-project.org/db/?f=0321f8479fd670cd510f9912b1120fe7edcf2e07 ALC269VB]
* ALC269Q-VB5-GR
* ALC269Q-VB6-CG
* ALC269Q-VB6-GR
| 0x10ec
| 0x0269
| 0x100004, 0x100100, 0x100202
| <!--Playback-->{{Maybe|some versions work}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* v1 works Asus eee PC netbook 901/1000HA 1005HA/1008HA, 1001P,
* v2 maybe working Lenovo S9 S10 S10-2 S10-3 under HDAudio version 6.13
* v3 maybe dell wyse 7010
|-
| [http://alsa-project.org/db/?f=9c1746c5957b0ce72ff9cfffa312e97d14baf785 ALC269VC aka ALC3202]
* ALC269Q-VC2-GR
* ALC269Q-VC3-GR
| 0x10ec
| 0x0269
| 0x100203,
| <!--Playback-->{{Maybe|some versions work}}
| <!--Recording-->{{Unk}}
| <!--Comments-->SMT SMD QFN-48 -
* v1 unknown
* v2 unknown
* v3 x230, dell wyse,
|-
| ALC272
* ALC272-VA4-GR
| 0x10ec
| 0x0272
| 0x0
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Unk}}
|
* works Acer AOD150 and Acer AOD250 works [http://amigaworld.net/modules/newbb/viewtopic.php?topic_id=33755&forum=28#616910 Samsung NP-NC10], works Samsung NF210-A02] netbooks,
|-
| <!--Description-->ALC273
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| <!--Description-->ALC270
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC282
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x
| <!--Revision-->
| <!--Playback-->{{No|Version 6.17}}
| <!--Recording-->{{No|Version 6.17}}
| <!--Comments-->needs retest
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC660 ALC660-VD
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes| }}
| <!--Recording-->
| <!--Comments-->
* works asus F9s, F9e
* untested asus w7j, M51SN, A6Tc, A8Sr,
|-
| <!--Description-->ALC661-GR (2011)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| ALC662
| 0x1043
| 0x82a1
| 0x0
| <!--Playback-->{{Yes|Version 6.17 if QUERY added to top of hdaudio.config}}
| <!--Recording-->{{No|Version 6.17 not working for eee pc 900}}
|
* works Asus eee PC netbook 700/701/900, Atom 270 and 330 mobos, odd clicks (D410 NM10 PineTrail),
|-
| <!--Description-->[http://outpost.fr/rmaa/ALC663.htm ALC663]
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0861
| <!--Revision-->
| <!--Playback-->{{No|Version 6.13}}
| <!--Recording-->{{Unk}}
| <!--Comments-->not bad output like headphone amp part of the codec actually works well but messed up by undersized coupling capacitors to actually support such a low impedance
* not working Asus n50vn x71vn,
|-
| <!--Description-->ALC665
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC666
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC667
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC668
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC670
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->ALC880
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->some 915 and 925 chipset mobos
|-
| <!--Description-->ALC882M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| Realtek ALC883 ALC883-GR ALC883D-GR ALC883DTS-GR ALC883DD-GR codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe|some early versions work }}
| <!--Recording-->{{Unk| }}
| 2005 to 2007 HD Audio codec untested (Asus ),
|-
| Codec ALC885
| 0x10ec
| 0x0885
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
|-
| ALC888
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
|
|-
| ALC888s
* ALC888S-VD2-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}} MSI Wind U90/U100,
| <!--Recording-->{{Unk}}
| LQFP-48
|-
| ALC888b
| 0x8086
| 0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| untested (D510 NM10 Dual Core PineTrail mobo),
|-
| ALC888-VD
| 0x8086
| 0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| untested
|-
| ALC889A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes|works if QUERY added to the top of hdaudio.config in Prefs drawer/directory}}
| <!--Recording-->{{Unk}}
|
|-
| ALC889 Gr
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}} with crackles
| <!--Recording-->{{Unk}}
|
|-
| ALC889
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
| Tested with MSI H55 board
|-
| ALC887 ALC887-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
|
* working on ASUS P5KPL/EPU and Gigabyte GA-E350N-Win8 Rev1.0
|-
| ALC887-VD-CG
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0887
| <!--Revision-->0x100302
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}} Subsystem Id: 0x1458a002
|
|-
| ALC887-VD
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0887 0x1458
| <!--Revision-->0xa002
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{Unk}} index = 2
| ALC887 does not have any volume control ability on the mixer NIDs, so put the volume controls on the dac NIDs instead
* working with intermittent corrupting pop popping skipping stuttering sound issues MSI 760GM-P23 (FX),
* not working Gigabyte H61MA-D3V, AT3IONT-I Deluxe,
|-
| ALC887-VD2
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
| 3jacks
|-
| ALC887-VD2-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
|-
| ALC887-
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
|
|-
| ALC892-CG rev
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| 2011 48-pin LQFP Green package -
|-
| ALC892 ALC892-DTS-CG rev
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
| 2009 introduced
* works
* not working
* untested
|-
| ALC892 rev
| <!--Vendor ID-->0x0x10ec
| <!--Product ID-->0x0892
| <!--Revision-->0x100302
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| 2014
|-
| Realtek ALC886-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| LQFP-48
|-
| Codec ALC861 ALC861-VD
| 0x10ec
| <!--Product ID-->0x0663
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
|
* not working Toshiba Tecra A7
|-
| <!--Description-->ALC1200
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| ALC898
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
| not working
|-
| <!--Description-->ALC1500
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC3232 (aka ALC292)
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0292
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC3234 aka ALC255
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0255
| <!--Revision-->003
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC3287 aka ALC257
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes| }}
| <!--Recording-->{{no| }}
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->AD1882
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1883 HD Codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1884
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| Analog Devices SoundMAX AD1981
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| IBM Thinkpad T60,
|-
| AD1984 hp-m4 codec
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
* audio not working on Lenovo X61, Thinkpad T61,
|-
| AD1986
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
|
|-
| AD1988
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
|-
| <!--Description-->AD1988A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->Cirrus Logic CS4207
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->
| <!--Recording-->
|
|-
| <!--Description-->Cirrus Logic CS4208
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->
| <!--Recording-->
|
|-
| <!--Description-->Conexant CX20549 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe|very very very low volume}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested Fujitsu Amilo SI 1510 1520 no datasheet for the general public
|-
| <!--Description-->Conexant CX20549-12Z codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested HP 530
|-
| <!--Description-->Conexant CX20561 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* working lenovo x200s
* untested Lenovo Essential G555 Notebook, HP Pavilion dv6700,
|-
| <!--Description-->Conexant CX20582 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX2059x CX20590 CX20594-21Z codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX20585 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* working Lenovo Thinkpad T410,
|-
| <!--Description-->Conexant CX20672 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX20671 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX20751-21Z codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes| }}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| <!--Description-->Conexant CX11852 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX11880 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant after 2015 up to 2018 CX7501 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{no|no driver codec}}
| <!--Recording-->{{no|no driver codec}}
| <!--Comments-->Conexant bought by synaptics 2019
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->C-Media CMI9880 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->Gigabyte GA-8GPNXP
|-
| <!--Description-->Silicon Labs 3054
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| VIA 1708A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| untested,
|-
| VIA VT1708B
| <!--Vendor ID-->
| <!--Product ID-->
| 0x0010
| <!--Playback-->{{No|VIA PicoITX}}
| <!--Recording-->{{Unk}}
|
|-
| VIA 1708S
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
|
|-
| <!--Description-->VT2021 10ch
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->Gigabyte Z77MX-D3H, GA-H61M-S2H S2P,
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Creative CA0110-IBG
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->SigmaTel STAC 9220 9221 9223 8ch (7+1)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| <!--Comments-->ECS 945GCT/M-1333 (version 3.0),
|-
| IDT SigmaTec [http://explorer.cekli.com/articles/pdf/hd-audio STAC9227] /28/29/30 codec
| <!--Vendor ID-->0x8384
| <!--Product ID-->0x7626
| <!--Revision-->0x0002
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Unk}}
|
* works HP Compaq mini 110
* untested HP Pavilion HDX9000 CTO Notebook, Intel DG33TL mobo, Dell E520, Intel DP35DP mobo, Dell E6410 Laptop,
|-
| IDT (formerly SigmaTel) IDC STAC 9271/71D
| <!--Vendor ID-->0x8384
| <!--Product ID-->0x7626
| <!--Revision-->0x0002
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
|
|-
| <!--Description-->IDC STAC 9272 9273 9274
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->Intel D5400XS,
|-
| <!--Description-->IDT 92HD73C
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes}}
| <!--Recording-->
| <!--Comments-->headphones only Asus AT4NM10 mobo
|-
| <!--Description-->IDT 92HD75B
| <!--Vendor ID-->0x111d
| <!--Product ID-->0x7608
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* working [http://koti.kapsi.fi/jvaltane/aros/hdaudio/ HP Compaq Mini 700 Netbook - feedback required]
* untested HP Mini 5103 and 5102, HP Compaq 610, HP ProBook Laptop 4520s 4525s 6450b 6550b 6555b, HP EliteBook 2540p 2740p 8440p, Mobile Workstation 8540w 8740w, Pavilion NoteBook DV8,
|-
| <!--Description-->IDC 92HD81XX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC 92HD83XX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC STAC 92HD89XX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Wolfson (now Cirrus Logic) WM8850
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Wolfson WM8860
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->Intel High Definition Audio Revision 1.0. - 4-Channel DAC, 4-channel ADC. - DAC sampling
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
Using Prefs/AHI ensure you set the music unit and at least Units 0 (where most audio comes from) in top left drop down menu to HDaudio - HIFI in the section below. Set Units 1 or 2 to microphone or other outputs. Plus allow more than one channel for multiple audio streams and set frequency up to 44 kHz or higher on the right hand side of the ahi prefs. If sound beeps when you press the test button then all should be OK.
Output <- Codec <- Audio Controller (HDA) <-> Computer
codecs and exact hardware identifier. As mentioned above, HDA is only part of the work here, it gets the audio out of the main chipset in digital format (on a bus called I2S). This is not enough, there is another step needed which is routing that I2S signal to the output, converting it to actual audio, amplifying it, etc. This is handled by a separate chip called a "codec". Sometimes it is initialized by the BIOS, but this is not always the case.
Most audio drivers are made up of two parts a [http://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio.txt Controller + a Codec]. The ProductID and VendorID are for the audio controller only - the important additional codec is '''NOT''' so easily identified.
Some newer versions of codecs are missing at the moment.
Things to try if sound not working
* try to connect something to the audio jack, maybe it is not playing on internal speakers or vice versa
* make sure you try and select all music units e.g. unit0, unit1....
* even if PCI ID's are in Prefs/Env-Archive/HDaudio.config, this doesn't mean it is working, it is the codec that matters
* it might be internally muted
<pre>
add debug=memory to grub boot line - continue booting with F10
Open a shell
Tools/Debug/Bifteck > RAM:audio.txt
</pre>
or
<pre>
Open a shell
Tools/Debug/Sashimi > RAM:audio.txt
Run ahi prefs
Click test tone button
Stop sashimi with Ctrl-C
</pre>
If the boot sound is enabled, you have to use Bifteck to capture AHI debug output. In the GRUB menu, press E on your selected entry, then add "debug=memory" to the options (alongside ATA=, vesa= etc.). Then F10 or Ctrl-X to boot. Once booted, run Tools/Debug/Bifteck again.
or
* try adding QUERYD to the start of ENVARC:hdaudio.config file (also known as Prefs/Env-Archive/) ie. on the first line
* '''OR''' try removing QUERY and QUERYD from the start of the hdaudio.config file
* Reboot
* open a shell
* type: sys:tools/debug/sashimi > ram:debug.txt
* open ahi prefs
* select one of the audio modes - HIFI or otherwise
* press the 'test sound' button
* press ctrl-c in the shell
* post the results to Aros-World
The HD Audio standard was designed to be hardware pinout interchangeable so that the sound support could change easily and quickly. HDA is a standard around particular chips. Each kind of chip has a certain number of DACs and pins, and even the same chip could be hooked up in different ways on different motherboards. The chips are programmable and the operating system can adjust how things are routed. Some pins aren’t even hooked up, so it makes no sense to route sound to them. Also some pins have sensors that can tell when something is plugged in, so that for example the speakers in a laptop can be muted when headphones are plugged in. Pins are also grouped, so for example all the outputs for a 5.1 sound system are grouped. Generally the HDA driver in the operating system is supposed to read the pin set up and figure out a reasonable way to set things up, and disconnected pins should be ignored, etc.
HDAudio standard has headphones on a separate DAC, and it's up to the driver.. it can even send different audio to the headphones without interrupting the main (green) outputs
====Envy24 series ====
A little history. VIA bought the ICE created Envy chipsets [http://www.via.com.tw/en/products/audio/controllers/comparison_controller.jsp VT1712] first. A few years later, they created several cheaper variants VT1724 (mixer missing), VT1721 (low end cut down), VT1720 (embedded on motherboard) and lastly the VT1723 (no support apart from Windows Envy24DT like SYBA SD-PEX63034).
There are PCI Express versions appearing.
The Envy24 is the base product that was originally designed by ICEnsemble, and it supports multi-channel hardware mixing, which is great for professional use. The HT version removes the hardware mixer (unimportant for non-professional uses). The [http://www.avsforum.com/t/364771/envy24ht-s-the-definitive-source HT-S] version is almost exactly the same as the HT, it just uses cheaper DACs. The PT version is exactly the same as the HT-S version, it is just the edition used for on-board audio on motherboards.
N.B. [http://www.soundonsound.com/sos/dec04/articles/pcnotes.htm PCI slot identification] and [http://hsi.web.cern.ch/HSI/s-link/devices/s32pci64/slottypes.html 3.3v PCI].
=====[http://www.opensound.com/readme/README.Envy24.html envy24.audio] - [http://www.anime.net/~goemon/alsa/ VT1712] =====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Playback
! Recording
! Comments
|-
| M-Audio Delta 66 - Rev B 1999
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested AK4524VF CS8404A-CS - needs Delta Series break out box with D-sub lead -
|-
| [http://ixbtlabs.com/articles/maudioaudiophile/index.html Audiophile 2496] Rev A 2000
| 0x14
| 0x
|
| <!--Playback-->{{unk| }}
| <!--Recording-->{{unk| }}
| works audio out on - I2S stereo codec AKM AK4528VF with the 24bit/96kHz DAC and ADC; CS8427 digital transceiver
|-
| [http://ixbtlabs.com/articles/maudioaudiophile/index.html Audiophile 2496] Rev B 2003
| 0x14
| 0x
|
| <!--Playback-->{{Yes }}
| <!--Recording-->
| works well - I2S stereo codec AKM AK4528VF with the 24bit/96kHz DAC and ADC; CS8427 digital transceiver
|-
| M-Audio Delta 410 - 2001 2001 REV-B
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested for D-A AK4529VQ converters with CS8427-CS 5532 1158B or Event Echo Gina 20-Bit Multitrack Interface Breakout Box -
|-
| M-Audio Delta 1010
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested AK5383 and AK4393 - 25 pin dsub -
|-
| M-Audio Delta 1010LT 1010E
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested for D-A AK4529 converters with 2 XLR Microphone inputs with pre amps
* be aware of redesign in 2007 - possible issues
|-
| M Audio Delta 44 - Rev A 2002 - Rev B 2003 - Rev D 2003
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested ICE1712G AK4524VF needs breakout box with 15 pin D-sub lead -
|-
| M-Audio Delta 66 Rev E 2006 - Omni Studio
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested needs break out box with 15 pin D-sub lead -
|-
| <!--Description-->M-Audio Delta DiO 2496
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| Terratec EWX24/96
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| [http://ixbtlabs.com/articles2/terratecdmx6fire/index.html TerraTec 6fire DMX 24/96]
| <!--Vendor ID-->0x1412
| <!--Product ID-->0x1712
| <!--Revision-->0x02
| <!--Playback-->{{No|tried line 1-2 3-4 5-6 7-8 }}
| <!--Recording-->{{No| }}
| untested - AKM and codec
|-
| <!--Description-->Terratec EWSA88MT
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| [http://lists.freebsd.org/pipermail/freebsd-multimedia/2007-March/006087.html Audiotrak Prodigy HD2] 24/96
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Audiotrak (ESI) Maya 1010 1010L
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| EMU 1212M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| EMU 1616M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| <!--Description-->Terratec EWS 88MT EWS 88D
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Hoontech Soundtrack DSP 24
Soundtrack DSP 24 Value
Soundtrack DSP 24 Media 7.1
Event Electronics EZ8
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Digigram VX442
Lionstracs
Mediastation
Terrasoniq TS 88
Roland/Edirol DA-2496
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
=====envy24ht.audio - VIA VT1724=====
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| ESI Juli@
| 0x3031
| 0x4553
| 0x0
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Yes}}
| reported working years ago [http://envy24.svobodno.com/ Envy24HT-S] - AKM 4358 DAC - AKM 4114/4112 DIT
|-
| ESI Juli@ Ego Igo rev K
| 0x3031
| 0x
| 0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| AK4358? DAC - AK4114 AK4112 DIT
|-
| [http://ixbtlabs.com/articles2/multimedia/m-audio-revolution51.html M-Audio Revolution 5.1]
| 0x1412
| 0x3631
| 0x0
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| reported working years ago but discontinued - (Envy24GT) - 3ch AKM 4358 DAC - ADC AKM 5365 -
|-
| [http://ixbtlabs.com/articles2/m-audio-revolution71/index.html M-Audio Revolution 7.1] 24/192
| 0x1412
| 0x3630 0x1724
| 0x0
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| not working - illegal semaphore - 6ch ADC AKM AK4355 24-bit 192 kHz - 2ch DAC AKM AK4381 24-bit 192 kHz - ADC AKM AK5380
|-
| Terratec Aureon Sky 5.1
| 0x153b
| 0x1147
| 0x
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - discontinued
|-
| [http://ixbtlabs.com/articles2/terratec-aureon71/index.html Terratec Aureon Space 7.1]
| 0x153b
| 0x1145
| 0x0
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - Wolfson WM8770 DAC, AC'97 codec SigmaTel STAC9744
|-
| Terratec Aureon Universe 7.1
| 0x153b
| 0x1153 (rev x) 0x1724 (rev3)
| 0x0
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| not working - semaphore error on rev 3 - DAC ADC
|-
| Terratec Phase 22
| 0x153b
| 0x1150
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - Envy24HT-S - AK4524
|-
| Terratec Phase 28
| 0x153b
| 0x1149
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - Envy24HT-S - AK4524
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Playback
| Recording
| Revision
| Comments
|-
| Audiotrak (ESI) Prodigy 7.1
| 0x4933
| 0x4553
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - Wolfson WM8770 and AC'97 SigmaTel STAC9744 codec
|-
| Audiotrak (ESI) Prodigy 7.1 LT
| 0x3132
| 0x4154
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver -
|-
| [http://ixbtlabs.com/articles2/sound/audiotrak-prodigy192.html Audiotrak (ESI) Prodigy 192] 24/96
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - STAC9460S codec
|-
| <!--Description-->Echo Layla 24/96
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
| [http://www.bit-tech.net/custompc/labs/80752/hercules-gamesurround-fortissimo-4.html Hercules Gamesurround Fortissimo 4]
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - Wolfson WM8776 Codec and WM8766 DAC
|-
| [http://ixbtlabs.com/articles2/multimedia/m-audio-audiophile192.html M-Audio Audiophile Delta AP 192k]
| 0x1412
| 0x3632
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - Stereo ADC AKM AK5385A 24-bit 192 kHZ - 8-channel DAC AKM AK4358 24-bit 192 kHz - AKM 4114/4112 DIT
|-
| ONKYO SE-150PCI
| 0x160b
| 0x0001
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver
|-
| <!--Description-->ESI Waveterminal 192x
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
| <!--Description-->Quartet
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments--> - AKM 4114/4112 DIT
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
|}
====hdmiaudio.audio - hdmi no support====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Comments-->
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->ATI R6xx HDMI Audio codec support output
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x9840
| <!--Revision-->
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->Not detected
|-
| <!--Description-->NVidia HDMI
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Intel Series 6 CougarPoint HDMI codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Intel HDMI
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|}
[[#top|...to the top]]
===Graphic GFX Chipsets===
[https://gallium.readthedocs.io/en/latest/systems.html PCIe based] graphic chipset is defacto on 64bit AROS and recommended on 32bit.
AGP works on 32bit but faster transfers through the AGP slot are only available on a few supported motherboard chipsets
* Faster AGP Working = SIS 650 board, Intel 865pe AGP slot on MSI 6788-050,
* Not Supported = NForce2 chipsets, most Intel 815/820 chipsets, VIA chipsets, ALi chipsets,
The fallback for all graphics modes is vesa if any native support does not work. There is a choice of very low resolution vga as the last resort
2D tests performed with [http://download.aros3d.org/software/gfxbench.zip gfxbench] in the shell type gfxbench > out.txt (40 seconds blank screen is part of the test), via FreeDoom via limit-removing engine like odamex, chocolate or vanilla doom -timedemo demo1 or doom2 -timedemo demo1, doom.exe -iwad doom2 -file mymap.wad, Duke DNRATE 640x480 windowed
3D tests performed with Demos/Mesa/ , Cube 1080p, Cube 2 windowed not fullscreen 1920 x 1025, Quake3 ~ cl_drawFPS 1, Xonotic , [http://shinh.skr.jp/sdlbench/showtestgl.cgi test gl],
HDMI, DVI and DisplayPort monitors have a native resolution of 480p, 720p, 1080i, 1080p and up
<pre>
HDMI (licensing fee)
1.2 720p res.
1.3 1080 resolution
1.4 4K @ 30Hz
2.0 4K @ 60Hz
2.1 48Gbs for 4K @ 120Hz, 8K @ , VRR, etc
2.2 ultra96
</pre>
<pre>
DisplayPort (VESA introduced)
1.4 4K @ 60Hz
2.1 96Gbs for 4K @ 240Hz, 8K @ 120Hz. MST daisy chain multiple monitors,
</pre>
<pre>
GPMI chinese standard
2.0
</pre>
Might be supported on AROS
*OpenGL4 GPU must have 64-bit floating point FP64 math support, which is a hard requirement for GL 4.0. The max last revision opengl 4.6 (2017) on [https://wiki.gentoo.org/wiki/AMDGPU AMDGPU] RX 5000's / 6000s ([https://forum.batocera.org/d/7491-enable-opengl-46-and-vulkan-for-an-old-radeon-video-card RDNA] and Nvidia RTX might come to AROS) but Intel UHD, Iris Plus or Xe or Arc (will not unless a developer wants the challenge)
*OpenGL3 last revision 3.3 (2011)
Already supported on AROS
*OpenGL2 nvidia-nouveau,
*OpenGL1 intel gma950,
====vga.hidd====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Comments
|-
|
| 0x
| 0x
| 0x0
| Generic VGA Driver, limited to 640x480 in 16 colours - no 3D support
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Comments-->
|-
|}
====vesa.hidd====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Comments
|-
|
| 0x
| 0x
| 0x0
| 2D support for VBE1, VBE2 and VBE3 (most cards) - various resolutions and 24bit colour - no 3D support
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Comments-->
|-
|}
[[#top|...to the top]]
====[[w:en:Intel GMA|Intel GMA]]====
DVI output is not supported at the moment.
If having problems:
* Ensure the latest version is being used.
* Set GMA_MEM to 128 or 256 to test
* Try the FORCEGMA ToolType for 2D, and try the FORCEGALLIUM ToolType for 3D acceleration after 2D is verified to work. ToolTypes should be applied to the Devs/Monitors/IntelGMA monitor icon.
If still having problems:
* At GRUB boot screen edit boot line and add option: debug=memory
* Boot.
* Use shell command: tools/debug/bifteck > RAM:debug.txt
* And post [GMA MONITOR DETECTION] and other related debug lines
{| class="wikitable sortable" width="90%"
! width="5%" |Description
! width="5%" |Vendor ID
! width="5%" |Product ID
! width="3%" |Rev
! width="5%" |2D
! width="5%" |3D
! width="5%" |Analog Output
! width="5%" |Digital Output
! width="5%" |Laptop LCD
! width="30%" |Comments
|-
| 910GL 82910GL GMCH + ICH6
| 0x8086
| 0x2582 0x2592
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| 910GML 82910 GML GMCH + ICH6 Mobile
| 0x8086
| 0x2582 0x2592
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| may need to add forceGMA to grub boot line to work
|-
| 915G 82915G GMCH + ICH6-M
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
|
|-
| 915GL 82915GL GMCH
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
|
|-
| 915GV 82915GV GMCH
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Yes|}}
| <!--3D-->{{No|}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{N/A}}
| HP DC5100 small form factor
|-
| 915GM GMA900
| 0x8086
| 0x
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| tunnel gearbox }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes}}
| asus eee pc 900
|-
| 915GMS
| 0x8086
| 0x
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| tunnel }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes| }}
|
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| [http://www.notebookcheck.net/Intel-Graphics-Media-Accelerator-950.2177.0.html 945GU] - 133 MHz (Lake port for Intel A100 and A110)
| 0x8086
| 0x2772
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| Fujitsu LifeBook U1010,
|-
| 945GMS - 166 MHz / 250 MHz (1.05V)
| 0x8086
| 0x27a2
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes}}
| Dell D430
|-
| 945GSE - 166 MHz (for Atom)
| 0x8086
| 0x27ae
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Yes|[http://www.x.org/wiki/GalliumStatus]}}
| {{Yes}}
| {{No|dvi port}}
| {{Yes| }}
| for atom motherboards and most 2008/2009 netbooks
* 3D Works - AOA110 AOA150, Dell Mini 9, Samsung NC10, Toshiba NB100,
|-
| 945G 82945G GMCH + ICH7
| 0x8086
| 0x27a6
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| untested 2D and 3D
|-
| 945GC 82945GC MCH
| 0x8086
| 0x27a6
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| untested 2D and 3D
|-
| 945PM
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| Dell D420, Compaq nc6400,
|-
| 945GMS - 250 MHz Calistoga
| 0x8086
| 0x
| 0x0
| <!--2D--> {{Yes}}
| <!--3D--> {{Yes|most models}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes}}
|
* 3D Works Dell Latitude 2100, HP Compaq nc6320, Lenovo 3000, Lenovo T60, Samsung Q35, Dell D620, Dell D820,
* 3D untested Toshiba Satellite L100-120, Toshiba Portege M400,
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
|
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GMA 3100 G31
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works 2D but no 3D
|-
| GMA 3100 G33
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works 2D but no 3D
|-
| [http://en.wikipedia.org/wiki/Intel_GMA GMA 3150] netbooks and nettops
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works 2D but no 3D. no vga, dvi or hdmi output for nettops
|-
| <!--Description--> G965
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments-->
|-
| <!--Description--> Q965
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x2992
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{No}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments--> Only tested with VGA output.
|-
| 965GM X3100 (500 MHz)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| some support 2D but no hardware 3D - could not get it to work with VGA or dvi output
* untested Apple MacBook Air, Lenovo Thinkpad X300, Dell Inspiron 1525, Toshiba M9,
|-
| 960GM X3100 (400 MHz)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
|
|-
| 965M X3100 (400 MHz)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| Dell D830,
|-
| 965PM ??
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| Toshiba A9 works with limited 2D acceleration but no hardware 3D
|-
| GL965
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works with limited 2D acceleration but no hardware 3D
|-
| GM965
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works with limited 2D acceleration but no hardware 3D
|-
| GMA X3500 G35
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->X4500M G41 G43 G45 (400Mhz) Mobile 4 Series
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x2a42 0x2a43
| <!--Revision-->0x07
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue--> {{No|}}
| <!--Digital--> {{No|}}
| <!--Laptop LCD--> {{Yes| VESA}}
| <!--Comments-->works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->GMA 4500M HD (533 MHz)
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments-->works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->GMA 4700M HD (640MHZ)
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x2a42
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments-->works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
====[http://nouveau.freedesktop.org/wiki/FeatureMatrix nouveau].hidd (nvidia pci, agp, pci-e desktop)====
PCIe based nvidia graphics (gfx 8xxx) are the base level for 64bit AROS but earlier models still has some support on 32bit AROS
*Desktop, more likely hit rather than miss on early nvidia on Aros 32bit but on Aros 64bit ...
*Laptop, limited support for '''very''' early non-optimus (i.e. just Nvidia gfx only so no Intel and nvidia gfx combinations on 32bit but on 64bit ...)
Please note that the nouveau project is reverse engineering a nvidia graphics driver but takes time because of [https://nouveau.freedesktop.org/ nVidia's closed firmwares], etc
* 2026-06 - DEVS Nouveau.hidd Gallium.hidd Softpipe - LIBS Gallium GLU 20.0 Mesa OpenCL
* 2011-10 - DEVS 6.11 Nouveau.hidd 7.4 Gallium.hidd 9.4 Softpipe - LIBS 2.3 Gallium 1.3 GLU 19.0 Mesa OpenCL 1.x
* 2011-04 - DEVS 5.31 Nouveau.hidd 7.3 Gallium.hidd 9.3 Softpipe - LIBS 2.2 Gallium 1.1 GLU 18.0 Mesa OpenCL n/a
Nouveau support for AROS is limited to OpenGL 2.1 compliance on 32bit even for modern GL4 capable GPUs but on 64bit ...
On Aros 32bit OpenCL supports the NV50 (8000 9000) cards, less support in NVC0 fermi cards (300 upwards)
On Aros 64bit
ADoom3 graphic details ultra, benchmark while playing press the "`" key and type "Timedemo demo1" in the console
{| class="wikitable sortable" width="90%"
! width="5%" | Graphic Card
! width="5%" | Aros 32bit 1024 x 768
! width="5%" | Aros 32bit 800 x 600
! width="5%" | Aros 32bit 640 x 480
! width="5%" | Aros 64bit 1024 x 768
! width="5%" | Aros 64bit 800 x 600
! width="5%" | Aros 64bit 640 x 480
|-
| NV50 Asus EN8400GS SILENT/P/512M PCIe (G98) || || || || || ||
|-
| Gigabyte 8500GT 256M || 42,6 || 57,2 || 68,6 || || ||
|-
| NV96 (G96) Geforce 9500GT 512M || 43 || 53 || 57 || || ||
|-
| NV96 (G96) 9600GT || || || || || ||
|-
| NVA3 (GT215) GT240 || || || || || ||
|-
| NVA5 (GT216) Palit GT220 Sonic 512M || 39,7 || 55,8 || 63,7 || || ||
|-
| NVA8 (GT218) gt210 || || || || || ||
|-
| NVA8 (GT218) ION2 || || || || || ||
|-
| NVC3 (GF106) GT440 GTS 450 || || || || || ||
|-
| NVCF (GF116) NVC0 Fermi GTX 550Ti or GTS 450 v2 || || || || || ||
|-
| NVC8 (GF110) 580GTX || || || || || ||
|-
| NVE0 Kepler GT630 || || || || || ||
|-
| NVE6 (GK106) Kepler GTX660 || || || || || ||
|-
| NV110 Maxwell GTX 750 || || || || || ||
|-
| NV126 (GM206) GTX950 upwards no reclocking || N/A || N/A || N/A || poor || poor || poor
|-
| NV160 family (Turing) GTX 1650 and RTX 2000 upwards with GSP firmware || N/A || N/A || N/A || unknown || unknown || unknown
|-
| HostGL Ryzen 5 4600H - Nvidia 1650 - Linux mint 21.1 || N/A || N/A || N/A || 150fps || 154fps || 155fps
|-
| NVA8 (GT218) || || || || || ||
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| width="5%" | Graphic Card
| width="5%" | Aros 32bit 1024 x 768
| width="5%" | Aros 32bit 800 x 600
| width="5%" | Aros 32bit 640 x 480
| width="5%" | Aros 64bit 1024 x 768
| width="5%" | Aros 64bit 800 x 600
| width="5%" | Aros 64bit 640 x 480
|}
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|-
| <!--Description-->tnt1 (nv04) tnt2 (nv05) m64 value (1998)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|very slow}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| NV04 Riva TNT TNT2 Fahrenheit freezes on via motherboard chipset so rename agp.hidd in SYS:Devs/Drivers or Monitors
|-
| <!--Description-->tnt vanta lt (nv06) 1998 /9
| 0x10de
| 0x002c
| 0x15
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|slow}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| <!--Description-->Geforce 256 (nv10) (2000)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|slow }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| untested Geforce256
|-
| <!--Description-->Geforce 2 Geforce 3 Geforce 4 (nv20) 2000 / 2
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|slow }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| works for some PCI and AGP Geforce2 Geforce3 Geforce4
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| Geforce FX5200 nv34 (2003)
| 0x10DE
| 0x0322 0x
| 0xA1
| <!--2D-->{{Maybe| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->{{Maybe|VGA15 }}
| <!--Digital-->{{Maybe|DVI}}
| <!--Laptop LCD-->{{N/A}}
| NV30 GeForce 5 FX Rankine Hardware OpenGL 1.5 - slower than GF MX 4000 for 2D - max 1024 x768
* not working [https://eab.abime.net/showthread.php?t=92328&page=8 mobos with VIA chipsets 2018]
* working (MSI 0x9174) the previous nouveau 5.x driver
* Others work with 6.x series XFX PV-T34K-NA, ASUS V9520-X/TD
|-
| Geforce FX5500 (nv34) (2003)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{Maybe| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| works
|-
| Geforce 5100 (NV34)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce FX 5200LE (NV34)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5200 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce FX5600 (nv31) (2004)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Maybe| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| works
|-
| GeForce FX 5600 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5600SE
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5600XT
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce FX5700 (nv36) (2004)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes|some}}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{Maybe| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5700VE
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5700 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5700LE
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5800 (NV30)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5800 Ultra (NV30)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900 (NV35)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900XT
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900ZT
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5950 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce 5xxx
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
|
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| Geforce 6200 (nv44) (2005)
| 0x
| 0x00F3 0x014F
| 0x0
| <!--2D-->{{Yes|5.28 Pixel Text}}
| <!--3D-->{{Maybe| use 5.28}}
| <!--Analogue-->{{Yes|VGA15 and s-video - plain 4pin cable lead will work with 7pin}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| NV40 GeForce 6 GeForce 7 Curie AGP Hardware OpenGL 2.1 needing previous 5.x version as regression arose 2011-10
|-
| Geforce 6200 (nv44a) (2006)
| 0x
| 0x0221
| 0x0
| <!--2D-->{{Yes|5.28 Pixel Text }}
| <!--3D-->{{Yes|}}
| <!--Analogue-->{{Yes|VGA15}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| Hardware OpenGL 2.1, PCI version tested OK in 2014-01-02 - Icaros 1.5.2
* not working
*working
|-
| GeForce 6200 with Turbo Cache (NV43)
| 0x
| 0x0161
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce 6200SE with Turbo Cache (NV44)
| 0x
| 0x0162
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce 6200 LE
| 0x10de
| 0x0163
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| PCI-E
|-
| GeForce 6600 LE
| 0x
| 0x00F4 0x0142
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6600
| 0x
| 0x00F2 0x0141
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| 2006 PureVideo HD 1 or VP1 re-used the MPEG-1/MPEG-2 decoding pipeline from FX
|-
| Geforce 6600gt (nv4x) (2005)
| 0x
| 0x00F1 0x0140
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Yes| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| OpenGL tests -
|-
| Geforce 6800 (nv40) (2005)
| 0x
| 0x0041 0x00C1 0x00F0 0x0211
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Yes| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 XE (NV4x)
| 0x
| 0x0043
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 LE
| 0x
| 0x0042 0x00C2 0x0212
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 GT (quadro fx 1400)
| 0x
| 0x0045 0x0046 0x0215
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 6800 GS
| 0x
| 0x0047 0x00C0 0x00F6
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 GTS NV40
| 0x
| 0x0040 0x0F9
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 6800XT
| 0x
| 0x0044 0x0048 0x00C3 0x0218
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6600 VE
| 0x
| 0x0143
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6500 NV44
| 0x
| 0x0160
| 0x0
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6250
| 0x
| 0x0169
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 6xxx
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GeForce 7800 GTX
| 0x
| 0x0090 0x0091
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| tunnel gearbox cube cube2 25}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> 256MB DDR3 - 1 6pin psu connector -
* not working asus en7800gtx/2dhtv/256m/osp/a -
* Works XFX PV-T70F-UDD7 Works in steve jones' scrap pc aros build 2010 2 DVI-I ports
* Untested
|-
| GeForce 7800 GT
| 0x
| 0x0092
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7600gt (G8 ) (nv4 ) (2006)
| 0x
| 0x02E0 0x0391
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL 2.1
* not working
* working
|-
| GeForce 7800 SLI
| 0x
| 0x0095
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GTX
| 0x
| 0x0290
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GT GTO
| 0x
| 0x0291
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GS
| 0x10de
| 0x0292
| 0x0a1
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working
* Works with a few glitches with XFX Pine 0x2218
|-
| GeForce 7950 GX2
| 0x10de
| 0x0293 0x0294
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| GeForce 7950 GT
| 0x
| 0x0295 0x02E4
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GS
| 0x
| 0x02E3
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7600 GS
| 0x
| 0x02E1 0x0392
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7650 GS
| 0x
| 0x0390
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7600 LE
| 0x
| 0x0394
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7800GS (G8 ) (nv4 ) (2006)
| 0x
| 0x0093 0x00F5
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working
* works if AGP motherboard chipset is supported - Hardware OpenGL 2.1
|-
| GeForce 7100 GS
| 0x
| 0x016A
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7350 LE
| 0x
| 0x01D0
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7300le (G8 ) (nv4 ) (2006)
| 0x
| 0x01D1
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7300SE 7200GSGF-7200GS-N-B1 variant (G72)
| 0x10de
| 0x01D3
| 0x0a1
| <!--2D-->
| <!--3D-->
| <!--Analogue-->{{Unk|1x DVI, 1x VGA, 1x S-Video}}
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2007 40W pci-e 1.0 VP1 no unified shaders -
* not working Asus on via chipset (2015),
* works Asus on intel chipset (2015),
|-
| Geforce 7300gt (G8 ) (nv4 ) (2006)
| 0x
| 0x0395 0x0393
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working
* works
|-
| GeForce 7300 GS
| 0x
| 0x01DF
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7500 LE
| 0x
| 0x01DD
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7xxx
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GeForce 8800 Ultra (NV50 family)
| 0x
| 0x0194
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NV50 GeForce 8 to GeForce 200s opengl 3.x - max res - 80nm technology - PureVideo HD 2 or VP2 Nvidia VDPAU Feature Set A (absent from ultra and some 8800gt?) added a dedicated bitstream processor (BSP) and enhanced video processor for H.264, VC-1 acceleration
|-
| Geforce 8800gts (nv50) (G8x) (2007)
| 0x
| 0x0400 0x0600 0x0193
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2007 200w openGL3 openCL - 2x6pin psu
* not working 0x0193 models (2015) on via chipsets,
* works
|-
| Geforce 8800gtx (nv5 ) (G8x) (2007)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2008 200W 1x 6pin connector,
* not working
* working
* untested XFX PV-T88P-YDF4, Alpha Dog Edition runs extremely hot - Gigabyte GV-NX88T512H,
|-
| GeForce 8800 GT
| 0x
| 0x0602 0x0611 0x0193
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->DVI up to 2500 x 1600
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - 6pin psu power connector required
* not working
* untested Asus EN8800GT/HTDP/256M EN8800GT/HTDP/512M EN8800GT/G/HTDP/512M
* works
|-
| GeForce 8800 GT (G92)
| 0x10de
| 0x0611
| 0x0a2
| <!--2D-->{{Yes|6.11 Pixel Text}}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{N/A}}
| <!--Digital-->{{Yes}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3 pci-e 2.0 8800GT 512MB on Icaros 2.0.3 [[File:8800GT aros heads.png|thumb|8800GT]] [[File:8800GT aros tails.png|thumb|8800GT detail]]
|-
| Geforce 8600gt (nv5 ) (G8x) (2007)
| 0x
| 0x0401 0x0402
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res
* not working
* works
|-
| GeForce 8500 GT
| 0x
| 0x0421
| 0x0
| <!--2D-->{{Yes| some color }}
| <!--3D-->{{yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL tests - max opengl 3.x but 2.1 offered - max res
* not working
* works Gigabyte 8500 GT,
|-
| GeForce 8800 GS
| 0x
| 0x0606 0x060D
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res
|-
| GeForce 8600GS
| 0x
| 0x0403
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 3.x VP3 offers complete hardware-decoding for all 3 video codecs of the Blu-ray Disc format: MPEG-2, VC-1, and H.264 - Nvidia VDPAU Feature Set B
|-
| GeForce 8300 GS
| 0x
| 0x0423
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res
|-
| Geforce 8400gs G98GS (end 2007) GT218 (2009)
* Rev2 with 8/16 cores and 128-512MB of DDR2 or GDDR3 memory.
* Rev3 with 8 cores and 512MB-1GB of DDR3 memory (based on Tesla 2.0)
| 0x
| 0x0424 0x0422
| 0x0
| <!--2D-->{{Yes|Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 490 gearbox 505 Cube 135 Cube2 55 quake3 }}
| <!--Analogue-->{{Yes|works digital part of DVI but nothing from any display port}}
| <!--Digital-->{{Yes|output on digital 24 pin array of DDWG's DVI and hdmi}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 50W openGL 3.1 openCL - case single slot - one single-link DVI digital output, supporting up to one 1920x1080 resolution display - analog resolution 640 x 480 to 1024 x 768 16 and 24 bit color - [http://www.phoronix.com/scan.php?page=article&item=nouveau_comp_2011&num=19 runs a little hotter than expected] - G98 VP3 pci-e 2.0 512MB DDR2 -
* not working
* works Asus EN8400GS SILENT/P/512M PCIe (G98),
|-
| Geforce 8400gs (nv50) (G86) (mid-2007)
* Rev1 with 16 cores / 256MB of DDR2 memory.
| 0x
| 0x0404
| 0x0
| <!--2D-->{{Yes|Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 490 gearbox 505 Cube 135 Cube2 55 quake3 }}
| <!--Analogue-->{{Yes|works but not tested thru 4 pins of analog signal of DVI plug}}
| <!--Digital-->{{Yes|output on digital 24 pin array of DDWG's DVI and hdmi}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2008 50W openGL 3.1 openCL - case single slot - one single-link DVI digital output up to 1920x1080 resolution display - analog resolution 640 x 480 to 1024 x 768 16 and 24 bit color - [http://www.phoronix.com/scan.php?page=article&item=nouveau_comp_2011&num=19 runs a little hotter than expected] - G86 VP2 128MB -
* not working XFX PV-T86S-YAJG NVIDIA GeForce 8400 GS 512MB DDR2, Sparkle 8400GS 512MB SX84GS512D2L-DPP,
* works Asus EN8400GS SILENT/HTP/256M SILENT/HTP/512M/A,
|-
| GeForce 8400 SE
| 0x
| 0x0420
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 2.x openCL
|-
| NVidia Quadro NVS290 DMS-59
| 0x
| 0x0403
| 0x0
| <!--2D-->{{no| }}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk|DMS-59 socket}}
| <!--Digital-->{{unk|DMS-59 }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2008 21W - G86S (G86-827-A2) - 16 shading units, 8 texture mapping units, and 4 ROPs. NVIDIA has paired 256 MB DDR2 - PCIe 1.0 x16 Low Profile -
|-
| Geforce Quadro FX 4600 (SDI), 5600
| 0x
| 0x
| 0x0
| <!--2D-->{{Partial|VESA 2d}}
| <!--3D-->{{no| }}
| <!--Analogue-->{{partial| }}
| <!--Digital-->{{partial| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GeForce 9800 GX2 (NV50 family)
| 0x
| 0x0604
| 0x0
| <!--2D-->{{Partial|VESA }}
| <!--3D-->{{no| }}
| <!--Analogue-->{{Partial| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 150w - 65nm technology
|-
| GeForce 9800 GTX
| 0x10de
| 0x0612
| 0x0a2
| <!--2D-->{{Yes| }}
| <!--3D-->{{Maybe|6.11 }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 2x6pin psu -
* not working xfx on via chipset (2015),
* works xfx on chipset intel ,
|-
| GeForce 9800 GTX+
| 0x10de
| 0x0613
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res 2560 x 1920 - case dual slot - 26amp 12v rail on computer psu if 2x6pin connectors needed - 55nm version of the G92 chip - will not work with PCI-e 1.0a slots -
* not working
* works on a few models
|-
| Geforce 9800gt (nv50) (G92a) (2008)
| 0x10de
| 0x0614
| 0x0xa2
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel 495 gearbox 513 Cube 156 Cube2 120 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{partial| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL 3.1 openCL 1.x - case dual slot - 600w 26amp on both 12v rails for 2x6pin psu on gfx card - no fan control - some come with 1x6pin - renamed version of the venerable GeForce 8800 GT - randomly works
* not working Gainward 512M untested
* working Gainward CardExpert (0x0401) Green Edition NE39800TFHD02-PM8D92 1024MB (no 6pin)
|-
| Geforce gf9600 9600gt (nv5 ) (G9x) (2008)
| 0x10de
| 0x0622
| 0x0a1
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel 493 gearbox 675 Cube Cube2 100 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL 3.2 openCL but no fan control - case dual slot - 1 6pin pcie psu connector - 500 Watt or greater power supply with a minimum of 26 Amp on the +12 volt rail - Max Analog: 2048x1536 and Max Digital: 2560x1600 (Dual Link DVI Only) - PCI Express® 2.0 / 1.1 Support - g96 gpu randomly works -
* not working bfg tech ocx,
* works gigabyte gv-n96tsl-512i -
|-
| Geforce gf9500 9500gt (nv5 ) (G9x) (2008)
| 0x10de
| 0x0640
| 0x0a1
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel 480 gearbox 500 Cube Cube2 64 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.2 - case single slot - 350 Watt/400 Watt or greater power supply with a minimum of 18 Amp/22 Amp on the +12 volt rail - Max Analog: 2048x1536 and Max Digital: 2560x1600 (Dual Link DVI Only) - PCI Express® 2.0 / 1.1 Support -
* not working zotac zone fanless, Gainward USA NE29500THHD01-PM8796, PNY G9500GN2E50X+0TE,
* works xfx xne-9500t-td01-pm8596 1024mb ddr2,
|-
| GeForce 9600 GS
| 0x
| 0x0623
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res - will not work with PCI-e 1.0a slots -
* not working
* works
|-
| GeForce 9600 GSO
| 0x
| 0x0610
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res - G92 chopped down - 9600GSO is re-badged 8800GS both very power hungry cards -
|-
| GeForce 9300 GS
| 0x
| 0x06E1
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 opengl 3.x - max res
|-
| Geforce 9400 GT (nv5 ) (G86S) (2008)
| 0x
| 0x
| 0x0
| <!--2D-->{{partial|}}
| <!--3D-->{{unk|}}
| <!--Analogue-->{{unk|1x DVI, 1x VGA, 1x S-Video}}
| <!--Digital-->{{unk|1x DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 50W opengl 3.x - max res
|-
| Geforce 9xxx (nv5 ) (G9x) (2008)
| 0x
| 0x
| 0x0
| <!--2D-->{{unk|}}
| <!--3D-->{{unk|}}
| <!--Analogue-->{{unk|}}
| <!--Digital-->{{unk|}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 opengl 3.x - max res
|-
| <!--Description-->
NV84 (G84) GeForce 8600 (GT, GTS, M GT, M GS), 8700M GT,
NV92 (G92) GeForce 8800 (GT, GS, GTS 512, M GTS, M GTX)
GeForce 9600 GSO, 9800 (GT, GTX, GTX+, GX2, M GT, M GTX)
NV96 (G96) GeForce 9400 GT, 9500 (GT, M G), 9600 (M GS, M GT),
NV86 (G86) GeForce 8300 GS, 8400 (GS, M G, M GS, M GT), 8500 GT
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NVA0 (GT200) GeForce GTX (260, 275, 280, 285, 295)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->GeForce GTX 280 (NV50 family)
| <!--Vendor ID-->
| <!--Product ID-->0x05E1
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res PureVideo HD 4 (Nvidia Feature Set C or "VDPAU Feature Set C), VP4 added hardware to offload MPEG-4 Advanced Simple Profile (original DivX and Xvid)
|-
| <!--Description-->GeForce GTX 260
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x05E2
| <!--Revision-->
| <!--2D-->{{partial|Vesa}}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> 2 6pin - psu pci express 2.1 -
|-
| Geforce GTS250 250GTS (g92b) (2009)
| 0x10de
| 0x0615
| 0x0a2
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 486 gearbox 508-642 Cube Cube2 80 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> 2x6pin psu VP2 - pci-e 2.x - case dual slots - 738m 1gb ddr3 -
* not working Zotac branded version GDDR3 -
* works PNY gs-250x-zdfl and Gigabyte ??, BFG Tech RGTS2501024OCE, palit ne3ts250fhd52-pm8a92 with 2x6pin on top and hdmi output port,
|-
| <!--Description-->GeForce GT 240 (GT215 family)
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0ca3
| <!--Revision-->0xa2
| <!--2D-->{{Maybe|use VESA}}
| <!--3D-->{{No|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->late 2009 openGl 3.2 - case dual slots - no 6pin psu required with VP4 - All are pcie 2.1 cards and may not work in 1.0a slots -
* not working
* DDR3 with 512MB or 1GB -
* DDR5 -Asus ENGT240 - XFX Pine GT240XYHFC 0x3001 - Gigabyte GV-N240D5-512I rev 1.0 - Zotac AMP! with HDMI 1.3a with DisplayPort 1.1, Dual Link DVI -
* works
|-
| <!--Description-->GT220 (GT216) G220
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0a20
| <!--Revision-->0xa2
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Yes}}
| <!--Digital-->{{Yes|DVI }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> Icaros 2.0.3 GeForce GT220 1GB[[File:GT220 aros heads.png|thumb|GT220]][[File:GT220 aros tails.png|thumb|GT220]]
* untested NVIDIA Quadro® 400 512MB DDR3 GT216 DP DVI, AFox AF220 1Gb DDR3,
|-
| Geforce GT220 220GT G94 Tesla (g92b)
| 0x10de
| 0x0a20
| 0xa2
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 490 gearbox 505 cube 150 cube2 50 Quake3 }}
| <!--Analogue-->{{Unk|1x DVI, 1x VGA}}
| <!--Digital-->{{Yes|DVI but not 1x HDMI }}
| <!--Laptop LCD-->{{N/A}}
| 58W pci express 2.0 cards DDR3 - case single slot -
* not working ASUS ENGT220/DI/1GD2(LP)/V2 -
* works - gainward card expert 0x0401 GDDr3 512MB -
|-
| <!--Description-->GT210 GT 210 210GT G210 based on Tesla 2.0 GT218S GT218-300-A2 variant, GT218-300-B1
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0a65
| <!--Revision-->0xa2
| <!--2D-->{{Yes|6.11 Pixel Text}}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{Unk|1x DVI, 1x VGA}}
| <!--Digital-->{{Maybe|DVI out works but not hdmi or 1x DisplayPort}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 31W OpenGL 3.3 pci-e 2.0 cards - single slot -
* working GT218 based Asus EN210 based silent low profile large passively cooled -
* untested MSI GeForce 210 1GB DDR3 PCIe N210-MD1GD3H/LP,
* not working
|-
| <!--Description-->Quadro NVS 295 (256 MB GDDR3), NVS 450 (256M/512 MB DDR3)
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x
| <!--Revision-->
| <!--2D-->{{yes| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->
| <!--Digital-->{{partial|2 or 4 dp ports}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 25w low performance - G98s with 8 shading units, 4 texture mapping units, and 4 ROPs on PCI-Express 1.0 x16 -
*not working some NVIDIA Quadro NVS 295 2 dp ports (DELL, HP),
*working
|-
| <!--Description-->GT310 Tesla 310, 315, GT 320, GT 330 GT 340
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{Maybe|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2010 50w OpenGL 3.3 openCL all similar in performance to GT2xx except gt31x (poor)
|-
| <!--Description-->Quadro NVS310 NVIDIA NVS 310
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital--> 2 dp
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2012 25w GF119S (GF119-825-A1) 48 shading units, 8 texture mapping units, and 4 ROPs on PCI-Express 2.0 x16 - 512 MB DDR3 - PureVideo VP5 VDPAU Feature Set D -
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description--> GTX 470, GTX 480 GF10 GF10* core (NVC0 family)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{Maybe| tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2010 215w 2x6 plugs - NVC0 family (Fermi) GF100 (GF100-275-A3) Fermi 448 shading units, 56 texture mapping units, and 40 ROPs with 1,280 MB GDDR5 - OpenGL4.5 OpenCL1.1 Tessellation - case dual slots -
|-
| Geforce GTX460 460GTX (G104) 256bit, 1GB v2 192bit and GTX 465
| 0x10de
| 0x0e22
| 0xa1
| <!--2D-->{{Maybe|VESA }}
| <!--3D-->{{Maybe| tunnel gearbox cube 055-111 cube2 50}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVC0 family (Fermi) OpenGL 4.x but - 2x6pin psu - case dual slots -
* not working evga 768MB GDDR5 192bit 01G-P3-1373-ER or 01G-P3-1372-TR
* works 1GB GDDR5 256bit 01G-P3-1371-ER
|-
| <!--Description-->Geforce GTX 460SE 192bit
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0e23
| <!--Revision-->0x91 or 0xa1
| <!--2D-->{{Yes| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->{{Yes| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> nouveau 6.11 - 2 6pin psu needed - case dual slots -
* not working
* works EVGA 01g-p3-1366-b6 et 1024MB p1041 -
|-
| Geforce GT450 GTS450 450GTS GF106
| 0x10de
| 0x0dc4
| 0x0a1
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel gearbox cube cube2 50 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes|DVI }}
| <!--Laptop LCD-->{{N/A}}
| 2010 Hardware OpenGL 4.2 but nouveau at 3.3 - most need 1x 6pin psu - case dual slots -
* not working
* DDR3 1 or 2GB - Palit NEAS450NHD41F,
* GDDR5 512Mb or 1GB - MSI MPN N450GTSM2D1GD5OC, Asus MPN ENGTS450DI1GD5,
* works Gainward Card Expert NE5S4500FHd51,
|-
| <!--Description-->GT 440 GF108 chipset or better OEM GF106
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 6.11 Pixel Text}}
| <!--3D-->{{Maybe| tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGl 4.1 opencl 1.x - no 6 pin psu - 96 cuda cores 128bit - case dual slots -
* not working
* OEM
* GDDR5 512MB to 1GB ASUSTeK ENGT440/DI/1GD5
* GDDR3 Asus 1gb to 2gb,
* works
|-
| <!--Description-->GT430 430GT (GF108)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|6.11 Pixel Text}}
| <!--3D-->{{Maybe|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->ddr3 memory 64bit or 128bit - buggy await new revision of driver
* not working
* works
|-
| <!--Description-->nVidia Quadro FX1800 768MB GDDR3 Full Height Graphics Card Workstation
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 6.11 Pixel Text}}
| <!--3D-->{{no|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->{{Maybe|DVI-I 2xDP}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->59W 768 MB GDDR3 memory using a 192-bit memory interface - OpenGL 3.3 -
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GTX 590 Fermi
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->OpenGL4.4 OpenCL 1.1 - GDDR5 - 6pin and 8pin psu connectors - 512 cuda - case dual slots -
* not working
* works
|-
| <!--Description-->GTX 580,
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->PureVideo HD 5" or "VP5" (Nvidia Feature Set D or VDPAU Feature Set D) 4k UHD 3840 × 2160 H.264 decode -
|-
| <!--Description-->GTX 570,
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{Maybe|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working Zotac GTX 570, Gainward GTX560TI/570 Phantom,
* works gigabyte, evga
|-
| <!--Description-->Geforce 5xx 560gtx Fermi GTX 560,
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->opengl 4.x - 2 6pin psu - 384 cuda cores - case dual slots - will not work with PCI-e 1.0a slots -
* not working Asus ENGTX560 DC/2DI/1GD5,
* Ti LE 448 cuda GDDR5 320bit
* Ti 256bit
* works
|-
| <!--Description-->GTX 560 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working evga GTX 560Ti 01GP31560KR - Gainward GTX560TI/570 Phantom,
* works
|-
| <!--Description-->GTX 550 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x1201
| <!--Revision-->
| <!--2D-->{{Maybe|VESA Doom Doom2 Duke }}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->can hang on boot up on I2C Init or suffer random lockups on OpenGL apps - most need 1 6pin min 400W 24A on the +12V1 / +12V2 dual 12V rails of the computers' power supply unit - 192 cuda cores - case dual slots used - will not work with PCI-e 1.0a slots -
* not working eVGA GeForce GTX 550 Ti (1024 MB) (01GP31556KR) -
* untested asus Extreme, eVGA GeForce GTX 550 Ti (1024 MB) (01GP31557KR) - -
* works
|-
| <!--Description-->GT 545 and OEM GF116
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 4.2 opencl 1.x - GDDR5 with OEM only -
|-
| <!--Description-->GT530 OEM
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 6.11 Pixel Text}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->96 cuda cores - 1GB or 2GB DDR3 128bit
|-
| <!--Description-->GT520 520GT
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->untested 48 cuda cores - DDR3 64bit
|-
| <!--Description-->510, GT 530
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D 6.11 Pixel Text}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> ddr 3 - 50w max -
|-
| <!--Description-->GT610 Fermi GF119
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVS 315 300 GF119S
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{No|VESA}} needs special dms-59 cable
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 fermi 315 PNY VCNVS315-T 1Gb DDR3 but needs special dms-59 cable -
|-
| <!--Description-->GT630 GF108 Fermi
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->not accelerated 2015 - like the GT730 below - 96 cuda cores whilst kepler version has 384 - 128bit to keplers' 64bit bandwidth - kepler has 2GB DDR3
* not working Gigabyte
* DDR3
* GDDR5
* works
|-
| <!--Description-->Geforce GT 730
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe| use VESA 6.11 Pixel Text}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> fermi version has 96 cuda cores 128bit GF108
* not working Asus
* works
|-
| <!--Description-->nVIDIA Quadro 4000
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}} 2 dp ports
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->142W 2Gb GDDR5 - PCI Express 2.0 x16 ; full Height card with 1x 6-Pin PCIe power need - CUDA Cores 256 - OpenGL 4.5
|-
| <!--Description-->nVIDIA Quadro 5000
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2011 200W 2.5Gb GDDR5 320 bit - PCI Express 2.0 x16 full Height card with 2x 6-Pin PCIe power need -
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce GTX Titan GeForce GTX Titan Black GeForce GTX Titan Z
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVE0 family (Kepler) GeForce 600 GeForce 700 GeForce GTX Titan Kepler
|-
| <!--Description-->GeForce GTX 780 GeForce GTX 780 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->PureVideo HD 6" or "VP6" (Nvidia Feature Set E or VDPAU Feature Set E) significantly improved performance when decoding H.264 and MPEG-2
|-
| <!--Description-->GeForce GTX 770
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->opengl 4.4 opencl 1.1
|-
| <!--Description-->GeForce GTX 760 GeForce GTX 760 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce GT 740
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce GT 730 Kepler
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> two versions fermi 96 cores 128bit GF108 and kepler 384 cores 64bit GK208
|-
| <!--Description-->680gtx GK104 core gtx680 680m
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVE0 family (Kepler)
|-
| <!--Description-->GTX 690 Kepler NVE0
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->pci-e 3.0, OpenGL 4.4 OpenCL 1.1
|-
| <!--Description-->GTX 670
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GTX 660 GTX 660 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GTX 650 GTX 650 Ti GTX 650 Ti Boost
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVE0 family (Kepler) most need 1 6pin psu
* not working asus ENGTX560 DC/2DI/1GD5
* works
|-
| <!--Description-->Geforce GT 640
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* 128bit DDR3
* 192bit DDR3 1.5 to 3GB 50W
* 128bit GDDR5 75W
|-
| <!--Description-->GT 620 GT 640
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce 750ti, GeForce 900
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->[https://nouveau.freedesktop.org/FeatureMatrix.html NV110] Maxwell -
|-
| <!--Description-->Nvidia GTX 750
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x1381
| <!--Revision-->0xa2
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->2026 nvidia test
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->GM206 2nd gen maxwell PureVideo HD 7" or "VP7" (Nvidia Feature Set F or VDPAU Feature Set F) adds full hardware-decode of H.265 HEVC Version 1 (Main and Main 10 profiles and full fixed function VP9 (video codec) hardware decoding
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Quadro K620 quadro p620 2gb gddr5 128bit and quadro p1000 4gb gt1030 30w
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 50w slim low profile -
|-
| <!--Description-->GeForce gtx 1060, GeForce 1070
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NV130 Pascal
|-
| <!--Description-->gtx 1050ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->NV130 family (Pascal)
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV132 (GP102) NVIDIA Titan (X, Xp), GeForce GTX 1080 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV134 (GP104) GeForce GTX (1070, 1080)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV136 (GP106) GeForce GTX 1060
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV137 (GP107) GeForce GTX (1050, 1050 Ti)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV138 (GP108) GeForce GT 1030
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NV162 (TU102) NVIDIA Titan RTX, GeForce RTX 2080 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV164 (TU104) GeForce RTX (2070 Super, 2080, 2080 Super)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2020 NV160 family (Turing) unified gsp-rm firmware - best starting point for Vulkan support
|-
| <!--Description-->NV166 (TU106) GeForce RTX (2060, 2060 Super, 2070)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV168 (TU116) GeForce GTX (1650 Super, 1660, 1660 Ti, 1660 Super)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV167 (TU117) GeForce GTX 1650
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->gtx 1650ti super
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2018 old style
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NV172 (GA102) GeForce RTX (3080, 3090)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 av1 decoding ampere
|-
| <!--Description-->NV174 (GA104) GeForce RTX (3060 Ti, 3070, 3080 Mobile)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->NV170 family (Ampere)
|-
| <!--Description-->NV176 (GA106) GeForce RTX (3050, 3060)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV177 (GA107) GeForce RTX 3050
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NV192 (AD102) GeForce RTX 4090
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV193 (AD103) GeForce RTX 4080
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->NV190 family (Ada Lovelace)
|-
| <!--Description-->NV194 (AD104) GeForce RTX (4070, 4070 Ti)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV196 (AD106) GeForce RTX 4060 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV197 (AD107) GeForce RTX 4060
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
|}
==== nouveau mobile integrated ====
If you purchased a notebook with an NVidia sticker on it, most of the time you have a optimus based one, ie Intel CPU+GPU melded with Nvidia GPU, Optimus was slated at one point to go into desktop PCs but the industry ended up rejecting that concept
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|-
| GeForce 6100 nForce 405
| 0x
| 0x03D1 0x0242
| 0x0
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
|
|-
| <!--Description-->GeForce 6100 nForce 400
| <!--Vendor ID-->
| <!--Product ID-->0x03D2
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce 6100 nForce 420
| <!--Vendor ID-->
| <!--Product ID-->0x03D5
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce 6150 LE
| <!--Vendor ID-->
| <!--Product ID-->0x0241
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6150SE nForce 430
| 0x
| 0x03D0
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| working
|-
| <!--Description-->GeForce 6150
| <!--Vendor ID-->
| <!--Product ID-->0x0240
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7150M / nForce 630M
| <!--Vendor ID-->
| <!--Product ID-->0x0531
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7000M / nForce 610M
| <!--Vendor ID-->
| <!--Product ID-->0x0533
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7050 PV / NVIDIA nForce 630a
| <!--Vendor ID-->
| <!--Product ID-->0x053A 0x053B
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Geforce IGP 7025 nForce 630a
| 0x
| 0x053E
| 0x0
| <!--2D-->{{Yes|some}}
| <!--3D-->{{Yes|some}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No| }}
| some support on some chipsets
|-
| GeForce 7100 / nForce 630i (C73)
| 0x10de
| 0x07e1
| 0x0a2
| <!--2D-->{{Maybe}}
| <!--3D-->{{Maybe}}
| <!--Analogue-->{{Maybe}}
| <!--Digital-->{{Maybe}}
| <!--Laptop LCD-->{{N/A}}
| Icaros 2.0.3 and Gigabyte 73-pvm-s2h rev. 1.0 but will not boot on [https://ae.amigalife.org/index.php?topic=806.msg8765#new Acer x270 with Icaros 2.3]
|-
| <!--Description-->GeForce 7150 / NVIDIA nForce 630i
| <!--Vendor ID-->
| <!--Product ID-->0x07E0
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7050 / NVIDIA nForce 610i
| <!--Vendor ID-->
| <!--Product ID-->0x07E3
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Geforce IGP 8100 (nForce 720a)
| 0x
| 0x084F
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
|
|-
| GeForce 8100P
| 0x
| 0x0847
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
|
|-
| <!--Description-->Geforce 8200 8300 nForce 730a
| <!--Vendor ID-->
| <!--Product ID-->0x084A 0x0848 (GeForce 8300) 0x0849 (GeForce 8200) 0x084B (GeForce 8200)
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->working on some 8300's with Icaros 1.5 but others untested
|-
| <!--Description-->nForce 780a SLI
| <!--Vendor ID-->
| <!--Product ID-->0x084C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->nForce 750a SLI
| <!--Vendor ID-->
| <!--Product ID-->0x084D
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Nvidia Geforce IGP 9300 (nForce MCP7a)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->works
|
|-
| <!--Description-->9400 (ION)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->If AROS detects GPU chipset, works well
|-
| <!--Description-->9700M ()
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Geforce ION 2
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->works well
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce Go 6150
| <!--Vendor ID-->
| <!--Product ID-->0x0244
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6100
| <!--Vendor ID-->
| <!--Product ID-->0x0247
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6200
| <!--Vendor ID-->
| <!--Product ID-->0x0164 0x0167
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6400
| <!--Vendor ID-->
| <!--Product ID-->0x0166 0x0168
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->Sony Laptop
|-
| <!--Description-->GeForce Go 6800
| <!--Vendor ID-->
| <!--Product ID-->0x00C8
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6800 Ultra
| <!--Vendor ID-->
| <!--Product ID-->0x00C9
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600
| <!--Vendor ID-->
| <!--Product ID-->0x0144
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600 TE/6200 TE
| <!--Vendor ID-->
| <!--Product ID-->0x0146
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600
| <!--Vendor ID-->
| <!--Product ID-->0x0148
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600 GT
| <!--Vendor ID-->
| <!--Product ID-->0x0149
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7200
| <!--Vendor ID-->
| <!--Product ID-->0x01D6
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7300
| <!--Vendor ID-->
| <!--Product ID-->0x01D7
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->untested
|-
| <!--Description-->GeForce Go 7400
| <!--Vendor ID-->
| <!--Product ID-->0x01D8
| <!--Revision-->
| <!--2D-->
| <!--3D-->works 2D and 3d issues though
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7800
| <!--Vendor ID-->
| <!--Product ID-->0x098
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7800 GTX
| <!--Vendor ID-->
| <!--Product ID-->0x0099
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7950 GTX
| <!--Vendor ID-->
| <!--Product ID-->0x0297
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7900 GS
| <!--Vendor ID-->
| <!--Product ID-->0x0298
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7900 GTX
| <!--Vendor ID-->
| <!--Product ID-->0x0299
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7600
| <!--Vendor ID-->
| <!--Product ID-->0x0398
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7600 GT
| <!--Vendor ID-->
| <!--Product ID-->0x0399
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 6610 XL
| <!--Vendor ID-->
| <!--Product ID-->0x0145
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 6700 XL
| <!--Vendor ID-->
| <!--Product ID-->0x0147
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce 8700M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0409
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8600M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0425
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8400M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0426
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8400M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0427
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8400M G
| <!--Vendor ID-->
| <!--Product ID-->0x0428
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8800M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x0609
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8800M GTX
| <!--Vendor ID-->
| <!--Product ID-->0x060C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9500M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0405
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8600M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0407
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9650M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0408
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9400M GT
| <!--Vendor ID-->
| <!--Product ID-->0x042C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9300M G
| <!--Vendor ID-->
| <!--Product ID-->0x042E
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9100M G
| <!--Vendor ID-->
| <!--Product ID-->0x0844
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9800M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x0628
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9700M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x062A
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9800M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x062C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9600M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0647
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9600M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0648
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9600M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0649
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9500M G
| <!--Vendor ID-->
| <!--Product ID-->0x064B
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9300M GS
| <!--Vendor ID-->
| <!--Product ID-->0x06E5
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9200M GS
| <!--Vendor ID-->
| <!--Product ID-->0x06E8
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9300M GS
| <!--Vendor ID-->
| <!--Product ID-->0x06E8
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->NV50 (G80) Quadro FX (4600 (SDI), 5600)
Quadro FX (2800M, 3600M, 3700, 3700M, 3800M, 4700 X2), VX 200
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV94 (G94) 9700M GTS, 9800M GTS, GeForce G 110M, GT 130(M), GT 140, Quadro FX (1800, 2700M)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV84 (G84) 8700M GT, GeForce 9500M GS, 9650M GS
Quadro FX (370, 570, 570M, 1600M, 1700), NVS 320M
NV86 (G86) GeForce 8300 GS, 8400 (GS, M G, M GS, M GT), 8500 GT, GeForce 9300M G
Quadro FX 360M, NVS (130M, 135M, 140M, 290)
GeForce GTS 150(M), GTS 160M, GTS 240, GTS 250, GTX (260M, 280M, 285M), GT (330, 340)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV96 (G96) 9650M GT, 9700M GT
GeForce G 102M, GT 120
Quadro FX (380, 580, 770M, 1700M)
NV98 (G98) GeForce 8400 GS, GeForce 9200M GS, 9300 (GE, GS, M GS)
GeForce G 100, G 105M
Quadro FX (370 LP, 370M), NVS (150M, 160M, 295, 420, 450)
Quadro CX, FX (3800, 4800, 5800)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVA3 (GT215) GeForce GT (240, 320, 335M), GTS (250M, 260M, 350M, 360M) Quadro FX 1800M
NVA5 (GT216) GeForce GT (220, 230M, 240M, 325M, 330M), 315
Quadro 400, FX 880M, NVS 5100M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVA8 (GT218) GeForce 8400 GS, ION 2, GeForce 205, 210, G 210M, 305M, 310(M), 405
Quadro FX (380 LP, 380M), NVS (300, 2100M, 3100M)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVAA (MCP77/MCP78) GeForce 8100, 8200, 8300 mGPU / nForce 700a series, 8200M G
NVAC (MCP79/MCP7A) ION, GeForce 9300, 9400 mGPU / nForce 700i series, 8200M G, 9100M, 9400M (G)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVAF (MCP89) GeForce 320M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GT 605M, GT 610M GT 620M GT 630M GT 635M GT 645M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GTX 650M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GTX 1650 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2019 turing architecture - last old skool support pre Vulkan
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rtx 2050 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 ampere architecture best starting point for vulkan support
|-
| <!--Description-->rtx 2060 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rtx 4060 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
|}
====radeon.hidd====
Michel Shultz ''2D'' graphics driver (standard on most distributions but only for very old GPUs) and bearsofts updated 2013 around Icaros 1.3.1
3D is not implemented by AROS yet but could cover these AMD chipsets
<pre>
2014 SI AMD HD 7xxx
2016 GCN3rd AMD R5E R7E
2019 GCN5th AMD Vega 8
2022 RDNA1 AMD RX5500 desktop only
2023 RDNA2 AMD 680M 780M
2024 RDNA3 AMD 880M 890M
2025 RDNA3.5 AMD 8060S strix halo and AI
2027 RDNA4 AMD
</pre>
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! 2D
! 3D
! Analogue Output
! Digital Output
! Laptop LCD
! Comments
|-
| 7000 (r100)
| 0x1002
| 0x5159
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->{{Maybe|vga15 pin connection but not s-video}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.3
|-
| 7500 (rv200 but still r100 based)
| 0x1002
| 0x5157
| 0x
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->{{Yes|vga15}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.3
|-
| 8000 8500 (r200)
| 0x1002
| 0x514c (8500LE)
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.4
|-
| 9000 9100 9250 (r200)
| 0x1002
| 0x5964 (9000) 0x514d (9100)
| 0x0001
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->{{Maybe|VGA15 but not s-video}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.4
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| 9600 9800 (r300)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1
|-
| x300 x600 (r300)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1
|-
| x700, x800 ([http://en.wikipedia.org/wiki/Radeon_R600 r420])
| 0x
| 0x554d (R430 x800xl)
| 0x0
| <!--2D-->{{Yes|new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1 - x800 XL PCIE (problem with mouse-pointer, some part of the pointer is not transparent)
|-
| x1300 x1550 x1600 x1800 x1900 x1950 ([http://en.wikipedia.org/wiki/Radeon_R520 r520])
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes|new driver}}
| <!--3D-->{{no}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| HD2400 HD2600 HD2900 ([http://en.wikipedia.org/wiki/Radeon_R600 r600])
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|some features with new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 3.3 open CL 1.2 TeraScale architecture
|-
| HD3400 HD3600 HD3800 (r600)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|some features with new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->pci-e 2.0, openGL 3.3
|-
| HD4300 HD4500 HD4600 HD4700 HD4800 ([http://en.wikipedia.org/wiki/Radeon_R600 r700])
| 0x1002
| 0x
| 0x0
| <!--2D-->{{Maybe|but some later cards need 3D engine for faster and more flexible 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 3.3 - DDR3 - GDDR5 was one of AMD's aces for the 4800 series - 4670 liked -
|-
| HD6900 cayman series
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|some features with new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 3.3 open CL not mature (2014) -
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| HD5400 Series HD5430 HD5450 HD5470
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2010 openGL 3.3 openCL - GDDR3 -
|-
| HD5500 Series HD5550 HD5570 HD5600 Series HD5650 HD5670 HD5700 Series HD5750 HD5770
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 3.3 openCL - GDDR5
|-
| HD 5800 Series HD5850 HD5870 HD5900 Series HD5950 HD5970 - HD6xxx not NI chipset ([http://en.wikipedia.org/wiki/Evergreen_(GPU_family) r800 evergreen])
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 openGL 3.3 openCL - DDR5 pci-e 2.1 best avoided for all pci-e 1.0 mobos - Ati TeraScale2 architecture -
|-
| HD6450 [http://en.wikipedia.org/wiki/Northern_Islands_(GPU_family) Northern Islands chipset]
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> - DDR3 -
|-
| HD6600 Series HD6650 HD6570 HD6600 Series HD6650 HD6670
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2011 - DDR5 -
Radeon HD 8470 11 TeraScale 2
Radeon HD 8350 11 TeraScale 2
Radeon HD 7510 11 TeraScale 2
Radeon HD 6550D 11 TeraScale 2
Radeon HD 6530D 11 TeraScale 2
Radeon HD 6410D 11 TeraScale 2
Radeon HD 6370D 11 TeraScale 2
Radeon HD 6320 11 TeraScale 2
Radeon HD 6310 11 TeraScale 2
Radeon HD 6290 11 TeraScale 2
Radeon HD 6250 11 TeraScale 2
|-
| HD6800 Series HD6850 HD6870 HD6700 Series HD6790 to HD6990
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2011 - DDR5 - AMD TeraScale3 -
|-
| <!--Description-->HD7450-HD7670
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2012 OpenGL but not Vulkan
Radeon HD 7660D 11 TeraScale 3
Radeon HD 7560D 11 TeraScale 3
Radeon HD 7540D 11 TeraScale 3
Radeon HD 7480D 11 TeraScale 3
Radeon HD 6930 11 TeraScale 3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->HD7750 HD 7770 / R7 250X HD7850 HD7870 / R9 270X HD 7950 / R9 280 HD 7970 / R9 280X [http://en.wikipedia.org/wiki/Southern_Islands_(GPU_family) Southern Islands]
*AMD Radeon R7 250XE Cape Verde XT
*AMD Radeon R7 M465X Cape Verde
*AMD Radeon R9 255 Cape Verde PRX
*AMD Radeon HD 7750 Cape Verde PRO
*AMD Radeon R7 250E Cape Verde PRO
*AMD Radeon HD 8740 Cape Verde PRO
*AMD Radeon HD 7730 Cape Verde LE
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2012 pci-e 3.0 1st Gen GCN architecture -
|-
| <!--Description-->R5 430, FirePro W2100,
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2015 50W+ openGL openCL 1/3 speed of gtx750ti 1st gen gcn1
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->HD7790 [ Sea Islands ]
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 openGL 4.1 open CL - GCN2.0 Vulkan 1.0 introduced a Shader Engine (SE) comprising one geometry processor, up to 44 CUs (Hawaii chip), rasterizers, ROPs, and L1 cache and Graphics Command Processor for faster audio/video - suits Vulkan 1.1
|-
| <!--Description-->r5 240 240x (slow) R7 250 250x (faster) HD 7790 / R7 260 260X / R7 360 to R5 350 (fast) and last one R5 430 OEM Plus (slow again)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 50W+ openGL 4.x openCL 1.x Vulkan 1.0 GCN 1st gen -
|-
| <!--Description-->R9 290 / R9 390 R9 290X / R9 390X
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2014 openGL 4.x openCL 1.x 2nd Gen GCN Vulkan 1.1 architecture -
|-
| <!--Description-->R9 Fury Nano
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2015
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->r-200 series r8 275 285 295 375 [Volcanic Islands]
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 4.x openCL 1.x - GCN3 Vulkan 1.2
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Radeon™ RX 5700/5600/5500 Series and Radeon™ RX Vega Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 GCN 4 - OpenGL 4, Vulkan 1.3 -
|-
| <!--Description-->Radeon™ RX 400/500 Series like rx 580
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->Radeon™ Pro WX 9100, x200 Series and Radeon™ Pro W5700/W5500 Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Radeon™ RX 7900/7600 Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->Radeon™ RX 6900/6800/6700/6600/6500 Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|}
==== amd radeon mobile integrated ====
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|-
| <!--Description-->ATI RC410 [Radeon Xpress 200M]
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x5a62 0x5955 0x5974 (200m)
| <!--Revision-->0x00
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->
|-
| <!--Description-->Mobility Radeon 7500
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x4c57 (7500)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->
|-
| <!--Description-->Mobility Radeon 9000
| 0x1002
| 0x4966 (9000)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->
|-
| <!--Description-->Mobility Radeon 9500 9550 (rv360) 9600 (rv350)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon 9800 (rv420)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon X300 (RV370) X600 (RV380)
| 0x1002
| 0x (RV370) 0x5657 (RV380)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon X700 (RV410) X800 (RV423)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon X1200 (RS69M0)
| 0x1002
| 0x791f
| 0x0
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->X1200 IGP (RS690)
|-
| <!--Description-->Mobility Radeon X1300 X1350 X1400(rv515) X1600 (rv530) X1650 (RV535) X1800 (rv520) x1900 (rv570)
| 0x1002
| 0x71c7 (X1650)
| 0x009e
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon 2100
| 0x1002
| 0x796e (2100)
| 0x0
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{No|}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 2400 (rv610) HD2600 (rv630)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 3100 HD3200 HD3450 3470 (RS780MC RV620) 3670 (M86-XT RV635) HD3870 (M88-LXT RV670)
| 0x1002
| 0x9610 and 0x9612 (HD3200) 0x9614 (HD3300)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 4200 4250 (RV620)
| 0x1002
| 0x (HD4200) 0x9715 (HD4250)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 4330 4530 4550 (M92 RV710) 4650 (M96-XT RV730) 4670 RV730XT 4830 (M97 RV740) 4850 (M98 RV770)
| 0x1002
| 0x (HD4350) 0x9442 (RV770) 0x9490 (HD4670)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 530v (M92 RV710) HD 550v (M96 RV730)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->no support yet
|-
| <!--Description-->Mobility Radeon HD 5430 HD5650 (cedar Park LP)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->no support yet
|-
| <!--Description-->Radeon HD 6250 6290 6310 6320 6350M (Redwood Capilano PRO)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->no support yet
|-
| <!--Description-->AMD 7640G, 8450G, 8550G, 8650G Northern Islands
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 Last real support for old graphics standard before Vulkan takeover
|-
| <!--Description-->R5 M230 M240 M255 - R7 M260 M265 (Kaveri Crystal series with Mantle and HSA)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->2015 Maybe better with Vulkan
|-
| <!--Description-->R5E R7E
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->2016 bristol ridge GCN 3.0 IGP (Carrizo Mobile)
|-
| <!--Description-->AMD Vega 3, 6, 8, 11 iGP
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2018 raven ridge GCN 5th Gen
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->5500m 5600m 5800m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA1 NaviX1 Zen 2
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rx680m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA2 NaviX2 Zen 3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->phoenix apu 1103
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 RDNA3 NaviX3 zen 4
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
==== AMDGPU Vulkan desktop ====
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Kaveri 290 290X, 260 260X
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2015 AMDGPU Vulkan
|-
| <!--Description-->R9 285 / R9 380 R9 380X Fury / Fury X
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->opengl 4 opencl 1 3rd Gen GCN architecture
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX470 RX460 RX480 RX580 polaris10
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 opengl 4 opencl 2 4th Gen GCN architecture vulkan 1.3
|-
| <!--Description-->RX460 RX560D polaris11
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 opengl 4 opencl 2 4th Gen GCN architecture vulkan 1.3
|-
| <!--Description-->RX580 polaris20
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 opengl 4 opencl 2 4th Gen GCN architecture vulkan 1.3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX 5000 5500 Navi 1x
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RNDA 1
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX 6000 Navi 2x
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RNDA 2 Mesa 21.3 decode av1
|-
| <!--Description-->RX6000
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX 7000
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 RNDA 3 navi
|-
| <!--Description-->RX7000
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->RX9070 rx 9060 XT
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2025 rdna4 navi
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2026 udna (aka rdna5)
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
|}
==== AMDGPU Vulkan mobile ====
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->R5E R7E
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->2016 bristol ridge GCN 3.0 IGP (Carrizo Mobile)
|-
| <!--Description-->Vega iGP 3, 6, 8, 11
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2018 raven ridge - Graphics Core Next (GCN) 5th gen -
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->5500m 5600m 5800m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA1 NaviX1 Zen 2
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rx680m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA2 NaviX2 Zen 3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->phoenix apu 1103
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA3 NaviX3 zen 4
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
fyi if a notebooks with two graphic cards, the integrated Intel card (id 0x7d) for low power usage and a discrete Radeon card (id 0x56) which should be used for GPU-intensive applications. By default the Intel card is always used
[https://wiki.archlinux.org/title/ATI Gallium Radeon HD] is not ported yet but is [https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.9-AMDGPU-Stats really big] and complex so another solution may have to be [https://discuss.haiku-os.org/t/the-graphics-acceleration-can-of-worms/10515/5 found] like [https://discuss.haiku-os.org/t/vulkan-lavapipe-software-rendering-is-working-on-haiku/11363/10 vulkan] where support starts from very recent ISA GCN islands HD7000s cards only
*Vulkan
*Gallium
Vulkan software renderer allows to prepares the infrastructure for hardware rendering. Primary difference between software and hardware renderer is output to regular RAM vs GPU RAM, the rest is almost the same. It is possible to render to GPU RAM offscreen.
bare bones basics data flow
application,>>> api/opengl/vulkan>>>>, jit compiler, >>>>memory manger, >>>>gpu hardware
so you need to have a compiler that takes your api call/program/shaders/drawing commands and turns them into a program the gpu can render.
the vulkan to amd gpu compiler for shaders and textures is nearly os agnostic iirc as long as you have solid posix compliance
Unlike OpenGL, Vulkan does not depend on windowing system and it have driver add-on system with standardized API (Mesa also have OpenGL driver add-ons, but it have non-standard Mesa-specific API). OpenGL may need more work for windowing system related code at this point but developing Vulkan on real hardware is more strategic than developing OpenGL, since now Zink 3 running on Vulkan compensates for the lack of OpenGL support by giving performance similar to native accelerated OpenGL
RadeonGfx use client-server model with client-server thread pairs. For each client thread that calls 3D acceleration API, server side thread is created. If client thread terminates, server side thread also exit.
==Rough gfx comparison==
<pre>
Group 1
GeForce RTX 5090 5070 5060 5050
GeForce RTX 4090 4070 4060 4050
Group 2
GeForce RTX 2070
Radeon RX 7600
Quadro RTX 5000
Radeon PRO W6600
GeForce RTX 2060 12GB
Radeon PRO W7500
Quadro GP100
Radeon RX 6800S
GeForce RTX 3070 Laptop GPU
GeForce GTX 1080
GeForce RTX 3060 8GB
Quadro RTX 4000
Radeon Pro W5700
Radeon RX 6600
GeForce RTX 2080 (Mobile)
Radeon RX 7700S
Radeon RX 6700S
Radeon RX 6600S
Quadro RTX 5000 (Mobile)
GeForce GTX 1070 Ti
GeForce RTX 4050 Laptop GPU
Radeon Pro Vega 64X
Radeon RX 5700
Radeon RX Vega 64
GeForce RTX 2060
GeForce RTX 2070 Super with Max-Q Design
Group 3
Radeon RX 6600M
GeForce GTX 1070
Radeon RX 6650M
GeForce RTX 3060 Laptop GPU
Radeon RX Vega 56
Radeon RX 6700M
GeForce RTX 2080 with Max-Q Design
Radeon RX 6800M
GeForce GTX 980 Ti
Radeon R9 Fury
GeForce GTX 980
Quadro M5500
Radeon R9 390X
Radeon RX 580
Radeon RX 5500
Radeon RX 6550M
GeForce GTX 1660 Ti with Max-Q Design
GeForce GTX 780 Ti
GeForce GTX 970
Radeon R9 290X
Radeon RX 480
Radeon RX 5600M
Quadro RTX 3000 with Max-Q Design
Radeon R9 290X / 390X
Ryzen 5 4600HS with Radeon Graphics
Radeon R9 290
Radeon Pro 5500 XT
Radeon R9 M490 *
GeForce GTX 780
Radeon RX 6500M
Quadro M5500
GeForce GTX 1060 with Max-Q Design
Radeon RX 6500
Radeon RX 5300
Intel Arc A770M
GeForce GTX 1650 Ti
Radeon Pro 580X
Radeon RX 6400
GeForce RTX 2050
Ryzen 9 4900HS with Radeon Graphics
Radeon Ryzen 9 6900HS
GeForce GTX 980M
Quadro M5000M
Radeon RX 6300
GeForce GTX 1650 Ti with Max-Q Design
Radeon Pro 570
Ryzen 9 6900HS with Radeon Graphics
GeForce GTX 1050 Ti
Quadro M4000M
Radeon R9 280X 380X
GeForce GTX 1650 with Max-Q Design
GeForce MX570
Radeon R9 280X
Radeon R9 380
Radeon 780M
GeForce GTX 960
GeForce GTX 970M
Quadro M4000M *
GeForce GTX 680
Group 4
Radeon RX 6500M
Quadro M5500
Radeon Pro WX 7100
GeForce GTX 1060 with Max-Q Design
GeForce GTX 1650
Intel Arc A730M
Radeon HD 7970
Radeon R9 M395X
Radeon R9 M485X
Radeon R9 M480 *
Radeon R9 M295X
Radeon R9 M390X *
FirePro W7170M *
Radeon R9 M395
Radeon R7 370
Radeon RX 5500M
GeForce GTX 590
GeForce GTX 880M
GeForce GTX 950
Radeon R9 270X
GeForce GTX 660 Ti
GeForce GTX 760
GeForce GTX 780M
Quadro K5100M
GeForce GTX 680MX
Radeon HD 7870
GeForce GTX 965M
Quadro M3000M *
GeForce GTX 870M
Radeon R9 M290X
Radeon HD 8970M
Radeon Ryzen 7 7735U (680M), Radeon Ryzen 7 7735HS (680M 12C)
GeForce GTX 580
Radeon HD 6970
GeForce GTX 1050
GeForce GTX 680M
GeForce GTX 775M
GeForce GTX 1630
FirePro M6100
Radeon HD 7970M
Radeon R9 M390 *
GeForce GTX 750 Ti
Group 5
GeForce GTX 570
GeForce GTX 480
GeForce GTX 960M
Quadro M2000M *
Quadro K5000M
Quadro K4100M
GeForce GTX 770M
GeForce GTX 860M
GeForce GTX 675MX
GeForce GTX 950M
GeForce GTX 850M
Quadro M1000M
Radeon R9 M280X
Radeon HD 7950M *
GeForce GTX 560 Ti
Radeon HD 6870
GeForce GTX 470
GeForce GT 1030
GeForce MX330
Ryzen 5 PRO 5650GE with Radeon Graphics
Ryzen 7 5800HS
FirePro 3D V8800
GeForce MX250
Group 6
Radeon Pro WX 3200
Ryzen 7 PRO 5750G with Radeon Graphics
Radeon Ryzen 5 5600H
Ryzen 5 Pro 4650G with Radeon Graphics
Radeon Ryzen 7 5800U
Ryzen 7 7730U with Radeon Graphics
Radeon Ryzen 7 5825U
Radeon Pro WX 4150
Radeon Ryzen 5 PRO 4655G
Ryzen 5 4600G with Radeon Graphics
Radeon Ryzen 5 PRO 4655GE
GeForce GTX 485M
FirePro W6150M
Ryzen 7 5800U with Radeon Graphics
Ryzen 5 7530U with Radeon Graphics
Ryzen 7 4800U with Radeon Graphics
Radeon R9 M470
Ryzen 3 PRO 5350G with Radeon Graphics
Radeon RX Vega Ryzen 3 5300U
Ryzen 7 5825U with Radeon Graphics
Ryzen 5 PRO 4400G with Radeon Graphics
Radeon Ryzen 7 PRO 4750GE
Radeon Ryzen 7 4800U
FirePro V7900
Radeon HD 5970
Radeon Ryzen 7 7700X 8-Core
Radeon Ryzen 5 PRO 5650G
Radeon Ryzen 5 4400G
Radeon Ryzen 5 PRO 5650GE
Radeon RX 550X
FirePro V8800
Radeon RX Vega Ryzen 5 5500U
GeForce MX150
Quadro K3100M
Ryzen 7 PRO 5850U with Radeon Graphics
Radeon HD 6970M
Radeon R7 250X
Intel HD 5600
Ryzen 3 4300GE with Radeon Graphics
GeForce GTX 460
Ryzen 7 5700U with Radeon Graphics
Radeon Ryzen 5 7530U
Quadro K620
Ryzen 3 PRO 5350GE with Radeon Graphics
Intel Iris Pro P580
Intel UHD Graphics P630
Ryzen 5 4600H with Radeon Graphics
Ryzen 5 PRO 7530U with Radeon Graphics
Radeon HD 5870
Radeon HD 6870
Ryzen 7 4700G with Radeon Graphics
Ryzen 5 5600U with Radeon Graphics
Radeon HD 7770
Ryzen 3 Pro 4350G with Radeon Graphics
Radeon Ryzen 5 5625U
GeForce GTX 745
Radeon Ryzen 7 4850U Mobile
Radeon Ryzen 3 PRO 7330U
Quadro M600M
Radeon Ryzen 5 5500U
Ryzen 5 5560U with Radeon Graphics
Ryzen 7 4800H with Radeon Graphics
Group 7
GeForce 945M
Ryzen 5 PRO 4650GE with Radeon Graphics
FirePro M5100
Radeon Ryzen 5 5600U
Radeon Ryzen 5 PRO 4500U
GeForce GTX 580M
Ryzen 7 PRO 5875U with Radeon Graphics
Ryzen 3 5300GE with Radeon Graphics
Radeon R9 M385
Quadro 5000M
Radeon Ryzen 7 4700U
Ryzen 5 PRO 5650U with Radeon Graphics
Radeon Ryzen 7 PRO 4750U
Ryzen 7 4700U with Radeon Graphics
Ryzen 7 PRO 4750U with Radeon Graphics
FirePro V7800
Radeon R9 350
Ryzen 3 4300G with Radeon Graphics
Radeon Vega 11 Ryzen 5 PRO 3350G
Radeon Ryzen 5 5560U
GeForce GTX 460 SE
Radeon Pro W5500M
Radeon Vega 11 Ryzen 5 PRO 3400G
Ryzen 5 5500U with Radeon Graphics
Ryzen 5 PRO 4500U with Radeon Graphics
GeForce GT 645
GeForce GTX 765M
Radeon R9 M385X
Ryzen 5 5625U with Radeon Graphics
Ryzen 3 PRO 7330U with Radeon Graphics
Radeon HD 5850
Radeon Vega 11 Ryzen 5 PRO 2400G
Intel Iris Pro 580
Radeon HD 6850
Intel Iris Xe MAX
Radeon Ryzen 7 PRO 5875U
Radeon Ryzen 5 7600 6-Core
GeForce GTX 470M
Ryzen 3 5300G with Radeon Graphics
GeForce GTX 670MX
Radeon RX 640
Qualcomm Adreno Gen 3
Radeon R7 450
GeForce GTX 675M
Radeon Pro WX 4130
Intel Iris Xe MAX 100
Quadro 5000
Radeon RX 570X
Radeon HD 7700-serie
Ryzen 5 4600U with Radeon Graphics
Ryzen 3 PRO 4350GE with Radeon Graphics
Radeon Vega 8
Group 8
GeForce MX230
GeForce GTX 765M
Quadro K4000M
Iris Pro Graphics P580 *
Iris Pro Graphics 580 *
GeForce GTX 645
Quadro M520
GeForce GTX 570M
GeForce MX130
Radeon RX 540
Radeon Ryzen 5 PRO 5675U
Intel UHD Graphics 770
Radeon RX Vega 11 Ryzen 7 3750H
Radeon Vega 11 Ryzen 5 PRO 3400GE
Radeon HD 5850
GeForce GTX 675M
GeForce GTX 580M
Radeon HD 6990M
Radeon R9 M385X *
Radeon R9 M470X *
Radeon R9 M470 *
Radeon R9 M385 *
Radeon R9 M380 *
Radeon R9 M370X
Radeon R9 M275
Radeon HD 7770
GeForce GTX 485M
GeForce GTX 460 768MB
Radeon HD 6790
GeForce GTX 285M SLI
Quadro K3100M
FirePro W5170M *
GeForce GTX 670MX
Quadro 5010M
GeForce GTX 760M
GeForce GTX 670M
Group 9
GeForce 940MX *
Maxwell GPU (940M, GDDR5)
FirePro M8900
Radeon HD 6970M
Radeon R9 M270
Radeon HD 8870M
Radeon HD 7870M
Quadro K3000M
GeForce GTX 570M
FirePro M6000
FirePro M5100
Quadro K2100M
Radeon HD 5770
GeForce GTX 550 Ti
GeForce GTX 280M SLI
Radeon HD 6950M
Radeon R7 250
GeForce GT 755M
GeForce GTX 660M
GeForce 845M
Radeon HD 8850M
Radeon R9 M365X
Radeon R9 M265X
Ryzen 5 PRO 4400GE with Radeon Graphics
FirePro W5130M *
Radeon Vega 8 Ryzen 5 3500U
Radeon HD 7850M
Radeon HD 8790M
FirePro W4170M
FirePro W4190M
FirePro W4100
Radeon Vega 6 Ryzen 3 3300U
Quadro 4000M
GeForce GTX 470M
GeForce GTX 480M
GeForce GT 750M
Iris Pro Graphics 6200
Quadro K1100M
GeForce 940M
Radeon R9 M375
GeForce 930MX *
Radeon R7 M380 *
Radeon R7 M370
Quadro M600M *
GeForce GT 650M
Quadro K620M
GeForce 840M
Radeon R7 M275DX
GeForce GT 745M
Radeon HD 7770M
GeForce GTX 560M
Radeon R7
Iris Pro Graphics 5200
GeForce GT 740M
GeForce 930M
Radeon HD 4850
Group 10
Iris Graphics 550 *
GeForce 830M
Iris Graphics 540
Quadro M500M *
Quadro K2000M
GeForce GTS 450
GeForce GTX 260M SLI
GeForce GT 735M
Mobility Radeon HD 5870
GeForce 825M
Quadro 5000M
FirePro M4000
FirePro M7820
Radeon HD 6870M
GeForce 9800M GTX SLI
Radeon HD 8830M *
Radeon HD 8770M
Radeon R7 M260X
GeForce GTX 460M
GeForce 920MX *
GeForce GT 730M
Radeon HD 7750M
GeForce GT 645M *
FirePro M4100
Radeon HD 8750M
Radeon R6 A10-9600P 4C+6G
Quadro 3000M
Radeon R7 M270
Radeon R7 M265
Quadro FX 3800M
GeForce GTX 285M
Mobility Radeon HD 4870
GeForce GT 640M
Radeon R7 (Kaveri)
Radeon R8 M365DX
Radeon R7 M460 *
Radeon HD 7730M
Radeon R7 M360
GeForce GTX 280M
Radeon HD 8690M
Quadro FX 3700M
Radeon R7 M340
GeForce 920M
Radeon R6 M340DX
HD Graphics 530
HD Graphics P530
Tegra X1 Maxwell GPU
Radeon R7 M260
Radeon R6
Group 11
Mobility Radeon HD 4860
FirePro M7740
Mobility Radeon HD 4850
GeForce GTX 260M
GeForce 9800M GTX
Quadro FX 2800M
Radeon HD 8670D
Radeon HD 7690M XT
FirePro M5950
GeForce GT 640M LE
Radeon R6 (Kaveri)
Radeon HD 8650M *
Radeon HD 8730M
Radeon HD 6770M
GeForce GT 635M
GeForce GT 555M
Radeon R7 A10 PRO-7800B
Radeon HD 5670
Mobility Radeon HD 5850
Radeon HD 6850M
Quadro 2000M
GeForce 9800M GT
GeForce 8800M GTX
Quadro FX 3600M
GeForce GT 445M
GeForce GTS 360M
Group 12
GeForce GT 240
Radeon R7 PRO A10-9700
Radeon HD 7690M
HD Graphics 5600
Radeon HD 8570D
Radeon HD 8670M
Radeon R6 M255DX
Radeon HD 7660D
Radeon HD 6750M
Quadro K1000M
GeForce GT 550M
Radeon HD 8590M *
GeForce GTS 260M
GeForce GTS 160M
GeForce 9800M GTS
GeForce GT 430
Radeon HD 6830M
Mobility Radeon HD 5830
Radeon HD 6730M *
GeForce 9800M GS
Mobility Radeon HD 4830
Mobility Radeon HD 5770
Radeon HD 6570M
Radeon HD 8650G
Radeon HD 7670M
GeForce GT 630M
Radeon HD 7560D
GeForce GTS 150M *
Radeon R5 M335
Radeon R5 M430 *
Radeon R5 M330
Radeon R5 M255
Radeon Vega 3
Quadro 1000M
GeForce 820M
FirePro W2100
HD Graphics 520 620
Iris Graphics 6100
GeForce GT 720M
GeForce 8800M GTS
Radeon R5 M240
Radeon R5 M320 *
Radeon R5 M230
Radeon R5 M315 *
Mobility Radeon HD 5750 *
Radeon HD 8570M
Radeon R7 PRO A10-8850B
HD Graphics 6000
Quadro K610M
Radeon HD 8550M
Iris Graphics 5100
GeForce GT 540M
Mali-T880 MP12 *
Radeon HD 8610G *
Radeon HD 6650M
HD Graphics 4600
Mobility Radeon HD 5730
HD Graphics 5500
Radeon R5 (Carrizo) *
Radeon R5 (Kaveri)
FirePro M5800
NVS 5400M
GeForce 710M
Radeon HD 7660G
GeForce GT 435M
HD Graphics 5000
Quadro K510M *
Radeon HD 5570
Radeon HD 6550M
Radeon HD 7590M *
GeForce GTS 350M
GeForce GTS 250M
Radeon HD 6630M
Radeon HD 7650M
FirePro M2000
Radeon HD 7570M
Radeon HD 7630M
Quadro FX 1800M
Mobility Radeon HD 5650
Radeon HD 8510G *
Radeon HD 6530M
Radeon HD 8550G
Quadro K500M *
GeForce GT 625M *
GeForce GT 620M
GeForce GT 525M
Radeon HD 6550D *
Radeon HD 7610M
Radeon HD 7620G
Radeon HD 8470D
Radeon HD 7640G
Adreno 530
GeForce ULP K1 (Tegra K1 Kepler GPU)
HD Graphics 4400
HD Graphics 510 515 *
NVS 5200M
Mobility Radeon HD 565v
Radeon HD 7550M
Mobility Radeon HD 4670
GeForce GT 425M
GeForce 9700M GTS
Radeon HD 6645G2 *
Quadro FX 2700M
GeForce GT 335M
Radeon HD 7600G
Mobility Radeon HD 3870
Mobility Radeon HD 4650
GeForce GT 220
GeForce GT 420M
Radeon HD 7530M *
Mobility Radeon HD 3850
GeForce GT 330M
Quadro FX 880M
Quadro NVS 5100M
GeForce GT 240M
Radeon HD 7490M *
HD Graphics 5300
Radeon HD 7510M *
GeForce Go 7950 GTX
Quadro FX 3500M
GeForce 8700M GT SLI
GeForce 9700M GT
GeForce GT 230M
Mobility Radeon HD 550v
Radeon HD 7480D
HD Graphics 4000
Mali-T760 MP8
Radeon HD 6620G
HD Graphics (Broadwell) *
Adreno 430
Radeon R5 (Beema/Carrizo-L)
Radeon R4 (Beema) (Kaveri)
HD Graphics (Skylake) *
Radeon HD 6450 GDDR5
Radeon HD 7500G
Radeon HD 8450G
Radeon HD 7470M
Radeon HD 6490M
Radeon HD 8400
Mali-T880 MP4
GeForce GT 520MX
Radeon HD 7520G
GeForce GT 325M
GeForce Go 7800 GTX SLI
GeForce 8600M GT SLI
GeForce Go 7900 GS SLI
GeForce GT 130M
NVS 4200M
GeForce Go 7900 GTX
Quadro FX 2500M
Radeon HD 8350G
Radeon HD 8330
GeForce 9650M GS
GeForce 9650M GT
Radeon R3 (Mullins/Beema)
GeForce 8700M GT
Quadro FX 1700M
Quadro FX 1600M
GeForce Go 7800 GTX
GeForce Go 7900 GS
Quadro NVS 320M
Quadro FX 1500M
GeForce 9600M GT
GeForce GT 220M
Quadro FX 770M
GeForce GT 120M
Radeon HD 7450M
GeForce 610M
GeForce 705M
Mali-T760 MP6
Radeon HD 6470M
FirePro M3900 *
GeForce GT 520M
Radeon HD 7420G
Mobility Radeon HD 3670
Mobility FireGL V5725
PowerVR GX6450
Adreno 420
HD Graphics (Haswell)
Radeon HD 6520G
Radeon HD 8310G *
GeForce 320M
GeForce GT 320M
Mobility Radeon HD 2600 XT
Mobility Radeon X1900
Mobility Radeon X1800XT
Mobility Radeon X1800
GeForce Go 6800 Ultra
GeForce Go 7800
GeForce 9600M GS
GeForce 9500M GS
Radeon HD 7400G
Radeon HD 6480G *
Mobility Radeon HD 2700
GeForce GT 415M
GeForce 410M
Radeon HD 7370M
Adreno 418
HD Graphics (Cherry Trail)
Radeon HD 6370M
Radeon HD 8280
Mobility Radeon HD 5470
Radeon HD 6450M
Radeon HD 7430M *
Mobility Radeon HD 3650
Mobility FireGL V5700
Mobility Radeon HD 5145
Mobility Radeon HD 545v
Radeon R6 (Mullins) *
Radeon HD 8240
Radeon HD 8250
Mobility Radeon HD 4570
Quadro FX 570M
Mobility Radeon HD 5450 *
Radeon R2 (Mullins/Beema) *
GeForce 8600M GT
Mobility Radeon HD 2600
HD Graphics 3000
Quadro FX 380M
GeForce 310M
GeForce G210M
NVS 3100M
GeForce 405M
GeForce 315M
GeForce Go 7600 GT
GeForce 9500M G
GeForce 8600M GS
NVS 2100M
GeForce Go 7700
GeForce Go 6800
Quadro FX Go 1400
Mobility Radeon X800XT
Radeon HD 6430M *
Radeon HD 6380G *
Mobility Radeon HD 5430
Radeon HD 8210
Mobility Radeon HD 540v
Mobility Radeon HD 4550
HD Graphics 2500
HD Graphics (Ivy Bridge)
Quadro NVS 310
Radeon HD 7350M *
Radeon HD 6350M *
Mobility Radeon HD 4530
Mobility Radeon HD 4350
Radeon HD 4350
GeForce 305M
Mobility Radeon X1700
Mobility FireGL V5250
Mobility Radeon X2500
GeForce Go 7600
Quadro NVS 300M
Mobility Radeon X800
Mobility Radeon X1600
Mobility FireGL V5200
Mobility Radeon 9800
GeForce Go 6600
Mobility Radeon X1450
Mobility Radeon X700
Mobility FireGL V5000
GeForce G 110M
Quadro NVS 295
Radeon HD 6330M *
Mobility Radeon HD 4330
GeForce 8400M GT
Quadro NVS 140M
HD Graphics 2000
GeForce 9500M GE *
GeForce 9400M (G) / ION (LE)
HD Graphics (Sandy Bridge) *
Adreno 330
PowerVR G6430
PowerVR GX6250
PowerVR G6400
HD Graphics (Bay Trail)
Mali-T628 MP6
Mali-T760 MP4
Chrome9HD *
Radeon HD 7340
Radeon HD 6320 *
Radeon HD 7310
Radeon HD 6310 *
Radeon HD 8180
Mobility Radeon HD 3470
GeForce 9300M G
ION 2 *
GeForce 9300M GS
Quadro FX 370M
Quadro NVS 160M
GeForce 9200M GS
Mobility Radeon HD 3450
Mobility Radeon HD 3430
Mobility Radeon HD 3410
Mobility Radeon HD 2400 XT
Radeon HD 4270
Radeon HD 4250
Radeon HD 7290 *
Radeon HD 6290 *
Radeon HD 4200
Graphics Media Accelerator (GMA) HD Graphics
Radeon HD 6250
Quadro NVS 150M
Quadro FX 360M
Mobility Radeon X1350
Mobility Radeon X1400
GeForce 9100M G
GeForce 8400M GS
Quadro NVS 135M
Mobility Radeon HD 2400
Radeon HD 3200
Radeon HD 4225 *
Radeon HD 4100 *
SGX554MP4
Mali-T628 MP4
Mobility Radeon HD 3400 *
Radeon HD 3100
GeForce 8400M G
Mali-T860 MP2
Quadro NVS 130M
GeForce 8200M G
Graphics Media Accelerator (GMA) 4700MHD
Graphics Media Accelerator (GMA) 4500MHD
Graphics Media Accelerator (GMA) 4500M
Mali-T604 MP4
GeForce Go 7400
Quadro FX 350M
Quadro NVS 120M
GeForce Go 7300
GeForce Tegra 4 *
PowerVR G6200
Adreno 405 *
Quadro NVS 110M
Mobility Radeon X600
Mobility FireGL V3200
Mobility FireGL V3100
Mobility Radeon HD X2300
Mobility Radeon 9700
Mobility FireGL T2e
Mobility Radeon X1300
GeForce4 4200 Go
Mobility Radeon 9600
Mobility FireGL T2
Mobility Radeon 9550
GeForce Go 7200
GeForce Go 6400
Mobility Radeon X300
GeForce Go 6250
GeForce Go 6200
GeForce FX Go 5700
Quadro FX Go 1000
GeForce FX Go 5600 / 5650
Radeon Xpress X1270
Radeon Xpress X1250
Radeon Xpress X1200
Graphics Media Accelerator (GMA) X3100
Mali-T624
Adreno 320 *
Mali-T760 MP2
Mali-T720 MP4
Mali-450 MP4
Graphics Media Accelerator (GMA) 3650 *
GeForce 7190M *
GeForce 7150M
Radeon Xpress 1150
GeForce Go 6150
GeForce Go 6100
GeForce 7000M
Graphics Media Accelerator (GMA) 3600 *
Mobility Radeon 9200
Mobility FireGL 9000
GeForce FX Go 5200
Mobility Radeon 9000
GeForce 4 488 Go
GeForce 4 460 Go
GeForce 4 440 Go
GeForce 4 420 Go
Graphics Media Accelerator (GMA) 3150
Graphics Media Accelerator (GMA) 950
SGX545 SGX544MP2 SGX543MP2 *
Mali-T720 MP2
Mali-T720
Adreno 302 304 305 306
Mobility Radeon 7500
Mobility FireGL 7800
Graphics Media Accelerator (GMA) 900
Radeon Xpress 200M
Radeon Xpress 1100
Mirage 3+ 672MX
Mirage 3 671MX
Mali-400 MP4 *
GeForce ULP (Tegra 3) *
VideoCore-IV *
Adreno 220 225*
Vivante GC1000+ Dual-Core
Mali-400 MP2 *
GeForce ULP (Tegra 2) *
Graphics Media Accelerator (GMA) 600 *
SGX540 *
Graphics Media Accelerator (GMA) 500
Adreno 205 *
Adreno 203 *
GC800 *
SGX535
SGX531
SGX530
Adreno 200 *
Mali-200 *
GeForce 3 Go *
GeForce 2 Go 200 / 100
Mobility Radeon 9100 IGP
Mobility Radeon 9000 IGP
Mobility Radeon M7
Mobility Radeon M6
Chrome9 HC
Extreme Graphics 2
Mobility Radeon 7000 IGP
Radeon IGP 340M
Radeon IGP 320M
S3G UniChrome Pro II
S3G UniChrome Pro
Castle Rock
Mirage 2 M760
Mirage M661FX
S3 Graphics ProSavage8
Mobility 128 M3
SM502 *
</pre>
Kernel-space drivers like '''radeon''' (older AMD driver for older GPUs), '''amdgpu''' (newer driver for newer GPUs, allows using a few new features), i915, nouveau and a few others. They are what handles the gory details of talking to the GPU itself (writing to proper registers, handling its memory directly, configuring outputs, and so on). Unfortunately most of what they're exposing can be only consumed by a single user of that GPU, which is why we need...
DRM and DRI (Direct Rendering Manager/Infrastructure) controls access to the GPUs, provides interfaces for talking to the GPU concurrently by multiple apps at once (without them breaking each other) and lets the system perform the most basic tasks like setting proper resolution and such if no userspace apps understand how to talk to the GPU exposed. DRI and DRM expose the GPU interfaces mostly as-is, not in a "vendor-neutral" portable way - if you don't have an application developed specifically for a GPU you have, it won't work.
"let's create a vendor-neutral interface for graphics so that apps can ignore the GPU-specific bits and get right to the drawing!" - which is what OpenGL is. User-space drivers implement the OpenGL specification and expose it as an OpenGL library to apps (like games, browsers, etc) instead of the GPU. Mesa is the most popular collection of open-source user-space drivers and contains a few user-space drivers for different GPU families: '''radeonsi''' for most modern AMD GPUs (and '''r600g''', r300g and others for older ones), '''i915/i965''' for old/new Intel GPUs and '''nouveau''' for Nvidia GPUs.
There's also Gallium, which is a bunch of utilities and common code shared among these drivers - if certain things can be done once and work everywhere, they'll land in Gallium and benefit all the drivers. Most Mesa drivers use Gallium (radeonsi, nouveau, software renderers), some don't (intel after gma950).
Displaying 2D windows supports device-specific 2D drivers as well, but nowadays most of these are no longer needed as the modesetting can handle most hardware on its own. As the DRM/DRI got some additional interfaces for what used to be hardware-specific (setting resolutions, refresh rates, etc) and software requiring accelerated 2D drawing was optimized OpenGL-based renderers, dedicated 2D acceleration is slowly going away. Since around 2012, the 3D part of the graphics card deals with 2D operations.
Modern GPUs can also decode video!? There's VDPAU (NVIDIA & AMD GPUs) and VA-API (AMD & Intel GPUs) that can also talk to the GPU exposed via DRM/DRI and issue proper commands to decode/encode a given video stream. Those drivers are GPU-specific too.
So let's say you have some example GPUs, here's how example stacks could look like:
* AMD Radeon HD8750: amdgpu -> DRM/DRI -> Mesa (radeonsi)
* AMD Radeon HD4850: radeon kernel driver -> DRM/DRI -> Mesa (r600g) -> games/apps/etc.
* NVIDIA GeForce 460: nouveau kernel driver -> DRM/DRI -> Mesa (nouveau) -> games/apps.
* Intel GMA950: i915 kernel driver -> DRM/DRI -> Mesa (i945) -> games/apps.
{| class="wikitable sortable" width="90%"
! width="15%" | Description
! width="15%" | Analog Output
! width="15%" | Digital Output
! width="15%" | Laptop LCD
! width=30%" | Comments
|-
| <!--Description-->Fudomi GC888A
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->1080p 100in throw projector
|-
| <!--Description-->Vamvo VF320 (720P)
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->720p 90in
|-
| <!--Description-->Happrun H1
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->1080p 90in
|-
| <!--Description-->Umbolite Magcubic HIPPUS HY320 Mini
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->720p 100in
|-
| <!--Description-->Zentality A10 Plus
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->720p 110in
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->nexigo nova mini
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->nebula mars 3
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->epson lifestudio flex plus portable projector
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->dangbei freedo
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->benq gv50
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
Unless your computer uses a Firewire chipset manufactured by Texas Instruments, FireWire interfaces are likely to act buggy.
AROS is unlikely to ever support FireWire.
Bluetooth is similarly unlikely to be ever supported due to huge cost to be certified.
No, x86 PCMCIA card.resource at the moment. Writing card.resource would be a similar amount of work to writing a typical driver. However, it might be complicated by having to support a variety of PCMCIA-controller chipsets like TI PCI1225, PCI1410, PCI1420, 1450, PCIxx12 and O2, etc. m68k card.resource does not really have many higher level functions, most functions are really simple or poke Gayle registers directly. only exception is CopyTuple(). Amiga card.resource has one significant flaw: it's single-unit. would need card.resource and pccard.library. There was talk in the past of designing a new API for PCMCIA because card.resource only supports one slot, but since most modern laptops only have one slot anyway, I think it might be worthwhile to implement card.resource as-is (at least as a first step). pccard.library would be trivial to port. So, a new API is needed.
811k4umcrtbu04tn7x6px5xa9k5a88g
4640166
4640157
2026-06-13T15:48:32Z
Jeff1138
301139
4640166
wikitext
text/x-wiki
Google translation into [http://translate.google.com/translate?hl=en&sl=auto&tl=de&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support German], [http://translate.google.com/translate?hl=en&sl=auto&tl=fr&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support French], [http://translate.google.com/translate?hl=en&sl=auto&tl=nl&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Dutch], [http://translate.google.com/translate?hl=en&sl=auto&tl=it&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Italian], [http://translate.google.com/translate?hl=en&sl=auto&tl=es&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Spanish], [http://translate.google.com/translate?hl=en&sl=auto&tl=hi&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Hindi],
[http://translate.google.com/translate?hl=en&sl=auto&tl=zh-CN&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Chinese Simplified],
[http://translate.google.com/translate?hl=en&sl=auto&tl=pl&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Polish],
[http://translate.google.com/translate?hl=en&sl=auto&tl=ru&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Russian],
{{ArosNav}}
[[#Audio Chipsets]]
[[#Graphic GFX Chipsets]]
[[#Rough gfx comparison]]
[[#]]
==x86 Native Environment==
AROS should run on almost any i386 PC hardware so long as the CPU is newer than an i486, and has a "Floating Point Unit (FPU)". Ideally around 700Mhz and above with at least 256MB of memory is recommended for desktops and around 1GHz and at least 256MB for laptops/notebooks/netbooks. For web browsing, etc above 1GB is usually needed and offers the option to run web browsers, media players and other hard disk heavy usage from RAM: disk.
Motherboards supported
* Most Intel mobos are supported (Skt 775 is ok but newer is better) - additional pci / pci-e cards may be needed for networking, audio, etc
* AMD based socket 939 am2 am2+ am3+, fusion and am4 ryzen based systems work but additional pci / pci-e cards may be needed
Supported graphics cards (gfx)
* Nvidia 2D and 3D 2005-2017.
64bit AROS Nouveau covers '''2D''' 8xxxgs and higher to GTX 900s and '''3D''' from .
32bit AROS supports '''2D''' from TNT through to fermi gtx5xx and '''3D''' acceleration fx5xxx to gtx4xx.
* Intel GMA 2D and 3D 2006-2009.
'''2D''' for many old netbooks and motherboards. '''3D''' for many early netbooks and motherboards
* AMD/ATI 2D only and '''no 3D'''. 1999-2005.
Desktop ie external monitor support only (no laptop internal support) for very early Radeon 7000 through to x600. Experimental 2D version for up to HD3xxx came later
* VESA 2D fallback modes for all graphic cards (GPUs) and with [http://www.youtube.com/watch?v=HKCHZFYj9Kk screen dragging].
It's worth noting however that support isn't guaranteed. Nor will potential power of a card reflect its performance under AROS.
Sound wise there are
* HDaudio support for onboard intel and AMD netbooks, ultrabooks, notebooks and motherboards (2005 to 2020)
* some AC97 codec support for very old motherboards and laptops (ie pre 2004)
* PCI and some PCI-E C-Media CMI8738 for desktop plugin cards
* PCI Creative Soundblaster EMU10K1 cards [http://amigaworld.net/modules/news/article.php?storyid=2512 SBLive]
* PCI semi professional some early VIA Envy24 desktop sound cards
* PCI Sound Blaster 128 aka SB16
Supported [http://en.wikibooks.org/wiki/Aros/Platforms/x86_Network_support network] which could be desktop, laptop, etc
* PCI-E Realtek rtl8169 which also includes the rtl8111 and rtl8110
* PCI Realtek rtl8139 and includes rtl8101 and rtl8100
* PCI intel pro100
* Broadcom 44xx 10/100 integrated in laptops around 2005
* VIA 10/100
* 3com Etherlink 10/100
* Realtek rtl8029 10mbit
Wireless wifi
* atheros 5000 wireless
*realtek 8187 usb
It is very hard to recommend a completely supported motherboard because as soon as newer motherboards arrive so their features change subtly, often introducing non supported parts like ethernet and audio. It is a moving target.
* mini-itx motherboard will only get you 1 pci or pci-e slot
* micro mATX or uATX will have more, typically 2 pci-e or pci slots which helps if any onboard features are not supported.
* full atx will have more slots available
'''N.B''' It is frustrating when a piece of hardware is not supported. Hardware documentation can run to over 100 pages and a lot of hardware do not have any public documentation anyway. Chips from different manufacturers for sound, graphics, SATA, etc. vary just as much, unless they follow a standard such as [https://github.com/acidanthera/AppleALC/wiki/Supported-codecs HDAudio codecs], AHCI etc.
Coding drivers is a far cry from Hello World programs or even a port of existing software. If you do actually want to try then get a hold of documentation on the relevant hardware and start there. Alternatively you could try to find some '''BSD''', MIT or MPL licence drivers as a point of reference. Please , do not think you can just adapt strings in a driver for different strings, it does not work that way. You will '''need''' to start from scratch for each new bit of hardware. Device driver programming require '''embedded''' skills, like manipulation of bits within registers, good debugging skills, dealing with interrupts, lots of patience, etc.
The following specific chipsets and drivers are also available - use Tools/PCITool to confirm Vendor and Product IDs - Please let us know any mistakes or any information to be added, to this General Chat list on [https://arosworld.org/ AROS World]
: Brief Timeline
: 2000-12-06 HIDD first mouse.hidd completed ([http://msaros.blogspot.com/ Michal Schulz])
: 2001-03-31 BOOT first boot from floppy disk with IDE device
: 2001-10-30 BOOT first cd bootable version
: 2002-01-27 HIDD first pci.hidd added (Michal Schulz)
: 2002-04-13 BOOT software HDToolBox added ()
: 2003-04-03 HIDD vesa2.hidd graphic modes added ()
: 2004-03-08 HIDD new pci and ata (pata) devices worked on (Michal Schulz)
: 2004-03-17 HIDD nVidia 2D driver appears (Michal Schulz)
: 2005-01-05 AHI AHI v6 audio system ported (Martin Blom)
: 2005-01-06 AHI SBLive SoundBlaster Live driver ported (Georg Steger)
: 2005-02-04 AHI AC97 playback only driver added (Michal Schulz)
: 2005-06-27 NIC amiTCP stack ported with 3com, NE2000, prism2 drivers (Neil Cafferkey)
: 2005-08-25 NIC nForce2 support added (Michal Schulz)
: 2005-12-24 NIC Intel Pro100 network driver added (Neil Cafferkey)
: 2006-03-25 HIDD ATI radeon 2D driver added (Michal Schulz)
: 2007-03-06 HIDD vesa 1.0 video driver added (Pavel Fedin)
: 2007-03-08 HIDD dospackets and FAT filesystem (Rob Norris)
: 2007-03-21 HIDD usb initial commit (Michal Schulz)
: 2007-10-01 BOOT Installer added (Neil Cafferkey)
: 2007-11-29 PORT 64bit x86 added (Michal Schulz)
: 2008-04-12 BOOT GRUB2 added (Alain Greppin and Nick Andrews)
: 2008-08-26 NIC RTL8139 added ([http://kalamatee.blogspot.com/ Nick Andrews])
: 2008-10-22 PORT to SAM440ep (ppc) (Michal Schulz)
: 2009-02-25 PORT to efika (ppc) (Michal Schulz)
: 2009-05-18 HIDD poseidon usb2.0 stack ported to AROS (Chris Hodges)
: 2009-11-18 NIC RTL8169 network driver arrived (Nick Andrews and [http://pagesperso-orange.fr/franck.charlet/oldnews.html Franck Charlet])
: 2009-12-23 AHI HDAudio based Atom CPU and netbook audio driver arrived (Davy Wentzler)
: 2010-03-09 BOOT USB pendrive stick booting available (Neil Cafferkey)
: 2010-05-26 HIDD Intel GMA900 2D graphics card support (Michal Schulz)
: 2010-09-03 NIC Wireless PCI based NIC arrived (Neil Cafferkey)
: 2011-04-30 HIDD Nvidia 2D and 3D nouveau graphics card support (Deadwood)
: 2011-08-30 HIDD Radeon 2D enhanced AMD driver arrives (Bearsoft)
: 2011-09-17 NIC Wireless USB realtek arrives (Neil Cafferkey)
: 2011-12-09 HIDD Intel 945G 3D Gallium graphics support (Sami)
: 2013-02-25 AHI AC97 VIA 686 audio support (Davy Wentzler and Neil Cafferkey)
: 2013-03-31 PORT early Raspberry PI native support (Nik Andrews)
: 2014-01-16 AHI Envy24 audio chipset support (Davy Wentzler and Neil Cafferkey)
: 2017-02-17 PORT Symmetric MultiProcessing smp added for x86 64bit (Michal Schulz)
: 2018-10-20 PORT Big Endian ARM
: 2021-11-26 NIC Broadcom 44xx ethernet (Neil Cafferkey)
: 2023-01-12 NIC Nvidia MCP61 ethernet (Neil Cafferkey)
: 2025-11 HIDD xHCI USB3 and isoc (Nik Andrews)
[[#top|...to the top]]
===Audio Chipsets===
'''If sound beeps in AHI prefs after Music set then some support is there. Select more than one channel for multiple audio streams, set frequency up to 44 kHz or higher and set the volume if not already set. Ensure you set the music unit 0 to 3 which allows the extra features of the audio card like microphone, line-out, etc).'''
====1996-2000 sb128.audio aka SB16 PCI====
*2021 5.27
as per CREATIVE's website, the model number is the first two digits on the front and first two digits on the back. my card says CT4810 and 161TK110B 995; this translates to CT4816 as the model.
The original AudioPCI 3000 card with the ES1370 had a master clock crystal for 44.1 kHz (22.5792 MHz), used an AKM codec (AK4531, non-AC97) and had 4 channel output; Creative later modified the design with a crystal for 48 kHz (24.576 MHz) and Sigmatel AC97 codec (a CT4700 SB128 with a CT5507 chip, AK4531, 22.5792 MHz crystal and TDA7360 speaker power amp). The issue with these cards involved never quite eliminate the effects of resampling on the 64V, it also shows signs of undersized coupling caps. These Ensoniq cards automatically engaged headphone amplifier (with a 4565 opamp).
Porting involved [http://repo.or.cz/w/AROS.git/commit/b60abd12967144a844980c422ea9e99c056eabca 40897], [http://repo.or.cz/w/AROS.git/commit/b7d6511fca6430a63fbaaa390b4f51bf0203a460 40898 configure], [http://repo.or.cz/w/AROS.git/commit/f51034cd22759a4ec3a2547bddb3a7169d956eaa 40900 bugs], [http://repo.or.cz/w/AROS.git/commit/4f43fc38e3489ea45d12b7b5ba6fff50b69c5746 40901 further bugs], [http://repo.or.cz/w/AROS.git/commit/d23c78aec75f049484b6916d27b6804ce858bb2c 40913 memory IO fixes], [http://repo.or.cz/w/AROS.git/commit/d256860fe3035016952e88d143c6f2611997f2f3 40914 irq fix].
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| Ensoniq AudioPCI 1000
| 0x1274
| 0x5000
|
| {{unk}}
| {{unk}}
| untested - es1370 (u?) AK4531 (u?)
|-
| Ensoniq AudioPCI
| 0x1274
| 0x5000
| 0x00
| {{yes}}
| {{maybe}}
|
|-
| CT4700 Sound Blaster PCI 64 (audioPCI 3000)
| 0x1274
| 0x5000
| 0x7c
| {{yes}}
| {{maybe}}
| works - opamp JRC4565(u?) [http://en.wikipedia.org/wiki/Ensoniq_ES1370 es1370] (u?)
|-
| CT4750 Sound Blaster 64/PCI
|
|
|
| {{unk}}
| {{unk}}
| untested - 4565-1056W (u1) stac9708t(u2) [http://arstechnica.com/civis/viewtopic.php?f=6&t=916891 ct5880-dcq] (u3) 24wc012 (u4)
|-
| CT4751 (SB128PCI)
| 0x1274
| 0x8001
|
| {{unk}}
| {{unk}}
| untested - [http://en.wikipedia.org/wiki/Sound_Blaster#Ensoniq_AudioPCI-based_cards es1371] (u?)
|-
| CT4810 Creative AudioPCI64V
| 0x1274
| 0x1371
| 0x06
| {{yes}}
| {{maybe}}
| works
|-
| CT4811 (SB Vibra 128)
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4812 (Vibra 128)
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4813
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4815
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4816 es1373 (vibra 128)
|
|
|
| {{unk}}
| {{unk}}
| untested but this card has creative's ES1373 as the main chip(U1). it is also different from the other CT4810 (vibra128) in that it does not have a second chip in U2 position. Also there is only one jumper JP1 (2X3).
|-
| CT5801 HP
|
|
|
| {{unk}}
| {{unk}}
| untested - es1373 (u3)
|-
| CT5803 Gateway
| 0x1274
| 0x1371
| 0x08
| {{yes}}
| {{maybe}}
| works 4565-0005b jrc (u1) 4297a-jq ztae0c0002 (u2) es1373 (u3)
|-
| CT4740
| 0x1274
| 0x1371
| 0x08
| {{yes}}
| {{yes}}
|
|-
| CT5805 Compaq OEM Premier Sound Presario 7
|
|
|
| {{unk}}
| {{unk}}
| untested - es1373 (u3)
|-
| CT5806 (Sound Blaster AudioPCI 128D)
|
|
|
| {{unk}}
| {{unk}}
| untested - 4297A-JO EP (u?) ZTAPWC9933 (u2) es1373 (u3)
|-
| CT5807 Dell OEM Dimension 8100
|
|
|
| {{unk}}
| {{unk}}
| untested - es1373 (u?)
|-
| CT5808
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4730 Sound Blaster AudioPCI 64V Ectiva EV1938
| 0x1102
| 0x8938
|
| {{unk}}
| {{unk}}
| untested
|-
| CT5880 on various motherboards
| 0x1274
| 0x5880
|
| {{unk}}
| {{unk}}
| untested [http://www.xbitlabs.com/articles/mainboards/display/ga-6rx.html Gigabyte GA-6RX] (VIA ApolloPro 266 2001], Gigabyte GA-6VM7-4E mobo, [http://active-hardware.com/english/reviews/mainboard/ga-7vtx.htm Gigabyte GA-7VTX] (KT266 2001), Gigabyte [http://www.amdboard.com/gigabytega7vtxh.html GA-7VTXH] (KT266A 2001), [http://www.amdboard.com/gigabytega7vrxp.html Gigabyte 7VRXP] mobo (KT333 2002), MSI MS-6309, MS-6318, MS-6337 (815E Pro), MS-6339 (850Pro) and MS-6340, PCChips Motherboard M571 TXPRO, Soltek SL-65ME+,
|-
| VMware Virtual Workstation(TM)
| 0x1274
| 0x1371
| 0x02
| {{Yes|but not Hi-Fi modes}}
| {{maybe}}
| works
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
<pre>
Revision 0x04 = ES1371 REV_ES1373_A
Revision 0x06 = ES1371 REV_ES1373_B
Revision 0x07 = ES1371 REV_CT5880_A
Revision 0x02 = CT5880 REV_CT5880_C
Revision 0x03 = CT5880 REV_CT5880_D
Revision 0x04 = CT5880 REV_CT5880_E
Revision 0x09 = ES1371 REV_ES1371_B
Revision 0x00 = EV1938 REV_EV1938_A
Revision 0x08 = ES1371 REV_ES1373_8
</pre>
====1999-2001 via-ac97.audio====
*2021 5.10
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| <!--Description-->694X with 686A KT133 PM133 or 693A with VT8231
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3058
| <!--Revision-->
| <!--Playback-->{{Yes| }} redirects earphones correctly
| <!--Recording-->{{Yes| }}
| <!--Comments-->audio controller works but depends on the underlying invisible codec used see AC97 section
|-
| <!--Description-->686B KT133A with VT8231
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3058
| <!--Revision-->0x50
| <!--Playback-->{{Yes|}} reroutes ear pieces right
| <!--Recording-->{{Yes|}}
| <!--Comments-->audio controller works but depends on the underlying codec used see AC97 section below
|-
| <!--Description-->686C
| <!--Vendor ID-->0x1106
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->untested
|-
| <!--Description-->KM266 or KT266 with VT8233, KT266A with VT8233A, VT8233C
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3059
| <!--Revision-->0x10
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->KM333 KT333 with VT8235
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3059
| <!--Revision-->0x30
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
| <!--Description-->KM400 KT400 with VT8237, KT600 with VT8237R,
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3059
| <!--Revision-->0x40 0x50 0x60
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
|}
====1998-2003 emu10kx.audio - Creative Labs SoundBlaster Live! and Audigy====
*2021 6.5
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| PCI512 CT4790 (emu10k1)
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested (1st Gen)
|-
| Live CT4620
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Live CT4760
| 0x1102
| 0x0002
| 0x07
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| playback works
|-
| Live Value CT4670
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| works plays stereo (2nd Gen)
|-
| Live Value DELL CT4780
| 0x1102
| 0x0002
| 0x06
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| plays/records stereo - untested 4.1mode
|-
| Live Value Compaq CT4830
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{Maybe}}
| <!--Recording--> {{unk}}
| not working
|-
| Live Value CT4831
| 0x1102
| 0x0002
| 0x00
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Live Value CT4832
| 0x1102
| 0x0002
| 0x07
| <!--Playback--> {{yes}}
| <!--Recording--> {{partial|Line-In only}}
| works
|-
| Live Value CT4832
| 0x1102
| 0x0002
| 0x08
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| works
|-
| Live Value HP CT4870
| 0x1102
| 0x0002
|
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| Works
|-
| Live Value Gateway CT4871
| 0x1102
| 0x0002
|
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Live! Platinum 5.1 SB0060
| 0x1102
| 0x0002
| 0x00
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
| plays audio/records, untested 5.1 (3rd Gen)
|-
| Live 5.1 SB0100 -SFF
| 0x1102
| 0x0002
| 0x00
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| works
|-
| Live 5.1 Player SB0220
| 0x1102
| 0x0002
| 0x0a
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
| plays audio/records stereo, untested 5.1
|-
| Live 5.1 Digital SB0228
| 0x1102
| 0x0002
| 0x0a
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
| working
|-
| Audigy SB0090 (emu10k2)
| 0x1102
| 0x0004
|
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| <!--Description-->Audigy SB0230
| <!--Vendor ID-->0x1102
| <!--Product ID-->0x0004
| <!--Revision-->0x03
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Yes|Mic only}}
| <!--Comments-->5th Dec 2012 - untested optical tos link. contains also IEEE1394/Firewire (untested)
|-
| Audigy 2 Platinum 6.1 SB0240 SB0250 EMU10K2.5
| 0x1102
| 0x0004
| 0x04
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| works
|-
| Audigy 2 PRO SB0280 EMU10K2.5
| 0x1102
| 0x0004
|
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Audigy 2 ZS SB0350
| 0x1102
| 0x0004
| 0x04
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
|
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| Live 5.1 DELL SB0200 SB0203 emu10kx
| 0x1102
| 0x0006
| 0x0
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
|
|-
| Live 24bit SB0410
| 0x1102
| 0x0007
| 0x
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Live 24bit DELL SB0413
| 0x1102
| 0x0007
| 0x
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy LS SB0310
| 0x1102
| 0x0007
| 0x0
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy SE 7.1 SB0570
| 0x1102
| 0x0007
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 2 ZS SB0320 SB0360 (PRO)
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 2 VALUE SB0400
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 4 VALUE SB0610
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 4 PRO SB0380
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| EMU E-MU 0404 PCI (not USB) EM8852
| 0x1102
| 0x000
| 0x0
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver but linux support needs firmware
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
the green jack is for the main speaker pair AND headphones, so manual switching will be required
If your card is wired for the "AC97" standard, then it's up to your headphone jack to switch the green speaker output in and out
the headphone jack has Normally-closed contacts that will open on insertion, which breaks the signal path back to the sound card (FP_RETURN)
====2000-2010 cmi8738.audio - C-Media====
*2021 5.20
;Read [http://amigaworld.net/modules/news/article.php?storyid=2512 more] and imported on [http://repo.or.cz/w/AROS.git/commit/aff741d60160c6a9d7d39c9e004a25ea3aa13847 20th July 2011] and [http://alsa.opensrc.org/Cmipci alsa docs].
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| Audiotrak MAYA EX5
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| cmi8738-sx 4ch
| 0x13f6
| 0x0111
| 0x10
| <!--Playback-->
| <!--Recording-->
| untested
|-
| e3dx hsp56 CMedia 8738-sx 4ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| EDio SC3000D 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Genius SoundMaker Value PCI C3DX
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Guillemot Maxi Sound Muse
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Hercules Gamesurround Muse LT
| 0x13f6
| 0x0111
| 0x10
| <!--Playback--> {{yes}}
| <!--Recording--> {{no}}
|
|-
| Hercules Gamesurround Muse XL LT 5.1
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Inno audio extreme 5.1 cmi8738/lx pci 6ch
| 0x13f6
| 0x0111
| 0x
| <!--Playback-->
| <!--Recording-->
| untested
|-
| M-Audio (Midiman) DiO 2448
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Sabrent SBT-SP6C 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| StarTech PCISOUND4CH 8738sx 4ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Sweex SC012 CMI8738-lx 4ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Terratec 5.1 PCI
| 0x13f6
| 0x0111
| 0x10
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Terratec Aureon Fun 5.1
|
|
|
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| Has SPDIF
|-
| Trust Sound Expert Digital Surround 5.1 (cm8738-mx 6ch)
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Turtle Beach Riviera CMI8738-MX 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| XSonic CMI 8738 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->CMI8738 6ch PCI-E PCI Express version
| <!--Vendor ID-->0x13f6
| <!--Product ID-->0x0111
| <!--Revision-->0x10
| <!--Playback-->{{Yes|}}
| <!--Recording-->{{Maybe|}}
| <!--Comments-->Chinese based card with playback tested so far
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
====2001-2005 ac97.audio====
*6.4 27-12-2008
The AC97 chips were designed to be pinout interchangeable so that the sound support could change easily and quickly without motherboard redesigns
the green jack is for the main speaker pair AND headphones, so manual switching will be required
If your card is wired for the "AC97" standard, then it's up to your headphone jack to switch the green speaker output in and out, the headphone jack has Normally-closed contacts that will open on insertion, which breaks the signal path back to the sound card (FP_RETURN)
The ProductID and VendorID are for the audio controller only - the important additional codec is '''NOT''' so easily identified.
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| <!--Description-->Avance Logic (now Realtek) ALC100 and ALC101 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->ALC200 and ALC201 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->ALC201A and ALC202 and ALC202A codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->ALC650
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| <!--Comments-->most Nforce2 boards plays audio only - Abit NF7, Asus A7N8X, MSI K7N2, Epox 8RDA+, DFI
|-
| <!--Description-->ALC850 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{No}}
| <!--Comments-->no support for via P4P800 chipset on ASUS A8V-E SE Deluxe mobo - ICaros 1.3
|-
| <!--Description-->Realtek ALC653 codec and ALC655 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested Acorp 7NFU400
|-
| <!--Description-->Realtek ALC658 codec ALC658D
| <!--Vendor ID-->0x8080
| <!--Product ID-->0x24c5
| <!--Revision-->0x0
| <!--Playback-->{{Yes|Prefs Music and Units 0-3 set volume control - playback}}
| <!--Recording-->{{No}}
| <!--Comments-->MSI Motherboard on NB 22-09-2012
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->AD1881 SoundMAX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->Analog Devices first AC97
|-
| <!--Description-->AD1881A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Yes}}
| <!--Revision-->
| <!--Comments-->works with VIA Controller - untested Intel etc
|-
| <!--Description-->AD1881B
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1885 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{No}}
| <!--Comments-->Playback only with issues on D845HV but not working on MS-6367 because Units 0-3 have masked volume control
|-
| <!--Description-->AD1886
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1887
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->ADI AD1888 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{no}}
| <!--Recording-->{{No}}
| <!--Comments--> Icaros 1.51
|-
| <!--Description-->AD1980 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->AD1981A codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested IBM X30
|-
| <!--Description-->Analog Devices SoundMax(TM) AD1981B codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| <!--Comments-->plays back only on IBM T41 Thinkpad
|-
| <!--Description-->AD1985 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{No}}
| <!--Comments-->not working ahi prefs freezes on D865GLC mobo ([http://www.xbitlabs.com/articles/multimedia/display/int-sound2_3.html ]
|-
| <!--Description-->AD1986 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{No}}
| <!--Comments-->untested [http://uk.ts.fujitsu.com/rl/servicesupport/techsupport/Boards/Motherboards/Fujitsu/D1931/D1931.htm D1931] but works (Acer Aspire 3610 laptop)
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->Crystal Semiconductors CS4205, CS4202 codecs
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Cirrus Logic CrystalWare 4236
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->Cirrus Logic CrystalClear SoundFusion CS4297 CS4299 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested IBM T23
|-
| <!--Description-->conexant Cx20468-31 codec (id 30)
| <!--Vendor ID-->0x103c
| <!--Product ID-->0x3085
| <!--Revision-->
| <!--Playback-->{{No|AC97 appears in AHI Prefs}}
| <!--Recording-->{{No}}
| <!--Comments-->Tested AspireOS 1.8 on Gateway W322
|-
| <!--Description-->ESS Technology ES1921 AC'97 2.1
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->CMI 6501 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested on ASROCK SKT-AM2 AM2NF3-VSTA
|-
| <!--Description-->codec CMI9738
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->codec CMI9739
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->C-Media CMI 9739A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments--> untested on EPoX 8RDA3+
|-
| <!--Description-->CMedia CMI 9761A codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested ASRocK K7NF2-RAID
|-
| <!--Description-->C-Media CMI9880
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->National Semi conductor (now TI) LM4540, LM4543, LM4545, LM4546, LM4548, LM4549, LM4550 LM4560
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->STAC9708T codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->SigmaTel (now IDT) C-Major STAC 9460 (D/A only), 9461, 9462, 9463, 9200, 9202, 9250, 9251, 9220, 9221, 9223, 9750
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AKM (Asahi Kasei Microsystems) AK 4540, 4543, 4544A, 4545
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->codec VT1616 (VIA Six-TRAC Vinyl Audio)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->VIA VT1612, VT82C686
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->ESStech ESS ES1968 maestro-2
| <!--Vendor ID-->0x125d
| <!--Product ID-->0x1968
| <!--Revision-->0x
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->ESStech ESS ES1978 maestro2e
| <!--Vendor ID-->0x125d
| <!--Product ID-->0x1978
| <!--Revision-->0x
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->ESStech ESS ES1988 maestro3 allegro-1 codec
| <!--Vendor ID-->0x125d
| <!--Product ID-->0x1988
| <!--Revision-->0x12
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->Yamaha AC97 ymf-743 YMF752 YMF753 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->{{No}}
| <!--Comments-->untested ymf-753
|-
| <!--Description-->YMF724 YMF744 YMF-754 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| SIS 7018 / Trident 4dwave DX/NX / ALi 5451
| 0x1039 (0x1023 Trident)
| 0x7018 (0x2000 Trident DX) (0x2001 Trident NX)
| 0x02
| <!--Playback-->{{No}}
| <!--Recording-->{{No}}
| no support - introduced early 2000s
|-
| SIS 7012
| 0x1039
| 0x7012
|
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| working through 1 speaker only took over from SIS7018 (2002 onwards)
|-
| <!--Description-->Wolfson (now Cirrus Logic) WM9701, WM9701A (AC'97 1.03 spec), WM9703, WM9704 (AC'97 2.1), WM9705, WM9706, WM9707, WM9708
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->WM9709, WM9710, WM9711, WM9712, WM971
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->first Microsoft(TM) Xbox DAC sound chip (AC Link compliant D/A converter)
|-
| <!--Description-->Wolfson WM9717
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| Parallels
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested
|-
| VirtualBox
|
|
|
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| working
|-
| VirtualPC
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested
|-
| <!--Description-->Intel 82801AA Proxmox
| <!--Vendor ID-->0x8086
| <!--Product ID-->0x
| <!--Revision-->
| <!--Playback-->{{unk| }}
| <!--Recording-->{{unk| }}
| <!--Comments-->
|-
|}
====2005-20xx HDAUDIO.audio====
*6.36 2025 [https://github.com/aros-development-team/AROS/commit/43b33a9280b10963ca659de2cc3d1cf289b43a87 reset handler]
*6.35 202 []
*6.34 2019 AROS One 1.5 upwards
*6.29 2018
*6.27 2017 update
*6.25 2014 used for most Icaros 2.x
*6.20 July 2012
*6.17 Nov 2011
*6.15 Jun 2011
*[http://www.clusteruk.com/SitePortalPage.aspx?siteid=1&did=109 6.13] Sep 2010
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="5%" |Vendor ID
! width="5%" |Product ID
! width="5%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| <!--Description-->ALC260
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| <!--Description-->ALC262
* ALC262-VD2-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->LQFP-48
|-
| ALC268 codec
| 0x
| 0x
| 0x
| <!--Playback-->{{Yes|Version 6.17 Acer AOA110 and AOA150 netbooks), works (Dell Mini Inspiron 9 and 10v, }}
| <!--Recording-->{{Yes|Version 6.17 remove QUERY and select 'Mic 1' as input. Tested with 6.15 as well using QuickRecord and AE 4.0.23 under Icaros 1.4.}}
| <!--Comments-->AHI UNITS and Music are set to: hdaudio:HiFi 16 bit stereo++ / Frequency 48000 Hz, Volume +0.0 dB. The hdaudio.config in SYS:Prefs/Env-Archive is WITHOUT the QUERY-line. After changing and saving the config-file turn off and start again the computer. Switch from internal loudspeaker to headphone you must turn off the music before plug in the headphone-cable, otherwise there is no output on the socket. Back from line-out to internal speakers it is the same.
|-
| [http://blog.foool.net/wp-content/uploads/linuxdocs/sound.pdf Linux docs ALC269]
* ALC269Q-GR
* ALC269QSRS-GR
* ALC269W-GR
| 0x
| 0x
| 0x
| <!--Playback-->{{Maybe| }}
| <!--Recording-->{{Unk| }}
| <!--Comments-->TQFP 48 pin Power IC Chip From [https://patchwork.kernel.org/project/alsa-devel/patch/1408118123-15849-1-git-send-email-tiwai@suse.de/ ALC269 & co have many vendor-specific setups with COEF verbs, result in the codec stalling]
|-
| [http://www.alsa-project.org/db/?f=0321f8479fd670cd510f9912b1120fe7edcf2e07 ALC269VB]
* ALC269Q-VB5-GR
* ALC269Q-VB6-CG
* ALC269Q-VB6-GR
| 0x10ec
| 0x0269
| 0x100004, 0x100100, 0x100202
| <!--Playback-->{{Maybe|some versions work}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* v1 works Asus eee PC netbook 901/1000HA 1005HA/1008HA, 1001P,
* v2 maybe working Lenovo S9 S10 S10-2 S10-3 under HDAudio version 6.13
* v3 maybe dell wyse 7010
|-
| [http://alsa-project.org/db/?f=9c1746c5957b0ce72ff9cfffa312e97d14baf785 ALC269VC aka ALC3202]
* ALC269Q-VC2-GR
* ALC269Q-VC3-GR
| 0x10ec
| 0x0269
| 0x100203,
| <!--Playback-->{{Maybe|some versions work}}
| <!--Recording-->{{Unk}}
| <!--Comments-->SMT SMD QFN-48 -
* v1 unknown
* v2 unknown
* v3 x230, dell wyse,
|-
| ALC272
* ALC272-VA4-GR
| 0x10ec
| 0x0272
| 0x0
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Unk}}
|
* works Acer AOD150 and Acer AOD250 works [http://amigaworld.net/modules/newbb/viewtopic.php?topic_id=33755&forum=28#616910 Samsung NP-NC10], works Samsung NF210-A02] netbooks,
|-
| <!--Description-->ALC273
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| <!--Description-->ALC270
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC282
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x
| <!--Revision-->
| <!--Playback-->{{No|Version 6.17}}
| <!--Recording-->{{No|Version 6.17}}
| <!--Comments-->needs retest
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC660 ALC660-VD
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes| }}
| <!--Recording-->
| <!--Comments-->
* works asus F9s, F9e
* untested asus w7j, M51SN, A6Tc, A8Sr,
|-
| <!--Description-->ALC661-GR (2011)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| ALC662
| 0x1043
| 0x82a1
| 0x0
| <!--Playback-->{{Yes|Version 6.17 if QUERY added to top of hdaudio.config}}
| <!--Recording-->{{No|Version 6.17 not working for eee pc 900}}
|
* works Asus eee PC netbook 700/701/900, Atom 270 and 330 mobos, odd clicks (D410 NM10 PineTrail),
|-
| <!--Description-->[http://outpost.fr/rmaa/ALC663.htm ALC663]
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0861
| <!--Revision-->
| <!--Playback-->{{No|Version 6.13}}
| <!--Recording-->{{Unk}}
| <!--Comments-->not bad output like headphone amp part of the codec actually works well but messed up by undersized coupling capacitors to actually support such a low impedance
* not working Asus n50vn x71vn,
|-
| <!--Description-->ALC665
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC666
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC667
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC668
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC670
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->ALC880
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->some 915 and 925 chipset mobos
|-
| <!--Description-->ALC882M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| Realtek ALC883 ALC883-GR ALC883D-GR ALC883DTS-GR ALC883DD-GR codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe|some early versions work }}
| <!--Recording-->{{Unk| }}
| 2005 to 2007 HD Audio codec untested (Asus ),
|-
| Codec ALC885
| 0x10ec
| 0x0885
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
|-
| ALC888
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
|
|-
| ALC888s
* ALC888S-VD2-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}} MSI Wind U90/U100,
| <!--Recording-->{{Unk}}
| LQFP-48
|-
| ALC888b
| 0x8086
| 0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| untested (D510 NM10 Dual Core PineTrail mobo),
|-
| ALC888-VD
| 0x8086
| 0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| untested
|-
| ALC889A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes|works if QUERY added to the top of hdaudio.config in Prefs drawer/directory}}
| <!--Recording-->{{Unk}}
|
|-
| ALC889 Gr
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}} with crackles
| <!--Recording-->{{Unk}}
|
|-
| ALC889
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
| Tested with MSI H55 board
|-
| ALC887 ALC887-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
|
* working on ASUS P5KPL/EPU and Gigabyte GA-E350N-Win8 Rev1.0
|-
| ALC887-VD-CG
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0887
| <!--Revision-->0x100302
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}} Subsystem Id: 0x1458a002
|
|-
| ALC887-VD
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0887 0x1458
| <!--Revision-->0xa002
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{Unk}} index = 2
| ALC887 does not have any volume control ability on the mixer NIDs, so put the volume controls on the dac NIDs instead
* working with intermittent corrupting pop popping skipping stuttering sound issues MSI 760GM-P23 (FX),
* not working Gigabyte H61MA-D3V, AT3IONT-I Deluxe,
|-
| ALC887-VD2
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
| 3jacks
|-
| ALC887-VD2-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
|-
| ALC887-
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
|
|-
| ALC892-CG rev
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| 2011 48-pin LQFP Green package -
|-
| ALC892 ALC892-DTS-CG rev
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
| 2009 introduced
* works
* not working
* untested
|-
| ALC892 rev
| <!--Vendor ID-->0x0x10ec
| <!--Product ID-->0x0892
| <!--Revision-->0x100302
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| 2014
|-
| Realtek ALC886-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| LQFP-48
|-
| Codec ALC861 ALC861-VD
| 0x10ec
| <!--Product ID-->0x0663
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
|
* not working Toshiba Tecra A7
|-
| <!--Description-->ALC1200
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| ALC898
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
| not working
|-
| <!--Description-->ALC1500
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC3232 (aka ALC292)
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0292
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC3234 aka ALC255
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0255
| <!--Revision-->003
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC3287 aka ALC257
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes| }}
| <!--Recording-->{{no| }}
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->AD1882
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1883 HD Codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1884
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| Analog Devices SoundMAX AD1981
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| IBM Thinkpad T60,
|-
| AD1984 hp-m4 codec
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
* audio not working on Lenovo X61, Thinkpad T61,
|-
| AD1986
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
|
|-
| AD1988
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
|-
| <!--Description-->AD1988A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->Cirrus Logic CS4207
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->
| <!--Recording-->
|
|-
| <!--Description-->Cirrus Logic CS4208
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->
| <!--Recording-->
|
|-
| <!--Description-->Conexant CX20549 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe|very very very low volume}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested Fujitsu Amilo SI 1510 1520 no datasheet for the general public
|-
| <!--Description-->Conexant CX20549-12Z codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested HP 530
|-
| <!--Description-->Conexant CX20561 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* working lenovo x200s
* untested Lenovo Essential G555 Notebook, HP Pavilion dv6700,
|-
| <!--Description-->Conexant CX20582 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX2059x CX20590 CX20594-21Z codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX20585 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* working Lenovo Thinkpad T410,
|-
| <!--Description-->Conexant CX20672 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX20671 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX20751-21Z codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes| }}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| <!--Description-->Conexant CX11852 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX11880 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant after 2015 up to 2018 CX7501 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{no|no driver codec}}
| <!--Recording-->{{no|no driver codec}}
| <!--Comments-->Conexant bought by synaptics 2019
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->C-Media CMI9880 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->Gigabyte GA-8GPNXP
|-
| <!--Description-->Silicon Labs 3054
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| VIA 1708A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| untested,
|-
| VIA VT1708B
| <!--Vendor ID-->
| <!--Product ID-->
| 0x0010
| <!--Playback-->{{No|VIA PicoITX}}
| <!--Recording-->{{Unk}}
|
|-
| VIA 1708S
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
|
|-
| <!--Description-->VT2021 10ch
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->Gigabyte Z77MX-D3H, GA-H61M-S2H S2P,
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Creative CA0110-IBG
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->SigmaTel STAC 9220 9221 9223 8ch (7+1)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| <!--Comments-->ECS 945GCT/M-1333 (version 3.0),
|-
| IDT SigmaTec [http://explorer.cekli.com/articles/pdf/hd-audio STAC9227] /28/29/30 codec
| <!--Vendor ID-->0x8384
| <!--Product ID-->0x7626
| <!--Revision-->0x0002
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Unk}}
|
* works HP Compaq mini 110
* untested HP Pavilion HDX9000 CTO Notebook, Intel DG33TL mobo, Dell E520, Intel DP35DP mobo, Dell E6410 Laptop,
|-
| IDT (formerly SigmaTel) IDC STAC 9271/71D
| <!--Vendor ID-->0x8384
| <!--Product ID-->0x7626
| <!--Revision-->0x0002
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
|
|-
| <!--Description-->IDC STAC 9272 9273 9274
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->Intel D5400XS,
|-
| <!--Description-->IDT 92HD73C
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes}}
| <!--Recording-->
| <!--Comments-->headphones only Asus AT4NM10 mobo
|-
| <!--Description-->IDT 92HD75B
| <!--Vendor ID-->0x111d
| <!--Product ID-->0x7608
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* working [http://koti.kapsi.fi/jvaltane/aros/hdaudio/ HP Compaq Mini 700 Netbook - feedback required]
* untested HP Mini 5103 and 5102, HP Compaq 610, HP ProBook Laptop 4520s 4525s 6450b 6550b 6555b, HP EliteBook 2540p 2740p 8440p, Mobile Workstation 8540w 8740w, Pavilion NoteBook DV8,
|-
| <!--Description-->IDC 92HD81XX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC 92HD83XX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC STAC 92HD89XX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Wolfson (now Cirrus Logic) WM8850
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Wolfson WM8860
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->Intel High Definition Audio Revision 1.0. - 4-Channel DAC, 4-channel ADC. - DAC sampling
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
Using Prefs/AHI ensure you set the music unit and at least Units 0 (where most audio comes from) in top left drop down menu to HDaudio - HIFI in the section below. Set Units 1 or 2 to microphone or other outputs. Plus allow more than one channel for multiple audio streams and set frequency up to 44 kHz or higher on the right hand side of the ahi prefs. If sound beeps when you press the test button then all should be OK.
Output <- Codec <- Audio Controller (HDA) <-> Computer
codecs and exact hardware identifier. As mentioned above, HDA is only part of the work here, it gets the audio out of the main chipset in digital format (on a bus called I2S). This is not enough, there is another step needed which is routing that I2S signal to the output, converting it to actual audio, amplifying it, etc. This is handled by a separate chip called a "codec". Sometimes it is initialized by the BIOS, but this is not always the case.
Most audio drivers are made up of two parts a [http://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio.txt Controller + a Codec]. The ProductID and VendorID are for the audio controller only - the important additional codec is '''NOT''' so easily identified.
Some newer versions of codecs are missing at the moment.
Things to try if sound not working
* try to connect something to the audio jack, maybe it is not playing on internal speakers or vice versa
* make sure you try and select all music units e.g. unit0, unit1....
* even if PCI ID's are in Prefs/Env-Archive/HDaudio.config, this doesn't mean it is working, it is the codec that matters
* it might be internally muted
<pre>
add debug=memory to grub boot line - continue booting with F10
Open a shell
Tools/Debug/Bifteck > RAM:audio.txt
</pre>
or
<pre>
Open a shell
Tools/Debug/Sashimi > RAM:audio.txt
Run ahi prefs
Click test tone button
Stop sashimi with Ctrl-C
</pre>
If the boot sound is enabled, you have to use Bifteck to capture AHI debug output. In the GRUB menu, press E on your selected entry, then add "debug=memory" to the options (alongside ATA=, vesa= etc.). Then F10 or Ctrl-X to boot. Once booted, run Tools/Debug/Bifteck again.
or
* try adding QUERYD to the start of ENVARC:hdaudio.config file (also known as Prefs/Env-Archive/) ie. on the first line
* '''OR''' try removing QUERY and QUERYD from the start of the hdaudio.config file
* Reboot
* open a shell
* type: sys:tools/debug/sashimi > ram:debug.txt
* open ahi prefs
* select one of the audio modes - HIFI or otherwise
* press the 'test sound' button
* press ctrl-c in the shell
* post the results to Aros-World
The HD Audio standard was designed to be hardware pinout interchangeable so that the sound support could change easily and quickly. HDA is a standard around particular chips. Each kind of chip has a certain number of DACs and pins, and even the same chip could be hooked up in different ways on different motherboards. The chips are programmable and the operating system can adjust how things are routed. Some pins aren’t even hooked up, so it makes no sense to route sound to them. Also some pins have sensors that can tell when something is plugged in, so that for example the speakers in a laptop can be muted when headphones are plugged in. Pins are also grouped, so for example all the outputs for a 5.1 sound system are grouped. Generally the HDA driver in the operating system is supposed to read the pin set up and figure out a reasonable way to set things up, and disconnected pins should be ignored, etc.
HDAudio standard has headphones on a separate DAC, and it's up to the driver.. it can even send different audio to the headphones without interrupting the main (green) outputs
====Envy24 series ====
A little history. VIA bought the ICE created Envy chipsets [http://www.via.com.tw/en/products/audio/controllers/comparison_controller.jsp VT1712] first. A few years later, they created several cheaper variants VT1724 (mixer missing), VT1721 (low end cut down), VT1720 (embedded on motherboard) and lastly the VT1723 (no support apart from Windows Envy24DT like SYBA SD-PEX63034).
There are PCI Express versions appearing.
The Envy24 is the base product that was originally designed by ICEnsemble, and it supports multi-channel hardware mixing, which is great for professional use. The HT version removes the hardware mixer (unimportant for non-professional uses). The [http://www.avsforum.com/t/364771/envy24ht-s-the-definitive-source HT-S] version is almost exactly the same as the HT, it just uses cheaper DACs. The PT version is exactly the same as the HT-S version, it is just the edition used for on-board audio on motherboards.
N.B. [http://www.soundonsound.com/sos/dec04/articles/pcnotes.htm PCI slot identification] and [http://hsi.web.cern.ch/HSI/s-link/devices/s32pci64/slottypes.html 3.3v PCI].
=====[http://www.opensound.com/readme/README.Envy24.html envy24.audio] - [http://www.anime.net/~goemon/alsa/ VT1712] =====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Playback
! Recording
! Comments
|-
| M-Audio Delta 66 - Rev B 1999
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested AK4524VF CS8404A-CS - needs Delta Series break out box with D-sub lead -
|-
| [http://ixbtlabs.com/articles/maudioaudiophile/index.html Audiophile 2496] Rev A 2000
| 0x14
| 0x
|
| <!--Playback-->{{unk| }}
| <!--Recording-->{{unk| }}
| works audio out on - I2S stereo codec AKM AK4528VF with the 24bit/96kHz DAC and ADC; CS8427 digital transceiver
|-
| [http://ixbtlabs.com/articles/maudioaudiophile/index.html Audiophile 2496] Rev B 2003
| 0x14
| 0x
|
| <!--Playback-->{{Yes }}
| <!--Recording-->
| works well - I2S stereo codec AKM AK4528VF with the 24bit/96kHz DAC and ADC; CS8427 digital transceiver
|-
| M-Audio Delta 410 - 2001 2001 REV-B
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested for D-A AK4529VQ converters with CS8427-CS 5532 1158B or Event Echo Gina 20-Bit Multitrack Interface Breakout Box -
|-
| M-Audio Delta 1010
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested AK5383 and AK4393 - 25 pin dsub -
|-
| M-Audio Delta 1010LT 1010E
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested for D-A AK4529 converters with 2 XLR Microphone inputs with pre amps
* be aware of redesign in 2007 - possible issues
|-
| M Audio Delta 44 - Rev A 2002 - Rev B 2003 - Rev D 2003
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested ICE1712G AK4524VF needs breakout box with 15 pin D-sub lead -
|-
| M-Audio Delta 66 Rev E 2006 - Omni Studio
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested needs break out box with 15 pin D-sub lead -
|-
| <!--Description-->M-Audio Delta DiO 2496
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| Terratec EWX24/96
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| [http://ixbtlabs.com/articles2/terratecdmx6fire/index.html TerraTec 6fire DMX 24/96]
| <!--Vendor ID-->0x1412
| <!--Product ID-->0x1712
| <!--Revision-->0x02
| <!--Playback-->{{No|tried line 1-2 3-4 5-6 7-8 }}
| <!--Recording-->{{No| }}
| untested - AKM and codec
|-
| <!--Description-->Terratec EWSA88MT
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| [http://lists.freebsd.org/pipermail/freebsd-multimedia/2007-March/006087.html Audiotrak Prodigy HD2] 24/96
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Audiotrak (ESI) Maya 1010 1010L
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| EMU 1212M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| EMU 1616M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| <!--Description-->Terratec EWS 88MT EWS 88D
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Hoontech Soundtrack DSP 24
Soundtrack DSP 24 Value
Soundtrack DSP 24 Media 7.1
Event Electronics EZ8
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Digigram VX442
Lionstracs
Mediastation
Terrasoniq TS 88
Roland/Edirol DA-2496
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
=====envy24ht.audio - VIA VT1724=====
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| ESI Juli@
| 0x3031
| 0x4553
| 0x0
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Yes}}
| reported working years ago [http://envy24.svobodno.com/ Envy24HT-S] - AKM 4358 DAC - AKM 4114/4112 DIT
|-
| ESI Juli@ Ego Igo rev K
| 0x3031
| 0x
| 0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| AK4358? DAC - AK4114 AK4112 DIT
|-
| [http://ixbtlabs.com/articles2/multimedia/m-audio-revolution51.html M-Audio Revolution 5.1]
| 0x1412
| 0x3631
| 0x0
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| reported working years ago but discontinued - (Envy24GT) - 3ch AKM 4358 DAC - ADC AKM 5365 -
|-
| [http://ixbtlabs.com/articles2/m-audio-revolution71/index.html M-Audio Revolution 7.1] 24/192
| 0x1412
| 0x3630 0x1724
| 0x0
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| not working - illegal semaphore - 6ch ADC AKM AK4355 24-bit 192 kHz - 2ch DAC AKM AK4381 24-bit 192 kHz - ADC AKM AK5380
|-
| Terratec Aureon Sky 5.1
| 0x153b
| 0x1147
| 0x
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - discontinued
|-
| [http://ixbtlabs.com/articles2/terratec-aureon71/index.html Terratec Aureon Space 7.1]
| 0x153b
| 0x1145
| 0x0
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - Wolfson WM8770 DAC, AC'97 codec SigmaTel STAC9744
|-
| Terratec Aureon Universe 7.1
| 0x153b
| 0x1153 (rev x) 0x1724 (rev3)
| 0x0
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| not working - semaphore error on rev 3 - DAC ADC
|-
| Terratec Phase 22
| 0x153b
| 0x1150
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - Envy24HT-S - AK4524
|-
| Terratec Phase 28
| 0x153b
| 0x1149
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - Envy24HT-S - AK4524
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Playback
| Recording
| Revision
| Comments
|-
| Audiotrak (ESI) Prodigy 7.1
| 0x4933
| 0x4553
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - Wolfson WM8770 and AC'97 SigmaTel STAC9744 codec
|-
| Audiotrak (ESI) Prodigy 7.1 LT
| 0x3132
| 0x4154
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver -
|-
| [http://ixbtlabs.com/articles2/sound/audiotrak-prodigy192.html Audiotrak (ESI) Prodigy 192] 24/96
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - STAC9460S codec
|-
| <!--Description-->Echo Layla 24/96
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
| [http://www.bit-tech.net/custompc/labs/80752/hercules-gamesurround-fortissimo-4.html Hercules Gamesurround Fortissimo 4]
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - Wolfson WM8776 Codec and WM8766 DAC
|-
| [http://ixbtlabs.com/articles2/multimedia/m-audio-audiophile192.html M-Audio Audiophile Delta AP 192k]
| 0x1412
| 0x3632
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - Stereo ADC AKM AK5385A 24-bit 192 kHZ - 8-channel DAC AKM AK4358 24-bit 192 kHz - AKM 4114/4112 DIT
|-
| ONKYO SE-150PCI
| 0x160b
| 0x0001
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver
|-
| <!--Description-->ESI Waveterminal 192x
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
| <!--Description-->Quartet
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments--> - AKM 4114/4112 DIT
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
|}
====hdmiaudio.audio - hdmi no support====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Comments-->
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->ATI R6xx HDMI Audio codec support output
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x9840
| <!--Revision-->
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->Not detected
|-
| <!--Description-->NVidia HDMI
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Intel Series 6 CougarPoint HDMI codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Intel HDMI
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|}
[[#top|...to the top]]
===Graphic GFX Chipsets===
[https://gallium.readthedocs.io/en/latest/systems.html PCIe based] graphic chipset is defacto on 64bit AROS and recommended on 32bit.
AGP works on 32bit but faster transfers through the AGP slot are only available on a few supported motherboard chipsets
* Faster AGP Working = SIS 650 board, Intel 865pe AGP slot on MSI 6788-050,
* Not Supported = NForce2 chipsets, most Intel 815/820 chipsets, VIA chipsets, ALi chipsets,
The fallback for all graphics modes is vesa if any native support does not work. There is a choice of very low resolution vga as the last resort
2D tests performed with [http://download.aros3d.org/software/gfxbench.zip gfxbench] in the shell type gfxbench > out.txt (40 seconds blank screen is part of the test), via FreeDoom via limit-removing engine like odamex, chocolate or vanilla doom -timedemo demo1 or doom2 -timedemo demo1, doom.exe -iwad doom2 -file mymap.wad, Duke DNRATE 640x480 windowed
3D tests performed with Demos/Mesa/ , Cube 1080p, Cube 2 windowed not fullscreen 1920 x 1025, Quake3 ~ cl_drawFPS 1, Xonotic , [http://shinh.skr.jp/sdlbench/showtestgl.cgi test gl],
HDMI, DVI and DisplayPort monitors have a native resolution of 480p, 720p, 1080i, 1080p and up
<pre>
HDMI (licensing fee)
1.2 720p res.
1.3 1080 resolution
1.4 4K @ 30Hz
2.0 4K @ 60Hz
2.1 48Gbs for 4K @ 120Hz, 8K @ , VRR, etc
2.2 ultra96
</pre>
<pre>
DisplayPort (VESA introduced)
1.4 4K @ 60Hz
2.1 96Gbs for 4K @ 240Hz, 8K @ 120Hz. MST daisy chain multiple monitors,
</pre>
<pre>
GPMI chinese standard
2.0
</pre>
Might be supported on AROS
*OpenGL4 GPU must have 64-bit floating point FP64 math support, which is a hard requirement for GL 4.0. The max last revision opengl 4.6 (2017) on [https://wiki.gentoo.org/wiki/AMDGPU AMDGPU] RX 5000's / 6000s ([https://forum.batocera.org/d/7491-enable-opengl-46-and-vulkan-for-an-old-radeon-video-card RDNA] and Nvidia RTX might come to AROS) but Intel UHD, Iris Plus or Xe or Arc (will not unless a developer wants the challenge)
*OpenGL3 last revision 3.3 (2011)
Already supported on AROS
*OpenGL2 nvidia-nouveau,
*OpenGL1 intel gma950,
====vga.hidd====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Comments
|-
|
| 0x
| 0x
| 0x0
| Generic VGA Driver, limited to 640x480 in 16 colours - no 3D support
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Comments-->
|-
|}
====vesa.hidd====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Comments
|-
|
| 0x
| 0x
| 0x0
| 2D support for VBE1, VBE2 and VBE3 (most cards) - various resolutions and 24bit colour - no 3D support
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Comments-->
|-
|}
[[#top|...to the top]]
====[[w:en:Intel GMA|Intel GMA]]====
DVI output is not supported at the moment.
If having problems:
* Ensure the latest version is being used.
* Set GMA_MEM to 128 or 256 to test
* Try the FORCEGMA ToolType for 2D, and try the FORCEGALLIUM ToolType for 3D acceleration after 2D is verified to work. ToolTypes should be applied to the Devs/Monitors/IntelGMA monitor icon.
If still having problems:
* At GRUB boot screen edit boot line and add option: debug=memory
* Boot.
* Use shell command: tools/debug/bifteck > RAM:debug.txt
* And post [GMA MONITOR DETECTION] and other related debug lines
{| class="wikitable sortable" width="90%"
! width="5%" |Description
! width="5%" |Vendor ID
! width="5%" |Product ID
! width="3%" |Rev
! width="5%" |2D
! width="5%" |3D
! width="5%" |Analog Output
! width="5%" |Digital Output
! width="5%" |Laptop LCD
! width="30%" |Comments
|-
| 910GL 82910GL GMCH + ICH6
| 0x8086
| 0x2582 0x2592
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| 910GML 82910 GML GMCH + ICH6 Mobile
| 0x8086
| 0x2582 0x2592
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| may need to add forceGMA to grub boot line to work
|-
| 915G 82915G GMCH + ICH6-M
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
|
|-
| 915GL 82915GL GMCH
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
|
|-
| 915GV 82915GV GMCH
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Yes|}}
| <!--3D-->{{No|}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{N/A}}
| HP DC5100 small form factor
|-
| 915GM GMA900
| 0x8086
| 0x
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| tunnel gearbox }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes}}
| asus eee pc 900
|-
| 915GMS
| 0x8086
| 0x
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| tunnel }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes| }}
|
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| [http://www.notebookcheck.net/Intel-Graphics-Media-Accelerator-950.2177.0.html 945GU] - 133 MHz (Lake port for Intel A100 and A110)
| 0x8086
| 0x2772
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| Fujitsu LifeBook U1010,
|-
| 945GMS - 166 MHz / 250 MHz (1.05V)
| 0x8086
| 0x27a2
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes}}
| Dell D430
|-
| 945GSE - 166 MHz (for Atom)
| 0x8086
| 0x27ae
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Yes|[http://www.x.org/wiki/GalliumStatus]}}
| {{Yes}}
| {{No|dvi port}}
| {{Yes| }}
| for atom motherboards and most 2008/2009 netbooks
* 3D Works - AOA110 AOA150, Dell Mini 9, Samsung NC10, Toshiba NB100,
|-
| 945G 82945G GMCH + ICH7
| 0x8086
| 0x27a6
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| untested 2D and 3D
|-
| 945GC 82945GC MCH
| 0x8086
| 0x27a6
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| untested 2D and 3D
|-
| 945PM
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| Dell D420, Compaq nc6400,
|-
| 945GMS - 250 MHz Calistoga
| 0x8086
| 0x
| 0x0
| <!--2D--> {{Yes}}
| <!--3D--> {{Yes|most models}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes}}
|
* 3D Works Dell Latitude 2100, HP Compaq nc6320, Lenovo 3000, Lenovo T60, Samsung Q35, Dell D620, Dell D820,
* 3D untested Toshiba Satellite L100-120, Toshiba Portege M400,
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
|
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GMA 3100 G31
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works 2D but no 3D
|-
| GMA 3100 G33
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works 2D but no 3D
|-
| [http://en.wikipedia.org/wiki/Intel_GMA GMA 3150] netbooks and nettops
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works 2D but no 3D. no vga, dvi or hdmi output for nettops
|-
| <!--Description--> G965
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments-->
|-
| <!--Description--> Q965
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x2992
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{No}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments--> Only tested with VGA output.
|-
| 965GM X3100 (500 MHz)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| some support 2D but no hardware 3D - could not get it to work with VGA or dvi output
* untested Apple MacBook Air, Lenovo Thinkpad X300, Dell Inspiron 1525, Toshiba M9,
|-
| 960GM X3100 (400 MHz)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
|
|-
| 965M X3100 (400 MHz)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| Dell D830,
|-
| 965PM ??
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| Toshiba A9 works with limited 2D acceleration but no hardware 3D
|-
| GL965
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works with limited 2D acceleration but no hardware 3D
|-
| GM965
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works with limited 2D acceleration but no hardware 3D
|-
| GMA X3500 G35
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->X4500M G41 G43 G45 (400Mhz) Mobile 4 Series
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x2a42 0x2a43
| <!--Revision-->0x07
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue--> {{No|}}
| <!--Digital--> {{No|}}
| <!--Laptop LCD--> {{Yes| VESA}}
| <!--Comments-->works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->GMA 4500M HD (533 MHz)
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments-->works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->GMA 4700M HD (640MHZ)
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x2a42
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments-->works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
====[http://nouveau.freedesktop.org/wiki/FeatureMatrix nouveau].hidd (nvidia pci, agp, pci-e desktop)====
PCIe based nvidia graphics (gfx 8xxx) are the base level for 64bit AROS but earlier models still has some support on 32bit AROS
*Desktop, more likely hit rather than miss on early nvidia on Aros 32bit but on Aros 64bit ...
*Laptop, limited support for '''very''' early non-optimus (i.e. just Nvidia gfx only so no Intel and nvidia gfx combinations on 32bit but on 64bit ...)
Please note that the nouveau project is reverse engineering a nvidia graphics driver but takes time because of [https://nouveau.freedesktop.org/ nVidia's closed firmwares], etc
* 2026-06 - DEVS Nouveau.hidd Gallium.hidd Softpipe - LIBS Gallium GLU 20.0 Mesa OpenCL
* 2011-10 - DEVS 6.11 Nouveau.hidd 7.4 Gallium.hidd 9.4 Softpipe - LIBS 2.3 Gallium 1.3 GLU 19.0 Mesa OpenCL 1.x
* 2011-04 - DEVS 5.31 Nouveau.hidd 7.3 Gallium.hidd 9.3 Softpipe - LIBS 2.2 Gallium 1.1 GLU 18.0 Mesa OpenCL n/a
Nouveau support for AROS is limited to OpenGL 2.1 compliance on 32bit even for modern GL4 capable GPUs but on 64bit ...
On Aros 32bit OpenCL supports the NV50 (8000 9000) cards, less support in NVC0 fermi cards (300 upwards)
On Aros 64bit
ADoom3 graphic details ultra, benchmark while playing press the "`" key and type "Timedemo demo1" in the console
{| class="wikitable sortable" width="90%"
! width="5%" | Graphic Card
! width="5%" | Aros 32bit 1024 x 768
! width="5%" | Aros 32bit 800 x 600
! width="5%" | Aros 32bit 640 x 480
! width="5%" | Aros 64bit 1024 x 768
! width="5%" | Aros 64bit 800 x 600
! width="5%" | Aros 64bit 640 x 480
|-
| NV50 Asus EN8400GS SILENT/P/512M PCIe (G98) || || || || || ||
|-
| Gigabyte 8500GT 256M || 42,6 || 57,2 || 68,6 || || ||
|-
| NV96 (G96) Geforce 9500GT 512M || 43 || 53 || 57 || || ||
|-
| NV96 (G96) 9600GT || || || || || ||
|-
| NVA3 (GT215) GT240 || || || || || ||
|-
| NVA5 (GT216) Palit GT220 Sonic 512M || 39,7 || 55,8 || 63,7 || || ||
|-
| NVA8 (GT218) gt210 || || || || || ||
|-
| NVA8 (GT218) ION2 || || || || || ||
|-
| NVC3 (GF106) GT440 GTS 450 || || || || || ||
|-
| NVCF (GF116) NVC0 Fermi GTX 550Ti or GTS 450 v2 || || || || || ||
|-
| NVC8 (GF110) 580GTX || || || || || ||
|-
| NVE0 Kepler GT630 || || || || || ||
|-
| NVE6 (GK106) Kepler GTX660 || || || || || ||
|-
| NVE7 (GK107) GTX 650 || || || || || ||
|-
| NV110 Maxwell GTX 750 || || || || || ||
|-
| NV126 (GM206) GTX950 upwards no reclocking || N/A || N/A || N/A || poor || poor || poor
|-
| NV160 family (Turing) GTX 1650 and RTX 2000 upwards with GSP firmware || N/A || N/A || N/A || unknown || unknown || unknown
|-
| HostGL Ryzen 5 4600H - Nvidia 1650 - Linux mint 21.1 || N/A || N/A || N/A || 150fps || 154fps || 155fps
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| width="5%" | Graphic Card
| width="5%" | Aros 32bit 1024 x 768
| width="5%" | Aros 32bit 800 x 600
| width="5%" | Aros 32bit 640 x 480
| width="5%" | Aros 64bit 1024 x 768
| width="5%" | Aros 64bit 800 x 600
| width="5%" | Aros 64bit 640 x 480
|}
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|-
| <!--Description-->tnt1 (nv04) tnt2 (nv05) m64 value (1998)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|very slow}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| NV04 Riva TNT TNT2 Fahrenheit freezes on via motherboard chipset so rename agp.hidd in SYS:Devs/Drivers or Monitors
|-
| <!--Description-->tnt vanta lt (nv06) 1998 /9
| 0x10de
| 0x002c
| 0x15
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|slow}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| <!--Description-->Geforce 256 (nv10) (2000)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|slow }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| untested Geforce256
|-
| <!--Description-->Geforce 2 Geforce 3 Geforce 4 (nv20) 2000 / 2
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|slow }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| works for some PCI and AGP Geforce2 Geforce3 Geforce4
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| Geforce FX5200 nv34 (2003)
| 0x10DE
| 0x0322 0x
| 0xA1
| <!--2D-->{{Maybe| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->{{Maybe|VGA15 }}
| <!--Digital-->{{Maybe|DVI}}
| <!--Laptop LCD-->{{N/A}}
| NV30 GeForce 5 FX Rankine Hardware OpenGL 1.5 - slower than GF MX 4000 for 2D - max 1024 x768
* not working [https://eab.abime.net/showthread.php?t=92328&page=8 mobos with VIA chipsets 2018]
* working (MSI 0x9174) the previous nouveau 5.x driver
* Others work with 6.x series XFX PV-T34K-NA, ASUS V9520-X/TD
|-
| Geforce FX5500 (nv34) (2003)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{Maybe| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| works
|-
| Geforce 5100 (NV34)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce FX 5200LE (NV34)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5200 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce FX5600 (nv31) (2004)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Maybe| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| works
|-
| GeForce FX 5600 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5600SE
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5600XT
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce FX5700 (nv36) (2004)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes|some}}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{Maybe| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5700VE
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5700 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5700LE
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5800 (NV30)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5800 Ultra (NV30)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900 (NV35)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900XT
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900ZT
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5950 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce 5xxx
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
|
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| Geforce 6200 (nv44) (2005)
| 0x
| 0x00F3 0x014F
| 0x0
| <!--2D-->{{Yes|5.28 Pixel Text}}
| <!--3D-->{{Maybe| use 5.28}}
| <!--Analogue-->{{Yes|VGA15 and s-video - plain 4pin cable lead will work with 7pin}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| NV40 GeForce 6 GeForce 7 Curie AGP Hardware OpenGL 2.1 needing previous 5.x version as regression arose 2011-10
|-
| Geforce 6200 (nv44a) (2006)
| 0x
| 0x0221
| 0x0
| <!--2D-->{{Yes|5.28 Pixel Text }}
| <!--3D-->{{Yes|}}
| <!--Analogue-->{{Yes|VGA15}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| Hardware OpenGL 2.1, PCI version tested OK in 2014-01-02 - Icaros 1.5.2
* not working
*working
|-
| GeForce 6200 with Turbo Cache (NV43)
| 0x
| 0x0161
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce 6200SE with Turbo Cache (NV44)
| 0x
| 0x0162
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce 6200 LE
| 0x10de
| 0x0163
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| PCI-E
|-
| GeForce 6600 LE
| 0x
| 0x00F4 0x0142
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6600
| 0x
| 0x00F2 0x0141
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| 2006 PureVideo HD 1 or VP1 re-used the MPEG-1/MPEG-2 decoding pipeline from FX
|-
| Geforce 6600gt (nv4x) (2005)
| 0x
| 0x00F1 0x0140
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Yes| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| OpenGL tests -
|-
| Geforce 6800 (nv40) (2005)
| 0x
| 0x0041 0x00C1 0x00F0 0x0211
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Yes| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 XE (NV4x)
| 0x
| 0x0043
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 LE
| 0x
| 0x0042 0x00C2 0x0212
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 GT (quadro fx 1400)
| 0x
| 0x0045 0x0046 0x0215
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 6800 GS
| 0x
| 0x0047 0x00C0 0x00F6
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 GTS NV40
| 0x
| 0x0040 0x0F9
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 6800XT
| 0x
| 0x0044 0x0048 0x00C3 0x0218
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6600 VE
| 0x
| 0x0143
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6500 NV44
| 0x
| 0x0160
| 0x0
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6250
| 0x
| 0x0169
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 6xxx
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GeForce 7800 GTX
| 0x
| 0x0090 0x0091
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| tunnel gearbox cube cube2 25}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> 256MB DDR3 - 1 6pin psu connector -
* not working asus en7800gtx/2dhtv/256m/osp/a -
* Works XFX PV-T70F-UDD7 Works in steve jones' scrap pc aros build 2010 2 DVI-I ports
* Untested
|-
| GeForce 7800 GT
| 0x
| 0x0092
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7600gt (G8 ) (nv4 ) (2006)
| 0x
| 0x02E0 0x0391
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL 2.1
* not working
* working
|-
| GeForce 7800 SLI
| 0x
| 0x0095
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GTX
| 0x
| 0x0290
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GT GTO
| 0x
| 0x0291
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GS
| 0x10de
| 0x0292
| 0x0a1
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working
* Works with a few glitches with XFX Pine 0x2218
|-
| GeForce 7950 GX2
| 0x10de
| 0x0293 0x0294
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| GeForce 7950 GT
| 0x
| 0x0295 0x02E4
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GS
| 0x
| 0x02E3
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7600 GS
| 0x
| 0x02E1 0x0392
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7650 GS
| 0x
| 0x0390
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7600 LE
| 0x
| 0x0394
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7800GS (G8 ) (nv4 ) (2006)
| 0x
| 0x0093 0x00F5
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working
* works if AGP motherboard chipset is supported - Hardware OpenGL 2.1
|-
| GeForce 7100 GS
| 0x
| 0x016A
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7350 LE
| 0x
| 0x01D0
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7300le (G8 ) (nv4 ) (2006)
| 0x
| 0x01D1
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7300SE 7200GSGF-7200GS-N-B1 variant (G72)
| 0x10de
| 0x01D3
| 0x0a1
| <!--2D-->
| <!--3D-->
| <!--Analogue-->{{Unk|1x DVI, 1x VGA, 1x S-Video}}
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2007 40W pci-e 1.0 VP1 no unified shaders -
* not working Asus on via chipset (2015),
* works Asus on intel chipset (2015),
|-
| Geforce 7300gt (G8 ) (nv4 ) (2006)
| 0x
| 0x0395 0x0393
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working
* works
|-
| GeForce 7300 GS
| 0x
| 0x01DF
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7500 LE
| 0x
| 0x01DD
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7xxx
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GeForce 8800 Ultra (NV50 family)
| 0x
| 0x0194
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NV50 GeForce 8 to GeForce 200s opengl 3.x - max res - 80nm technology - PureVideo HD 2 or VP2 Nvidia VDPAU Feature Set A (absent from ultra and some 8800gt?) added a dedicated bitstream processor (BSP) and enhanced video processor for H.264, VC-1 acceleration
|-
| Geforce 8800gts (nv50) (G8x) (2007)
| 0x
| 0x0400 0x0600 0x0193
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2007 200w openGL3 openCL - 2x6pin psu
* not working 0x0193 models (2015) on via chipsets,
* works
|-
| Geforce 8800gtx (nv5 ) (G8x) (2007)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2008 200W 1x 6pin connector,
* not working
* working
* untested XFX PV-T88P-YDF4, Alpha Dog Edition runs extremely hot - Gigabyte GV-NX88T512H,
|-
| GeForce 8800 GT
| 0x
| 0x0602 0x0611 0x0193
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->DVI up to 2500 x 1600
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - 6pin psu power connector required
* not working
* untested Asus EN8800GT/HTDP/256M EN8800GT/HTDP/512M EN8800GT/G/HTDP/512M
* works
|-
| GeForce 8800 GT (G92)
| 0x10de
| 0x0611
| 0x0a2
| <!--2D-->{{Yes|6.11 Pixel Text}}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{N/A}}
| <!--Digital-->{{Yes}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3 pci-e 2.0 8800GT 512MB on Icaros 2.0.3 [[File:8800GT aros heads.png|thumb|8800GT]] [[File:8800GT aros tails.png|thumb|8800GT detail]]
|-
| Geforce 8600gt (nv5 ) (G8x) (2007)
| 0x
| 0x0401 0x0402
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res
* not working
* works
|-
| GeForce 8500 GT
| 0x
| 0x0421
| 0x0
| <!--2D-->{{Yes| some color }}
| <!--3D-->{{yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL tests - max opengl 3.x but 2.1 offered - max res
* not working
* works Gigabyte 8500 GT,
|-
| GeForce 8800 GS
| 0x
| 0x0606 0x060D
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res
|-
| GeForce 8600GS
| 0x
| 0x0403
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 3.x VP3 offers complete hardware-decoding for all 3 video codecs of the Blu-ray Disc format: MPEG-2, VC-1, and H.264 - Nvidia VDPAU Feature Set B
|-
| GeForce 8300 GS
| 0x
| 0x0423
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res
|-
| Geforce 8400gs G98GS (end 2007) GT218 (2009)
* Rev2 with 8/16 cores and 128-512MB of DDR2 or GDDR3 memory.
* Rev3 with 8 cores and 512MB-1GB of DDR3 memory (based on Tesla 2.0)
| 0x
| 0x0424 0x0422
| 0x0
| <!--2D-->{{Yes|Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 490 gearbox 505 Cube 135 Cube2 55 quake3 }}
| <!--Analogue-->{{Yes|works digital part of DVI but nothing from any display port}}
| <!--Digital-->{{Yes|output on digital 24 pin array of DDWG's DVI and hdmi}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 50W openGL 3.1 openCL - case single slot - one single-link DVI digital output, supporting up to one 1920x1080 resolution display - analog resolution 640 x 480 to 1024 x 768 16 and 24 bit color - [http://www.phoronix.com/scan.php?page=article&item=nouveau_comp_2011&num=19 runs a little hotter than expected] - G98 VP3 pci-e 2.0 512MB DDR2 -
* not working
* works Asus EN8400GS SILENT/P/512M PCIe (G98),
|-
| Geforce 8400gs (nv50) (G86) (mid-2007)
* Rev1 with 16 cores / 256MB of DDR2 memory.
| 0x
| 0x0404
| 0x0
| <!--2D-->{{Yes|Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 490 gearbox 505 Cube 135 Cube2 55 quake3 }}
| <!--Analogue-->{{Yes|works but not tested thru 4 pins of analog signal of DVI plug}}
| <!--Digital-->{{Yes|output on digital 24 pin array of DDWG's DVI and hdmi}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2008 50W openGL 3.1 openCL - case single slot - one single-link DVI digital output up to 1920x1080 resolution display - analog resolution 640 x 480 to 1024 x 768 16 and 24 bit color - [http://www.phoronix.com/scan.php?page=article&item=nouveau_comp_2011&num=19 runs a little hotter than expected] - G86 VP2 128MB -
* not working XFX PV-T86S-YAJG NVIDIA GeForce 8400 GS 512MB DDR2, Sparkle 8400GS 512MB SX84GS512D2L-DPP,
* works Asus EN8400GS SILENT/HTP/256M SILENT/HTP/512M/A,
|-
| GeForce 8400 SE
| 0x
| 0x0420
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 2.x openCL
|-
| NVidia Quadro NVS290 DMS-59
| 0x
| 0x0403
| 0x0
| <!--2D-->{{no| }}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk|DMS-59 socket}}
| <!--Digital-->{{unk|DMS-59 }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2008 21W - G86S (G86-827-A2) - 16 shading units, 8 texture mapping units, and 4 ROPs. NVIDIA has paired 256 MB DDR2 - PCIe 1.0 x16 Low Profile -
|-
| Geforce Quadro FX 4600 (SDI), 5600
| 0x
| 0x
| 0x0
| <!--2D-->{{Partial|VESA 2d}}
| <!--3D-->{{no| }}
| <!--Analogue-->{{partial| }}
| <!--Digital-->{{partial| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GeForce 9800 GX2 (NV50 family)
| 0x
| 0x0604
| 0x0
| <!--2D-->{{Partial|VESA }}
| <!--3D-->{{no| }}
| <!--Analogue-->{{Partial| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 150w - 65nm technology
|-
| GeForce 9800 GTX
| 0x10de
| 0x0612
| 0x0a2
| <!--2D-->{{Yes| }}
| <!--3D-->{{Maybe|6.11 }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 2x6pin psu -
* not working xfx on via chipset (2015),
* works xfx on chipset intel ,
|-
| GeForce 9800 GTX+
| 0x10de
| 0x0613
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res 2560 x 1920 - case dual slot - 26amp 12v rail on computer psu if 2x6pin connectors needed - 55nm version of the G92 chip - will not work with PCI-e 1.0a slots -
* not working
* works on a few models
|-
| Geforce 9800gt (nv50) (G92a) (2008)
| 0x10de
| 0x0614
| 0x0xa2
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel 495 gearbox 513 Cube 156 Cube2 120 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{partial| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL 3.1 openCL 1.x - case dual slot - 600w 26amp on both 12v rails for 2x6pin psu on gfx card - no fan control - some come with 1x6pin - renamed version of the venerable GeForce 8800 GT - randomly works
* not working Gainward 512M untested
* working Gainward CardExpert (0x0401) Green Edition NE39800TFHD02-PM8D92 1024MB (no 6pin)
|-
| Geforce gf9600 9600gt (nv5 ) (G9x) (2008)
| 0x10de
| 0x0622
| 0x0a1
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel 493 gearbox 675 Cube Cube2 100 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL 3.2 openCL but no fan control - case dual slot - 1 6pin pcie psu connector - 500 Watt or greater power supply with a minimum of 26 Amp on the +12 volt rail - Max Analog: 2048x1536 and Max Digital: 2560x1600 (Dual Link DVI Only) - PCI Express® 2.0 / 1.1 Support - g96 gpu randomly works -
* not working bfg tech ocx,
* works gigabyte gv-n96tsl-512i -
|-
| Geforce gf9500 9500gt (nv5 ) (G9x) (2008)
| 0x10de
| 0x0640
| 0x0a1
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel 480 gearbox 500 Cube Cube2 64 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.2 - case single slot - 350 Watt/400 Watt or greater power supply with a minimum of 18 Amp/22 Amp on the +12 volt rail - Max Analog: 2048x1536 and Max Digital: 2560x1600 (Dual Link DVI Only) - PCI Express® 2.0 / 1.1 Support -
* not working zotac zone fanless, Gainward USA NE29500THHD01-PM8796, PNY G9500GN2E50X+0TE,
* works xfx xne-9500t-td01-pm8596 1024mb ddr2,
|-
| GeForce 9600 GS
| 0x
| 0x0623
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res - will not work with PCI-e 1.0a slots -
* not working
* works
|-
| GeForce 9600 GSO
| 0x
| 0x0610
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res - G92 chopped down - 9600GSO is re-badged 8800GS both very power hungry cards -
|-
| GeForce 9300 GS
| 0x
| 0x06E1
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 opengl 3.x - max res
|-
| Geforce 9400 GT (nv5 ) (G86S) (2008)
| 0x
| 0x
| 0x0
| <!--2D-->{{partial|}}
| <!--3D-->{{unk|}}
| <!--Analogue-->{{unk|1x DVI, 1x VGA, 1x S-Video}}
| <!--Digital-->{{unk|1x DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 50W opengl 3.x - max res
|-
| Geforce 9xxx (nv5 ) (G9x) (2008)
| 0x
| 0x
| 0x0
| <!--2D-->{{unk|}}
| <!--3D-->{{unk|}}
| <!--Analogue-->{{unk|}}
| <!--Digital-->{{unk|}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 opengl 3.x - max res
|-
| <!--Description-->
NV84 (G84) GeForce 8600 (GT, GTS, M GT, M GS), 8700M GT,
NV92 (G92) GeForce 8800 (GT, GS, GTS 512, M GTS, M GTX)
GeForce 9600 GSO, 9800 (GT, GTX, GTX+, GX2, M GT, M GTX)
NV96 (G96) GeForce 9400 GT, 9500 (GT, M G), 9600 (M GS, M GT),
NV86 (G86) GeForce 8300 GS, 8400 (GS, M G, M GS, M GT), 8500 GT
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NVA0 (GT200) GeForce GTX (260, 275, 280, 285, 295)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->GeForce GTX 280 (NV50 family)
| <!--Vendor ID-->
| <!--Product ID-->0x05E1
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res PureVideo HD 4 (Nvidia Feature Set C or "VDPAU Feature Set C), VP4 added hardware to offload MPEG-4 Advanced Simple Profile (original DivX and Xvid)
|-
| <!--Description-->GeForce GTX 260
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x05E2
| <!--Revision-->
| <!--2D-->{{partial|Vesa}}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> 2 6pin - psu pci express 2.1 -
|-
| Geforce GTS250 250GTS (g92b) (2009)
| 0x10de
| 0x0615
| 0x0a2
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 486 gearbox 508-642 Cube Cube2 80 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> 2x6pin psu VP2 - pci-e 2.x - case dual slots - 738m 1gb ddr3 -
* not working Zotac branded version GDDR3 -
* works PNY gs-250x-zdfl and Gigabyte ??, BFG Tech RGTS2501024OCE, palit ne3ts250fhd52-pm8a92 with 2x6pin on top and hdmi output port,
|-
| <!--Description-->GeForce GT 240 (GT215 family)
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0ca3
| <!--Revision-->0xa2
| <!--2D-->{{Maybe|use VESA}}
| <!--3D-->{{No|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->late 2009 openGl 3.2 - case dual slots - no 6pin psu required with VP4 - All are pcie 2.1 cards and may not work in 1.0a slots -
* not working
* DDR3 with 512MB or 1GB -
* DDR5 -Asus ENGT240 - XFX Pine GT240XYHFC 0x3001 - Gigabyte GV-N240D5-512I rev 1.0 - Zotac AMP! with HDMI 1.3a with DisplayPort 1.1, Dual Link DVI -
* works
|-
| <!--Description-->GT220 (GT216) G220
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0a20
| <!--Revision-->0xa2
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Yes}}
| <!--Digital-->{{Yes|DVI }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> Icaros 2.0.3 GeForce GT220 1GB[[File:GT220 aros heads.png|thumb|GT220]][[File:GT220 aros tails.png|thumb|GT220]]
* untested NVIDIA Quadro® 400 512MB DDR3 GT216 DP DVI, AFox AF220 1Gb DDR3,
|-
| Geforce GT220 220GT G94 Tesla (g92b)
| 0x10de
| 0x0a20
| 0xa2
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 490 gearbox 505 cube 150 cube2 50 Quake3 }}
| <!--Analogue-->{{Unk|1x DVI, 1x VGA}}
| <!--Digital-->{{Yes|DVI but not 1x HDMI }}
| <!--Laptop LCD-->{{N/A}}
| 58W pci express 2.0 cards DDR3 - case single slot -
* not working ASUS ENGT220/DI/1GD2(LP)/V2 -
* works - gainward card expert 0x0401 GDDr3 512MB -
|-
| <!--Description-->GT210 GT 210 210GT G210 based on Tesla 2.0 GT218S GT218-300-A2 variant, GT218-300-B1
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0a65
| <!--Revision-->0xa2
| <!--2D-->{{Yes|6.11 Pixel Text}}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{Unk|1x DVI, 1x VGA}}
| <!--Digital-->{{Maybe|DVI out works but not hdmi or 1x DisplayPort}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 31W OpenGL 3.3 pci-e 2.0 cards - single slot -
* working GT218 based Asus EN210 based silent low profile large passively cooled -
* untested MSI GeForce 210 1GB DDR3 PCIe N210-MD1GD3H/LP,
* not working
|-
| <!--Description-->Quadro NVS 295 (256 MB GDDR3), NVS 450 (256M/512 MB DDR3)
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x
| <!--Revision-->
| <!--2D-->{{yes| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->
| <!--Digital-->{{partial|2 or 4 dp ports}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 25w low performance - G98s with 8 shading units, 4 texture mapping units, and 4 ROPs on PCI-Express 1.0 x16 -
*not working some NVIDIA Quadro NVS 295 2 dp ports (DELL, HP),
*working
|-
| <!--Description-->GT310 Tesla 310, 315, GT 320, GT 330 GT 340
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{Maybe|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2010 50w OpenGL 3.3 openCL all similar in performance to GT2xx except gt31x (poor)
|-
| <!--Description-->Quadro NVS310 NVIDIA NVS 310
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital--> 2 dp
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2012 25w GF119S (GF119-825-A1) 48 shading units, 8 texture mapping units, and 4 ROPs on PCI-Express 2.0 x16 - 512 MB DDR3 - PureVideo VP5 VDPAU Feature Set D -
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description--> GTX 470, GTX 480 GF10 GF10* core (NVC0 family)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{Maybe| tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2010 215w 2x6 plugs - NVC0 family (Fermi) GF100 (GF100-275-A3) Fermi 448 shading units, 56 texture mapping units, and 40 ROPs with 1,280 MB GDDR5 - OpenGL4.5 OpenCL1.1 Tessellation - case dual slots -
|-
| Geforce GTX460 460GTX (G104) 256bit, 1GB v2 192bit and GTX 465
| 0x10de
| 0x0e22
| 0xa1
| <!--2D-->{{Maybe|VESA }}
| <!--3D-->{{Maybe| tunnel gearbox cube 055-111 cube2 50}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVC0 family (Fermi) OpenGL 4.x but - 2x6pin psu - case dual slots -
* not working evga 768MB GDDR5 192bit 01G-P3-1373-ER or 01G-P3-1372-TR
* works 1GB GDDR5 256bit 01G-P3-1371-ER
|-
| <!--Description-->Geforce GTX 460SE 192bit
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0e23
| <!--Revision-->0x91 or 0xa1
| <!--2D-->{{Yes| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->{{Yes| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> nouveau 6.11 - 2 6pin psu needed - case dual slots -
* not working
* works EVGA 01g-p3-1366-b6 et 1024MB p1041 -
|-
| Geforce GT450 GTS450 450GTS GF106
| 0x10de
| 0x0dc4
| 0x0a1
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel gearbox cube cube2 50 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes|DVI }}
| <!--Laptop LCD-->{{N/A}}
| 2010 Hardware OpenGL 4.2 but nouveau at 3.3 - most need 1x 6pin psu - case dual slots -
* not working
* DDR3 1 or 2GB - Palit NEAS450NHD41F,
* GDDR5 512Mb or 1GB - MSI MPN N450GTSM2D1GD5OC, Asus MPN ENGTS450DI1GD5,
* works Gainward Card Expert NE5S4500FHd51,
|-
| <!--Description-->GT 440 GF108 chipset or better OEM GF106
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 6.11 Pixel Text}}
| <!--3D-->{{Maybe| tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGl 4.1 opencl 1.x - no 6 pin psu - 96 cuda cores 128bit - case dual slots -
* not working
* OEM
* GDDR5 512MB to 1GB ASUSTeK ENGT440/DI/1GD5
* GDDR3 Asus 1gb to 2gb,
* works
|-
| <!--Description-->GT430 430GT (GF108)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|6.11 Pixel Text}}
| <!--3D-->{{Maybe|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->ddr3 memory 64bit or 128bit - buggy await new revision of driver
* not working
* works
|-
| <!--Description-->nVidia Quadro FX1800 768MB GDDR3 Full Height Graphics Card Workstation
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 6.11 Pixel Text}}
| <!--3D-->{{no|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->{{Maybe|DVI-I 2xDP}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->59W 768 MB GDDR3 memory using a 192-bit memory interface - OpenGL 3.3 -
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GTX 590 Fermi
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->OpenGL4.4 OpenCL 1.1 - GDDR5 - 6pin and 8pin psu connectors - 512 cuda - case dual slots -
* not working
* works
|-
| <!--Description-->GTX 580,
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->PureVideo HD 5" or "VP5" (Nvidia Feature Set D or VDPAU Feature Set D) 4k UHD 3840 × 2160 H.264 decode -
|-
| <!--Description-->GTX 570,
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{Maybe|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working Zotac GTX 570, Gainward GTX560TI/570 Phantom,
* works gigabyte, evga
|-
| <!--Description-->Geforce 5xx 560gtx Fermi GTX 560,
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->opengl 4.x - 2 6pin psu - 384 cuda cores - case dual slots - will not work with PCI-e 1.0a slots -
* not working Asus ENGTX560 DC/2DI/1GD5,
* Ti LE 448 cuda GDDR5 320bit
* Ti 256bit
* works
|-
| <!--Description-->GTX 560 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working evga GTX 560Ti 01GP31560KR - Gainward GTX560TI/570 Phantom,
* works
|-
| <!--Description-->GTX 550 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x1201
| <!--Revision-->
| <!--2D-->{{Maybe|VESA Doom Doom2 Duke }}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->can hang on boot up on I2C Init or suffer random lockups on OpenGL apps - most need 1 6pin min 400W 24A on the +12V1 / +12V2 dual 12V rails of the computers' power supply unit - 192 cuda cores - case dual slots used - will not work with PCI-e 1.0a slots -
* not working eVGA GeForce GTX 550 Ti (1024 MB) (01GP31556KR) -
* untested asus Extreme, eVGA GeForce GTX 550 Ti (1024 MB) (01GP31557KR) - -
* works
|-
| <!--Description-->GT 545 and OEM GF116
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 4.2 opencl 1.x - GDDR5 with OEM only -
|-
| <!--Description-->GT530 OEM
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 6.11 Pixel Text}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->96 cuda cores - 1GB or 2GB DDR3 128bit
|-
| <!--Description-->GT520 520GT
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->untested 48 cuda cores - DDR3 64bit
|-
| <!--Description-->510, GT 530
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D 6.11 Pixel Text}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> ddr 3 - 50w max -
|-
| <!--Description-->GT610 Fermi GF119
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVS 315 300 GF119S
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{No|VESA}} needs special dms-59 cable
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 fermi 315 PNY VCNVS315-T 1Gb DDR3 but needs special dms-59 cable -
|-
| <!--Description-->GT630 GF108 Fermi
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->not accelerated 2015 - like the GT730 below - 96 cuda cores whilst kepler version has 384 - 128bit to keplers' 64bit bandwidth - kepler has 2GB DDR3
* not working Gigabyte
* DDR3
* GDDR5
* works
|-
| <!--Description-->Geforce GT 730
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe| use VESA 6.11 Pixel Text}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> fermi version has 96 cuda cores 128bit GF108
* not working Asus
* works
|-
| <!--Description-->nVIDIA Quadro 4000
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}} 2 dp ports
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->142W 2Gb GDDR5 - PCI Express 2.0 x16 ; full Height card with 1x 6-Pin PCIe power need - CUDA Cores 256 - OpenGL 4.5
|-
| <!--Description-->nVIDIA Quadro 5000
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2011 200W 2.5Gb GDDR5 320 bit - PCI Express 2.0 x16 full Height card with 2x 6-Pin PCIe power need -
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce GTX Titan GeForce GTX Titan Black GeForce GTX Titan Z
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVE0 family (Kepler) GeForce 600 GeForce 700 GeForce GTX Titan Kepler
|-
| <!--Description-->GeForce GTX 780 GeForce GTX 780 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->PureVideo HD 6" or "VP6" (Nvidia Feature Set E or VDPAU Feature Set E) significantly improved performance when decoding H.264 and MPEG-2
|-
| <!--Description-->GeForce GTX 770
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->opengl 4.4 opencl 1.1
|-
| <!--Description-->GeForce GTX 760 GeForce GTX 760 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce GT 740
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce GT 730 Kepler
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> two versions fermi 96 cores 128bit GF108 and kepler 384 cores 64bit GK208
|-
| <!--Description-->680gtx GK104 core gtx680 680m
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVE0 family (Kepler)
|-
| <!--Description-->GTX 690 Kepler NVE0
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->pci-e 3.0, OpenGL 4.4 OpenCL 1.1
|-
| <!--Description-->GTX 670
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GTX 660 GTX 660 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GTX 650 GTX 650 Ti GTX 650 Ti Boost
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVE0 family (Kepler) most need 1 6pin psu
* not working asus ENGTX560 DC/2DI/1GD5
* works
|-
| <!--Description-->Geforce GT 640
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* 128bit DDR3
* 192bit DDR3 1.5 to 3GB 50W
* 128bit GDDR5 75W
|-
| <!--Description-->GT 620 GT 640
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce 750ti, GeForce 900
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->[https://nouveau.freedesktop.org/FeatureMatrix.html NV110] Maxwell -
|-
| <!--Description-->Nvidia GTX 750
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x1381
| <!--Revision-->0xa2
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->2026 nvidia test
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->GM206 2nd gen maxwell PureVideo HD 7" or "VP7" (Nvidia Feature Set F or VDPAU Feature Set F) adds full hardware-decode of H.265 HEVC Version 1 (Main and Main 10 profiles and full fixed function VP9 (video codec) hardware decoding
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Quadro K620 quadro p620 2gb gddr5 128bit and quadro p1000 4gb gt1030 30w
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 50w slim low profile -
|-
| <!--Description-->GeForce gtx 1060, GeForce 1070
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NV130 Pascal
|-
| <!--Description-->gtx 1050ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->NV130 family (Pascal)
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV132 (GP102) NVIDIA Titan (X, Xp), GeForce GTX 1080 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV134 (GP104) GeForce GTX (1070, 1080)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV136 (GP106) GeForce GTX 1060
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV137 (GP107) GeForce GTX (1050, 1050 Ti)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV138 (GP108) GeForce GT 1030
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NV162 (TU102) NVIDIA Titan RTX, GeForce RTX 2080 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV164 (TU104) GeForce RTX (2070 Super, 2080, 2080 Super)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2020 NV160 family (Turing) unified gsp-rm firmware - best starting point for Vulkan support
|-
| <!--Description-->NV166 (TU106) GeForce RTX (2060, 2060 Super, 2070)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV168 (TU116) GeForce GTX (1650 Super, 1660, 1660 Ti, 1660 Super)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV167 (TU117) GeForce GTX 1650
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->gtx 1650ti super
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2018 old style
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NV172 (GA102) GeForce RTX (3080, 3090)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 av1 decoding ampere
|-
| <!--Description-->NV174 (GA104) GeForce RTX (3060 Ti, 3070, 3080 Mobile)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->NV170 family (Ampere)
|-
| <!--Description-->NV176 (GA106) GeForce RTX (3050, 3060)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV177 (GA107) GeForce RTX 3050
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NV192 (AD102) GeForce RTX 4090
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV193 (AD103) GeForce RTX 4080
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->NV190 family (Ada Lovelace)
|-
| <!--Description-->NV194 (AD104) GeForce RTX (4070, 4070 Ti)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV196 (AD106) GeForce RTX 4060 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV197 (AD107) GeForce RTX 4060
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
|}
==== nouveau mobile integrated ====
If you purchased a notebook with an NVidia sticker on it, most of the time you have a optimus based one, ie Intel CPU+GPU melded with Nvidia GPU, Optimus was slated at one point to go into desktop PCs but the industry ended up rejecting that concept
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|-
| GeForce 6100 nForce 405
| 0x
| 0x03D1 0x0242
| 0x0
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
|
|-
| <!--Description-->GeForce 6100 nForce 400
| <!--Vendor ID-->
| <!--Product ID-->0x03D2
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce 6100 nForce 420
| <!--Vendor ID-->
| <!--Product ID-->0x03D5
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce 6150 LE
| <!--Vendor ID-->
| <!--Product ID-->0x0241
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6150SE nForce 430
| 0x
| 0x03D0
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| working
|-
| <!--Description-->GeForce 6150
| <!--Vendor ID-->
| <!--Product ID-->0x0240
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7150M / nForce 630M
| <!--Vendor ID-->
| <!--Product ID-->0x0531
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7000M / nForce 610M
| <!--Vendor ID-->
| <!--Product ID-->0x0533
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7050 PV / NVIDIA nForce 630a
| <!--Vendor ID-->
| <!--Product ID-->0x053A 0x053B
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Geforce IGP 7025 nForce 630a
| 0x
| 0x053E
| 0x0
| <!--2D-->{{Yes|some}}
| <!--3D-->{{Yes|some}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No| }}
| some support on some chipsets
|-
| GeForce 7100 / nForce 630i (C73)
| 0x10de
| 0x07e1
| 0x0a2
| <!--2D-->{{Maybe}}
| <!--3D-->{{Maybe}}
| <!--Analogue-->{{Maybe}}
| <!--Digital-->{{Maybe}}
| <!--Laptop LCD-->{{N/A}}
| Icaros 2.0.3 and Gigabyte 73-pvm-s2h rev. 1.0 but will not boot on [https://ae.amigalife.org/index.php?topic=806.msg8765#new Acer x270 with Icaros 2.3]
|-
| <!--Description-->GeForce 7150 / NVIDIA nForce 630i
| <!--Vendor ID-->
| <!--Product ID-->0x07E0
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7050 / NVIDIA nForce 610i
| <!--Vendor ID-->
| <!--Product ID-->0x07E3
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Geforce IGP 8100 (nForce 720a)
| 0x
| 0x084F
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
|
|-
| GeForce 8100P
| 0x
| 0x0847
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
|
|-
| <!--Description-->Geforce 8200 8300 nForce 730a
| <!--Vendor ID-->
| <!--Product ID-->0x084A 0x0848 (GeForce 8300) 0x0849 (GeForce 8200) 0x084B (GeForce 8200)
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->working on some 8300's with Icaros 1.5 but others untested
|-
| <!--Description-->nForce 780a SLI
| <!--Vendor ID-->
| <!--Product ID-->0x084C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->nForce 750a SLI
| <!--Vendor ID-->
| <!--Product ID-->0x084D
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Nvidia Geforce IGP 9300 (nForce MCP7a)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->works
|
|-
| <!--Description-->9400 (ION)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->If AROS detects GPU chipset, works well
|-
| <!--Description-->9700M ()
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Geforce ION 2
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->works well
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce Go 6150
| <!--Vendor ID-->
| <!--Product ID-->0x0244
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6100
| <!--Vendor ID-->
| <!--Product ID-->0x0247
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6200
| <!--Vendor ID-->
| <!--Product ID-->0x0164 0x0167
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6400
| <!--Vendor ID-->
| <!--Product ID-->0x0166 0x0168
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->Sony Laptop
|-
| <!--Description-->GeForce Go 6800
| <!--Vendor ID-->
| <!--Product ID-->0x00C8
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6800 Ultra
| <!--Vendor ID-->
| <!--Product ID-->0x00C9
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600
| <!--Vendor ID-->
| <!--Product ID-->0x0144
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600 TE/6200 TE
| <!--Vendor ID-->
| <!--Product ID-->0x0146
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600
| <!--Vendor ID-->
| <!--Product ID-->0x0148
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600 GT
| <!--Vendor ID-->
| <!--Product ID-->0x0149
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7200
| <!--Vendor ID-->
| <!--Product ID-->0x01D6
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7300
| <!--Vendor ID-->
| <!--Product ID-->0x01D7
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->untested
|-
| <!--Description-->GeForce Go 7400
| <!--Vendor ID-->
| <!--Product ID-->0x01D8
| <!--Revision-->
| <!--2D-->
| <!--3D-->works 2D and 3d issues though
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7800
| <!--Vendor ID-->
| <!--Product ID-->0x098
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7800 GTX
| <!--Vendor ID-->
| <!--Product ID-->0x0099
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7950 GTX
| <!--Vendor ID-->
| <!--Product ID-->0x0297
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7900 GS
| <!--Vendor ID-->
| <!--Product ID-->0x0298
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7900 GTX
| <!--Vendor ID-->
| <!--Product ID-->0x0299
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7600
| <!--Vendor ID-->
| <!--Product ID-->0x0398
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7600 GT
| <!--Vendor ID-->
| <!--Product ID-->0x0399
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 6610 XL
| <!--Vendor ID-->
| <!--Product ID-->0x0145
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 6700 XL
| <!--Vendor ID-->
| <!--Product ID-->0x0147
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce 8700M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0409
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8600M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0425
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8400M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0426
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8400M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0427
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8400M G
| <!--Vendor ID-->
| <!--Product ID-->0x0428
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8800M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x0609
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8800M GTX
| <!--Vendor ID-->
| <!--Product ID-->0x060C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9500M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0405
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8600M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0407
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9650M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0408
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9400M GT
| <!--Vendor ID-->
| <!--Product ID-->0x042C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9300M G
| <!--Vendor ID-->
| <!--Product ID-->0x042E
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9100M G
| <!--Vendor ID-->
| <!--Product ID-->0x0844
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9800M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x0628
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9700M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x062A
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9800M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x062C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9600M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0647
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9600M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0648
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9600M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0649
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9500M G
| <!--Vendor ID-->
| <!--Product ID-->0x064B
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9300M GS
| <!--Vendor ID-->
| <!--Product ID-->0x06E5
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9200M GS
| <!--Vendor ID-->
| <!--Product ID-->0x06E8
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9300M GS
| <!--Vendor ID-->
| <!--Product ID-->0x06E8
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->NV50 (G80) Quadro FX (4600 (SDI), 5600)
Quadro FX (2800M, 3600M, 3700, 3700M, 3800M, 4700 X2), VX 200
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV94 (G94) 9700M GTS, 9800M GTS, GeForce G 110M, GT 130(M), GT 140, Quadro FX (1800, 2700M)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV84 (G84) 8700M GT, GeForce 9500M GS, 9650M GS
Quadro FX (370, 570, 570M, 1600M, 1700), NVS 320M
NV86 (G86) GeForce 8300 GS, 8400 (GS, M G, M GS, M GT), 8500 GT, GeForce 9300M G
Quadro FX 360M, NVS (130M, 135M, 140M, 290)
GeForce GTS 150(M), GTS 160M, GTS 240, GTS 250, GTX (260M, 280M, 285M), GT (330, 340)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV96 (G96) 9650M GT, 9700M GT
GeForce G 102M, GT 120
Quadro FX (380, 580, 770M, 1700M)
NV98 (G98) GeForce 8400 GS, GeForce 9200M GS, 9300 (GE, GS, M GS)
GeForce G 100, G 105M
Quadro FX (370 LP, 370M), NVS (150M, 160M, 295, 420, 450)
Quadro CX, FX (3800, 4800, 5800)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVA3 (GT215) GeForce GT (240, 320, 335M), GTS (250M, 260M, 350M, 360M) Quadro FX 1800M
NVA5 (GT216) GeForce GT (220, 230M, 240M, 325M, 330M), 315
Quadro 400, FX 880M, NVS 5100M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVA8 (GT218) GeForce 8400 GS, ION 2, GeForce 205, 210, G 210M, 305M, 310(M), 405
Quadro FX (380 LP, 380M), NVS (300, 2100M, 3100M)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVAA (MCP77/MCP78) GeForce 8100, 8200, 8300 mGPU / nForce 700a series, 8200M G
NVAC (MCP79/MCP7A) ION, GeForce 9300, 9400 mGPU / nForce 700i series, 8200M G, 9100M, 9400M (G)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVAF (MCP89) GeForce 320M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GT 605M, GT 610M GT 620M GT 630M GT 635M GT 645M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GTX 650M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GTX 1650 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2019 turing architecture - last old skool support pre Vulkan
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rtx 2050 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 ampere architecture best starting point for vulkan support
|-
| <!--Description-->rtx 2060 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rtx 4060 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
|}
====radeon.hidd====
Michel Shultz ''2D'' graphics driver (standard on most distributions but only for very old GPUs) and bearsofts updated 2013 around Icaros 1.3.1
3D is not implemented by AROS yet but could cover these AMD chipsets
<pre>
2014 SI AMD HD 7xxx
2016 GCN3rd AMD R5E R7E
2019 GCN5th AMD Vega 8
2022 RDNA1 AMD RX5500 desktop only
2023 RDNA2 AMD 680M 780M
2024 RDNA3 AMD 880M 890M
2025 RDNA3.5 AMD 8060S strix halo and AI
2027 RDNA4 AMD
</pre>
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! 2D
! 3D
! Analogue Output
! Digital Output
! Laptop LCD
! Comments
|-
| 7000 (r100)
| 0x1002
| 0x5159
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->{{Maybe|vga15 pin connection but not s-video}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.3
|-
| 7500 (rv200 but still r100 based)
| 0x1002
| 0x5157
| 0x
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->{{Yes|vga15}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.3
|-
| 8000 8500 (r200)
| 0x1002
| 0x514c (8500LE)
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.4
|-
| 9000 9100 9250 (r200)
| 0x1002
| 0x5964 (9000) 0x514d (9100)
| 0x0001
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->{{Maybe|VGA15 but not s-video}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.4
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| 9600 9800 (r300)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1
|-
| x300 x600 (r300)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1
|-
| x700, x800 ([http://en.wikipedia.org/wiki/Radeon_R600 r420])
| 0x
| 0x554d (R430 x800xl)
| 0x0
| <!--2D-->{{Yes|new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1 - x800 XL PCIE (problem with mouse-pointer, some part of the pointer is not transparent)
|-
| x1300 x1550 x1600 x1800 x1900 x1950 ([http://en.wikipedia.org/wiki/Radeon_R520 r520])
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes|new driver}}
| <!--3D-->{{no}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| HD2400 HD2600 HD2900 ([http://en.wikipedia.org/wiki/Radeon_R600 r600])
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|some features with new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 3.3 open CL 1.2 TeraScale architecture
|-
| HD3400 HD3600 HD3800 (r600)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|some features with new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->pci-e 2.0, openGL 3.3
|-
| HD4300 HD4500 HD4600 HD4700 HD4800 ([http://en.wikipedia.org/wiki/Radeon_R600 r700])
| 0x1002
| 0x
| 0x0
| <!--2D-->{{Maybe|but some later cards need 3D engine for faster and more flexible 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 3.3 - DDR3 - GDDR5 was one of AMD's aces for the 4800 series - 4670 liked -
|-
| HD6900 cayman series
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|some features with new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 3.3 open CL not mature (2014) -
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| HD5400 Series HD5430 HD5450 HD5470
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2010 openGL 3.3 openCL - GDDR3 -
|-
| HD5500 Series HD5550 HD5570 HD5600 Series HD5650 HD5670 HD5700 Series HD5750 HD5770
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 3.3 openCL - GDDR5
|-
| HD 5800 Series HD5850 HD5870 HD5900 Series HD5950 HD5970 - HD6xxx not NI chipset ([http://en.wikipedia.org/wiki/Evergreen_(GPU_family) r800 evergreen])
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 openGL 3.3 openCL - DDR5 pci-e 2.1 best avoided for all pci-e 1.0 mobos - Ati TeraScale2 architecture -
|-
| HD6450 [http://en.wikipedia.org/wiki/Northern_Islands_(GPU_family) Northern Islands chipset]
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> - DDR3 -
|-
| HD6600 Series HD6650 HD6570 HD6600 Series HD6650 HD6670
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2011 - DDR5 -
Radeon HD 8470 11 TeraScale 2
Radeon HD 8350 11 TeraScale 2
Radeon HD 7510 11 TeraScale 2
Radeon HD 6550D 11 TeraScale 2
Radeon HD 6530D 11 TeraScale 2
Radeon HD 6410D 11 TeraScale 2
Radeon HD 6370D 11 TeraScale 2
Radeon HD 6320 11 TeraScale 2
Radeon HD 6310 11 TeraScale 2
Radeon HD 6290 11 TeraScale 2
Radeon HD 6250 11 TeraScale 2
|-
| HD6800 Series HD6850 HD6870 HD6700 Series HD6790 to HD6990
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2011 - DDR5 - AMD TeraScale3 -
|-
| <!--Description-->HD7450-HD7670
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2012 OpenGL but not Vulkan
Radeon HD 7660D 11 TeraScale 3
Radeon HD 7560D 11 TeraScale 3
Radeon HD 7540D 11 TeraScale 3
Radeon HD 7480D 11 TeraScale 3
Radeon HD 6930 11 TeraScale 3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->HD7750 HD 7770 / R7 250X HD7850 HD7870 / R9 270X HD 7950 / R9 280 HD 7970 / R9 280X [http://en.wikipedia.org/wiki/Southern_Islands_(GPU_family) Southern Islands]
*AMD Radeon R7 250XE Cape Verde XT
*AMD Radeon R7 M465X Cape Verde
*AMD Radeon R9 255 Cape Verde PRX
*AMD Radeon HD 7750 Cape Verde PRO
*AMD Radeon R7 250E Cape Verde PRO
*AMD Radeon HD 8740 Cape Verde PRO
*AMD Radeon HD 7730 Cape Verde LE
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2012 pci-e 3.0 1st Gen GCN architecture -
|-
| <!--Description-->R5 430, FirePro W2100,
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2015 50W+ openGL openCL 1/3 speed of gtx750ti 1st gen gcn1
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->HD7790 [ Sea Islands ]
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 openGL 4.1 open CL - GCN2.0 Vulkan 1.0 introduced a Shader Engine (SE) comprising one geometry processor, up to 44 CUs (Hawaii chip), rasterizers, ROPs, and L1 cache and Graphics Command Processor for faster audio/video - suits Vulkan 1.1
|-
| <!--Description-->r5 240 240x (slow) R7 250 250x (faster) HD 7790 / R7 260 260X / R7 360 to R5 350 (fast) and last one R5 430 OEM Plus (slow again)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 50W+ openGL 4.x openCL 1.x Vulkan 1.0 GCN 1st gen -
|-
| <!--Description-->R9 290 / R9 390 R9 290X / R9 390X
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2014 openGL 4.x openCL 1.x 2nd Gen GCN Vulkan 1.1 architecture -
|-
| <!--Description-->R9 Fury Nano
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2015
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->r-200 series r8 275 285 295 375 [Volcanic Islands]
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 4.x openCL 1.x - GCN3 Vulkan 1.2
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Radeon™ RX 5700/5600/5500 Series and Radeon™ RX Vega Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 GCN 4 - OpenGL 4, Vulkan 1.3 -
|-
| <!--Description-->Radeon™ RX 400/500 Series like rx 580
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->Radeon™ Pro WX 9100, x200 Series and Radeon™ Pro W5700/W5500 Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Radeon™ RX 7900/7600 Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->Radeon™ RX 6900/6800/6700/6600/6500 Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|}
==== amd radeon mobile integrated ====
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|-
| <!--Description-->ATI RC410 [Radeon Xpress 200M]
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x5a62 0x5955 0x5974 (200m)
| <!--Revision-->0x00
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->
|-
| <!--Description-->Mobility Radeon 7500
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x4c57 (7500)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->
|-
| <!--Description-->Mobility Radeon 9000
| 0x1002
| 0x4966 (9000)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->
|-
| <!--Description-->Mobility Radeon 9500 9550 (rv360) 9600 (rv350)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon 9800 (rv420)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon X300 (RV370) X600 (RV380)
| 0x1002
| 0x (RV370) 0x5657 (RV380)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon X700 (RV410) X800 (RV423)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon X1200 (RS69M0)
| 0x1002
| 0x791f
| 0x0
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->X1200 IGP (RS690)
|-
| <!--Description-->Mobility Radeon X1300 X1350 X1400(rv515) X1600 (rv530) X1650 (RV535) X1800 (rv520) x1900 (rv570)
| 0x1002
| 0x71c7 (X1650)
| 0x009e
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon 2100
| 0x1002
| 0x796e (2100)
| 0x0
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{No|}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 2400 (rv610) HD2600 (rv630)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 3100 HD3200 HD3450 3470 (RS780MC RV620) 3670 (M86-XT RV635) HD3870 (M88-LXT RV670)
| 0x1002
| 0x9610 and 0x9612 (HD3200) 0x9614 (HD3300)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 4200 4250 (RV620)
| 0x1002
| 0x (HD4200) 0x9715 (HD4250)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 4330 4530 4550 (M92 RV710) 4650 (M96-XT RV730) 4670 RV730XT 4830 (M97 RV740) 4850 (M98 RV770)
| 0x1002
| 0x (HD4350) 0x9442 (RV770) 0x9490 (HD4670)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 530v (M92 RV710) HD 550v (M96 RV730)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->no support yet
|-
| <!--Description-->Mobility Radeon HD 5430 HD5650 (cedar Park LP)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->no support yet
|-
| <!--Description-->Radeon HD 6250 6290 6310 6320 6350M (Redwood Capilano PRO)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->no support yet
|-
| <!--Description-->AMD 7640G, 8450G, 8550G, 8650G Northern Islands
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 Last real support for old graphics standard before Vulkan takeover
|-
| <!--Description-->R5 M230 M240 M255 - R7 M260 M265 (Kaveri Crystal series with Mantle and HSA)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->2015 Maybe better with Vulkan
|-
| <!--Description-->R5E R7E
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->2016 bristol ridge GCN 3.0 IGP (Carrizo Mobile)
|-
| <!--Description-->AMD Vega 3, 6, 8, 11 iGP
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2018 raven ridge GCN 5th Gen
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->5500m 5600m 5800m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA1 NaviX1 Zen 2
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rx680m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA2 NaviX2 Zen 3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->phoenix apu 1103
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 RDNA3 NaviX3 zen 4
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
==== AMDGPU Vulkan desktop ====
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Kaveri 290 290X, 260 260X
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2015 AMDGPU Vulkan
|-
| <!--Description-->R9 285 / R9 380 R9 380X Fury / Fury X
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->opengl 4 opencl 1 3rd Gen GCN architecture
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX470 RX460 RX480 RX580 polaris10
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 opengl 4 opencl 2 4th Gen GCN architecture vulkan 1.3
|-
| <!--Description-->RX460 RX560D polaris11
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 opengl 4 opencl 2 4th Gen GCN architecture vulkan 1.3
|-
| <!--Description-->RX580 polaris20
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 opengl 4 opencl 2 4th Gen GCN architecture vulkan 1.3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX 5000 5500 Navi 1x
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RNDA 1
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX 6000 Navi 2x
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RNDA 2 Mesa 21.3 decode av1
|-
| <!--Description-->RX6000
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX 7000
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 RNDA 3 navi
|-
| <!--Description-->RX7000
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->RX9070 rx 9060 XT
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2025 rdna4 navi
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2026 udna (aka rdna5)
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
|}
==== AMDGPU Vulkan mobile ====
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->R5E R7E
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->2016 bristol ridge GCN 3.0 IGP (Carrizo Mobile)
|-
| <!--Description-->Vega iGP 3, 6, 8, 11
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2018 raven ridge - Graphics Core Next (GCN) 5th gen -
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->5500m 5600m 5800m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA1 NaviX1 Zen 2
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rx680m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA2 NaviX2 Zen 3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->phoenix apu 1103
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA3 NaviX3 zen 4
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
fyi if a notebooks with two graphic cards, the integrated Intel card (id 0x7d) for low power usage and a discrete Radeon card (id 0x56) which should be used for GPU-intensive applications. By default the Intel card is always used
[https://wiki.archlinux.org/title/ATI Gallium Radeon HD] is not ported yet but is [https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.9-AMDGPU-Stats really big] and complex so another solution may have to be [https://discuss.haiku-os.org/t/the-graphics-acceleration-can-of-worms/10515/5 found] like [https://discuss.haiku-os.org/t/vulkan-lavapipe-software-rendering-is-working-on-haiku/11363/10 vulkan] where support starts from very recent ISA GCN islands HD7000s cards only
*Vulkan
*Gallium
Vulkan software renderer allows to prepares the infrastructure for hardware rendering. Primary difference between software and hardware renderer is output to regular RAM vs GPU RAM, the rest is almost the same. It is possible to render to GPU RAM offscreen.
bare bones basics data flow
application,>>> api/opengl/vulkan>>>>, jit compiler, >>>>memory manger, >>>>gpu hardware
so you need to have a compiler that takes your api call/program/shaders/drawing commands and turns them into a program the gpu can render.
the vulkan to amd gpu compiler for shaders and textures is nearly os agnostic iirc as long as you have solid posix compliance
Unlike OpenGL, Vulkan does not depend on windowing system and it have driver add-on system with standardized API (Mesa also have OpenGL driver add-ons, but it have non-standard Mesa-specific API). OpenGL may need more work for windowing system related code at this point but developing Vulkan on real hardware is more strategic than developing OpenGL, since now Zink 3 running on Vulkan compensates for the lack of OpenGL support by giving performance similar to native accelerated OpenGL
RadeonGfx use client-server model with client-server thread pairs. For each client thread that calls 3D acceleration API, server side thread is created. If client thread terminates, server side thread also exit.
==Rough gfx comparison==
<pre>
Group 1
GeForce RTX 5090 5070 5060 5050
GeForce RTX 4090 4070 4060 4050
Group 2
GeForce RTX 2070
Radeon RX 7600
Quadro RTX 5000
Radeon PRO W6600
GeForce RTX 2060 12GB
Radeon PRO W7500
Quadro GP100
Radeon RX 6800S
GeForce RTX 3070 Laptop GPU
GeForce GTX 1080
GeForce RTX 3060 8GB
Quadro RTX 4000
Radeon Pro W5700
Radeon RX 6600
GeForce RTX 2080 (Mobile)
Radeon RX 7700S
Radeon RX 6700S
Radeon RX 6600S
Quadro RTX 5000 (Mobile)
GeForce GTX 1070 Ti
GeForce RTX 4050 Laptop GPU
Radeon Pro Vega 64X
Radeon RX 5700
Radeon RX Vega 64
GeForce RTX 2060
GeForce RTX 2070 Super with Max-Q Design
Group 3
Radeon RX 6600M
GeForce GTX 1070
Radeon RX 6650M
GeForce RTX 3060 Laptop GPU
Radeon RX Vega 56
Radeon RX 6700M
GeForce RTX 2080 with Max-Q Design
Radeon RX 6800M
GeForce GTX 980 Ti
Radeon R9 Fury
GeForce GTX 980
Quadro M5500
Radeon R9 390X
Radeon RX 580
Radeon RX 5500
Radeon RX 6550M
GeForce GTX 1660 Ti with Max-Q Design
GeForce GTX 780 Ti
GeForce GTX 970
Radeon R9 290X
Radeon RX 480
Radeon RX 5600M
Quadro RTX 3000 with Max-Q Design
Radeon R9 290X / 390X
Ryzen 5 4600HS with Radeon Graphics
Radeon R9 290
Radeon Pro 5500 XT
Radeon R9 M490 *
GeForce GTX 780
Radeon RX 6500M
Quadro M5500
GeForce GTX 1060 with Max-Q Design
Radeon RX 6500
Radeon RX 5300
Intel Arc A770M
GeForce GTX 1650 Ti
Radeon Pro 580X
Radeon RX 6400
GeForce RTX 2050
Ryzen 9 4900HS with Radeon Graphics
Radeon Ryzen 9 6900HS
GeForce GTX 980M
Quadro M5000M
Radeon RX 6300
GeForce GTX 1650 Ti with Max-Q Design
Radeon Pro 570
Ryzen 9 6900HS with Radeon Graphics
GeForce GTX 1050 Ti
Quadro M4000M
Radeon R9 280X 380X
GeForce GTX 1650 with Max-Q Design
GeForce MX570
Radeon R9 280X
Radeon R9 380
Radeon 780M
GeForce GTX 960
GeForce GTX 970M
Quadro M4000M *
GeForce GTX 680
Group 4
Radeon RX 6500M
Quadro M5500
Radeon Pro WX 7100
GeForce GTX 1060 with Max-Q Design
GeForce GTX 1650
Intel Arc A730M
Radeon HD 7970
Radeon R9 M395X
Radeon R9 M485X
Radeon R9 M480 *
Radeon R9 M295X
Radeon R9 M390X *
FirePro W7170M *
Radeon R9 M395
Radeon R7 370
Radeon RX 5500M
GeForce GTX 590
GeForce GTX 880M
GeForce GTX 950
Radeon R9 270X
GeForce GTX 660 Ti
GeForce GTX 760
GeForce GTX 780M
Quadro K5100M
GeForce GTX 680MX
Radeon HD 7870
GeForce GTX 965M
Quadro M3000M *
GeForce GTX 870M
Radeon R9 M290X
Radeon HD 8970M
Radeon Ryzen 7 7735U (680M), Radeon Ryzen 7 7735HS (680M 12C)
GeForce GTX 580
Radeon HD 6970
GeForce GTX 1050
GeForce GTX 680M
GeForce GTX 775M
GeForce GTX 1630
FirePro M6100
Radeon HD 7970M
Radeon R9 M390 *
GeForce GTX 750 Ti
Group 5
GeForce GTX 570
GeForce GTX 480
GeForce GTX 960M
Quadro M2000M *
Quadro K5000M
Quadro K4100M
GeForce GTX 770M
GeForce GTX 860M
GeForce GTX 675MX
GeForce GTX 950M
GeForce GTX 850M
Quadro M1000M
Radeon R9 M280X
Radeon HD 7950M *
GeForce GTX 560 Ti
Radeon HD 6870
GeForce GTX 470
GeForce GT 1030
GeForce MX330
Ryzen 5 PRO 5650GE with Radeon Graphics
Ryzen 7 5800HS
FirePro 3D V8800
GeForce MX250
Group 6
Radeon Pro WX 3200
Ryzen 7 PRO 5750G with Radeon Graphics
Radeon Ryzen 5 5600H
Ryzen 5 Pro 4650G with Radeon Graphics
Radeon Ryzen 7 5800U
Ryzen 7 7730U with Radeon Graphics
Radeon Ryzen 7 5825U
Radeon Pro WX 4150
Radeon Ryzen 5 PRO 4655G
Ryzen 5 4600G with Radeon Graphics
Radeon Ryzen 5 PRO 4655GE
GeForce GTX 485M
FirePro W6150M
Ryzen 7 5800U with Radeon Graphics
Ryzen 5 7530U with Radeon Graphics
Ryzen 7 4800U with Radeon Graphics
Radeon R9 M470
Ryzen 3 PRO 5350G with Radeon Graphics
Radeon RX Vega Ryzen 3 5300U
Ryzen 7 5825U with Radeon Graphics
Ryzen 5 PRO 4400G with Radeon Graphics
Radeon Ryzen 7 PRO 4750GE
Radeon Ryzen 7 4800U
FirePro V7900
Radeon HD 5970
Radeon Ryzen 7 7700X 8-Core
Radeon Ryzen 5 PRO 5650G
Radeon Ryzen 5 4400G
Radeon Ryzen 5 PRO 5650GE
Radeon RX 550X
FirePro V8800
Radeon RX Vega Ryzen 5 5500U
GeForce MX150
Quadro K3100M
Ryzen 7 PRO 5850U with Radeon Graphics
Radeon HD 6970M
Radeon R7 250X
Intel HD 5600
Ryzen 3 4300GE with Radeon Graphics
GeForce GTX 460
Ryzen 7 5700U with Radeon Graphics
Radeon Ryzen 5 7530U
Quadro K620
Ryzen 3 PRO 5350GE with Radeon Graphics
Intel Iris Pro P580
Intel UHD Graphics P630
Ryzen 5 4600H with Radeon Graphics
Ryzen 5 PRO 7530U with Radeon Graphics
Radeon HD 5870
Radeon HD 6870
Ryzen 7 4700G with Radeon Graphics
Ryzen 5 5600U with Radeon Graphics
Radeon HD 7770
Ryzen 3 Pro 4350G with Radeon Graphics
Radeon Ryzen 5 5625U
GeForce GTX 745
Radeon Ryzen 7 4850U Mobile
Radeon Ryzen 3 PRO 7330U
Quadro M600M
Radeon Ryzen 5 5500U
Ryzen 5 5560U with Radeon Graphics
Ryzen 7 4800H with Radeon Graphics
Group 7
GeForce 945M
Ryzen 5 PRO 4650GE with Radeon Graphics
FirePro M5100
Radeon Ryzen 5 5600U
Radeon Ryzen 5 PRO 4500U
GeForce GTX 580M
Ryzen 7 PRO 5875U with Radeon Graphics
Ryzen 3 5300GE with Radeon Graphics
Radeon R9 M385
Quadro 5000M
Radeon Ryzen 7 4700U
Ryzen 5 PRO 5650U with Radeon Graphics
Radeon Ryzen 7 PRO 4750U
Ryzen 7 4700U with Radeon Graphics
Ryzen 7 PRO 4750U with Radeon Graphics
FirePro V7800
Radeon R9 350
Ryzen 3 4300G with Radeon Graphics
Radeon Vega 11 Ryzen 5 PRO 3350G
Radeon Ryzen 5 5560U
GeForce GTX 460 SE
Radeon Pro W5500M
Radeon Vega 11 Ryzen 5 PRO 3400G
Ryzen 5 5500U with Radeon Graphics
Ryzen 5 PRO 4500U with Radeon Graphics
GeForce GT 645
GeForce GTX 765M
Radeon R9 M385X
Ryzen 5 5625U with Radeon Graphics
Ryzen 3 PRO 7330U with Radeon Graphics
Radeon HD 5850
Radeon Vega 11 Ryzen 5 PRO 2400G
Intel Iris Pro 580
Radeon HD 6850
Intel Iris Xe MAX
Radeon Ryzen 7 PRO 5875U
Radeon Ryzen 5 7600 6-Core
GeForce GTX 470M
Ryzen 3 5300G with Radeon Graphics
GeForce GTX 670MX
Radeon RX 640
Qualcomm Adreno Gen 3
Radeon R7 450
GeForce GTX 675M
Radeon Pro WX 4130
Intel Iris Xe MAX 100
Quadro 5000
Radeon RX 570X
Radeon HD 7700-serie
Ryzen 5 4600U with Radeon Graphics
Ryzen 3 PRO 4350GE with Radeon Graphics
Radeon Vega 8
Group 8
GeForce MX230
GeForce GTX 765M
Quadro K4000M
Iris Pro Graphics P580 *
Iris Pro Graphics 580 *
GeForce GTX 645
Quadro M520
GeForce GTX 570M
GeForce MX130
Radeon RX 540
Radeon Ryzen 5 PRO 5675U
Intel UHD Graphics 770
Radeon RX Vega 11 Ryzen 7 3750H
Radeon Vega 11 Ryzen 5 PRO 3400GE
Radeon HD 5850
GeForce GTX 675M
GeForce GTX 580M
Radeon HD 6990M
Radeon R9 M385X *
Radeon R9 M470X *
Radeon R9 M470 *
Radeon R9 M385 *
Radeon R9 M380 *
Radeon R9 M370X
Radeon R9 M275
Radeon HD 7770
GeForce GTX 485M
GeForce GTX 460 768MB
Radeon HD 6790
GeForce GTX 285M SLI
Quadro K3100M
FirePro W5170M *
GeForce GTX 670MX
Quadro 5010M
GeForce GTX 760M
GeForce GTX 670M
Group 9
GeForce 940MX *
Maxwell GPU (940M, GDDR5)
FirePro M8900
Radeon HD 6970M
Radeon R9 M270
Radeon HD 8870M
Radeon HD 7870M
Quadro K3000M
GeForce GTX 570M
FirePro M6000
FirePro M5100
Quadro K2100M
Radeon HD 5770
GeForce GTX 550 Ti
GeForce GTX 280M SLI
Radeon HD 6950M
Radeon R7 250
GeForce GT 755M
GeForce GTX 660M
GeForce 845M
Radeon HD 8850M
Radeon R9 M365X
Radeon R9 M265X
Ryzen 5 PRO 4400GE with Radeon Graphics
FirePro W5130M *
Radeon Vega 8 Ryzen 5 3500U
Radeon HD 7850M
Radeon HD 8790M
FirePro W4170M
FirePro W4190M
FirePro W4100
Radeon Vega 6 Ryzen 3 3300U
Quadro 4000M
GeForce GTX 470M
GeForce GTX 480M
GeForce GT 750M
Iris Pro Graphics 6200
Quadro K1100M
GeForce 940M
Radeon R9 M375
GeForce 930MX *
Radeon R7 M380 *
Radeon R7 M370
Quadro M600M *
GeForce GT 650M
Quadro K620M
GeForce 840M
Radeon R7 M275DX
GeForce GT 745M
Radeon HD 7770M
GeForce GTX 560M
Radeon R7
Iris Pro Graphics 5200
GeForce GT 740M
GeForce 930M
Radeon HD 4850
Group 10
Iris Graphics 550 *
GeForce 830M
Iris Graphics 540
Quadro M500M *
Quadro K2000M
GeForce GTS 450
GeForce GTX 260M SLI
GeForce GT 735M
Mobility Radeon HD 5870
GeForce 825M
Quadro 5000M
FirePro M4000
FirePro M7820
Radeon HD 6870M
GeForce 9800M GTX SLI
Radeon HD 8830M *
Radeon HD 8770M
Radeon R7 M260X
GeForce GTX 460M
GeForce 920MX *
GeForce GT 730M
Radeon HD 7750M
GeForce GT 645M *
FirePro M4100
Radeon HD 8750M
Radeon R6 A10-9600P 4C+6G
Quadro 3000M
Radeon R7 M270
Radeon R7 M265
Quadro FX 3800M
GeForce GTX 285M
Mobility Radeon HD 4870
GeForce GT 640M
Radeon R7 (Kaveri)
Radeon R8 M365DX
Radeon R7 M460 *
Radeon HD 7730M
Radeon R7 M360
GeForce GTX 280M
Radeon HD 8690M
Quadro FX 3700M
Radeon R7 M340
GeForce 920M
Radeon R6 M340DX
HD Graphics 530
HD Graphics P530
Tegra X1 Maxwell GPU
Radeon R7 M260
Radeon R6
Group 11
Mobility Radeon HD 4860
FirePro M7740
Mobility Radeon HD 4850
GeForce GTX 260M
GeForce 9800M GTX
Quadro FX 2800M
Radeon HD 8670D
Radeon HD 7690M XT
FirePro M5950
GeForce GT 640M LE
Radeon R6 (Kaveri)
Radeon HD 8650M *
Radeon HD 8730M
Radeon HD 6770M
GeForce GT 635M
GeForce GT 555M
Radeon R7 A10 PRO-7800B
Radeon HD 5670
Mobility Radeon HD 5850
Radeon HD 6850M
Quadro 2000M
GeForce 9800M GT
GeForce 8800M GTX
Quadro FX 3600M
GeForce GT 445M
GeForce GTS 360M
Group 12
GeForce GT 240
Radeon R7 PRO A10-9700
Radeon HD 7690M
HD Graphics 5600
Radeon HD 8570D
Radeon HD 8670M
Radeon R6 M255DX
Radeon HD 7660D
Radeon HD 6750M
Quadro K1000M
GeForce GT 550M
Radeon HD 8590M *
GeForce GTS 260M
GeForce GTS 160M
GeForce 9800M GTS
GeForce GT 430
Radeon HD 6830M
Mobility Radeon HD 5830
Radeon HD 6730M *
GeForce 9800M GS
Mobility Radeon HD 4830
Mobility Radeon HD 5770
Radeon HD 6570M
Radeon HD 8650G
Radeon HD 7670M
GeForce GT 630M
Radeon HD 7560D
GeForce GTS 150M *
Radeon R5 M335
Radeon R5 M430 *
Radeon R5 M330
Radeon R5 M255
Radeon Vega 3
Quadro 1000M
GeForce 820M
FirePro W2100
HD Graphics 520 620
Iris Graphics 6100
GeForce GT 720M
GeForce 8800M GTS
Radeon R5 M240
Radeon R5 M320 *
Radeon R5 M230
Radeon R5 M315 *
Mobility Radeon HD 5750 *
Radeon HD 8570M
Radeon R7 PRO A10-8850B
HD Graphics 6000
Quadro K610M
Radeon HD 8550M
Iris Graphics 5100
GeForce GT 540M
Mali-T880 MP12 *
Radeon HD 8610G *
Radeon HD 6650M
HD Graphics 4600
Mobility Radeon HD 5730
HD Graphics 5500
Radeon R5 (Carrizo) *
Radeon R5 (Kaveri)
FirePro M5800
NVS 5400M
GeForce 710M
Radeon HD 7660G
GeForce GT 435M
HD Graphics 5000
Quadro K510M *
Radeon HD 5570
Radeon HD 6550M
Radeon HD 7590M *
GeForce GTS 350M
GeForce GTS 250M
Radeon HD 6630M
Radeon HD 7650M
FirePro M2000
Radeon HD 7570M
Radeon HD 7630M
Quadro FX 1800M
Mobility Radeon HD 5650
Radeon HD 8510G *
Radeon HD 6530M
Radeon HD 8550G
Quadro K500M *
GeForce GT 625M *
GeForce GT 620M
GeForce GT 525M
Radeon HD 6550D *
Radeon HD 7610M
Radeon HD 7620G
Radeon HD 8470D
Radeon HD 7640G
Adreno 530
GeForce ULP K1 (Tegra K1 Kepler GPU)
HD Graphics 4400
HD Graphics 510 515 *
NVS 5200M
Mobility Radeon HD 565v
Radeon HD 7550M
Mobility Radeon HD 4670
GeForce GT 425M
GeForce 9700M GTS
Radeon HD 6645G2 *
Quadro FX 2700M
GeForce GT 335M
Radeon HD 7600G
Mobility Radeon HD 3870
Mobility Radeon HD 4650
GeForce GT 220
GeForce GT 420M
Radeon HD 7530M *
Mobility Radeon HD 3850
GeForce GT 330M
Quadro FX 880M
Quadro NVS 5100M
GeForce GT 240M
Radeon HD 7490M *
HD Graphics 5300
Radeon HD 7510M *
GeForce Go 7950 GTX
Quadro FX 3500M
GeForce 8700M GT SLI
GeForce 9700M GT
GeForce GT 230M
Mobility Radeon HD 550v
Radeon HD 7480D
HD Graphics 4000
Mali-T760 MP8
Radeon HD 6620G
HD Graphics (Broadwell) *
Adreno 430
Radeon R5 (Beema/Carrizo-L)
Radeon R4 (Beema) (Kaveri)
HD Graphics (Skylake) *
Radeon HD 6450 GDDR5
Radeon HD 7500G
Radeon HD 8450G
Radeon HD 7470M
Radeon HD 6490M
Radeon HD 8400
Mali-T880 MP4
GeForce GT 520MX
Radeon HD 7520G
GeForce GT 325M
GeForce Go 7800 GTX SLI
GeForce 8600M GT SLI
GeForce Go 7900 GS SLI
GeForce GT 130M
NVS 4200M
GeForce Go 7900 GTX
Quadro FX 2500M
Radeon HD 8350G
Radeon HD 8330
GeForce 9650M GS
GeForce 9650M GT
Radeon R3 (Mullins/Beema)
GeForce 8700M GT
Quadro FX 1700M
Quadro FX 1600M
GeForce Go 7800 GTX
GeForce Go 7900 GS
Quadro NVS 320M
Quadro FX 1500M
GeForce 9600M GT
GeForce GT 220M
Quadro FX 770M
GeForce GT 120M
Radeon HD 7450M
GeForce 610M
GeForce 705M
Mali-T760 MP6
Radeon HD 6470M
FirePro M3900 *
GeForce GT 520M
Radeon HD 7420G
Mobility Radeon HD 3670
Mobility FireGL V5725
PowerVR GX6450
Adreno 420
HD Graphics (Haswell)
Radeon HD 6520G
Radeon HD 8310G *
GeForce 320M
GeForce GT 320M
Mobility Radeon HD 2600 XT
Mobility Radeon X1900
Mobility Radeon X1800XT
Mobility Radeon X1800
GeForce Go 6800 Ultra
GeForce Go 7800
GeForce 9600M GS
GeForce 9500M GS
Radeon HD 7400G
Radeon HD 6480G *
Mobility Radeon HD 2700
GeForce GT 415M
GeForce 410M
Radeon HD 7370M
Adreno 418
HD Graphics (Cherry Trail)
Radeon HD 6370M
Radeon HD 8280
Mobility Radeon HD 5470
Radeon HD 6450M
Radeon HD 7430M *
Mobility Radeon HD 3650
Mobility FireGL V5700
Mobility Radeon HD 5145
Mobility Radeon HD 545v
Radeon R6 (Mullins) *
Radeon HD 8240
Radeon HD 8250
Mobility Radeon HD 4570
Quadro FX 570M
Mobility Radeon HD 5450 *
Radeon R2 (Mullins/Beema) *
GeForce 8600M GT
Mobility Radeon HD 2600
HD Graphics 3000
Quadro FX 380M
GeForce 310M
GeForce G210M
NVS 3100M
GeForce 405M
GeForce 315M
GeForce Go 7600 GT
GeForce 9500M G
GeForce 8600M GS
NVS 2100M
GeForce Go 7700
GeForce Go 6800
Quadro FX Go 1400
Mobility Radeon X800XT
Radeon HD 6430M *
Radeon HD 6380G *
Mobility Radeon HD 5430
Radeon HD 8210
Mobility Radeon HD 540v
Mobility Radeon HD 4550
HD Graphics 2500
HD Graphics (Ivy Bridge)
Quadro NVS 310
Radeon HD 7350M *
Radeon HD 6350M *
Mobility Radeon HD 4530
Mobility Radeon HD 4350
Radeon HD 4350
GeForce 305M
Mobility Radeon X1700
Mobility FireGL V5250
Mobility Radeon X2500
GeForce Go 7600
Quadro NVS 300M
Mobility Radeon X800
Mobility Radeon X1600
Mobility FireGL V5200
Mobility Radeon 9800
GeForce Go 6600
Mobility Radeon X1450
Mobility Radeon X700
Mobility FireGL V5000
GeForce G 110M
Quadro NVS 295
Radeon HD 6330M *
Mobility Radeon HD 4330
GeForce 8400M GT
Quadro NVS 140M
HD Graphics 2000
GeForce 9500M GE *
GeForce 9400M (G) / ION (LE)
HD Graphics (Sandy Bridge) *
Adreno 330
PowerVR G6430
PowerVR GX6250
PowerVR G6400
HD Graphics (Bay Trail)
Mali-T628 MP6
Mali-T760 MP4
Chrome9HD *
Radeon HD 7340
Radeon HD 6320 *
Radeon HD 7310
Radeon HD 6310 *
Radeon HD 8180
Mobility Radeon HD 3470
GeForce 9300M G
ION 2 *
GeForce 9300M GS
Quadro FX 370M
Quadro NVS 160M
GeForce 9200M GS
Mobility Radeon HD 3450
Mobility Radeon HD 3430
Mobility Radeon HD 3410
Mobility Radeon HD 2400 XT
Radeon HD 4270
Radeon HD 4250
Radeon HD 7290 *
Radeon HD 6290 *
Radeon HD 4200
Graphics Media Accelerator (GMA) HD Graphics
Radeon HD 6250
Quadro NVS 150M
Quadro FX 360M
Mobility Radeon X1350
Mobility Radeon X1400
GeForce 9100M G
GeForce 8400M GS
Quadro NVS 135M
Mobility Radeon HD 2400
Radeon HD 3200
Radeon HD 4225 *
Radeon HD 4100 *
SGX554MP4
Mali-T628 MP4
Mobility Radeon HD 3400 *
Radeon HD 3100
GeForce 8400M G
Mali-T860 MP2
Quadro NVS 130M
GeForce 8200M G
Graphics Media Accelerator (GMA) 4700MHD
Graphics Media Accelerator (GMA) 4500MHD
Graphics Media Accelerator (GMA) 4500M
Mali-T604 MP4
GeForce Go 7400
Quadro FX 350M
Quadro NVS 120M
GeForce Go 7300
GeForce Tegra 4 *
PowerVR G6200
Adreno 405 *
Quadro NVS 110M
Mobility Radeon X600
Mobility FireGL V3200
Mobility FireGL V3100
Mobility Radeon HD X2300
Mobility Radeon 9700
Mobility FireGL T2e
Mobility Radeon X1300
GeForce4 4200 Go
Mobility Radeon 9600
Mobility FireGL T2
Mobility Radeon 9550
GeForce Go 7200
GeForce Go 6400
Mobility Radeon X300
GeForce Go 6250
GeForce Go 6200
GeForce FX Go 5700
Quadro FX Go 1000
GeForce FX Go 5600 / 5650
Radeon Xpress X1270
Radeon Xpress X1250
Radeon Xpress X1200
Graphics Media Accelerator (GMA) X3100
Mali-T624
Adreno 320 *
Mali-T760 MP2
Mali-T720 MP4
Mali-450 MP4
Graphics Media Accelerator (GMA) 3650 *
GeForce 7190M *
GeForce 7150M
Radeon Xpress 1150
GeForce Go 6150
GeForce Go 6100
GeForce 7000M
Graphics Media Accelerator (GMA) 3600 *
Mobility Radeon 9200
Mobility FireGL 9000
GeForce FX Go 5200
Mobility Radeon 9000
GeForce 4 488 Go
GeForce 4 460 Go
GeForce 4 440 Go
GeForce 4 420 Go
Graphics Media Accelerator (GMA) 3150
Graphics Media Accelerator (GMA) 950
SGX545 SGX544MP2 SGX543MP2 *
Mali-T720 MP2
Mali-T720
Adreno 302 304 305 306
Mobility Radeon 7500
Mobility FireGL 7800
Graphics Media Accelerator (GMA) 900
Radeon Xpress 200M
Radeon Xpress 1100
Mirage 3+ 672MX
Mirage 3 671MX
Mali-400 MP4 *
GeForce ULP (Tegra 3) *
VideoCore-IV *
Adreno 220 225*
Vivante GC1000+ Dual-Core
Mali-400 MP2 *
GeForce ULP (Tegra 2) *
Graphics Media Accelerator (GMA) 600 *
SGX540 *
Graphics Media Accelerator (GMA) 500
Adreno 205 *
Adreno 203 *
GC800 *
SGX535
SGX531
SGX530
Adreno 200 *
Mali-200 *
GeForce 3 Go *
GeForce 2 Go 200 / 100
Mobility Radeon 9100 IGP
Mobility Radeon 9000 IGP
Mobility Radeon M7
Mobility Radeon M6
Chrome9 HC
Extreme Graphics 2
Mobility Radeon 7000 IGP
Radeon IGP 340M
Radeon IGP 320M
S3G UniChrome Pro II
S3G UniChrome Pro
Castle Rock
Mirage 2 M760
Mirage M661FX
S3 Graphics ProSavage8
Mobility 128 M3
SM502 *
</pre>
Kernel-space drivers like '''radeon''' (older AMD driver for older GPUs), '''amdgpu''' (newer driver for newer GPUs, allows using a few new features), i915, nouveau and a few others. They are what handles the gory details of talking to the GPU itself (writing to proper registers, handling its memory directly, configuring outputs, and so on). Unfortunately most of what they're exposing can be only consumed by a single user of that GPU, which is why we need...
DRM and DRI (Direct Rendering Manager/Infrastructure) controls access to the GPUs, provides interfaces for talking to the GPU concurrently by multiple apps at once (without them breaking each other) and lets the system perform the most basic tasks like setting proper resolution and such if no userspace apps understand how to talk to the GPU exposed. DRI and DRM expose the GPU interfaces mostly as-is, not in a "vendor-neutral" portable way - if you don't have an application developed specifically for a GPU you have, it won't work.
"let's create a vendor-neutral interface for graphics so that apps can ignore the GPU-specific bits and get right to the drawing!" - which is what OpenGL is. User-space drivers implement the OpenGL specification and expose it as an OpenGL library to apps (like games, browsers, etc) instead of the GPU. Mesa is the most popular collection of open-source user-space drivers and contains a few user-space drivers for different GPU families: '''radeonsi''' for most modern AMD GPUs (and '''r600g''', r300g and others for older ones), '''i915/i965''' for old/new Intel GPUs and '''nouveau''' for Nvidia GPUs.
There's also Gallium, which is a bunch of utilities and common code shared among these drivers - if certain things can be done once and work everywhere, they'll land in Gallium and benefit all the drivers. Most Mesa drivers use Gallium (radeonsi, nouveau, software renderers), some don't (intel after gma950).
Displaying 2D windows supports device-specific 2D drivers as well, but nowadays most of these are no longer needed as the modesetting can handle most hardware on its own. As the DRM/DRI got some additional interfaces for what used to be hardware-specific (setting resolutions, refresh rates, etc) and software requiring accelerated 2D drawing was optimized OpenGL-based renderers, dedicated 2D acceleration is slowly going away. Since around 2012, the 3D part of the graphics card deals with 2D operations.
Modern GPUs can also decode video!? There's VDPAU (NVIDIA & AMD GPUs) and VA-API (AMD & Intel GPUs) that can also talk to the GPU exposed via DRM/DRI and issue proper commands to decode/encode a given video stream. Those drivers are GPU-specific too.
So let's say you have some example GPUs, here's how example stacks could look like:
* AMD Radeon HD8750: amdgpu -> DRM/DRI -> Mesa (radeonsi)
* AMD Radeon HD4850: radeon kernel driver -> DRM/DRI -> Mesa (r600g) -> games/apps/etc.
* NVIDIA GeForce 460: nouveau kernel driver -> DRM/DRI -> Mesa (nouveau) -> games/apps.
* Intel GMA950: i915 kernel driver -> DRM/DRI -> Mesa (i945) -> games/apps.
{| class="wikitable sortable" width="90%"
! width="15%" | Description
! width="15%" | Analog Output
! width="15%" | Digital Output
! width="15%" | Laptop LCD
! width=30%" | Comments
|-
| <!--Description-->Fudomi GC888A
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->1080p 100in throw projector
|-
| <!--Description-->Vamvo VF320 (720P)
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->720p 90in
|-
| <!--Description-->Happrun H1
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->1080p 90in
|-
| <!--Description-->Umbolite Magcubic HIPPUS HY320 Mini
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->720p 100in
|-
| <!--Description-->Zentality A10 Plus
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->720p 110in
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->nexigo nova mini
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->nebula mars 3
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->epson lifestudio flex plus portable projector
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->dangbei freedo
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->benq gv50
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
Unless your computer uses a Firewire chipset manufactured by Texas Instruments, FireWire interfaces are likely to act buggy.
AROS is unlikely to ever support FireWire.
Bluetooth is similarly unlikely to be ever supported due to huge cost to be certified.
No, x86 PCMCIA card.resource at the moment. Writing card.resource would be a similar amount of work to writing a typical driver. However, it might be complicated by having to support a variety of PCMCIA-controller chipsets like TI PCI1225, PCI1410, PCI1420, 1450, PCIxx12 and O2, etc. m68k card.resource does not really have many higher level functions, most functions are really simple or poke Gayle registers directly. only exception is CopyTuple(). Amiga card.resource has one significant flaw: it's single-unit. would need card.resource and pccard.library. There was talk in the past of designing a new API for PCMCIA because card.resource only supports one slot, but since most modern laptops only have one slot anyway, I think it might be worthwhile to implement card.resource as-is (at least as a first step). pccard.library would be trivial to port. So, a new API is needed.
msvahg4s2tcrxih9dthjtk3hfo3i5mh
4640221
4640166
2026-06-13T17:45:30Z
Jeff1138
301139
4640221
wikitext
text/x-wiki
Google translation into [http://translate.google.com/translate?hl=en&sl=auto&tl=de&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support German], [http://translate.google.com/translate?hl=en&sl=auto&tl=fr&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support French], [http://translate.google.com/translate?hl=en&sl=auto&tl=nl&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Dutch], [http://translate.google.com/translate?hl=en&sl=auto&tl=it&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Italian], [http://translate.google.com/translate?hl=en&sl=auto&tl=es&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Spanish], [http://translate.google.com/translate?hl=en&sl=auto&tl=hi&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Hindi],
[http://translate.google.com/translate?hl=en&sl=auto&tl=zh-CN&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Chinese Simplified],
[http://translate.google.com/translate?hl=en&sl=auto&tl=pl&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Polish],
[http://translate.google.com/translate?hl=en&sl=auto&tl=ru&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FPlatforms%2Fx86_support Russian],
{{ArosNav}}
[[#Audio Chipsets]]
[[#Graphic GFX Chipsets]]
[[#Rough gfx comparison]]
[[#]]
==x86 Native Environment==
AROS should run on almost any i386 PC hardware so long as the CPU is newer than an i486, and has a "Floating Point Unit (FPU)". Ideally around 700Mhz and above with at least 256MB of memory is recommended for desktops and around 1GHz and at least 256MB for laptops/notebooks/netbooks. For web browsing, etc above 1GB is usually needed and offers the option to run web browsers, media players and other hard disk heavy usage from RAM: disk.
Motherboards supported
* Most Intel mobos are supported (Skt 775 is ok but newer is better) - additional pci / pci-e cards may be needed for networking, audio, etc
* AMD based socket 939 am2 am2+ am3+, fusion and am4 ryzen based systems work but additional pci / pci-e cards may be needed
Supported graphics cards (gfx)
* Nvidia 2D and 3D 2005-2017.
64bit AROS Nouveau covers '''2D''' 8xxxgs and higher to GTX 900s and '''3D''' from .
32bit AROS supports '''2D''' from TNT through to fermi gtx5xx and '''3D''' acceleration fx5xxx to gtx4xx.
* Intel GMA 2D and 3D 2006-2009.
'''2D''' for many old netbooks and motherboards. '''3D''' for many early netbooks and motherboards
* AMD/ATI 2D only and '''no 3D'''. 1999-2005.
Desktop ie external monitor support only (no laptop internal support) for very early Radeon 7000 through to x600. Experimental 2D version for up to HD3xxx came later
* VESA 2D fallback modes for all graphic cards (GPUs) and with [http://www.youtube.com/watch?v=HKCHZFYj9Kk screen dragging].
It's worth noting however that support isn't guaranteed. Nor will potential power of a card reflect its performance under AROS.
Sound wise there are
* HDaudio support for onboard intel and AMD netbooks, ultrabooks, notebooks and motherboards (2005 to 2020)
* some AC97 codec support for very old motherboards and laptops (ie pre 2004)
* PCI and some PCI-E C-Media CMI8738 for desktop plugin cards
* PCI Creative Soundblaster EMU10K1 cards [http://amigaworld.net/modules/news/article.php?storyid=2512 SBLive]
* PCI semi professional some early VIA Envy24 desktop sound cards
* PCI Sound Blaster 128 aka SB16
Supported [http://en.wikibooks.org/wiki/Aros/Platforms/x86_Network_support network] which could be desktop, laptop, etc
* PCI-E Realtek rtl8169 which also includes the rtl8111 and rtl8110
* PCI Realtek rtl8139 and includes rtl8101 and rtl8100
* PCI intel pro100
* Broadcom 44xx 10/100 integrated in laptops around 2005
* VIA 10/100
* 3com Etherlink 10/100
* Realtek rtl8029 10mbit
Wireless wifi
* atheros 5000 wireless
*realtek 8187 usb
It is very hard to recommend a completely supported motherboard because as soon as newer motherboards arrive so their features change subtly, often introducing non supported parts like ethernet and audio. It is a moving target.
* mini-itx motherboard will only get you 1 pci or pci-e slot
* micro mATX or uATX will have more, typically 2 pci-e or pci slots which helps if any onboard features are not supported.
* full atx will have more slots available
'''N.B''' It is frustrating when a piece of hardware is not supported. Hardware documentation can run to over 100 pages and a lot of hardware do not have any public documentation anyway. Chips from different manufacturers for sound, graphics, SATA, etc. vary just as much, unless they follow a standard such as [https://github.com/acidanthera/AppleALC/wiki/Supported-codecs HDAudio codecs], AHCI etc.
Coding drivers is a far cry from Hello World programs or even a port of existing software. If you do actually want to try then get a hold of documentation on the relevant hardware and start there. Alternatively you could try to find some '''BSD''', MIT or MPL licence drivers as a point of reference. Please , do not think you can just adapt strings in a driver for different strings, it does not work that way. You will '''need''' to start from scratch for each new bit of hardware. Device driver programming require '''embedded''' skills, like manipulation of bits within registers, good debugging skills, dealing with interrupts, lots of patience, etc.
The following specific chipsets and drivers are also available - use Tools/PCITool to confirm Vendor and Product IDs - Please let us know any mistakes or any information to be added, to this General Chat list on [https://arosworld.org/ AROS World]
: Brief Timeline
: 2000-12-06 HIDD first mouse.hidd completed ([http://msaros.blogspot.com/ Michal Schulz])
: 2001-03-31 BOOT first boot from floppy disk with IDE device
: 2001-10-30 BOOT first cd bootable version
: 2002-01-27 HIDD first pci.hidd added (Michal Schulz)
: 2002-04-13 BOOT software HDToolBox added ()
: 2003-04-03 HIDD vesa2.hidd graphic modes added ()
: 2004-03-08 HIDD new pci and ata (pata) devices worked on (Michal Schulz)
: 2004-03-17 HIDD nVidia 2D driver appears (Michal Schulz)
: 2005-01-05 AHI AHI v6 audio system ported (Martin Blom)
: 2005-01-06 AHI SBLive SoundBlaster Live driver ported (Georg Steger)
: 2005-02-04 AHI AC97 playback only driver added (Michal Schulz)
: 2005-06-27 NIC amiTCP stack ported with 3com, NE2000, prism2 drivers (Neil Cafferkey)
: 2005-08-25 NIC nForce2 support added (Michal Schulz)
: 2005-12-24 NIC Intel Pro100 network driver added (Neil Cafferkey)
: 2006-03-25 HIDD ATI radeon 2D driver added (Michal Schulz)
: 2007-03-06 HIDD vesa 1.0 video driver added (Pavel Fedin)
: 2007-03-08 HIDD dospackets and FAT filesystem (Rob Norris)
: 2007-03-21 HIDD usb initial commit (Michal Schulz)
: 2007-10-01 BOOT Installer added (Neil Cafferkey)
: 2007-11-29 PORT 64bit x86 added (Michal Schulz)
: 2008-04-12 BOOT GRUB2 added (Alain Greppin and Nick Andrews)
: 2008-08-26 NIC RTL8139 added ([http://kalamatee.blogspot.com/ Nick Andrews])
: 2008-10-22 PORT to SAM440ep (ppc) (Michal Schulz)
: 2009-02-25 PORT to efika (ppc) (Michal Schulz)
: 2009-05-18 HIDD poseidon usb2.0 stack ported to AROS (Chris Hodges)
: 2009-11-18 NIC RTL8169 network driver arrived (Nick Andrews and [http://pagesperso-orange.fr/franck.charlet/oldnews.html Franck Charlet])
: 2009-12-23 AHI HDAudio based Atom CPU and netbook audio driver arrived (Davy Wentzler)
: 2010-03-09 BOOT USB pendrive stick booting available (Neil Cafferkey)
: 2010-05-26 HIDD Intel GMA900 2D graphics card support (Michal Schulz)
: 2010-09-03 NIC Wireless PCI based NIC arrived (Neil Cafferkey)
: 2011-04-30 HIDD Nvidia 2D and 3D nouveau graphics card support (Deadwood)
: 2011-08-30 HIDD Radeon 2D enhanced AMD driver arrives (Bearsoft)
: 2011-09-17 NIC Wireless USB realtek arrives (Neil Cafferkey)
: 2011-12-09 HIDD Intel 945G 3D Gallium graphics support (Sami)
: 2013-02-25 AHI AC97 VIA 686 audio support (Davy Wentzler and Neil Cafferkey)
: 2013-03-31 PORT early Raspberry PI native support (Nik Andrews)
: 2014-01-16 AHI Envy24 audio chipset support (Davy Wentzler and Neil Cafferkey)
: 2017-02-17 PORT Symmetric MultiProcessing smp added for x86 64bit (Michal Schulz)
: 2018-10-20 PORT Big Endian ARM
: 2021-11-26 NIC Broadcom 44xx ethernet (Neil Cafferkey)
: 2023-01-12 NIC Nvidia MCP61 ethernet (Neil Cafferkey)
: 2025-11 HIDD xHCI USB3 and isoc (Nik Andrews)
[[#top|...to the top]]
===Audio Chipsets===
'''If sound beeps in AHI prefs after Music set then some support is there. Select more than one channel for multiple audio streams, set frequency up to 44 kHz or higher and set the volume if not already set. Ensure you set the music unit 0 to 3 which allows the extra features of the audio card like microphone, line-out, etc).'''
====1996-2000 sb128.audio aka SB16 PCI====
*2021 5.27
as per CREATIVE's website, the model number is the first two digits on the front and first two digits on the back. my card says CT4810 and 161TK110B 995; this translates to CT4816 as the model.
The original AudioPCI 3000 card with the ES1370 had a master clock crystal for 44.1 kHz (22.5792 MHz), used an AKM codec (AK4531, non-AC97) and had 4 channel output; Creative later modified the design with a crystal for 48 kHz (24.576 MHz) and Sigmatel AC97 codec (a CT4700 SB128 with a CT5507 chip, AK4531, 22.5792 MHz crystal and TDA7360 speaker power amp). The issue with these cards involved never quite eliminate the effects of resampling on the 64V, it also shows signs of undersized coupling caps. These Ensoniq cards automatically engaged headphone amplifier (with a 4565 opamp).
Porting involved [http://repo.or.cz/w/AROS.git/commit/b60abd12967144a844980c422ea9e99c056eabca 40897], [http://repo.or.cz/w/AROS.git/commit/b7d6511fca6430a63fbaaa390b4f51bf0203a460 40898 configure], [http://repo.or.cz/w/AROS.git/commit/f51034cd22759a4ec3a2547bddb3a7169d956eaa 40900 bugs], [http://repo.or.cz/w/AROS.git/commit/4f43fc38e3489ea45d12b7b5ba6fff50b69c5746 40901 further bugs], [http://repo.or.cz/w/AROS.git/commit/d23c78aec75f049484b6916d27b6804ce858bb2c 40913 memory IO fixes], [http://repo.or.cz/w/AROS.git/commit/d256860fe3035016952e88d143c6f2611997f2f3 40914 irq fix].
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| Ensoniq AudioPCI 1000
| 0x1274
| 0x5000
|
| {{unk}}
| {{unk}}
| untested - es1370 (u?) AK4531 (u?)
|-
| Ensoniq AudioPCI
| 0x1274
| 0x5000
| 0x00
| {{yes}}
| {{maybe}}
|
|-
| CT4700 Sound Blaster PCI 64 (audioPCI 3000)
| 0x1274
| 0x5000
| 0x7c
| {{yes}}
| {{maybe}}
| works - opamp JRC4565(u?) [http://en.wikipedia.org/wiki/Ensoniq_ES1370 es1370] (u?)
|-
| CT4750 Sound Blaster 64/PCI
|
|
|
| {{unk}}
| {{unk}}
| untested - 4565-1056W (u1) stac9708t(u2) [http://arstechnica.com/civis/viewtopic.php?f=6&t=916891 ct5880-dcq] (u3) 24wc012 (u4)
|-
| CT4751 (SB128PCI)
| 0x1274
| 0x8001
|
| {{unk}}
| {{unk}}
| untested - [http://en.wikipedia.org/wiki/Sound_Blaster#Ensoniq_AudioPCI-based_cards es1371] (u?)
|-
| CT4810 Creative AudioPCI64V
| 0x1274
| 0x1371
| 0x06
| {{yes}}
| {{maybe}}
| works
|-
| CT4811 (SB Vibra 128)
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4812 (Vibra 128)
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4813
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4815
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4816 es1373 (vibra 128)
|
|
|
| {{unk}}
| {{unk}}
| untested but this card has creative's ES1373 as the main chip(U1). it is also different from the other CT4810 (vibra128) in that it does not have a second chip in U2 position. Also there is only one jumper JP1 (2X3).
|-
| CT5801 HP
|
|
|
| {{unk}}
| {{unk}}
| untested - es1373 (u3)
|-
| CT5803 Gateway
| 0x1274
| 0x1371
| 0x08
| {{yes}}
| {{maybe}}
| works 4565-0005b jrc (u1) 4297a-jq ztae0c0002 (u2) es1373 (u3)
|-
| CT4740
| 0x1274
| 0x1371
| 0x08
| {{yes}}
| {{yes}}
|
|-
| CT5805 Compaq OEM Premier Sound Presario 7
|
|
|
| {{unk}}
| {{unk}}
| untested - es1373 (u3)
|-
| CT5806 (Sound Blaster AudioPCI 128D)
|
|
|
| {{unk}}
| {{unk}}
| untested - 4297A-JO EP (u?) ZTAPWC9933 (u2) es1373 (u3)
|-
| CT5807 Dell OEM Dimension 8100
|
|
|
| {{unk}}
| {{unk}}
| untested - es1373 (u?)
|-
| CT5808
|
|
|
| {{unk}}
| {{unk}}
| untested
|-
| CT4730 Sound Blaster AudioPCI 64V Ectiva EV1938
| 0x1102
| 0x8938
|
| {{unk}}
| {{unk}}
| untested
|-
| CT5880 on various motherboards
| 0x1274
| 0x5880
|
| {{unk}}
| {{unk}}
| untested [http://www.xbitlabs.com/articles/mainboards/display/ga-6rx.html Gigabyte GA-6RX] (VIA ApolloPro 266 2001], Gigabyte GA-6VM7-4E mobo, [http://active-hardware.com/english/reviews/mainboard/ga-7vtx.htm Gigabyte GA-7VTX] (KT266 2001), Gigabyte [http://www.amdboard.com/gigabytega7vtxh.html GA-7VTXH] (KT266A 2001), [http://www.amdboard.com/gigabytega7vrxp.html Gigabyte 7VRXP] mobo (KT333 2002), MSI MS-6309, MS-6318, MS-6337 (815E Pro), MS-6339 (850Pro) and MS-6340, PCChips Motherboard M571 TXPRO, Soltek SL-65ME+,
|-
| VMware Virtual Workstation(TM)
| 0x1274
| 0x1371
| 0x02
| {{Yes|but not Hi-Fi modes}}
| {{maybe}}
| works
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
<pre>
Revision 0x04 = ES1371 REV_ES1373_A
Revision 0x06 = ES1371 REV_ES1373_B
Revision 0x07 = ES1371 REV_CT5880_A
Revision 0x02 = CT5880 REV_CT5880_C
Revision 0x03 = CT5880 REV_CT5880_D
Revision 0x04 = CT5880 REV_CT5880_E
Revision 0x09 = ES1371 REV_ES1371_B
Revision 0x00 = EV1938 REV_EV1938_A
Revision 0x08 = ES1371 REV_ES1373_8
</pre>
====1999-2001 via-ac97.audio====
*2021 5.10
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| <!--Description-->694X with 686A KT133 PM133 or 693A with VT8231
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3058
| <!--Revision-->
| <!--Playback-->{{Yes| }} redirects earphones correctly
| <!--Recording-->{{Yes| }}
| <!--Comments-->audio controller works but depends on the underlying invisible codec used see AC97 section
|-
| <!--Description-->686B KT133A with VT8231
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3058
| <!--Revision-->0x50
| <!--Playback-->{{Yes|}} reroutes ear pieces right
| <!--Recording-->{{Yes|}}
| <!--Comments-->audio controller works but depends on the underlying codec used see AC97 section below
|-
| <!--Description-->686C
| <!--Vendor ID-->0x1106
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->untested
|-
| <!--Description-->KM266 or KT266 with VT8233, KT266A with VT8233A, VT8233C
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3059
| <!--Revision-->0x10
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->KM333 KT333 with VT8235
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3059
| <!--Revision-->0x30
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
| <!--Description-->KM400 KT400 with VT8237, KT600 with VT8237R,
| <!--Vendor ID-->0x1106
| <!--Product ID-->0x3059
| <!--Revision-->0x40 0x50 0x60
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
|}
====1998-2003 emu10kx.audio - Creative Labs SoundBlaster Live! and Audigy====
*2021 6.5
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| PCI512 CT4790 (emu10k1)
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested (1st Gen)
|-
| Live CT4620
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Live CT4760
| 0x1102
| 0x0002
| 0x07
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| playback works
|-
| Live Value CT4670
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| works plays stereo (2nd Gen)
|-
| Live Value DELL CT4780
| 0x1102
| 0x0002
| 0x06
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| plays/records stereo - untested 4.1mode
|-
| Live Value Compaq CT4830
| 0x1102
| 0x0002
| 0x0
| <!--Playback--> {{Maybe}}
| <!--Recording--> {{unk}}
| not working
|-
| Live Value CT4831
| 0x1102
| 0x0002
| 0x00
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Live Value CT4832
| 0x1102
| 0x0002
| 0x07
| <!--Playback--> {{yes}}
| <!--Recording--> {{partial|Line-In only}}
| works
|-
| Live Value CT4832
| 0x1102
| 0x0002
| 0x08
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| works
|-
| Live Value HP CT4870
| 0x1102
| 0x0002
|
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| Works
|-
| Live Value Gateway CT4871
| 0x1102
| 0x0002
|
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Live! Platinum 5.1 SB0060
| 0x1102
| 0x0002
| 0x00
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
| plays audio/records, untested 5.1 (3rd Gen)
|-
| Live 5.1 SB0100 -SFF
| 0x1102
| 0x0002
| 0x00
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| works
|-
| Live 5.1 Player SB0220
| 0x1102
| 0x0002
| 0x0a
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
| plays audio/records stereo, untested 5.1
|-
| Live 5.1 Digital SB0228
| 0x1102
| 0x0002
| 0x0a
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
| working
|-
| Audigy SB0090 (emu10k2)
| 0x1102
| 0x0004
|
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| <!--Description-->Audigy SB0230
| <!--Vendor ID-->0x1102
| <!--Product ID-->0x0004
| <!--Revision-->0x03
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Yes|Mic only}}
| <!--Comments-->5th Dec 2012 - untested optical tos link. contains also IEEE1394/Firewire (untested)
|-
| Audigy 2 Platinum 6.1 SB0240 SB0250 EMU10K2.5
| 0x1102
| 0x0004
| 0x04
| <!--Playback--> {{yes}}
| <!--Recording--> {{maybe}}
| works
|-
| Audigy 2 PRO SB0280 EMU10K2.5
| 0x1102
| 0x0004
|
| <!--Playback--> {{unk}}
| <!--Recording--> {{unk}}
| untested
|-
| Audigy 2 ZS SB0350
| 0x1102
| 0x0004
| 0x04
| <!--Playback--> {{yes}}
| <!--Recording--> {{yes}}
|
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| Live 5.1 DELL SB0200 SB0203 emu10kx
| 0x1102
| 0x0006
| 0x0
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
|
|-
| Live 24bit SB0410
| 0x1102
| 0x0007
| 0x
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Live 24bit DELL SB0413
| 0x1102
| 0x0007
| 0x
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy LS SB0310
| 0x1102
| 0x0007
| 0x0
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy SE 7.1 SB0570
| 0x1102
| 0x0007
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 2 ZS SB0320 SB0360 (PRO)
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 2 VALUE SB0400
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 4 VALUE SB0610
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| Audigy 4 PRO SB0380
| 0x1102
| 0x0008
|
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver
|-
| EMU E-MU 0404 PCI (not USB) EM8852
| 0x1102
| 0x000
| 0x0
| <!--Playback-->{{no}}
| <!--Recording-->{{no}}
| no driver but linux support needs firmware
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
the green jack is for the main speaker pair AND headphones, so manual switching will be required
If your card is wired for the "AC97" standard, then it's up to your headphone jack to switch the green speaker output in and out
the headphone jack has Normally-closed contacts that will open on insertion, which breaks the signal path back to the sound card (FP_RETURN)
====2000-2010 cmi8738.audio - C-Media====
*2021 5.20
;Read [http://amigaworld.net/modules/news/article.php?storyid=2512 more] and imported on [http://repo.or.cz/w/AROS.git/commit/aff741d60160c6a9d7d39c9e004a25ea3aa13847 20th July 2011] and [http://alsa.opensrc.org/Cmipci alsa docs].
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| Audiotrak MAYA EX5
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| cmi8738-sx 4ch
| 0x13f6
| 0x0111
| 0x10
| <!--Playback-->
| <!--Recording-->
| untested
|-
| e3dx hsp56 CMedia 8738-sx 4ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| EDio SC3000D 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Genius SoundMaker Value PCI C3DX
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Guillemot Maxi Sound Muse
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Hercules Gamesurround Muse LT
| 0x13f6
| 0x0111
| 0x10
| <!--Playback--> {{yes}}
| <!--Recording--> {{no}}
|
|-
| Hercules Gamesurround Muse XL LT 5.1
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Inno audio extreme 5.1 cmi8738/lx pci 6ch
| 0x13f6
| 0x0111
| 0x
| <!--Playback-->
| <!--Recording-->
| untested
|-
| M-Audio (Midiman) DiO 2448
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Sabrent SBT-SP6C 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| StarTech PCISOUND4CH 8738sx 4ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Sweex SC012 CMI8738-lx 4ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Terratec 5.1 PCI
| 0x13f6
| 0x0111
| 0x10
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Terratec Aureon Fun 5.1
|
|
|
| <!--Playback--> {{yes}}
| <!--Recording--> {{unk}}
| Has SPDIF
|-
| Trust Sound Expert Digital Surround 5.1 (cm8738-mx 6ch)
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Turtle Beach Riviera CMI8738-MX 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| XSonic CMI 8738 6ch
|
|
|
| <!--Playback-->
| <!--Recording-->
| untested
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->CMI8738 6ch PCI-E PCI Express version
| <!--Vendor ID-->0x13f6
| <!--Product ID-->0x0111
| <!--Revision-->0x10
| <!--Playback-->{{Yes|}}
| <!--Recording-->{{Maybe|}}
| <!--Comments-->Chinese based card with playback tested so far
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
====2001-2005 ac97.audio====
*6.4 27-12-2008
The AC97 chips were designed to be pinout interchangeable so that the sound support could change easily and quickly without motherboard redesigns
the green jack is for the main speaker pair AND headphones, so manual switching will be required
If your card is wired for the "AC97" standard, then it's up to your headphone jack to switch the green speaker output in and out, the headphone jack has Normally-closed contacts that will open on insertion, which breaks the signal path back to the sound card (FP_RETURN)
The ProductID and VendorID are for the audio controller only - the important additional codec is '''NOT''' so easily identified.
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| <!--Description-->Avance Logic (now Realtek) ALC100 and ALC101 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->ALC200 and ALC201 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->ALC201A and ALC202 and ALC202A codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->ALC650
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| <!--Comments-->most Nforce2 boards plays audio only - Abit NF7, Asus A7N8X, MSI K7N2, Epox 8RDA+, DFI
|-
| <!--Description-->ALC850 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{No}}
| <!--Comments-->no support for via P4P800 chipset on ASUS A8V-E SE Deluxe mobo - ICaros 1.3
|-
| <!--Description-->Realtek ALC653 codec and ALC655 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested Acorp 7NFU400
|-
| <!--Description-->Realtek ALC658 codec ALC658D
| <!--Vendor ID-->0x8080
| <!--Product ID-->0x24c5
| <!--Revision-->0x0
| <!--Playback-->{{Yes|Prefs Music and Units 0-3 set volume control - playback}}
| <!--Recording-->{{No}}
| <!--Comments-->MSI Motherboard on NB 22-09-2012
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->AD1881 SoundMAX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->Analog Devices first AC97
|-
| <!--Description-->AD1881A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Yes}}
| <!--Revision-->
| <!--Comments-->works with VIA Controller - untested Intel etc
|-
| <!--Description-->AD1881B
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1885 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{No}}
| <!--Comments-->Playback only with issues on D845HV but not working on MS-6367 because Units 0-3 have masked volume control
|-
| <!--Description-->AD1886
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1887
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->ADI AD1888 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{no}}
| <!--Recording-->{{No}}
| <!--Comments--> Icaros 1.51
|-
| <!--Description-->AD1980 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->AD1981A codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested IBM X30
|-
| <!--Description-->Analog Devices SoundMax(TM) AD1981B codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| <!--Comments-->plays back only on IBM T41 Thinkpad
|-
| <!--Description-->AD1985 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{No}}
| <!--Comments-->not working ahi prefs freezes on D865GLC mobo ([http://www.xbitlabs.com/articles/multimedia/display/int-sound2_3.html ]
|-
| <!--Description-->AD1986 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{No}}
| <!--Comments-->untested [http://uk.ts.fujitsu.com/rl/servicesupport/techsupport/Boards/Motherboards/Fujitsu/D1931/D1931.htm D1931] but works (Acer Aspire 3610 laptop)
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->Crystal Semiconductors CS4205, CS4202 codecs
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Cirrus Logic CrystalWare 4236
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->Cirrus Logic CrystalClear SoundFusion CS4297 CS4299 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested IBM T23
|-
| <!--Description-->conexant Cx20468-31 codec (id 30)
| <!--Vendor ID-->0x103c
| <!--Product ID-->0x3085
| <!--Revision-->
| <!--Playback-->{{No|AC97 appears in AHI Prefs}}
| <!--Recording-->{{No}}
| <!--Comments-->Tested AspireOS 1.8 on Gateway W322
|-
| <!--Description-->ESS Technology ES1921 AC'97 2.1
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->CMI 6501 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested on ASROCK SKT-AM2 AM2NF3-VSTA
|-
| <!--Description-->codec CMI9738
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->codec CMI9739
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->C-Media CMI 9739A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments--> untested on EPoX 8RDA3+
|-
| <!--Description-->CMedia CMI 9761A codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested ASRocK K7NF2-RAID
|-
| <!--Description-->C-Media CMI9880
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->National Semi conductor (now TI) LM4540, LM4543, LM4545, LM4546, LM4548, LM4549, LM4550 LM4560
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->STAC9708T codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->SigmaTel (now IDT) C-Major STAC 9460 (D/A only), 9461, 9462, 9463, 9200, 9202, 9250, 9251, 9220, 9221, 9223, 9750
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AKM (Asahi Kasei Microsystems) AK 4540, 4543, 4544A, 4545
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->codec VT1616 (VIA Six-TRAC Vinyl Audio)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->VIA VT1612, VT82C686
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->ESStech ESS ES1968 maestro-2
| <!--Vendor ID-->0x125d
| <!--Product ID-->0x1968
| <!--Revision-->0x
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->ESStech ESS ES1978 maestro2e
| <!--Vendor ID-->0x125d
| <!--Product ID-->0x1978
| <!--Revision-->0x
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->ESStech ESS ES1988 maestro3 allegro-1 codec
| <!--Vendor ID-->0x125d
| <!--Product ID-->0x1988
| <!--Revision-->0x12
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->Yamaha AC97 ymf-743 YMF752 YMF753 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->{{No}}
| <!--Comments-->untested ymf-753
|-
| <!--Description-->YMF724 YMF744 YMF-754 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->{{No}}
| <!--Comments-->untested
|-
| SIS 7018 / Trident 4dwave DX/NX / ALi 5451
| 0x1039 (0x1023 Trident)
| 0x7018 (0x2000 Trident DX) (0x2001 Trident NX)
| 0x02
| <!--Playback-->{{No}}
| <!--Recording-->{{No}}
| no support - introduced early 2000s
|-
| SIS 7012
| 0x1039
| 0x7012
|
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| working through 1 speaker only took over from SIS7018 (2002 onwards)
|-
| <!--Description-->Wolfson (now Cirrus Logic) WM9701, WM9701A (AC'97 1.03 spec), WM9703, WM9704 (AC'97 2.1), WM9705, WM9706, WM9707, WM9708
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->WM9709, WM9710, WM9711, WM9712, WM971
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->first Microsoft(TM) Xbox DAC sound chip (AC Link compliant D/A converter)
|-
| <!--Description-->Wolfson WM9717
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| Parallels
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested
|-
| VirtualBox
|
|
|
| <!--Playback-->{{Yes}}
| <!--Recording-->{{No}}
| working
|-
| VirtualPC
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested
|-
| <!--Description-->Intel 82801AA Proxmox
| <!--Vendor ID-->0x8086
| <!--Product ID-->0x
| <!--Revision-->
| <!--Playback-->{{unk| }}
| <!--Recording-->{{unk| }}
| <!--Comments-->
|-
|}
====2005-20xx HDAUDIO.audio====
*6.36 2025 [https://github.com/aros-development-team/AROS/commit/43b33a9280b10963ca659de2cc3d1cf289b43a87 reset handler]
*6.35 202 []
*6.34 2019 AROS One 1.5 upwards
*6.29 2018
*6.27 2017 update
*6.25 2014 used for most Icaros 2.x
*6.20 July 2012
*6.17 Nov 2011
*6.15 Jun 2011
*[http://www.clusteruk.com/SitePortalPage.aspx?siteid=1&did=109 6.13] Sep 2010
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="5%" |Vendor ID
! width="5%" |Product ID
! width="5%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| <!--Description-->ALC260
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| <!--Description-->ALC262
* ALC262-VD2-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->LQFP-48
|-
| ALC268 codec
| 0x
| 0x
| 0x
| <!--Playback-->{{Yes|Version 6.17 Acer AOA110 and AOA150 netbooks), works (Dell Mini Inspiron 9 and 10v, }}
| <!--Recording-->{{Yes|Version 6.17 remove QUERY and select 'Mic 1' as input. Tested with 6.15 as well using QuickRecord and AE 4.0.23 under Icaros 1.4.}}
| <!--Comments-->AHI UNITS and Music are set to: hdaudio:HiFi 16 bit stereo++ / Frequency 48000 Hz, Volume +0.0 dB. The hdaudio.config in SYS:Prefs/Env-Archive is WITHOUT the QUERY-line. After changing and saving the config-file turn off and start again the computer. Switch from internal loudspeaker to headphone you must turn off the music before plug in the headphone-cable, otherwise there is no output on the socket. Back from line-out to internal speakers it is the same.
|-
| [http://blog.foool.net/wp-content/uploads/linuxdocs/sound.pdf Linux docs ALC269]
* ALC269Q-GR
* ALC269QSRS-GR
* ALC269W-GR
| 0x
| 0x
| 0x
| <!--Playback-->{{Maybe| }}
| <!--Recording-->{{Unk| }}
| <!--Comments-->TQFP 48 pin Power IC Chip From [https://patchwork.kernel.org/project/alsa-devel/patch/1408118123-15849-1-git-send-email-tiwai@suse.de/ ALC269 & co have many vendor-specific setups with COEF verbs, result in the codec stalling]
|-
| [http://www.alsa-project.org/db/?f=0321f8479fd670cd510f9912b1120fe7edcf2e07 ALC269VB]
* ALC269Q-VB5-GR
* ALC269Q-VB6-CG
* ALC269Q-VB6-GR
| 0x10ec
| 0x0269
| 0x100004, 0x100100, 0x100202
| <!--Playback-->{{Maybe|some versions work}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* v1 works Asus eee PC netbook 901/1000HA 1005HA/1008HA, 1001P,
* v2 maybe working Lenovo S9 S10 S10-2 S10-3 under HDAudio version 6.13
* v3 maybe dell wyse 7010
|-
| [http://alsa-project.org/db/?f=9c1746c5957b0ce72ff9cfffa312e97d14baf785 ALC269VC aka ALC3202]
* ALC269Q-VC2-GR
* ALC269Q-VC3-GR
| 0x10ec
| 0x0269
| 0x100203,
| <!--Playback-->{{Maybe|some versions work}}
| <!--Recording-->{{Unk}}
| <!--Comments-->SMT SMD QFN-48 -
* v1 unknown
* v2 unknown
* v3 x230, dell wyse,
|-
| ALC272
* ALC272-VA4-GR
| 0x10ec
| 0x0272
| 0x0
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Unk}}
|
* works Acer AOD150 and Acer AOD250 works [http://amigaworld.net/modules/newbb/viewtopic.php?topic_id=33755&forum=28#616910 Samsung NP-NC10], works Samsung NF210-A02] netbooks,
|-
| <!--Description-->ALC273
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| <!--Description-->ALC270
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC282
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x
| <!--Revision-->
| <!--Playback-->{{No|Version 6.17}}
| <!--Recording-->{{No|Version 6.17}}
| <!--Comments-->needs retest
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC660 ALC660-VD
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes| }}
| <!--Recording-->
| <!--Comments-->
* works asus F9s, F9e
* untested asus w7j, M51SN, A6Tc, A8Sr,
|-
| <!--Description-->ALC661-GR (2011)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| ALC662
| 0x1043
| 0x82a1
| 0x0
| <!--Playback-->{{Yes|Version 6.17 if QUERY added to top of hdaudio.config}}
| <!--Recording-->{{No|Version 6.17 not working for eee pc 900}}
|
* works Asus eee PC netbook 700/701/900, Atom 270 and 330 mobos, odd clicks (D410 NM10 PineTrail),
|-
| <!--Description-->[http://outpost.fr/rmaa/ALC663.htm ALC663]
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0861
| <!--Revision-->
| <!--Playback-->{{No|Version 6.13}}
| <!--Recording-->{{Unk}}
| <!--Comments-->not bad output like headphone amp part of the codec actually works well but messed up by undersized coupling capacitors to actually support such a low impedance
* not working Asus n50vn x71vn,
|-
| <!--Description-->ALC665
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC666
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC667
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC668
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC670
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->ALC880
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->some 915 and 925 chipset mobos
|-
| <!--Description-->ALC882M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| Realtek ALC883 ALC883-GR ALC883D-GR ALC883DTS-GR ALC883DD-GR codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe|some early versions work }}
| <!--Recording-->{{Unk| }}
| 2005 to 2007 HD Audio codec untested (Asus ),
|-
| Codec ALC885
| 0x10ec
| 0x0885
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
|-
| ALC888
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
|
|-
| ALC888s
* ALC888S-VD2-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}} MSI Wind U90/U100,
| <!--Recording-->{{Unk}}
| LQFP-48
|-
| ALC888b
| 0x8086
| 0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| untested (D510 NM10 Dual Core PineTrail mobo),
|-
| ALC888-VD
| 0x8086
| 0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| untested
|-
| ALC889A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes|works if QUERY added to the top of hdaudio.config in Prefs drawer/directory}}
| <!--Recording-->{{Unk}}
|
|-
| ALC889 Gr
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}} with crackles
| <!--Recording-->{{Unk}}
|
|-
| ALC889
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
| Tested with MSI H55 board
|-
| ALC887 ALC887-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
|
* working on ASUS P5KPL/EPU and Gigabyte GA-E350N-Win8 Rev1.0
|-
| ALC887-VD-CG
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0887
| <!--Revision-->0x100302
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}} Subsystem Id: 0x1458a002
|
|-
| ALC887-VD
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0887 0x1458
| <!--Revision-->0xa002
| <!--Playback-->{{Maybe}}
| <!--Recording-->{{Unk}} index = 2
| ALC887 does not have any volume control ability on the mixer NIDs, so put the volume controls on the dac NIDs instead
* working with intermittent corrupting pop popping skipping stuttering sound issues MSI 760GM-P23 (FX),
* not working Gigabyte H61MA-D3V, AT3IONT-I Deluxe,
|-
| ALC887-VD2
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
| 3jacks
|-
| ALC887-VD2-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
|-
| ALC887-
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
|
|-
| ALC892-CG rev
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| 2011 48-pin LQFP Green package -
|-
| ALC892 ALC892-DTS-CG rev
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
| 2009 introduced
* works
* not working
* untested
|-
| ALC892 rev
| <!--Vendor ID-->0x0x10ec
| <!--Product ID-->0x0892
| <!--Revision-->0x100302
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| 2014
|-
| Realtek ALC886-GR
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| LQFP-48
|-
| Codec ALC861 ALC861-VD
| 0x10ec
| <!--Product ID-->0x0663
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
|
* not working Toshiba Tecra A7
|-
| <!--Description-->ALC1200
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| ALC898
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk}}
| not working
|-
| <!--Description-->ALC1500
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC3232 (aka ALC292)
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0292
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC3234 aka ALC255
| <!--Vendor ID-->0x10ec
| <!--Product ID-->0x0255
| <!--Revision-->003
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC3287 aka ALC257
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes| }}
| <!--Recording-->{{no| }}
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->ALC aka ALC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->AD1882
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1883 HD Codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| <!--Description-->AD1884
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Playback-->
| <!--Recording-->
| <!--Revision-->
| <!--Comments-->
|-
| Analog Devices SoundMAX AD1981
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| IBM Thinkpad T60,
|-
| AD1984 hp-m4 codec
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
* audio not working on Lenovo X61, Thinkpad T61,
|-
| AD1986
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
|
|-
| AD1988
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->{{No}}
| <!--Recording-->{{Unk}}
|
|-
| <!--Description-->AD1988A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->Cirrus Logic CS4207
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->
| <!--Recording-->
|
|-
| <!--Description-->Cirrus Logic CS4208
| <!--Vendor ID-->0x0
| <!--Product ID-->0x0
| <!--Revision-->0x0
| <!--Playback-->
| <!--Recording-->
|
|-
| <!--Description-->Conexant CX20549 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Maybe|very very very low volume}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested Fujitsu Amilo SI 1510 1520 no datasheet for the general public
|-
| <!--Description-->Conexant CX20549-12Z codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested HP 530
|-
| <!--Description-->Conexant CX20561 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* working lenovo x200s
* untested Lenovo Essential G555 Notebook, HP Pavilion dv6700,
|-
| <!--Description-->Conexant CX20582 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX2059x CX20590 CX20594-21Z codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX20585 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* working Lenovo Thinkpad T410,
|-
| <!--Description-->Conexant CX20672 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX20671 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX20751-21Z codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes| }}
| <!--Recording-->{{Unk}}
| <!--Comments-->
|-
| <!--Description-->Conexant CX11852 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant CX11880 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->untested
|-
| <!--Description-->Conexant after 2015 up to 2018 CX7501 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{no|no driver codec}}
| <!--Recording-->{{no|no driver codec}}
| <!--Comments-->Conexant bought by synaptics 2019
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->C-Media CMI9880 codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| <!--Comments-->Gigabyte GA-8GPNXP
|-
| <!--Description-->Silicon Labs 3054
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| VIA 1708A
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| untested,
|-
| VIA VT1708B
| <!--Vendor ID-->
| <!--Product ID-->
| 0x0010
| <!--Playback-->{{No|VIA PicoITX}}
| <!--Recording-->{{Unk}}
|
|-
| VIA 1708S
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
|
|-
| <!--Description-->VT2021 10ch
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->Gigabyte Z77MX-D3H, GA-H61M-S2H S2P,
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Creative CA0110-IBG
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->SigmaTel STAC 9220 9221 9223 8ch (7+1)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{Unk| }}
| <!--Recording-->{{Unk| }}
| <!--Comments-->ECS 945GCT/M-1333 (version 3.0),
|-
| IDT SigmaTec [http://explorer.cekli.com/articles/pdf/hd-audio STAC9227] /28/29/30 codec
| <!--Vendor ID-->0x8384
| <!--Product ID-->0x7626
| <!--Revision-->0x0002
| <!--Playback-->{{Yes| }}
| <!--Recording-->{{Unk}}
|
* works HP Compaq mini 110
* untested HP Pavilion HDX9000 CTO Notebook, Intel DG33TL mobo, Dell E520, Intel DP35DP mobo, Dell E6410 Laptop,
|-
| IDT (formerly SigmaTel) IDC STAC 9271/71D
| <!--Vendor ID-->0x8384
| <!--Product ID-->0x7626
| <!--Revision-->0x0002
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
|
|-
| <!--Description-->IDC STAC 9272 9273 9274
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->Intel D5400XS,
|-
| <!--Description-->IDT 92HD73C
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{yes}}
| <!--Recording-->
| <!--Comments-->headphones only Asus AT4NM10 mobo
|-
| <!--Description-->IDT 92HD75B
| <!--Vendor ID-->0x111d
| <!--Product ID-->0x7608
| <!--Revision-->
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Unk}}
| <!--Comments-->
* working [http://koti.kapsi.fi/jvaltane/aros/hdaudio/ HP Compaq Mini 700 Netbook - feedback required]
* untested HP Mini 5103 and 5102, HP Compaq 610, HP ProBook Laptop 4520s 4525s 6450b 6550b 6555b, HP EliteBook 2540p 2740p 8440p, Mobile Workstation 8540w 8740w, Pavilion NoteBook DV8,
|-
| <!--Description-->IDC 92HD81XX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC 92HD83XX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC STAC 92HD89XX
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->IDC
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Wolfson (now Cirrus Logic) WM8850
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Wolfson WM8860
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->Intel High Definition Audio Revision 1.0. - 4-Channel DAC, 4-channel ADC. - DAC sampling
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
Using Prefs/AHI ensure you set the music unit and at least Units 0 (where most audio comes from) in top left drop down menu to HDaudio - HIFI in the section below. Set Units 1 or 2 to microphone or other outputs. Plus allow more than one channel for multiple audio streams and set frequency up to 44 kHz or higher on the right hand side of the ahi prefs. If sound beeps when you press the test button then all should be OK.
Output <- Codec <- Audio Controller (HDA) <-> Computer
codecs and exact hardware identifier. As mentioned above, HDA is only part of the work here, it gets the audio out of the main chipset in digital format (on a bus called I2S). This is not enough, there is another step needed which is routing that I2S signal to the output, converting it to actual audio, amplifying it, etc. This is handled by a separate chip called a "codec". Sometimes it is initialized by the BIOS, but this is not always the case.
Most audio drivers are made up of two parts a [http://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio.txt Controller + a Codec]. The ProductID and VendorID are for the audio controller only - the important additional codec is '''NOT''' so easily identified.
Some newer versions of codecs are missing at the moment.
Things to try if sound not working
* try to connect something to the audio jack, maybe it is not playing on internal speakers or vice versa
* make sure you try and select all music units e.g. unit0, unit1....
* even if PCI ID's are in Prefs/Env-Archive/HDaudio.config, this doesn't mean it is working, it is the codec that matters
* it might be internally muted
<pre>
add debug=memory to grub boot line - continue booting with F10
Open a shell
Tools/Debug/Bifteck > RAM:audio.txt
</pre>
or
<pre>
Open a shell
Tools/Debug/Sashimi > RAM:audio.txt
Run ahi prefs
Click test tone button
Stop sashimi with Ctrl-C
</pre>
If the boot sound is enabled, you have to use Bifteck to capture AHI debug output. In the GRUB menu, press E on your selected entry, then add "debug=memory" to the options (alongside ATA=, vesa= etc.). Then F10 or Ctrl-X to boot. Once booted, run Tools/Debug/Bifteck again.
or
* try adding QUERYD to the start of ENVARC:hdaudio.config file (also known as Prefs/Env-Archive/) ie. on the first line
* '''OR''' try removing QUERY and QUERYD from the start of the hdaudio.config file
* Reboot
* open a shell
* type: sys:tools/debug/sashimi > ram:debug.txt
* open ahi prefs
* select one of the audio modes - HIFI or otherwise
* press the 'test sound' button
* press ctrl-c in the shell
* post the results to Aros-World
The HD Audio standard was designed to be hardware pinout interchangeable so that the sound support could change easily and quickly. HDA is a standard around particular chips. Each kind of chip has a certain number of DACs and pins, and even the same chip could be hooked up in different ways on different motherboards. The chips are programmable and the operating system can adjust how things are routed. Some pins aren’t even hooked up, so it makes no sense to route sound to them. Also some pins have sensors that can tell when something is plugged in, so that for example the speakers in a laptop can be muted when headphones are plugged in. Pins are also grouped, so for example all the outputs for a 5.1 sound system are grouped. Generally the HDA driver in the operating system is supposed to read the pin set up and figure out a reasonable way to set things up, and disconnected pins should be ignored, etc.
HDAudio standard has headphones on a separate DAC, and it's up to the driver.. it can even send different audio to the headphones without interrupting the main (green) outputs
====Envy24 series ====
A little history. VIA bought the ICE created Envy chipsets [http://www.via.com.tw/en/products/audio/controllers/comparison_controller.jsp VT1712] first. A few years later, they created several cheaper variants VT1724 (mixer missing), VT1721 (low end cut down), VT1720 (embedded on motherboard) and lastly the VT1723 (no support apart from Windows Envy24DT like SYBA SD-PEX63034).
There are PCI Express versions appearing.
The Envy24 is the base product that was originally designed by ICEnsemble, and it supports multi-channel hardware mixing, which is great for professional use. The HT version removes the hardware mixer (unimportant for non-professional uses). The [http://www.avsforum.com/t/364771/envy24ht-s-the-definitive-source HT-S] version is almost exactly the same as the HT, it just uses cheaper DACs. The PT version is exactly the same as the HT-S version, it is just the edition used for on-board audio on motherboards.
N.B. [http://www.soundonsound.com/sos/dec04/articles/pcnotes.htm PCI slot identification] and [http://hsi.web.cern.ch/HSI/s-link/devices/s32pci64/slottypes.html 3.3v PCI].
=====[http://www.opensound.com/readme/README.Envy24.html envy24.audio] - [http://www.anime.net/~goemon/alsa/ VT1712] =====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Playback
! Recording
! Comments
|-
| M-Audio Delta 66 - Rev B 1999
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested AK4524VF CS8404A-CS - needs Delta Series break out box with D-sub lead -
|-
| [http://ixbtlabs.com/articles/maudioaudiophile/index.html Audiophile 2496] Rev A 2000
| 0x14
| 0x
|
| <!--Playback-->{{unk| }}
| <!--Recording-->{{unk| }}
| works audio out on - I2S stereo codec AKM AK4528VF with the 24bit/96kHz DAC and ADC; CS8427 digital transceiver
|-
| [http://ixbtlabs.com/articles/maudioaudiophile/index.html Audiophile 2496] Rev B 2003
| 0x14
| 0x
|
| <!--Playback-->{{Yes }}
| <!--Recording-->
| works well - I2S stereo codec AKM AK4528VF with the 24bit/96kHz DAC and ADC; CS8427 digital transceiver
|-
| M-Audio Delta 410 - 2001 2001 REV-B
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested for D-A AK4529VQ converters with CS8427-CS 5532 1158B or Event Echo Gina 20-Bit Multitrack Interface Breakout Box -
|-
| M-Audio Delta 1010
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested AK5383 and AK4393 - 25 pin dsub -
|-
| M-Audio Delta 1010LT 1010E
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested for D-A AK4529 converters with 2 XLR Microphone inputs with pre amps
* be aware of redesign in 2007 - possible issues
|-
| M Audio Delta 44 - Rev A 2002 - Rev B 2003 - Rev D 2003
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested ICE1712G AK4524VF needs breakout box with 15 pin D-sub lead -
|-
| M-Audio Delta 66 Rev E 2006 - Omni Studio
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested needs break out box with 15 pin D-sub lead -
|-
| <!--Description-->M-Audio Delta DiO 2496
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| Terratec EWX24/96
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| [http://ixbtlabs.com/articles2/terratecdmx6fire/index.html TerraTec 6fire DMX 24/96]
| <!--Vendor ID-->0x1412
| <!--Product ID-->0x1712
| <!--Revision-->0x02
| <!--Playback-->{{No|tried line 1-2 3-4 5-6 7-8 }}
| <!--Recording-->{{No| }}
| untested - AKM and codec
|-
| <!--Description-->Terratec EWSA88MT
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| [http://lists.freebsd.org/pipermail/freebsd-multimedia/2007-March/006087.html Audiotrak Prodigy HD2] 24/96
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| Audiotrak (ESI) Maya 1010 1010L
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| EMU 1212M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| EMU 1616M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| untested
|-
| <!--Description-->Terratec EWS 88MT EWS 88D
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Hoontech Soundtrack DSP 24
Soundtrack DSP 24 Value
Soundtrack DSP 24 Media 7.1
Event Electronics EZ8
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Digigram VX442
Lionstracs
Mediastation
Terrasoniq TS 88
Roland/Edirol DA-2496
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
|}
=====envy24ht.audio - VIA VT1724=====
{| class="wikitable sortable" width="90%"
! width="10%" |Description
! width="10%" |Vendor ID
! width="10%" |Product ID
! width="10%" |Revision
! width="10%" |Playback
! width="10%" |Recording
! width="35%" |Comments
|-
| ESI Juli@
| 0x3031
| 0x4553
| 0x0
| <!--Playback-->{{Yes}}
| <!--Recording-->{{Yes}}
| reported working years ago [http://envy24.svobodno.com/ Envy24HT-S] - AKM 4358 DAC - AKM 4114/4112 DIT
|-
| ESI Juli@ Ego Igo rev K
| 0x3031
| 0x
| 0x0
| <!--Playback-->{{Unk}}
| <!--Recording-->{{Unk}}
| AK4358? DAC - AK4114 AK4112 DIT
|-
| [http://ixbtlabs.com/articles2/multimedia/m-audio-revolution51.html M-Audio Revolution 5.1]
| 0x1412
| 0x3631
| 0x0
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| reported working years ago but discontinued - (Envy24GT) - 3ch AKM 4358 DAC - ADC AKM 5365 -
|-
| [http://ixbtlabs.com/articles2/m-audio-revolution71/index.html M-Audio Revolution 7.1] 24/192
| 0x1412
| 0x3630 0x1724
| 0x0
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| not working - illegal semaphore - 6ch ADC AKM AK4355 24-bit 192 kHz - 2ch DAC AKM AK4381 24-bit 192 kHz - ADC AKM AK5380
|-
| Terratec Aureon Sky 5.1
| 0x153b
| 0x1147
| 0x
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - discontinued
|-
| [http://ixbtlabs.com/articles2/terratec-aureon71/index.html Terratec Aureon Space 7.1]
| 0x153b
| 0x1145
| 0x0
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - Wolfson WM8770 DAC, AC'97 codec SigmaTel STAC9744
|-
| Terratec Aureon Universe 7.1
| 0x153b
| 0x1153 (rev x) 0x1724 (rev3)
| 0x0
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| not working - semaphore error on rev 3 - DAC ADC
|-
| Terratec Phase 22
| 0x153b
| 0x1150
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - Envy24HT-S - AK4524
|-
| Terratec Phase 28
| 0x153b
| 0x1149
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| untested - Envy24HT-S - AK4524
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Playback
| Recording
| Revision
| Comments
|-
| Audiotrak (ESI) Prodigy 7.1
| 0x4933
| 0x4553
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - Wolfson WM8770 and AC'97 SigmaTel STAC9744 codec
|-
| Audiotrak (ESI) Prodigy 7.1 LT
| 0x3132
| 0x4154
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver -
|-
| [http://ixbtlabs.com/articles2/sound/audiotrak-prodigy192.html Audiotrak (ESI) Prodigy 192] 24/96
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - STAC9460S codec
|-
| <!--Description-->Echo Layla 24/96
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
| [http://www.bit-tech.net/custompc/labs/80752/hercules-gamesurround-fortissimo-4.html Hercules Gamesurround Fortissimo 4]
|
|
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - Wolfson WM8776 Codec and WM8766 DAC
|-
| [http://ixbtlabs.com/articles2/multimedia/m-audio-audiophile192.html M-Audio Audiophile Delta AP 192k]
| 0x1412
| 0x3632
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver - Stereo ADC AKM AK5385A 24-bit 192 kHZ - 8-channel DAC AKM AK4358 24-bit 192 kHz - AKM 4114/4112 DIT
|-
| ONKYO SE-150PCI
| 0x160b
| 0x0001
|
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| no driver
|-
| <!--Description-->ESI Waveterminal 192x
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
| <!--Description-->Quartet
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments--> - AKM 4114/4112 DIT
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->{{unk}}
| <!--Recording-->{{unk}}
| <!--Comments-->
|-
|}
====hdmiaudio.audio - hdmi no support====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Comments-->
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| Playback
| Recording
| Comments
|-
| <!--Description-->ATI R6xx HDMI Audio codec support output
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x9840
| <!--Revision-->
| <!--Playback-->{{No| }}
| <!--Recording-->{{No| }}
| <!--Comments-->Not detected
|-
| <!--Description-->NVidia HDMI
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Intel Series 6 CougarPoint HDMI codec
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->Intel HDMI
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Playback-->
| <!--Recording-->
| <!--Comments-->
|}
[[#top|...to the top]]
===Graphic GFX Chipsets===
[https://gallium.readthedocs.io/en/latest/systems.html PCIe based] graphic chipset is defacto on 64bit AROS and recommended on 32bit.
AGP works on 32bit but faster transfers through the AGP slot are only available on a few supported motherboard chipsets
* Faster AGP Working = SIS 650 board, Intel 865pe AGP slot on MSI 6788-050,
* Not Supported = NForce2 chipsets, most Intel 815/820 chipsets, VIA chipsets, ALi chipsets,
The fallback for all graphics modes is vesa if any native support does not work. There is a choice of very low resolution vga as the last resort
2D tests performed with [http://download.aros3d.org/software/gfxbench.zip gfxbench] in the shell type gfxbench > out.txt (40 seconds blank screen is part of the test), via FreeDoom via limit-removing engine like odamex, chocolate or vanilla doom -timedemo demo1 or doom2 -timedemo demo1, doom.exe -iwad doom2 -file mymap.wad, Duke DNRATE 640x480 windowed
3D tests performed with Demos/Mesa/ , Cube 1080p, Cube 2 windowed not fullscreen 1920 x 1025, Quake3 ~ cl_drawFPS 1, Xonotic , [http://shinh.skr.jp/sdlbench/showtestgl.cgi test gl],
HDMI, DVI and DisplayPort monitors have a native resolution of 480p, 720p, 1080i, 1080p and up
<pre>
HDMI (licensing fee)
1.2 720p res.
1.3 1080 resolution
1.4 4K @ 30Hz
2.0 4K @ 60Hz
2.1 48Gbs for 4K @ 120Hz, 8K @ , VRR, etc
2.2 ultra96
</pre>
<pre>
DisplayPort (VESA introduced)
1.4 4K @ 60Hz
2.1 96Gbs for 4K @ 240Hz, 8K @ 120Hz. MST daisy chain multiple monitors,
</pre>
<pre>
GPMI chinese standard
2.0
</pre>
Might be supported on AROS
*OpenGL4 GPU must have 64-bit floating point FP64 math support, which is a hard requirement for GL 4.0. The max last revision opengl 4.6 (2017) on [https://wiki.gentoo.org/wiki/AMDGPU AMDGPU] RX 5000's / 6000s ([https://forum.batocera.org/d/7491-enable-opengl-46-and-vulkan-for-an-old-radeon-video-card RDNA] and Nvidia RTX might come to AROS) but Intel UHD, Iris Plus or Xe or Arc (will not unless a developer wants the challenge)
*OpenGL3 last revision 3.3 (2011)
Already supported on AROS
*OpenGL2 nvidia-nouveau,
*OpenGL1 intel gma950,
====vga.hidd====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Comments
|-
|
| 0x
| 0x
| 0x0
| Generic VGA Driver, limited to 640x480 in 16 colours - no 3D support
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Comments-->
|-
|}
====vesa.hidd====
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! Comments
|-
|
| 0x
| 0x
| 0x0
| 2D support for VBE1, VBE2 and VBE3 (most cards) - various resolutions and 24bit colour - no 3D support
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--Comments-->
|-
|}
[[#top|...to the top]]
====[[w:en:Intel GMA|Intel GMA]]====
DVI output is not supported at the moment.
If having problems:
* Ensure the latest version is being used.
* Set GMA_MEM to 128 or 256 to test
* Try the FORCEGMA ToolType for 2D, and try the FORCEGALLIUM ToolType for 3D acceleration after 2D is verified to work. ToolTypes should be applied to the Devs/Monitors/IntelGMA monitor icon.
If still having problems:
* At GRUB boot screen edit boot line and add option: debug=memory
* Boot.
* Use shell command: tools/debug/bifteck > RAM:debug.txt
* And post [GMA MONITOR DETECTION] and other related debug lines
{| class="wikitable sortable" width="90%"
! width="5%" |Description
! width="5%" |Vendor ID
! width="5%" |Product ID
! width="3%" |Rev
! width="5%" |2D
! width="5%" |3D
! width="5%" |Analog Output
! width="5%" |Digital Output
! width="5%" |Laptop LCD
! width="30%" |Comments
|-
| 910GL 82910GL GMCH + ICH6
| 0x8086
| 0x2582 0x2592
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| 910GML 82910 GML GMCH + ICH6 Mobile
| 0x8086
| 0x2582 0x2592
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| may need to add forceGMA to grub boot line to work
|-
| 915G 82915G GMCH + ICH6-M
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
|
|-
| 915GL 82915GL GMCH
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
|
|-
| 915GV 82915GV GMCH
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Yes|}}
| <!--3D-->{{No|}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{N/A}}
| HP DC5100 small form factor
|-
| 915GM GMA900
| 0x8086
| 0x
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| tunnel gearbox }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes}}
| asus eee pc 900
|-
| 915GMS
| 0x8086
| 0x
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| tunnel }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes| }}
|
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| [http://www.notebookcheck.net/Intel-Graphics-Media-Accelerator-950.2177.0.html 945GU] - 133 MHz (Lake port for Intel A100 and A110)
| 0x8086
| 0x2772
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| Fujitsu LifeBook U1010,
|-
| 945GMS - 166 MHz / 250 MHz (1.05V)
| 0x8086
| 0x27a2
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Unk| }}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes}}
| Dell D430
|-
| 945GSE - 166 MHz (for Atom)
| 0x8086
| 0x27ae
| 0x0
| <!--2D--> {{Yes| }}
| <!--3D--> {{Yes|[http://www.x.org/wiki/GalliumStatus]}}
| {{Yes}}
| {{No|dvi port}}
| {{Yes| }}
| for atom motherboards and most 2008/2009 netbooks
* 3D Works - AOA110 AOA150, Dell Mini 9, Samsung NC10, Toshiba NB100,
|-
| 945G 82945G GMCH + ICH7
| 0x8086
| 0x27a6
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| untested 2D and 3D
|-
| 945GC 82945GC MCH
| 0x8086
| 0x27a6
| 0x0
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| untested 2D and 3D
|-
| 945PM
| 0x8086
| 0x
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
| Dell D420, Compaq nc6400,
|-
| 945GMS - 250 MHz Calistoga
| 0x8086
| 0x
| 0x0
| <!--2D--> {{Yes}}
| <!--3D--> {{Yes|most models}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->{{Yes}}
|
* 3D Works Dell Latitude 2100, HP Compaq nc6320, Lenovo 3000, Lenovo T60, Samsung Q35, Dell D620, Dell D820,
* 3D untested Toshiba Satellite L100-120, Toshiba Portege M400,
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Unk}}
| <!--3D-->{{Unk}}
| <!--Analogue Output-->
| <!--Digital Output-->
| <!--Laptop LCD-->
|
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GMA 3100 G31
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works 2D but no 3D
|-
| GMA 3100 G33
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works 2D but no 3D
|-
| [http://en.wikipedia.org/wiki/Intel_GMA GMA 3150] netbooks and nettops
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works 2D but no 3D. no vga, dvi or hdmi output for nettops
|-
| <!--Description--> G965
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments-->
|-
| <!--Description--> Q965
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x2992
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{No}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments--> Only tested with VGA output.
|-
| 965GM X3100 (500 MHz)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| some support 2D but no hardware 3D - could not get it to work with VGA or dvi output
* untested Apple MacBook Air, Lenovo Thinkpad X300, Dell Inspiron 1525, Toshiba M9,
|-
| 960GM X3100 (400 MHz)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
|
|-
| 965M X3100 (400 MHz)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| Dell D830,
|-
| 965PM ??
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| Toshiba A9 works with limited 2D acceleration but no hardware 3D
|-
| GL965
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works with limited 2D acceleration but no hardware 3D
|-
| GM965
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works with limited 2D acceleration but no hardware 3D
|-
| GMA X3500 G35
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->X4500M G41 G43 G45 (400Mhz) Mobile 4 Series
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x2a42 0x2a43
| <!--Revision-->0x07
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue--> {{No|}}
| <!--Digital--> {{No|}}
| <!--Laptop LCD--> {{Yes| VESA}}
| <!--Comments-->works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->GMA 4500M HD (533 MHz)
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments-->works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->GMA 4700M HD (640MHZ)
| <!--Vendor ID--> 0x8086
| <!--Product ID--> 0x2a42
| <!--Revision-->
| <!--2D-->{{Maybe|}}
| <!--3D-->{{No|}}
| <!--Analogue-->{{Unk}}
| <!--Digital-->{{Unk}}
| <!--Laptop LCD-->{{Unk}}
| <!--Comments-->works with limited 2D acceleration but no hardware 3D
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
====[http://nouveau.freedesktop.org/wiki/FeatureMatrix nouveau].hidd (nvidia pci, agp, pci-e desktop)====
PCIe based nvidia graphics (gfx 8xxx) are the base level for 64bit AROS but earlier models still has some support on 32bit AROS
*Desktop, more likely hit rather than miss on early nvidia on Aros 32bit but on Aros 64bit ...
*Laptop, limited support for '''very''' early non-optimus (i.e. just Nvidia gfx only so no Intel and nvidia gfx combinations on 32bit but on 64bit ...)
Please note that the nouveau project is reverse engineering a nvidia graphics driver but takes time because of [https://nouveau.freedesktop.org/ nVidia's closed firmwares], etc
* 2026-06 - DEVS Nouveau.hidd Gallium.hidd Softpipe - LIBS Gallium GLU 20.0 Mesa OpenCL
* 2011-10 - DEVS 6.11 Nouveau.hidd 7.4 Gallium.hidd 9.4 Softpipe - LIBS 2.3 Gallium 1.3 GLU 19.0 Mesa OpenCL 1.x
* 2011-04 - DEVS 5.31 Nouveau.hidd 7.3 Gallium.hidd 9.3 Softpipe - LIBS 2.2 Gallium 1.1 GLU 18.0 Mesa OpenCL n/a
Nouveau support for AROS is limited to OpenGL 2.1 compliance on 32bit even for modern GL4 capable GPUs but on 64bit ...
On Aros 32bit OpenCL supports the NV50 (8000 9000) cards, less support in NVC0 fermi cards (300 upwards)
On Aros 64bit
ADoom3 graphic details ultra, benchmark while playing press the "`" key and type "Timedemo demo1" in the console
{| class="wikitable sortable" width="90%"
! width="5%" | Graphic Card
! width="5%" | Aros 32bit 1024 x 768
! width="5%" | Aros 32bit 800 x 600
! width="5%" | Aros 32bit 640 x 480
! width="5%" | Aros 64bit 1024 x 768
! width="5%" | Aros 64bit 800 x 600
! width="5%" | Aros 64bit 640 x 480
|-
| NV50 Asus EN8400GS SILENT/P/512M PCIe (G98) || || || || || ||
|-
| Gigabyte 8500GT 256M || 42,6 || 57,2 || 68,6 || || ||
|-
| NV96 (G96) Geforce 9500GT 512M || 43 || 53 || 57 || || ||
|-
| NV96 (G96) 9600GT || || || || || ||
|-
| NVA3 (GT215) GT240 || || || || || ||
|-
| NVA5 (GT216) Palit GT220 Sonic 512M || 39,7 || 55,8 || 63,7 || || ||
|-
| NVA8 (GT218) gt210 || || || || || ||
|-
| NVA8 (GT218) ION2 || || || || || ||
|-
| NVC3 (GF106) GT440 GTS 450 || || || || || ||
|-
| NVCF (GF116) NVC0 Fermi GTX 550Ti or GTS 450 v2 || || || || || ||
|-
| NVC8 (GF110) 580GTX || || || || || ||
|-
| NVE0 Kepler GT630 || || || || || ||
|-
| NVE6 (GK106) Kepler GTX660 || || || || || ||
|-
| NVE7 (GK107) GTX 650 || || || || || ||
|-
| NV110 Maxwell GTX 750 || || || || || ||
|-
| NV126 (GM206) GTX950 upwards no reclocking || N/A || N/A || N/A || poor || poor || poor
|-
| NV160 family (Turing) GTX 1650 and RTX 2000 upwards with GSP firmware || N/A || N/A || N/A || unknown || unknown || unknown
|-
| HostGL Ryzen 5 4600H - Nvidia 1650 - Linux mint 21.1 || N/A || N/A || N/A || 150fps || 154fps || 155fps
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| width="5%" | Graphic Card
| width="5%" | Aros 32bit 1024 x 768
| width="5%" | Aros 32bit 800 x 600
| width="5%" | Aros 32bit 640 x 480
| width="5%" | Aros 64bit 1024 x 768
| width="5%" | Aros 64bit 800 x 600
| width="5%" | Aros 64bit 640 x 480
|}
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|-
| <!--Description-->tnt1 (nv04) tnt2 (nv05) m64 value (1998)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|very slow}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| NV04 Riva TNT TNT2 Fahrenheit freezes on via motherboard chipset so rename agp.hidd in SYS:Devs/Drivers or Monitors
|-
| <!--Description-->tnt vanta lt (nv06) 1998 /9
| 0x10de
| 0x002c
| 0x15
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|slow}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| <!--Description-->Geforce 256 (nv10) (2000)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|slow }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| untested Geforce256
|-
| <!--Description-->Geforce 2 Geforce 3 Geforce 4 (nv20) 2000 / 2
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{No|slow }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| works for some PCI and AGP Geforce2 Geforce3 Geforce4
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| Geforce FX5200 nv34 (2003)
| 0x10DE
| 0x0322 0x
| 0xA1
| <!--2D-->{{Maybe| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->{{Maybe|VGA15 }}
| <!--Digital-->{{Maybe|DVI}}
| <!--Laptop LCD-->{{N/A}}
| NV30 GeForce 5 FX Rankine Hardware OpenGL 1.5 - slower than GF MX 4000 for 2D - max 1024 x768
* not working [https://eab.abime.net/showthread.php?t=92328&page=8 mobos with VIA chipsets 2018]
* working (MSI 0x9174) the previous nouveau 5.x driver
* Others work with 6.x series XFX PV-T34K-NA, ASUS V9520-X/TD
|-
| Geforce FX5500 (nv34) (2003)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{Maybe| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| works
|-
| Geforce 5100 (NV34)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce FX 5200LE (NV34)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5200 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce FX5600 (nv31) (2004)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Maybe| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| works
|-
| GeForce FX 5600 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5600SE
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5600XT
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce FX5700 (nv36) (2004)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes|some}}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{Maybe| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5700VE
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5700 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5700LE
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5800 (NV30)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5800 Ultra (NV30)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900 (NV35)
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900XT
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5900ZT
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce FX 5950 Ultra
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce 5xxx
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
|
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| Geforce 6200 (nv44) (2005)
| 0x
| 0x00F3 0x014F
| 0x0
| <!--2D-->{{Yes|5.28 Pixel Text}}
| <!--3D-->{{Maybe| use 5.28}}
| <!--Analogue-->{{Yes|VGA15 and s-video - plain 4pin cable lead will work with 7pin}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| NV40 GeForce 6 GeForce 7 Curie AGP Hardware OpenGL 2.1 needing previous 5.x version as regression arose 2011-10
|-
| Geforce 6200 (nv44a) (2006)
| 0x
| 0x0221
| 0x0
| <!--2D-->{{Yes|5.28 Pixel Text }}
| <!--3D-->{{Yes|}}
| <!--Analogue-->{{Yes|VGA15}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| Hardware OpenGL 2.1, PCI version tested OK in 2014-01-02 - Icaros 1.5.2
* not working
*working
|-
| GeForce 6200 with Turbo Cache (NV43)
| 0x
| 0x0161
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
|
|-
| GeForce 6200SE with Turbo Cache (NV44)
| 0x
| 0x0162
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
|
|-
| Geforce 6200 LE
| 0x10de
| 0x0163
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| PCI-E
|-
| GeForce 6600 LE
| 0x
| 0x00F4 0x0142
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6600
| 0x
| 0x00F2 0x0141
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| 2006 PureVideo HD 1 or VP1 re-used the MPEG-1/MPEG-2 decoding pipeline from FX
|-
| Geforce 6600gt (nv4x) (2005)
| 0x
| 0x00F1 0x0140
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Yes| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| OpenGL tests -
|-
| Geforce 6800 (nv40) (2005)
| 0x
| 0x0041 0x00C1 0x00F0 0x0211
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Yes| }}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 XE (NV4x)
| 0x
| 0x0043
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 LE
| 0x
| 0x0042 0x00C2 0x0212
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 GT (quadro fx 1400)
| 0x
| 0x0045 0x0046 0x0215
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 6800 GS
| 0x
| 0x0047 0x00C0 0x00F6
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6800 GTS NV40
| 0x
| 0x0040 0x0F9
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 6800XT
| 0x
| 0x0044 0x0048 0x00C3 0x0218
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6600 VE
| 0x
| 0x0143
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6500 NV44
| 0x
| 0x0160
| 0x0
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6250
| 0x
| 0x0169
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 6xxx
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GeForce 7800 GTX
| 0x
| 0x0090 0x0091
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| tunnel gearbox cube cube2 25}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> 256MB DDR3 - 1 6pin psu connector -
* not working asus en7800gtx/2dhtv/256m/osp/a -
* Works XFX PV-T70F-UDD7 Works in steve jones' scrap pc aros build 2010 2 DVI-I ports
* Untested
|-
| GeForce 7800 GT
| 0x
| 0x0092
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7600gt (G8 ) (nv4 ) (2006)
| 0x
| 0x02E0 0x0391
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL 2.1
* not working
* working
|-
| GeForce 7800 SLI
| 0x
| 0x0095
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GTX
| 0x
| 0x0290
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GT GTO
| 0x
| 0x0291
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GS
| 0x10de
| 0x0292
| 0x0a1
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working
* Works with a few glitches with XFX Pine 0x2218
|-
| GeForce 7950 GX2
| 0x10de
| 0x0293 0x0294
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| GeForce 7950 GT
| 0x
| 0x0295 0x02E4
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7900 GS
| 0x
| 0x02E3
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7600 GS
| 0x
| 0x02E1 0x0392
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7650 GS
| 0x
| 0x0390
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7600 LE
| 0x
| 0x0394
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7800GS (G8 ) (nv4 ) (2006)
| 0x
| 0x0093 0x00F5
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working
* works if AGP motherboard chipset is supported - Hardware OpenGL 2.1
|-
| GeForce 7100 GS
| 0x
| 0x016A
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7350 LE
| 0x
| 0x01D0
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7300le (G8 ) (nv4 ) (2006)
| 0x
| 0x01D1
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7300SE 7200GSGF-7200GS-N-B1 variant (G72)
| 0x10de
| 0x01D3
| 0x0a1
| <!--2D-->
| <!--3D-->
| <!--Analogue-->{{Unk|1x DVI, 1x VGA, 1x S-Video}}
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2007 40W pci-e 1.0 VP1 no unified shaders -
* not working Asus on via chipset (2015),
* works Asus on intel chipset (2015),
|-
| Geforce 7300gt (G8 ) (nv4 ) (2006)
| 0x
| 0x0395 0x0393
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working
* works
|-
| GeForce 7300 GS
| 0x
| 0x01DF
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 7500 LE
| 0x
| 0x01DD
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| Geforce 7xxx
| 0x
| 0x
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GeForce 8800 Ultra (NV50 family)
| 0x
| 0x0194
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NV50 GeForce 8 to GeForce 200s opengl 3.x - max res - 80nm technology - PureVideo HD 2 or VP2 Nvidia VDPAU Feature Set A (absent from ultra and some 8800gt?) added a dedicated bitstream processor (BSP) and enhanced video processor for H.264, VC-1 acceleration
|-
| Geforce 8800gts (nv50) (G8x) (2007)
| 0x
| 0x0400 0x0600 0x0193
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2007 200w openGL3 openCL - 2x6pin psu
* not working 0x0193 models (2015) on via chipsets,
* works
|-
| Geforce 8800gtx (nv5 ) (G8x) (2007)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2008 200W 1x 6pin connector,
* not working
* working
* untested XFX PV-T88P-YDF4, Alpha Dog Edition runs extremely hot - Gigabyte GV-NX88T512H,
|-
| GeForce 8800 GT
| 0x
| 0x0602 0x0611 0x0193
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes}}
| <!--Analogue-->
| <!--Digital-->DVI up to 2500 x 1600
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - 6pin psu power connector required
* not working
* untested Asus EN8800GT/HTDP/256M EN8800GT/HTDP/512M EN8800GT/G/HTDP/512M
* works
|-
| GeForce 8800 GT (G92)
| 0x10de
| 0x0611
| 0x0a2
| <!--2D-->{{Yes|6.11 Pixel Text}}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{N/A}}
| <!--Digital-->{{Yes}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3 pci-e 2.0 8800GT 512MB on Icaros 2.0.3 [[File:8800GT aros heads.png|thumb|8800GT]] [[File:8800GT aros tails.png|thumb|8800GT detail]]
|-
| Geforce 8600gt (nv5 ) (G8x) (2007)
| 0x
| 0x0401 0x0402
| 0x0
| <!--2D-->{{Yes|Pixel Text}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res
* not working
* works
|-
| GeForce 8500 GT
| 0x
| 0x0421
| 0x0
| <!--2D-->{{Yes| some color }}
| <!--3D-->{{yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL tests - max opengl 3.x but 2.1 offered - max res
* not working
* works Gigabyte 8500 GT,
|-
| GeForce 8800 GS
| 0x
| 0x0606 0x060D
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res
|-
| GeForce 8600GS
| 0x
| 0x0403
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 3.x VP3 offers complete hardware-decoding for all 3 video codecs of the Blu-ray Disc format: MPEG-2, VC-1, and H.264 - Nvidia VDPAU Feature Set B
|-
| GeForce 8300 GS
| 0x
| 0x0423
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res
|-
| Geforce 8400gs G98GS (end 2007) GT218 (2009)
* Rev2 with 8/16 cores and 128-512MB of DDR2 or GDDR3 memory.
* Rev3 with 8 cores and 512MB-1GB of DDR3 memory (based on Tesla 2.0)
| 0x
| 0x0424 0x0422
| 0x0
| <!--2D-->{{Yes|Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 490 gearbox 505 Cube 135 Cube2 55 quake3 }}
| <!--Analogue-->{{Yes|works digital part of DVI but nothing from any display port}}
| <!--Digital-->{{Yes|output on digital 24 pin array of DDWG's DVI and hdmi}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 50W openGL 3.1 openCL - case single slot - one single-link DVI digital output, supporting up to one 1920x1080 resolution display - analog resolution 640 x 480 to 1024 x 768 16 and 24 bit color - [http://www.phoronix.com/scan.php?page=article&item=nouveau_comp_2011&num=19 runs a little hotter than expected] - G98 VP3 pci-e 2.0 512MB DDR2 -
* not working
* works Asus EN8400GS SILENT/P/512M PCIe (G98),
|-
| Geforce 8400gs (nv50) (G86) (mid-2007)
* Rev1 with 16 cores / 256MB of DDR2 memory.
| 0x
| 0x0404
| 0x0
| <!--2D-->{{Yes|Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 490 gearbox 505 Cube 135 Cube2 55 quake3 }}
| <!--Analogue-->{{Yes|works but not tested thru 4 pins of analog signal of DVI plug}}
| <!--Digital-->{{Yes|output on digital 24 pin array of DDWG's DVI and hdmi}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2008 50W openGL 3.1 openCL - case single slot - one single-link DVI digital output up to 1920x1080 resolution display - analog resolution 640 x 480 to 1024 x 768 16 and 24 bit color - [http://www.phoronix.com/scan.php?page=article&item=nouveau_comp_2011&num=19 runs a little hotter than expected] - G86 VP2 128MB -
* not working XFX PV-T86S-YAJG NVIDIA GeForce 8400 GS 512MB DDR2, Sparkle 8400GS 512MB SX84GS512D2L-DPP,
* works Asus EN8400GS SILENT/HTP/256M SILENT/HTP/512M/A,
|-
| GeForce 8400 SE
| 0x
| 0x0420
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 2.x openCL
|-
| NVidia Quadro NVS290 DMS-59
| 0x
| 0x0403
| 0x0
| <!--2D-->{{no| }}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk|DMS-59 socket}}
| <!--Digital-->{{unk|DMS-59 }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2008 21W - G86S (G86-827-A2) - 16 shading units, 8 texture mapping units, and 4 ROPs. NVIDIA has paired 256 MB DDR2 - PCIe 1.0 x16 Low Profile -
|-
| Geforce Quadro FX 4600 (SDI), 5600
| 0x
| 0x
| 0x0
| <!--2D-->{{Partial|VESA 2d}}
| <!--3D-->{{no| }}
| <!--Analogue-->{{partial| }}
| <!--Digital-->{{partial| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| GeForce 9800 GX2 (NV50 family)
| 0x
| 0x0604
| 0x0
| <!--2D-->{{Partial|VESA }}
| <!--3D-->{{no| }}
| <!--Analogue-->{{Partial| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 150w - 65nm technology
|-
| GeForce 9800 GTX
| 0x10de
| 0x0612
| 0x0a2
| <!--2D-->{{Yes| }}
| <!--3D-->{{Maybe|6.11 }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 2x6pin psu -
* not working xfx on via chipset (2015),
* works xfx on chipset intel ,
|-
| GeForce 9800 GTX+
| 0x10de
| 0x0613
| 0x0
| <!--2D-->{{Yes| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res 2560 x 1920 - case dual slot - 26amp 12v rail on computer psu if 2x6pin connectors needed - 55nm version of the G92 chip - will not work with PCI-e 1.0a slots -
* not working
* works on a few models
|-
| Geforce 9800gt (nv50) (G92a) (2008)
| 0x10de
| 0x0614
| 0x0xa2
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel 495 gearbox 513 Cube 156 Cube2 120 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{partial| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL 3.1 openCL 1.x - case dual slot - 600w 26amp on both 12v rails for 2x6pin psu on gfx card - no fan control - some come with 1x6pin - renamed version of the venerable GeForce 8800 GT - randomly works
* not working Gainward 512M untested
* working Gainward CardExpert (0x0401) Green Edition NE39800TFHD02-PM8D92 1024MB (no 6pin)
|-
| Geforce gf9600 9600gt (nv5 ) (G9x) (2008)
| 0x10de
| 0x0622
| 0x0a1
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel 493 gearbox 675 Cube Cube2 100 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> OpenGL 3.2 openCL but no fan control - case dual slot - 1 6pin pcie psu connector - 500 Watt or greater power supply with a minimum of 26 Amp on the +12 volt rail - Max Analog: 2048x1536 and Max Digital: 2560x1600 (Dual Link DVI Only) - PCI Express® 2.0 / 1.1 Support - g96 gpu randomly works -
* not working bfg tech ocx,
* works gigabyte gv-n96tsl-512i -
|-
| Geforce gf9500 9500gt (nv5 ) (G9x) (2008)
| 0x10de
| 0x0640
| 0x0a1
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel 480 gearbox 500 Cube Cube2 64 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.2 - case single slot - 350 Watt/400 Watt or greater power supply with a minimum of 18 Amp/22 Amp on the +12 volt rail - Max Analog: 2048x1536 and Max Digital: 2560x1600 (Dual Link DVI Only) - PCI Express® 2.0 / 1.1 Support -
* not working zotac zone fanless, Gainward USA NE29500THHD01-PM8796, PNY G9500GN2E50X+0TE,
* works xfx xne-9500t-td01-pm8596 1024mb ddr2,
|-
| GeForce 9600 GS
| 0x
| 0x0623
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res - will not work with PCI-e 1.0a slots -
* not working
* works
|-
| GeForce 9600 GSO
| 0x
| 0x0610
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res - G92 chopped down - 9600GSO is re-badged 8800GS both very power hungry cards -
|-
| GeForce 9300 GS
| 0x
| 0x06E1
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 opengl 3.x - max res
|-
| Geforce 9400 GT (nv5 ) (G86S) (2008)
| 0x
| 0x
| 0x0
| <!--2D-->{{partial|}}
| <!--3D-->{{unk|}}
| <!--Analogue-->{{unk|1x DVI, 1x VGA, 1x S-Video}}
| <!--Digital-->{{unk|1x DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 50W opengl 3.x - max res
|-
| Geforce 9xxx (nv5 ) (G9x) (2008)
| 0x
| 0x
| 0x0
| <!--2D-->{{unk|}}
| <!--3D-->{{unk|}}
| <!--Analogue-->{{unk|}}
| <!--Digital-->{{unk|}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 opengl 3.x - max res
|-
| <!--Description-->
NV84 (G84) GeForce 8600 (GT, GTS, M GT, M GS), 8700M GT,
NV92 (G92) GeForce 8800 (GT, GS, GTS 512, M GTS, M GTX)
GeForce 9600 GSO, 9800 (GT, GTX, GTX+, GX2, M GT, M GTX)
NV96 (G96) GeForce 9400 GT, 9500 (GT, M G), 9600 (M GS, M GT),
NV86 (G86) GeForce 8300 GS, 8400 (GS, M G, M GS, M GT), 8500 GT
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NVA0 (GT200) GeForce GTX (260, 275, 280, 285, 295)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->GeForce GTX 280 (NV50 family)
| <!--Vendor ID-->
| <!--Product ID-->0x05E1
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> opengl 3.x - max res PureVideo HD 4 (Nvidia Feature Set C or "VDPAU Feature Set C), VP4 added hardware to offload MPEG-4 Advanced Simple Profile (original DivX and Xvid)
|-
| <!--Description-->GeForce GTX 260
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x05E2
| <!--Revision-->
| <!--2D-->{{partial|Vesa}}
| <!--3D-->{{no| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> 2 6pin - psu pci express 2.1 -
|-
| Geforce GTS250 250GTS (g92b) (2009)
| 0x10de
| 0x0615
| 0x0a2
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 486 gearbox 508-642 Cube Cube2 80 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes| DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> 2x6pin psu VP2 - pci-e 2.x - case dual slots - 738m 1gb ddr3 -
* not working Zotac branded version GDDR3 -
* works PNY gs-250x-zdfl and Gigabyte ??, BFG Tech RGTS2501024OCE, palit ne3ts250fhd52-pm8a92 with 2x6pin on top and hdmi output port,
|-
| <!--Description-->GeForce GT 240 (GT215 family)
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0ca3
| <!--Revision-->0xa2
| <!--2D-->{{Maybe|use VESA}}
| <!--3D-->{{No|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->late 2009 openGl 3.2 - case dual slots - no 6pin psu required with VP4 - All are pcie 2.1 cards and may not work in 1.0a slots -
* not working
* DDR3 with 512MB or 1GB -
* DDR5 -Asus ENGT240 - XFX Pine GT240XYHFC 0x3001 - Gigabyte GV-N240D5-512I rev 1.0 - Zotac AMP! with HDMI 1.3a with DisplayPort 1.1, Dual Link DVI -
* works
|-
| <!--Description-->GT220 (GT216) G220
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0a20
| <!--Revision-->0xa2
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes}}
| <!--Analogue-->{{Yes}}
| <!--Digital-->{{Yes|DVI }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> Icaros 2.0.3 GeForce GT220 1GB[[File:GT220 aros heads.png|thumb|GT220]][[File:GT220 aros tails.png|thumb|GT220]]
* untested NVIDIA Quadro® 400 512MB DDR3 GT216 DP DVI, AFox AF220 1Gb DDR3,
|-
| Geforce GT220 220GT G94 Tesla (g92b)
| 0x10de
| 0x0a20
| 0xa2
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Yes| tunnel 490 gearbox 505 cube 150 cube2 50 Quake3 }}
| <!--Analogue-->{{Unk|1x DVI, 1x VGA}}
| <!--Digital-->{{Yes|DVI but not 1x HDMI }}
| <!--Laptop LCD-->{{N/A}}
| 58W pci express 2.0 cards DDR3 - case single slot -
* not working ASUS ENGT220/DI/1GD2(LP)/V2 -
* works - gainward card expert 0x0401 GDDr3 512MB -
|-
| <!--Description-->GT210 GT 210 210GT G210 based on Tesla 2.0 GT218S GT218-300-A2 variant, GT218-300-B1
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0a65
| <!--Revision-->0xa2
| <!--2D-->{{Yes|6.11 Pixel Text}}
| <!--3D-->{{Yes| }}
| <!--Analogue-->{{Unk|1x DVI, 1x VGA}}
| <!--Digital-->{{Maybe|DVI out works but not hdmi or 1x DisplayPort}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 31W OpenGL 3.3 pci-e 2.0 cards - single slot -
* working GT218 based Asus EN210 based silent low profile large passively cooled -
* untested MSI GeForce 210 1GB DDR3 PCIe N210-MD1GD3H/LP,
* not working
|-
| <!--Description-->Quadro NVS 295 (256 MB GDDR3), NVS 450 (256M/512 MB DDR3)
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x
| <!--Revision-->
| <!--2D-->{{yes| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->
| <!--Digital-->{{partial|2 or 4 dp ports}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 25w low performance - G98s with 8 shading units, 4 texture mapping units, and 4 ROPs on PCI-Express 1.0 x16 -
*not working some NVIDIA Quadro NVS 295 2 dp ports (DELL, HP),
*working
|-
| <!--Description-->GT310 Tesla 310, 315, GT 320, GT 330 GT 340
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{Maybe|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2010 50w OpenGL 3.3 openCL all similar in performance to GT2xx except gt31x (poor)
|-
| <!--Description-->Quadro NVS310 NVIDIA NVS 310
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital--> 2 dp
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2012 25w GF119S (GF119-825-A1) 48 shading units, 8 texture mapping units, and 4 ROPs on PCI-Express 2.0 x16 - 512 MB DDR3 - PureVideo VP5 VDPAU Feature Set D -
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description--> GTX 470, GTX 480 GF10 GF10* core (NVC0 family)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{Maybe| tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2010 215w 2x6 plugs - NVC0 family (Fermi) GF100 (GF100-275-A3) Fermi 448 shading units, 56 texture mapping units, and 40 ROPs with 1,280 MB GDDR5 - OpenGL4.5 OpenCL1.1 Tessellation - case dual slots -
|-
| Geforce GTX460 460GTX (G104) 256bit, 1GB v2 192bit and GTX 465
| 0x10de
| 0x0e22
| 0xa1
| <!--2D-->{{Maybe|VESA }}
| <!--3D-->{{Maybe| tunnel gearbox cube 055-111 cube2 50}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVC0 family (Fermi) OpenGL 4.x but - 2x6pin psu - case dual slots -
* not working evga 768MB GDDR5 192bit 01G-P3-1373-ER or 01G-P3-1372-TR
* works 1GB GDDR5 256bit 01G-P3-1371-ER
|-
| <!--Description-->Geforce GTX 460SE 192bit
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x0e23
| <!--Revision-->0x91 or 0xa1
| <!--2D-->{{Yes| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->{{Yes| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> nouveau 6.11 - 2 6pin psu needed - case dual slots -
* not working
* works EVGA 01g-p3-1366-b6 et 1024MB p1041 -
|-
| Geforce GT450 GTS450 450GTS GF106
| 0x10de
| 0x0dc4
| 0x0a1
| <!--2D-->{{Yes| Doom Doom2 Duke }}
| <!--3D-->{{Maybe| tunnel gearbox cube cube2 50 Quake3 }}
| <!--Analogue-->
| <!--Digital-->{{Yes|DVI }}
| <!--Laptop LCD-->{{N/A}}
| 2010 Hardware OpenGL 4.2 but nouveau at 3.3 - most need 1x 6pin psu - case dual slots -
* not working
* DDR3 1 or 2GB - Palit NEAS450NHD41F,
* GDDR5 512Mb or 1GB - MSI MPN N450GTSM2D1GD5OC, Asus MPN ENGTS450DI1GD5,
* works Gainward Card Expert NE5S4500FHd51,
|-
| <!--Description-->GT 440 GF108 chipset or better OEM GF106
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 6.11 Pixel Text}}
| <!--3D-->{{Maybe| tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGl 4.1 opencl 1.x - no 6 pin psu - 96 cuda cores 128bit - case dual slots -
* not working
* OEM
* GDDR5 512MB to 1GB ASUSTeK ENGT440/DI/1GD5
* GDDR3 Asus 1gb to 2gb,
* works
|-
| <!--Description-->GT430 430GT (GF108)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|6.11 Pixel Text}}
| <!--3D-->{{Maybe|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->ddr3 memory 64bit or 128bit - buggy await new revision of driver
* not working
* works
|-
| <!--Description-->nVidia Quadro FX1800 768MB GDDR3 Full Height Graphics Card Workstation
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 6.11 Pixel Text}}
| <!--3D-->{{no|6.11 tunnel gearbox}}
| <!--Analogue-->
| <!--Digital-->{{Maybe|DVI-I 2xDP}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->59W 768 MB GDDR3 memory using a 192-bit memory interface - OpenGL 3.3 -
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GTX 590 Fermi
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->OpenGL4.4 OpenCL 1.1 - GDDR5 - 6pin and 8pin psu connectors - 512 cuda - case dual slots -
* not working
* works
|-
| <!--Description-->GTX 580,
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->PureVideo HD 5" or "VP5" (Nvidia Feature Set D or VDPAU Feature Set D) 4k UHD 3840 × 2160 H.264 decode -
|-
| <!--Description-->GTX 570,
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{Maybe|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working Zotac GTX 570, Gainward GTX560TI/570 Phantom,
* works gigabyte, evga
|-
| <!--Description-->Geforce 5xx 560gtx Fermi GTX 560,
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->opengl 4.x - 2 6pin psu - 384 cuda cores - case dual slots - will not work with PCI-e 1.0a slots -
* not working Asus ENGTX560 DC/2DI/1GD5,
* Ti LE 448 cuda GDDR5 320bit
* Ti 256bit
* works
|-
| <!--Description-->GTX 560 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* not working evga GTX 560Ti 01GP31560KR - Gainward GTX560TI/570 Phantom,
* works
|-
| <!--Description-->GTX 550 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x1201
| <!--Revision-->
| <!--2D-->{{Maybe|VESA Doom Doom2 Duke }}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->can hang on boot up on I2C Init or suffer random lockups on OpenGL apps - most need 1 6pin min 400W 24A on the +12V1 / +12V2 dual 12V rails of the computers' power supply unit - 192 cuda cores - case dual slots used - will not work with PCI-e 1.0a slots -
* not working eVGA GeForce GTX 550 Ti (1024 MB) (01GP31556KR) -
* untested asus Extreme, eVGA GeForce GTX 550 Ti (1024 MB) (01GP31557KR) - -
* works
|-
| <!--Description-->GT 545 and OEM GF116
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 4.2 opencl 1.x - GDDR5 with OEM only -
|-
| <!--Description-->GT530 OEM
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 6.11 Pixel Text}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->96 cuda cores - 1GB or 2GB DDR3 128bit
|-
| <!--Description-->GT520 520GT
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->untested 48 cuda cores - DDR3 64bit
|-
| <!--Description-->510, GT 530
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D 6.11 Pixel Text}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> ddr 3 - 50w max -
|-
| <!--Description-->GT610 Fermi GF119
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No|6.11 }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVS 315 300 GF119S
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{No|VESA}} needs special dms-59 cable
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 fermi 315 PNY VCNVS315-T 1Gb DDR3 but needs special dms-59 cable -
|-
| <!--Description-->GT630 GF108 Fermi
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->not accelerated 2015 - like the GT730 below - 96 cuda cores whilst kepler version has 384 - 128bit to keplers' 64bit bandwidth - kepler has 2GB DDR3
* not working Gigabyte
* DDR3
* GDDR5
* works
|-
| <!--Description-->Geforce GT 730
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe| use VESA 6.11 Pixel Text}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> fermi version has 96 cuda cores 128bit GF108
* not working Asus
* works
|-
| <!--Description-->nVIDIA Quadro 4000
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}} 2 dp ports
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->142W 2Gb GDDR5 - PCI Express 2.0 x16 ; full Height card with 1x 6-Pin PCIe power need - CUDA Cores 256 - OpenGL 4.5
|-
| <!--Description-->nVIDIA Quadro 5000
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2011 200W 2.5Gb GDDR5 320 bit - PCI Express 2.0 x16 full Height card with 2x 6-Pin PCIe power need -
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce GTX Titan GeForce GTX Titan Black GeForce GTX Titan Z
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVE0 family (Kepler) GeForce 600 GeForce 700 GeForce GTX Titan Kepler
|-
| <!--Description-->GeForce GTX 780 GeForce GTX 780 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->PureVideo HD 6" or "VP6" (Nvidia Feature Set E or VDPAU Feature Set E) significantly improved performance when decoding H.264 and MPEG-2
|-
| <!--Description-->GeForce GTX 770
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->opengl 4.4 opencl 1.1
|-
| <!--Description-->GeForce GTX 760 GeForce GTX 760 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce GT 740
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce GT 730 Kepler
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> two versions fermi 96 cores 128bit GF108 and kepler 384 cores 64bit GK208
|-
| <!--Description-->680gtx GK104 core gtx680 680m
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVE0 family (Kepler)
|-
| <!--Description-->GTX 690 Kepler NVE0
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->pci-e 3.0, OpenGL 4.4 OpenCL 1.1
|-
| <!--Description-->GTX 670
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GTX 660 GTX 660 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GTX 650 GTX 650 Ti GTX 650 Ti Boost
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NVE0 family (Kepler) most need 1 6pin psu
* not working asus ENGTX560 DC/2DI/1GD5
* works
|-
| <!--Description-->Geforce GT 640
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
* 128bit DDR3
* 192bit DDR3 1.5 to 3GB 50W
* 128bit GDDR5 75W
|-
| <!--Description-->GT 620 GT 640
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{Unk| }}
| <!--Digital-->{{Unk| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce 750ti, GeForce 900
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->[https://nouveau.freedesktop.org/FeatureMatrix.html NV110] Maxwell -
|-
| <!--Description-->Nvidia GTX 750
| <!--Vendor ID-->0x10de
| <!--Product ID-->0x1381
| <!--Revision-->0xa2
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->2026 nvidia test
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->GM206 2nd gen maxwell PureVideo HD 7" or "VP7" (Nvidia Feature Set F or VDPAU Feature Set F) adds full hardware-decode of H.265 HEVC Version 1 (Main and Main 10 profiles and full fixed function VP9 (video codec) hardware decoding
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Quadro K620 quadro p620 2gb gddr5 128bit and quadro p1000 4gb gt1030 30w
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 50w slim low profile -
|-
| <!--Description-->GeForce gtx 1060, GeForce 1070
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->NV130 Pascal
|-
| <!--Description-->gtx 1050ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->NV130 family (Pascal)
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV132 (GP102) NVIDIA Titan (X, Xp), GeForce GTX 1080 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV134 (GP104) GeForce GTX (1070, 1080)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV136 (GP106) GeForce GTX 1060
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV137 (GP107) GeForce GTX (1050, 1050 Ti)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV138 (GP108) GeForce GT 1030
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NV162 (TU102) NVIDIA Titan RTX, GeForce RTX 2080 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV164 (TU104) GeForce RTX (2070 Super, 2080, 2080 Super)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2020 NV160 family (Turing) unified gsp-rm firmware - best starting point for Vulkan support
|-
| <!--Description-->NV166 (TU106) GeForce RTX (2060, 2060 Super, 2070)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV168 (TU116) GeForce GTX (1650 Super, 1660, 1660 Ti, 1660 Super)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV167 (TU117) GeForce GTX 1650
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->gtx 1650ti super
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2018 old style
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NV172 (GA102) GeForce RTX (3080, 3090)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No| }}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 av1 decoding ampere
|-
| <!--Description-->NV174 (GA104) GeForce RTX (3060 Ti, 3070, 3080 Mobile)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->NV170 family (Ampere)
|-
| <!--Description-->NV176 (GA106) GeForce RTX (3050, 3060)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV177 (GA107) GeForce RTX 3050
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->NV192 (AD102) GeForce RTX 4090
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV193 (AD103) GeForce RTX 4080
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->NV190 family (Ada Lovelace)
|-
| <!--Description-->NV194 (AD104) GeForce RTX (4070, 4070 Ti)
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV196 (AD106) GeForce RTX 4060 Ti
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
| <!--Description-->NV197 (AD107) GeForce RTX 4060
| <!--Vendor ID-->0x10de
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{unk| }}
| <!--3D-->{{unk| }}
| <!--Analogue-->{{unk| }}
| <!--Digital-->{{unk| }}
| <!--Laptop LCD-->{{unk| }}
| <!--Comments-->
|-
|}
==== nouveau mobile integrated ====
If you purchased a notebook with an NVidia sticker on it, most of the time you have a optimus based one, ie Intel CPU+GPU melded with Nvidia GPU, Optimus was slated at one point to go into desktop PCs but the industry ended up rejecting that concept
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|-
| GeForce 6100 nForce 405
| 0x
| 0x03D1 0x0242
| 0x0
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
|
|-
| <!--Description-->GeForce 6100 nForce 400
| <!--Vendor ID-->
| <!--Product ID-->0x03D2
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce 6100 nForce 420
| <!--Vendor ID-->
| <!--Product ID-->0x03D5
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GeForce 6150 LE
| <!--Vendor ID-->
| <!--Product ID-->0x0241
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| GeForce 6150SE nForce 430
| 0x
| 0x03D0
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| working
|-
| <!--Description-->GeForce 6150
| <!--Vendor ID-->
| <!--Product ID-->0x0240
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7150M / nForce 630M
| <!--Vendor ID-->
| <!--Product ID-->0x0531
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7000M / nForce 610M
| <!--Vendor ID-->
| <!--Product ID-->0x0533
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7050 PV / NVIDIA nForce 630a
| <!--Vendor ID-->
| <!--Product ID-->0x053A 0x053B
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Geforce IGP 7025 nForce 630a
| 0x
| 0x053E
| 0x0
| <!--2D-->{{Yes|some}}
| <!--3D-->{{Yes|some}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No| }}
| some support on some chipsets
|-
| GeForce 7100 / nForce 630i (C73)
| 0x10de
| 0x07e1
| 0x0a2
| <!--2D-->{{Maybe}}
| <!--3D-->{{Maybe}}
| <!--Analogue-->{{Maybe}}
| <!--Digital-->{{Maybe}}
| <!--Laptop LCD-->{{N/A}}
| Icaros 2.0.3 and Gigabyte 73-pvm-s2h rev. 1.0 but will not boot on [https://ae.amigalife.org/index.php?topic=806.msg8765#new Acer x270 with Icaros 2.3]
|-
| <!--Description-->GeForce 7150 / NVIDIA nForce 630i
| <!--Vendor ID-->
| <!--Product ID-->0x07E0
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 7050 / NVIDIA nForce 610i
| <!--Vendor ID-->
| <!--Product ID-->0x07E3
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Geforce IGP 8100 (nForce 720a)
| 0x
| 0x084F
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
|
|-
| GeForce 8100P
| 0x
| 0x0847
| 0x0
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
|
|-
| <!--Description-->Geforce 8200 8300 nForce 730a
| <!--Vendor ID-->
| <!--Product ID-->0x084A 0x0848 (GeForce 8300) 0x0849 (GeForce 8200) 0x084B (GeForce 8200)
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->working on some 8300's with Icaros 1.5 but others untested
|-
| <!--Description-->nForce 780a SLI
| <!--Vendor ID-->
| <!--Product ID-->0x084C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->nForce 750a SLI
| <!--Vendor ID-->
| <!--Product ID-->0x084D
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Nvidia Geforce IGP 9300 (nForce MCP7a)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe| }}
| <!--3D-->{{Maybe| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->works
|
|-
| <!--Description-->9400 (ION)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->If AROS detects GPU chipset, works well
|-
| <!--Description-->9700M ()
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| Geforce ION 2
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Yes| }}
| <!--3D-->{{Yes| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->works well
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce Go 6150
| <!--Vendor ID-->
| <!--Product ID-->0x0244
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6100
| <!--Vendor ID-->
| <!--Product ID-->0x0247
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6200
| <!--Vendor ID-->
| <!--Product ID-->0x0164 0x0167
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6400
| <!--Vendor ID-->
| <!--Product ID-->0x0166 0x0168
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->Sony Laptop
|-
| <!--Description-->GeForce Go 6800
| <!--Vendor ID-->
| <!--Product ID-->0x00C8
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6800 Ultra
| <!--Vendor ID-->
| <!--Product ID-->0x00C9
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600
| <!--Vendor ID-->
| <!--Product ID-->0x0144
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600 TE/6200 TE
| <!--Vendor ID-->
| <!--Product ID-->0x0146
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600
| <!--Vendor ID-->
| <!--Product ID-->0x0148
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 6600 GT
| <!--Vendor ID-->
| <!--Product ID-->0x0149
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7200
| <!--Vendor ID-->
| <!--Product ID-->0x01D6
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7300
| <!--Vendor ID-->
| <!--Product ID-->0x01D7
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->untested
|-
| <!--Description-->GeForce Go 7400
| <!--Vendor ID-->
| <!--Product ID-->0x01D8
| <!--Revision-->
| <!--2D-->
| <!--3D-->works 2D and 3d issues though
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7800
| <!--Vendor ID-->
| <!--Product ID-->0x098
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7800 GTX
| <!--Vendor ID-->
| <!--Product ID-->0x0099
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7950 GTX
| <!--Vendor ID-->
| <!--Product ID-->0x0297
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7900 GS
| <!--Vendor ID-->
| <!--Product ID-->0x0298
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7900 GTX
| <!--Vendor ID-->
| <!--Product ID-->0x0299
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7600
| <!--Vendor ID-->
| <!--Product ID-->0x0398
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce Go 7600 GT
| <!--Vendor ID-->
| <!--Product ID-->0x0399
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 6610 XL
| <!--Vendor ID-->
| <!--Product ID-->0x0145
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 6700 XL
| <!--Vendor ID-->
| <!--Product ID-->0x0147
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GeForce 8700M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0409
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8600M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0425
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8400M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0426
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8400M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0427
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8400M G
| <!--Vendor ID-->
| <!--Product ID-->0x0428
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8800M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x0609
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8800M GTX
| <!--Vendor ID-->
| <!--Product ID-->0x060C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9500M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0405
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 8600M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0407
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9650M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0408
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9400M GT
| <!--Vendor ID-->
| <!--Product ID-->0x042C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9300M G
| <!--Vendor ID-->
| <!--Product ID-->0x042E
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9100M G
| <!--Vendor ID-->
| <!--Product ID-->0x0844
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9800M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x0628
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9700M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x062A
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9800M GTS
| <!--Vendor ID-->
| <!--Product ID-->0x062C
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9600M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0647
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9600M GS
| <!--Vendor ID-->
| <!--Product ID-->0x0648
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9600M GT
| <!--Vendor ID-->
| <!--Product ID-->0x0649
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9500M G
| <!--Vendor ID-->
| <!--Product ID-->0x064B
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9300M GS
| <!--Vendor ID-->
| <!--Product ID-->0x06E5
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9200M GS
| <!--Vendor ID-->
| <!--Product ID-->0x06E8
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->GeForce 9300M GS
| <!--Vendor ID-->
| <!--Product ID-->0x06E8
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->NV50 (G80) Quadro FX (4600 (SDI), 5600)
Quadro FX (2800M, 3600M, 3700, 3700M, 3800M, 4700 X2), VX 200
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV94 (G94) 9700M GTS, 9800M GTS, GeForce G 110M, GT 130(M), GT 140, Quadro FX (1800, 2700M)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV84 (G84) 8700M GT, GeForce 9500M GS, 9650M GS
Quadro FX (370, 570, 570M, 1600M, 1700), NVS 320M
NV86 (G86) GeForce 8300 GS, 8400 (GS, M G, M GS, M GT), 8500 GT, GeForce 9300M G
Quadro FX 360M, NVS (130M, 135M, 140M, 290)
GeForce GTS 150(M), GTS 160M, GTS 240, GTS 250, GTX (260M, 280M, 285M), GT (330, 340)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NV96 (G96) 9650M GT, 9700M GT
GeForce G 102M, GT 120
Quadro FX (380, 580, 770M, 1700M)
NV98 (G98) GeForce 8400 GS, GeForce 9200M GS, 9300 (GE, GS, M GS)
GeForce G 100, G 105M
Quadro FX (370 LP, 370M), NVS (150M, 160M, 295, 420, 450)
Quadro CX, FX (3800, 4800, 5800)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVA3 (GT215) GeForce GT (240, 320, 335M), GTS (250M, 260M, 350M, 360M) Quadro FX 1800M
NVA5 (GT216) GeForce GT (220, 230M, 240M, 325M, 330M), 315
Quadro 400, FX 880M, NVS 5100M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVA8 (GT218) GeForce 8400 GS, ION 2, GeForce 205, 210, G 210M, 305M, 310(M), 405
Quadro FX (380 LP, 380M), NVS (300, 2100M, 3100M)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVAA (MCP77/MCP78) GeForce 8100, 8200, 8300 mGPU / nForce 700a series, 8200M G
NVAC (MCP79/MCP7A) ION, GeForce 9300, 9400 mGPU / nForce 700i series, 8200M G, 9100M, 9400M (G)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->NVAF (MCP89) GeForce 320M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GT 605M, GT 610M GT 620M GT 630M GT 635M GT 645M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->GTX 650M
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->GTX 1650 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2019 turing architecture - last old skool support pre Vulkan
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rtx 2050 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 ampere architecture best starting point for vulkan support
|-
| <!--Description-->rtx 2060 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Rev
| 2D
| 3D
| Analog Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rtx 4060 mobile
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
|}
====radeon.hidd====
Michel Shultz ''2D'' graphics driver (standard on most distributions but only for very old GPUs) and bearsofts updated 2013 around Icaros 1.3.1
3D is not implemented by AROS yet but could cover these AMD chipsets
<pre>
2014 SI AMD HD 7xxx
2016 GCN3rd AMD R5E R7E
2019 GCN5th AMD Vega 8
2022 RDNA1 AMD RX5500 desktop only
2023 RDNA2 AMD 680M 780M
2024 RDNA3 AMD 880M 890M
2025 RDNA3.5 AMD 8060S strix halo and AI
2027 RDNA4 AMD
</pre>
{| class="wikitable"
! Description
! Vendor ID
! Product ID
! Revision
! 2D
! 3D
! Analogue Output
! Digital Output
! Laptop LCD
! Comments
|-
| 7000 (r100)
| 0x1002
| 0x5159
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->{{Maybe|vga15 pin connection but not s-video}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.3
|-
| 7500 (rv200 but still r100 based)
| 0x1002
| 0x5157
| 0x
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->{{Yes|vga15}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.3
|-
| 8000 8500 (r200)
| 0x1002
| 0x514c (8500LE)
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.4
|-
| 9000 9100 9250 (r200)
| 0x1002
| 0x5964 (9000) 0x514d (9100)
| 0x0001
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->{{Maybe|VGA15 but not s-video}}
| <!--Digital-->{{Yes|DVI}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 1.4
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| 9600 9800 (r300)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1
|-
| x300 x600 (r300)
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1
|-
| x700, x800 ([http://en.wikipedia.org/wiki/Radeon_R600 r420])
| 0x
| 0x554d (R430 x800xl)
| 0x0
| <!--2D-->{{Yes|new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1 - x800 XL PCIE (problem with mouse-pointer, some part of the pointer is not transparent)
|-
| x1300 x1550 x1600 x1800 x1900 x1950 ([http://en.wikipedia.org/wiki/Radeon_R520 r520])
| 0x
| 0x
| 0x0
| <!--2D-->{{Yes|new driver}}
| <!--3D-->{{no}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 2.1
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| HD2400 HD2600 HD2900 ([http://en.wikipedia.org/wiki/Radeon_R600 r600])
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|some features with new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 3.3 open CL 1.2 TeraScale architecture
|-
| HD3400 HD3600 HD3800 (r600)
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|some features with new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->pci-e 2.0, openGL 3.3
|-
| HD4300 HD4500 HD4600 HD4700 HD4800 ([http://en.wikipedia.org/wiki/Radeon_R600 r700])
| 0x1002
| 0x
| 0x0
| <!--2D-->{{Maybe|but some later cards need 3D engine for faster and more flexible 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 3.3 - DDR3 - GDDR5 was one of AMD's aces for the 4800 series - 4670 liked -
|-
| HD6900 cayman series
| 0x
| 0x
| 0x0
| <!--2D-->{{Maybe|some features with new driver}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> openGL 3.3 open CL not mature (2014) -
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| HD5400 Series HD5430 HD5450 HD5470
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2010 openGL 3.3 openCL - GDDR3 -
|-
| HD5500 Series HD5550 HD5570 HD5600 Series HD5650 HD5670 HD5700 Series HD5750 HD5770
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 3.3 openCL - GDDR5
|-
| HD 5800 Series HD5850 HD5870 HD5900 Series HD5950 HD5970 - HD6xxx not NI chipset ([http://en.wikipedia.org/wiki/Evergreen_(GPU_family) r800 evergreen])
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2009 openGL 3.3 openCL - DDR5 pci-e 2.1 best avoided for all pci-e 1.0 mobos - Ati TeraScale2 architecture -
|-
| HD6450 [http://en.wikipedia.org/wiki/Northern_Islands_(GPU_family) Northern Islands chipset]
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments--> - DDR3 -
|-
| HD6600 Series HD6650 HD6570 HD6600 Series HD6650 HD6670
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2011 - DDR5 -
Radeon HD 8470 11 TeraScale 2
Radeon HD 8350 11 TeraScale 2
Radeon HD 7510 11 TeraScale 2
Radeon HD 6550D 11 TeraScale 2
Radeon HD 6530D 11 TeraScale 2
Radeon HD 6410D 11 TeraScale 2
Radeon HD 6370D 11 TeraScale 2
Radeon HD 6320 11 TeraScale 2
Radeon HD 6310 11 TeraScale 2
Radeon HD 6290 11 TeraScale 2
Radeon HD 6250 11 TeraScale 2
|-
| HD6800 Series HD6850 HD6870 HD6700 Series HD6790 to HD6990
| 0x
| 0x
| 0x0
| <!--2D-->{{No|needs 3D engine for accelerated 2D now}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2011 - DDR5 - AMD TeraScale3 -
|-
| <!--Description-->HD7450-HD7670
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2012 OpenGL but not Vulkan
Radeon HD 7660D 11 TeraScale 3
Radeon HD 7560D 11 TeraScale 3
Radeon HD 7540D 11 TeraScale 3
Radeon HD 7480D 11 TeraScale 3
Radeon HD 6930 11 TeraScale 3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->HD7750 HD 7770 / R7 250X HD7850 HD7870 / R9 270X HD 7950 / R9 280 HD 7970 / R9 280X [http://en.wikipedia.org/wiki/Southern_Islands_(GPU_family) Southern Islands]
*AMD Radeon R7 250XE Cape Verde XT
*AMD Radeon R7 M465X Cape Verde
*AMD Radeon R9 255 Cape Verde PRX
*AMD Radeon HD 7750 Cape Verde PRO
*AMD Radeon R7 250E Cape Verde PRO
*AMD Radeon HD 8740 Cape Verde PRO
*AMD Radeon HD 7730 Cape Verde LE
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2012 pci-e 3.0 1st Gen GCN architecture -
|-
| <!--Description-->R5 430, FirePro W2100,
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2015 50W+ openGL openCL 1/3 speed of gtx750ti 1st gen gcn1
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->HD7790 [ Sea Islands ]
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 openGL 4.1 open CL - GCN2.0 Vulkan 1.0 introduced a Shader Engine (SE) comprising one geometry processor, up to 44 CUs (Hawaii chip), rasterizers, ROPs, and L1 cache and Graphics Command Processor for faster audio/video - suits Vulkan 1.1
|-
| <!--Description-->r5 240 240x (slow) R7 250 250x (faster) HD 7790 / R7 260 260X / R7 360 to R5 350 (fast) and last one R5 430 OEM Plus (slow again)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 50W+ openGL 4.x openCL 1.x Vulkan 1.0 GCN 1st gen -
|-
| <!--Description-->R9 290 / R9 390 R9 290X / R9 390X
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2014 openGL 4.x openCL 1.x 2nd Gen GCN Vulkan 1.1 architecture -
|-
| <!--Description-->R9 Fury Nano
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2015
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->r-200 series r8 275 285 295 375 [Volcanic Islands]
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->openGL 4.x openCL 1.x - GCN3 Vulkan 1.2
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Radeon™ RX 5700/5600/5500 Series and Radeon™ RX Vega Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 GCN 4 - OpenGL 4, Vulkan 1.3 -
|-
| <!--Description-->Radeon™ RX 400/500 Series like rx 580
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->Radeon™ Pro WX 9100, x200 Series and Radeon™ Pro W5700/W5500 Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Radeon™ RX 7900/7600 Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->Radeon™ RX 6900/6800/6700/6600/6500 Series
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|}
==== amd radeon mobile integrated ====
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|-
| <!--Description-->ATI RC410 [Radeon Xpress 200M]
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x5a62 0x5955 0x5974 (200m)
| <!--Revision-->0x00
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->
|-
| <!--Description-->Mobility Radeon 7500
| <!--Vendor ID-->0x1002
| <!--Product ID-->0x4c57 (7500)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->
|-
| <!--Description-->Mobility Radeon 9000
| 0x1002
| 0x4966 (9000)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->
|-
| <!--Description-->Mobility Radeon 9500 9550 (rv360) 9600 (rv350)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon 9800 (rv420)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon X300 (RV370) X600 (RV380)
| 0x1002
| 0x (RV370) 0x5657 (RV380)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon X700 (RV410) X800 (RV423)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon X1200 (RS69M0)
| 0x1002
| 0x791f
| 0x0
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->X1200 IGP (RS690)
|-
| <!--Description-->Mobility Radeon X1300 X1350 X1400(rv515) X1600 (rv530) X1650 (RV535) X1800 (rv520) x1900 (rv570)
| 0x1002
| 0x71c7 (X1650)
| 0x009e
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon 2100
| 0x1002
| 0x796e (2100)
| 0x0
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{No|}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 2400 (rv610) HD2600 (rv630)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 3100 HD3200 HD3450 3470 (RS780MC RV620) 3670 (M86-XT RV635) HD3870 (M88-LXT RV670)
| 0x1002
| 0x9610 and 0x9612 (HD3200) 0x9614 (HD3300)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 4200 4250 (RV620)
| 0x1002
| 0x (HD4200) 0x9715 (HD4250)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 4330 4530 4550 (M92 RV710) 4650 (M96-XT RV730) 4670 RV730XT 4830 (M97 RV740) 4850 (M98 RV770)
| 0x1002
| 0x (HD4350) 0x9442 (RV770) 0x9490 (HD4670)
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->untested
|-
| <!--Description-->Mobility Radeon HD 530v (M92 RV710) HD 550v (M96 RV730)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->no support yet
|-
| <!--Description-->Mobility Radeon HD 5430 HD5650 (cedar Park LP)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->no support yet
|-
| <!--Description-->Radeon HD 6250 6290 6310 6320 6350M (Redwood Capilano PRO)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No}}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{No}}
| <!--Comments-->no support yet
|-
| <!--Description-->AMD 7640G, 8450G, 8550G, 8650G Northern Islands
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2013 Last real support for old graphics standard before Vulkan takeover
|-
| <!--Description-->R5 M230 M240 M255 - R7 M260 M265 (Kaveri Crystal series with Mantle and HSA)
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->2015 Maybe better with Vulkan
|-
| <!--Description-->R5E R7E
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->2016 bristol ridge GCN 3.0 IGP (Carrizo Mobile)
|-
| <!--Description-->AMD Vega 3, 6, 8, 11 iGP
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA 2D}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2018 raven ridge GCN 5th Gen
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->5500m 5600m 5800m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA1 NaviX1 Zen 2
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rx680m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA2 NaviX2 Zen 3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->phoenix apu 1103
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 RDNA3 NaviX3 zen 4
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
==== AMDGPU Vulkan desktop ====
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->Kaveri 290 290X, 260 260X
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2015 AMDGPU Vulkan
|-
| <!--Description-->R9 285 / R9 380 R9 380X Fury / Fury X
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->opengl 4 opencl 1 3rd Gen GCN architecture
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX470 RX460 RX480 RX580 polaris10
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 opengl 4 opencl 2 4th Gen GCN architecture vulkan 1.3
|-
| <!--Description-->RX460 RX560D polaris11
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 opengl 4 opencl 2 4th Gen GCN architecture vulkan 1.3
|-
| <!--Description-->RX580 polaris20
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2016 opengl 4 opencl 2 4th Gen GCN architecture vulkan 1.3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX 5000 5500 Navi 1x
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RNDA 1
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX 6000 Navi 2x
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RNDA 2 Mesa 21.3 decode av1
|-
| <!--Description-->RX6000
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->RX 7000
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2022 RNDA 3 navi
|-
| <!--Description-->RX7000
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->{{No| }}
| <!--Digital-->{{No|nothing}}
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->RX9070 rx 9060 XT
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2025 rdna4 navi
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2026 udna (aka rdna5)
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
|}
==== AMDGPU Vulkan mobile ====
{| class="wikitable sortable" width="90%"
! width="5%" | Description
! width="5%" | Vendor ID
! width="5%" | Product ID
! width="2%" | Rev
! width="5%" | 2D
! width="5%" | 3D
! width="5%" | Analog Output
! width="5%" | Digital Output
! width="5%" | Laptop LCD
! width=40%" | Comments
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->R5E R7E
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->2016 bristol ridge GCN 3.0 IGP (Carrizo Mobile)
|-
| <!--Description-->Vega iGP 3, 6, 8, 11
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->2018 raven ridge - Graphics Core Next (GCN) 5th gen -
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->5500m 5600m 5800m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA1 NaviX1 Zen 2
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->rx680m
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA2 NaviX2 Zen 3
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->phoenix apu 1103
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->{{Maybe|VESA}}
| <!--3D-->{{No| }}
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->RDNA3 NaviX3 zen 4
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->{{N/A}}
| <!--Comments-->
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Description
| Vendor ID
| Product ID
| Revision
| 2D
| 3D
| Analogue Output
| Digital Output
| Laptop LCD
| Comments
|-
| <!--Description-->
| <!--Vendor ID-->
| <!--Product ID-->
| <!--Revision-->
| <!--2D-->
| <!--3D-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
fyi if a notebooks with two graphic cards, the integrated Intel card (id 0x7d) for low power usage and a discrete Radeon card (id 0x56) which should be used for GPU-intensive applications. By default the Intel card is always used
[https://wiki.archlinux.org/title/ATI Gallium Radeon HD] is not ported yet but is [https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.9-AMDGPU-Stats really big] and complex so another solution may have to be [https://discuss.haiku-os.org/t/the-graphics-acceleration-can-of-worms/10515/5 found] like [https://discuss.haiku-os.org/t/vulkan-lavapipe-software-rendering-is-working-on-haiku/11363/10 vulkan] where support starts from very recent ISA GCN islands HD7000s cards only
*Vulkan
*Gallium
Vulkan software renderer allows to prepares the infrastructure for hardware rendering. Primary difference between software and hardware renderer is output to regular RAM vs GPU RAM, the rest is almost the same. It is possible to render to GPU RAM offscreen.
bare bones basics data flow
application,>>> api/opengl/vulkan>>>>, jit compiler, >>>>memory manger, >>>>gpu hardware
so you need to have a compiler that takes your api call/program/shaders/drawing commands and turns them into a program the gpu can render.
the vulkan to amd gpu compiler for shaders and textures is nearly os agnostic iirc as long as you have solid posix compliance
Unlike OpenGL, Vulkan does not depend on windowing system and it have driver add-on system with standardized API (Mesa also have OpenGL driver add-ons, but it have non-standard Mesa-specific API). OpenGL may need more work for windowing system related code at this point but developing Vulkan on real hardware is more strategic than developing OpenGL, since now Zink 3 running on Vulkan compensates for the lack of OpenGL support by giving performance similar to native accelerated OpenGL
RadeonGfx use client-server model with client-server thread pairs. For each client thread that calls 3D acceleration API, server side thread is created. If client thread terminates, server side thread also exit.
==Rough gfx comparison==
<pre>
Group 1
GeForce RTX 5090 5070 5060 5050
GeForce RTX 4090 4070 4060 4050
Group 2
GeForce RTX 2070
Radeon RX 7600
Quadro RTX 5000
Radeon PRO W6600
GeForce RTX 2060 12GB
Radeon PRO W7500
Quadro GP100
Radeon RX 6800S
GeForce RTX 3070 Laptop GPU
GeForce GTX 1080
GeForce RTX 3060 8GB
Quadro RTX 4000
Radeon Pro W5700
Radeon RX 6600
GeForce RTX 2080 (Mobile)
Radeon RX 7700S
Radeon RX 6700S
Radeon RX 6600S
Quadro RTX 5000 (Mobile)
GeForce GTX 1070 Ti
GeForce RTX 4050 Laptop GPU
Radeon Pro Vega 64X
Radeon RX 5700
Radeon RX Vega 64
GeForce RTX 2060
GeForce RTX 2070 Super with Max-Q Design
Group 3
Radeon RX 6600M
GeForce GTX 1070
Radeon RX 6650M
GeForce RTX 3060 Laptop GPU
Radeon RX Vega 56
Radeon RX 6700M
GeForce RTX 2080 with Max-Q Design
Radeon RX 6800M
GeForce GTX 980 Ti
Radeon R9 Fury
GeForce GTX 980
Quadro M5500
Radeon R9 390X
Radeon RX 580
Radeon RX 5500
Radeon RX 6550M
GeForce GTX 1660 Ti with Max-Q Design
GeForce GTX 780 Ti
GeForce GTX 970
Radeon R9 290X
Radeon RX 480
Radeon RX 5600M
Quadro RTX 3000 with Max-Q Design
Radeon R9 290X / 390X
Ryzen 5 4600HS with Radeon Graphics
Radeon R9 290
Radeon Pro 5500 XT
Radeon R9 M490 *
GeForce GTX 780
Radeon RX 6500M
Quadro M5500
GeForce GTX 1060 with Max-Q Design
Radeon RX 6500
Radeon RX 5300
Intel Arc A770M
GeForce GTX 1650 Ti
Radeon Pro 580X
Radeon RX 6400
GeForce RTX 2050
Ryzen 9 4900HS with Radeon Graphics
Radeon Ryzen 9 6900HS
GeForce GTX 980M
Quadro M5000M
Radeon RX 6300
GeForce GTX 1650 Ti with Max-Q Design
Radeon Pro 570
Ryzen 9 6900HS with Radeon Graphics
GeForce GTX 1050 Ti
Quadro M4000M
Radeon R9 280X 380X
GeForce GTX 1650 with Max-Q Design
GeForce MX570
Radeon R9 280X
Radeon R9 380
Radeon 780M
GeForce GTX 960
GeForce GTX 970M
Quadro M4000M *
GeForce GTX 680
Group 4
Radeon RX 6500M
Quadro M5500
Radeon Pro WX 7100
GeForce GTX 1060 with Max-Q Design
GeForce GTX 1650
Intel Arc A730M
Radeon HD 7970
Radeon R9 M395X
Radeon R9 M485X
Radeon R9 M480 *
Radeon R9 M295X
Radeon R9 M390X *
FirePro W7170M *
Radeon R9 M395
Radeon R7 370
Radeon RX 5500M
GeForce GTX 590
GeForce GTX 880M
GeForce GTX 950
Radeon R9 270X
GeForce GTX 660 Ti
GeForce GTX 760
GeForce GTX 780M
Quadro K5100M
GeForce GTX 680MX
Radeon HD 7870
GeForce GTX 965M
Quadro M3000M *
GeForce GTX 870M
Radeon R9 M290X
Radeon HD 8970M
Radeon Ryzen 7 7735U (680M), Radeon Ryzen 7 7735HS (680M 12C)
GeForce GTX 580
Radeon HD 6970
GeForce GTX 1050
GeForce GTX 680M
GeForce GTX 775M
GeForce GTX 1630
FirePro M6100
Radeon HD 7970M
Radeon R9 M390 *
GeForce GTX 750 Ti
Group 5
GeForce GTX 570
GeForce GTX 480
GeForce GTX 960M
Quadro M2000M *
Quadro K5000M
Quadro K4100M
GeForce GTX 770M
GeForce GTX 860M
GeForce GTX 675MX
GeForce GTX 950M
GeForce GTX 850M
Quadro M1000M
Radeon R9 M280X
Radeon HD 7950M *
GeForce GTX 560 Ti
Radeon HD 6870
GeForce GTX 470
GeForce GT 1030
GeForce MX330
Ryzen 5 PRO 5650GE with Radeon Graphics
Ryzen 7 5800HS
FirePro 3D V8800
GeForce MX250
Group 6
Radeon Pro WX 3200
Ryzen 7 PRO 5750G with Radeon Graphics
Radeon Ryzen 5 5600H
Ryzen 5 Pro 4650G with Radeon Graphics
Radeon Ryzen 7 5800U
Ryzen 7 7730U with Radeon Graphics
Radeon Ryzen 7 5825U
Radeon Pro WX 4150
Radeon Ryzen 5 PRO 4655G
Ryzen 5 4600G with Radeon Graphics
Radeon Ryzen 5 PRO 4655GE
GeForce GTX 485M
FirePro W6150M
Ryzen 7 5800U with Radeon Graphics
Ryzen 5 7530U with Radeon Graphics
Ryzen 7 4800U with Radeon Graphics
Radeon R9 M470
Ryzen 3 PRO 5350G with Radeon Graphics
Radeon RX Vega Ryzen 3 5300U
Ryzen 7 5825U with Radeon Graphics
Ryzen 5 PRO 4400G with Radeon Graphics
Radeon Ryzen 7 PRO 4750GE
Radeon Ryzen 7 4800U
FirePro V7900
Radeon HD 5970
Radeon Ryzen 7 7700X 8-Core
Radeon Ryzen 5 PRO 5650G
Radeon Ryzen 5 4400G
Radeon Ryzen 5 PRO 5650GE
Radeon RX 550X
FirePro V8800
Radeon RX Vega Ryzen 5 5500U
GeForce MX150
Quadro K3100M
Ryzen 7 PRO 5850U with Radeon Graphics
Radeon HD 6970M
Radeon R7 250X
Intel HD 5600
Ryzen 3 4300GE with Radeon Graphics
GeForce GTX 460
Ryzen 7 5700U with Radeon Graphics
Radeon Ryzen 5 7530U
Quadro K620
Ryzen 3 PRO 5350GE with Radeon Graphics
Intel Iris Pro P580
Intel UHD Graphics P630
Ryzen 5 4600H with Radeon Graphics
Ryzen 5 PRO 7530U with Radeon Graphics
Radeon HD 5870
Radeon HD 6870
Ryzen 7 4700G with Radeon Graphics
Ryzen 5 5600U with Radeon Graphics
Radeon HD 7770
Ryzen 3 Pro 4350G with Radeon Graphics
Radeon Ryzen 5 5625U
GeForce GTX 745
Radeon Ryzen 7 4850U Mobile
Radeon Ryzen 3 PRO 7330U
Quadro M600M
Radeon Ryzen 5 5500U
Ryzen 5 5560U with Radeon Graphics
Ryzen 7 4800H with Radeon Graphics
Group 7
GeForce 945M
Ryzen 5 PRO 4650GE with Radeon Graphics
FirePro M5100
Radeon Ryzen 5 5600U
Radeon Ryzen 5 PRO 4500U
GeForce GTX 580M
Ryzen 7 PRO 5875U with Radeon Graphics
Ryzen 3 5300GE with Radeon Graphics
Radeon R9 M385
Quadro 5000M
Radeon Ryzen 7 4700U
Ryzen 5 PRO 5650U with Radeon Graphics
Radeon Ryzen 7 PRO 4750U
Ryzen 7 4700U with Radeon Graphics
Ryzen 7 PRO 4750U with Radeon Graphics
FirePro V7800
Radeon R9 350
Ryzen 3 4300G with Radeon Graphics
Radeon Vega 11 Ryzen 5 PRO 3350G
Radeon Ryzen 5 5560U
GeForce GTX 460 SE
Radeon Pro W5500M
Radeon Vega 11 Ryzen 5 PRO 3400G
Ryzen 5 5500U with Radeon Graphics
Ryzen 5 PRO 4500U with Radeon Graphics
GeForce GT 645
GeForce GTX 765M
Radeon R9 M385X
Ryzen 5 5625U with Radeon Graphics
Ryzen 3 PRO 7330U with Radeon Graphics
Radeon HD 5850
Radeon Vega 11 Ryzen 5 PRO 2400G
Intel Iris Pro 580
Radeon HD 6850
Intel Iris Xe MAX
Radeon Ryzen 7 PRO 5875U
Radeon Ryzen 5 7600 6-Core
GeForce GTX 470M
Ryzen 3 5300G with Radeon Graphics
GeForce GTX 670MX
Radeon RX 640
Qualcomm Adreno Gen 3
Radeon R7 450
GeForce GTX 675M
Radeon Pro WX 4130
Intel Iris Xe MAX 100
Quadro 5000
Radeon RX 570X
Radeon HD 7700-serie
Ryzen 5 4600U with Radeon Graphics
Ryzen 3 PRO 4350GE with Radeon Graphics
Radeon Vega 8
Group 8
GeForce MX230
GeForce GTX 765M
Quadro K4000M
Iris Pro Graphics P580 *
Iris Pro Graphics 580 *
GeForce GTX 645
Quadro M520
GeForce GTX 570M
GeForce MX130
Radeon RX 540
Radeon Ryzen 5 PRO 5675U
Intel UHD Graphics 770
Radeon RX Vega 11 Ryzen 7 3750H
Radeon Vega 11 Ryzen 5 PRO 3400GE
Radeon HD 5850
GeForce GTX 675M
GeForce GTX 580M
Radeon HD 6990M
Radeon R9 M385X *
Radeon R9 M470X *
Radeon R9 M470 *
Radeon R9 M385 *
Radeon R9 M380 *
Radeon R9 M370X
Radeon R9 M275
Radeon HD 7770
GeForce GTX 485M
GeForce GTX 460 768MB
Radeon HD 6790
GeForce GTX 285M SLI
Quadro K3100M
FirePro W5170M *
GeForce GTX 670MX
Quadro 5010M
GeForce GTX 760M
GeForce GTX 670M
Group 9
GeForce 940MX *
Maxwell GPU (940M, GDDR5)
FirePro M8900
Radeon HD 6970M
Radeon R9 M270
Radeon HD 8870M
Radeon HD 7870M
Quadro K3000M
GeForce GTX 570M
FirePro M6000
FirePro M5100
Quadro K2100M
Radeon HD 5770
GeForce GTX 550 Ti
GeForce GTX 280M SLI
Radeon HD 6950M
Radeon R7 250
GeForce GT 755M
GeForce GTX 660M
GeForce 845M
Radeon HD 8850M
Radeon R9 M365X
Radeon R9 M265X
Ryzen 5 PRO 4400GE with Radeon Graphics
FirePro W5130M *
Radeon Vega 8 Ryzen 5 3500U
Radeon HD 7850M
Radeon HD 8790M
FirePro W4170M
FirePro W4190M
FirePro W4100
Radeon Vega 6 Ryzen 3 3300U
Quadro 4000M
GeForce GTX 470M
GeForce GTX 480M
GeForce GT 750M
Iris Pro Graphics 6200
Quadro K1100M
GeForce 940M
Radeon R9 M375
GeForce 930MX *
Radeon R7 M380 *
Radeon R7 M370
Quadro M600M *
GeForce GT 650M
Quadro K620M
GeForce 840M
Radeon R7 M275DX
GeForce GT 745M
Radeon HD 7770M
GeForce GTX 560M
Radeon R7
Iris Pro Graphics 5200
GeForce GT 740M
GeForce 930M
Radeon HD 4850
Group 10
Iris Graphics 550 *
GeForce 830M
Iris Graphics 540
Quadro M500M *
Quadro K2000M
GeForce GTS 450
GeForce GTX 260M SLI
GeForce GT 735M
Mobility Radeon HD 5870
GeForce 825M
Quadro 5000M
FirePro M4000
FirePro M7820
Radeon HD 6870M
GeForce 9800M GTX SLI
Radeon HD 8830M *
Radeon HD 8770M
Radeon R7 M260X
GeForce GTX 460M
GeForce 920MX *
GeForce GT 730M
Radeon HD 7750M
GeForce GT 645M *
FirePro M4100
Radeon HD 8750M
Radeon R6 A10-9600P 4C+6G
Quadro 3000M
Radeon R7 M270
Radeon R7 M265
Quadro FX 3800M
GeForce GTX 285M
Mobility Radeon HD 4870
GeForce GT 640M
Radeon R7 (Kaveri)
Radeon R8 M365DX
Radeon R7 M460 *
Radeon HD 7730M
Radeon R7 M360
GeForce GTX 280M
Radeon HD 8690M
Quadro FX 3700M
Radeon R7 M340
GeForce 920M
Radeon R6 M340DX
HD Graphics 530
HD Graphics P530
Tegra X1 Maxwell GPU
Radeon R7 M260
Radeon R6
Group 11
Mobility Radeon HD 4860
FirePro M7740
Mobility Radeon HD 4850
GeForce GTX 260M
GeForce 9800M GTX
Quadro FX 2800M
Radeon HD 8670D
Radeon HD 7690M XT
FirePro M5950
GeForce GT 640M LE
Radeon R6 (Kaveri)
Radeon HD 8650M *
Radeon HD 8730M
Radeon HD 6770M
GeForce GT 635M
GeForce GT 555M
Radeon R7 A10 PRO-7800B
Radeon HD 5670
Mobility Radeon HD 5850
Radeon HD 6850M
Quadro 2000M
GeForce 9800M GT
GeForce 8800M GTX
Quadro FX 3600M
GeForce GT 445M
GeForce GTS 360M
Group 12
GeForce GT 240
Radeon R7 PRO A10-9700
Radeon HD 7690M
HD Graphics 5600
Radeon HD 8570D
Radeon HD 8670M
Radeon R6 M255DX
Radeon HD 7660D
Radeon HD 6750M
Quadro K1000M
GeForce GT 550M
Radeon HD 8590M *
GeForce GTS 260M
GeForce GTS 160M
GeForce 9800M GTS
GeForce GT 430
Radeon HD 6830M
Mobility Radeon HD 5830
Radeon HD 6730M *
GeForce 9800M GS
Mobility Radeon HD 4830
Mobility Radeon HD 5770
Radeon HD 6570M
Radeon HD 8650G
Radeon HD 7670M
GeForce GT 630M
Radeon HD 7560D
GeForce GTS 150M *
Radeon R5 M335
Radeon R5 M430 *
Radeon R5 M330
Radeon R5 M255
Radeon Vega 3
Quadro 1000M
GeForce 820M
FirePro W2100
HD Graphics 520 620
Iris Graphics 6100
GeForce GT 720M
GeForce 8800M GTS
Radeon R5 M240
Radeon R5 M320 *
Radeon R5 M230
Radeon R5 M315 *
Mobility Radeon HD 5750 *
Radeon HD 8570M
Radeon R7 PRO A10-8850B
HD Graphics 6000
Quadro K610M
Radeon HD 8550M
Iris Graphics 5100
GeForce GT 540M
Mali-T880 MP12 *
Radeon HD 8610G *
Radeon HD 6650M
HD Graphics 4600
Mobility Radeon HD 5730
HD Graphics 5500
Radeon R5 (Carrizo) *
Radeon R5 (Kaveri)
FirePro M5800
NVS 5400M
GeForce 710M
Radeon HD 7660G
GeForce GT 435M
HD Graphics 5000
Quadro K510M *
Radeon HD 5570
Radeon HD 6550M
Radeon HD 7590M *
GeForce GTS 350M
GeForce GTS 250M
Radeon HD 6630M
Radeon HD 7650M
FirePro M2000
Radeon HD 7570M
Radeon HD 7630M
Quadro FX 1800M
Mobility Radeon HD 5650
Radeon HD 8510G *
Radeon HD 6530M
Radeon HD 8550G
Quadro K500M *
GeForce GT 625M *
GeForce GT 620M
GeForce GT 525M
Radeon HD 6550D *
Radeon HD 7610M
Radeon HD 7620G
Radeon HD 8470D
Radeon HD 7640G
Adreno 530
GeForce ULP K1 (Tegra K1 Kepler GPU)
HD Graphics 4400
HD Graphics 510 515 *
NVS 5200M
Mobility Radeon HD 565v
Radeon HD 7550M
Mobility Radeon HD 4670
GeForce GT 425M
GeForce 9700M GTS
Radeon HD 6645G2 *
Quadro FX 2700M
GeForce GT 335M
Radeon HD 7600G
Mobility Radeon HD 3870
Mobility Radeon HD 4650
GeForce GT 220
GeForce GT 420M
Radeon HD 7530M *
Mobility Radeon HD 3850
GeForce GT 330M
Quadro FX 880M
Quadro NVS 5100M
GeForce GT 240M
Radeon HD 7490M *
HD Graphics 5300
Radeon HD 7510M *
GeForce Go 7950 GTX
Quadro FX 3500M
GeForce 8700M GT SLI
GeForce 9700M GT
GeForce GT 230M
Mobility Radeon HD 550v
Radeon HD 7480D
HD Graphics 4000
Mali-T760 MP8
Radeon HD 6620G
HD Graphics (Broadwell) *
Adreno 430
Radeon R5 (Beema/Carrizo-L)
Radeon R4 (Beema) (Kaveri)
HD Graphics (Skylake) *
Radeon HD 6450 GDDR5
Radeon HD 7500G
Radeon HD 8450G
Radeon HD 7470M
Radeon HD 6490M
Radeon HD 8400
Mali-T880 MP4
GeForce GT 520MX
Radeon HD 7520G
GeForce GT 325M
GeForce Go 7800 GTX SLI
GeForce 8600M GT SLI
GeForce Go 7900 GS SLI
GeForce GT 130M
NVS 4200M
GeForce Go 7900 GTX
Quadro FX 2500M
Radeon HD 8350G
Radeon HD 8330
GeForce 9650M GS
GeForce 9650M GT
Radeon R3 (Mullins/Beema)
GeForce 8700M GT
Quadro FX 1700M
Quadro FX 1600M
GeForce Go 7800 GTX
GeForce Go 7900 GS
Quadro NVS 320M
Quadro FX 1500M
GeForce 9600M GT
GeForce GT 220M
Quadro FX 770M
GeForce GT 120M
Radeon HD 7450M
GeForce 610M
GeForce 705M
Mali-T760 MP6
Radeon HD 6470M
FirePro M3900 *
GeForce GT 520M
Radeon HD 7420G
Mobility Radeon HD 3670
Mobility FireGL V5725
PowerVR GX6450
Adreno 420
HD Graphics (Haswell)
Radeon HD 6520G
Radeon HD 8310G *
GeForce 320M
GeForce GT 320M
Mobility Radeon HD 2600 XT
Mobility Radeon X1900
Mobility Radeon X1800XT
Mobility Radeon X1800
GeForce Go 6800 Ultra
GeForce Go 7800
GeForce 9600M GS
GeForce 9500M GS
Radeon HD 7400G
Radeon HD 6480G *
Mobility Radeon HD 2700
GeForce GT 415M
GeForce 410M
Radeon HD 7370M
Adreno 418
HD Graphics (Cherry Trail)
Radeon HD 6370M
Radeon HD 8280
Mobility Radeon HD 5470
Radeon HD 6450M
Radeon HD 7430M *
Mobility Radeon HD 3650
Mobility FireGL V5700
Mobility Radeon HD 5145
Mobility Radeon HD 545v
Radeon R6 (Mullins) *
Radeon HD 8240
Radeon HD 8250
Mobility Radeon HD 4570
Quadro FX 570M
Mobility Radeon HD 5450 *
Radeon R2 (Mullins/Beema) *
GeForce 8600M GT
Mobility Radeon HD 2600
HD Graphics 3000
Quadro FX 380M
GeForce 310M
GeForce G210M
NVS 3100M
GeForce 405M
GeForce 315M
GeForce Go 7600 GT
GeForce 9500M G
GeForce 8600M GS
NVS 2100M
GeForce Go 7700
GeForce Go 6800
Quadro FX Go 1400
Mobility Radeon X800XT
Radeon HD 6430M *
Radeon HD 6380G *
Mobility Radeon HD 5430
Radeon HD 8210
Mobility Radeon HD 540v
Mobility Radeon HD 4550
HD Graphics 2500
HD Graphics (Ivy Bridge)
Quadro NVS 310
Radeon HD 7350M *
Radeon HD 6350M *
Mobility Radeon HD 4530
Mobility Radeon HD 4350
Radeon HD 4350
GeForce 305M
Mobility Radeon X1700
Mobility FireGL V5250
Mobility Radeon X2500
GeForce Go 7600
Quadro NVS 300M
Mobility Radeon X800
Mobility Radeon X1600
Mobility FireGL V5200
Mobility Radeon 9800
GeForce Go 6600
Mobility Radeon X1450
Mobility Radeon X700
Mobility FireGL V5000
GeForce G 110M
Quadro NVS 295
Radeon HD 6330M *
Mobility Radeon HD 4330
GeForce 8400M GT
Quadro NVS 140M
HD Graphics 2000
GeForce 9500M GE *
GeForce 9400M (G) / ION (LE)
HD Graphics (Sandy Bridge) *
Adreno 330
PowerVR G6430
PowerVR GX6250
PowerVR G6400
HD Graphics (Bay Trail)
Mali-T628 MP6
Mali-T760 MP4
Chrome9HD *
Radeon HD 7340
Radeon HD 6320 *
Radeon HD 7310
Radeon HD 6310 *
Radeon HD 8180
Mobility Radeon HD 3470
GeForce 9300M G
ION 2 *
GeForce 9300M GS
Quadro FX 370M
Quadro NVS 160M
GeForce 9200M GS
Mobility Radeon HD 3450
Mobility Radeon HD 3430
Mobility Radeon HD 3410
Mobility Radeon HD 2400 XT
Radeon HD 4270
Radeon HD 4250
Radeon HD 7290 *
Radeon HD 6290 *
Radeon HD 4200
Graphics Media Accelerator (GMA) HD Graphics
Radeon HD 6250
Quadro NVS 150M
Quadro FX 360M
Mobility Radeon X1350
Mobility Radeon X1400
GeForce 9100M G
GeForce 8400M GS
Quadro NVS 135M
Mobility Radeon HD 2400
Radeon HD 3200
Radeon HD 4225 *
Radeon HD 4100 *
SGX554MP4
Mali-T628 MP4
Mobility Radeon HD 3400 *
Radeon HD 3100
GeForce 8400M G
Mali-T860 MP2
Quadro NVS 130M
GeForce 8200M G
Graphics Media Accelerator (GMA) 4700MHD
Graphics Media Accelerator (GMA) 4500MHD
Graphics Media Accelerator (GMA) 4500M
Mali-T604 MP4
GeForce Go 7400
Quadro FX 350M
Quadro NVS 120M
GeForce Go 7300
GeForce Tegra 4 *
PowerVR G6200
Adreno 405 *
Quadro NVS 110M
Mobility Radeon X600
Mobility FireGL V3200
Mobility FireGL V3100
Mobility Radeon HD X2300
Mobility Radeon 9700
Mobility FireGL T2e
Mobility Radeon X1300
GeForce4 4200 Go
Mobility Radeon 9600
Mobility FireGL T2
Mobility Radeon 9550
GeForce Go 7200
GeForce Go 6400
Mobility Radeon X300
GeForce Go 6250
GeForce Go 6200
GeForce FX Go 5700
Quadro FX Go 1000
GeForce FX Go 5600 / 5650
Radeon Xpress X1270
Radeon Xpress X1250
Radeon Xpress X1200
Graphics Media Accelerator (GMA) X3100
Mali-T624
Adreno 320 *
Mali-T760 MP2
Mali-T720 MP4
Mali-450 MP4
Graphics Media Accelerator (GMA) 3650 *
GeForce 7190M *
GeForce 7150M
Radeon Xpress 1150
GeForce Go 6150
GeForce Go 6100
GeForce 7000M
Graphics Media Accelerator (GMA) 3600 *
Mobility Radeon 9200
Mobility FireGL 9000
GeForce FX Go 5200
Mobility Radeon 9000
GeForce 4 488 Go
GeForce 4 460 Go
GeForce 4 440 Go
GeForce 4 420 Go
Graphics Media Accelerator (GMA) 3150
Graphics Media Accelerator (GMA) 950
SGX545 SGX544MP2 SGX543MP2 *
Mali-T720 MP2
Mali-T720
Adreno 302 304 305 306
Mobility Radeon 7500
Mobility FireGL 7800
Graphics Media Accelerator (GMA) 900
Radeon Xpress 200M
Radeon Xpress 1100
Mirage 3+ 672MX
Mirage 3 671MX
Mali-400 MP4 *
GeForce ULP (Tegra 3) *
VideoCore-IV *
Adreno 220 225*
Vivante GC1000+ Dual-Core
Mali-400 MP2 *
GeForce ULP (Tegra 2) *
Graphics Media Accelerator (GMA) 600 *
SGX540 *
Graphics Media Accelerator (GMA) 500
Adreno 205 *
Adreno 203 *
GC800 *
SGX535
SGX531
SGX530
Adreno 200 *
Mali-200 *
GeForce 3 Go *
GeForce 2 Go 200 / 100
Mobility Radeon 9100 IGP
Mobility Radeon 9000 IGP
Mobility Radeon M7
Mobility Radeon M6
Chrome9 HC
Extreme Graphics 2
Mobility Radeon 7000 IGP
Radeon IGP 340M
Radeon IGP 320M
S3G UniChrome Pro II
S3G UniChrome Pro
Castle Rock
Mirage 2 M760
Mirage M661FX
S3 Graphics ProSavage8
Mobility 128 M3
SM502 *
</pre>
Kernel-space drivers like '''radeon''' (older AMD driver for older GPUs), '''amdgpu''' (newer driver for newer GPUs, allows using a few new features), i915, nouveau and a few others. They are what handles the gory details of talking to the GPU itself (writing to proper registers, handling its memory directly, configuring outputs, and so on). Unfortunately most of what they're exposing can be only consumed by a single user of that GPU, which is why we need...
DRM and DRI (Direct Rendering Manager/Infrastructure) controls access to the GPUs, provides interfaces for talking to the GPU concurrently by multiple apps at once (without them breaking each other) and lets the system perform the most basic tasks like setting proper resolution and such if no userspace apps understand how to talk to the GPU exposed. DRI and DRM expose the GPU interfaces mostly as-is, not in a "vendor-neutral" portable way - if you don't have an application developed specifically for a GPU you have, it won't work.
"let's create a vendor-neutral interface for graphics so that apps can ignore the GPU-specific bits and get right to the drawing!" - which is what OpenGL is. User-space drivers implement the OpenGL specification and expose it as an OpenGL library to apps (like games, browsers, etc) instead of the GPU. Mesa is the most popular collection of open-source user-space drivers and contains a few user-space drivers for different GPU families: '''radeonsi''' for most modern AMD GPUs (and '''r600g''', r300g and others for older ones), '''i915/i965''' for old/new Intel GPUs and '''nouveau''' for Nvidia GPUs.
There's also Gallium, which is a bunch of utilities and common code shared among these drivers - if certain things can be done once and work everywhere, they'll land in Gallium and benefit all the drivers. Most Mesa drivers use Gallium (radeonsi, nouveau, software renderers), some don't (intel after gma950).
Displaying 2D windows supports device-specific 2D drivers as well, but nowadays most of these are no longer needed as the modesetting can handle most hardware on its own. As the DRM/DRI got some additional interfaces for what used to be hardware-specific (setting resolutions, refresh rates, etc) and software requiring accelerated 2D drawing was optimized OpenGL-based renderers, dedicated 2D acceleration is slowly going away. Since around 2012, the 3D part of the graphics card deals with 2D operations.
Modern GPUs can also decode video!? There's VDPAU (NVIDIA & AMD GPUs) and VA-API (AMD & Intel GPUs) that can also talk to the GPU exposed via DRM/DRI and issue proper commands to decode/encode a given video stream. Those drivers are GPU-specific too.
So let's say you have some example GPUs, here's how example stacks could look like:
* AMD Radeon HD8750: amdgpu -> DRM/DRI -> Mesa (radeonsi)
* AMD Radeon HD4850: radeon kernel driver -> DRM/DRI -> Mesa (r600g) -> games/apps/etc.
* NVIDIA GeForce 460: nouveau kernel driver -> DRM/DRI -> Mesa (nouveau) -> games/apps.
* Intel GMA950: i915 kernel driver -> DRM/DRI -> Mesa (i945) -> games/apps.
{| class="wikitable sortable" width="90%"
! width="15%" | Description
! width="15%" | Analog Output
! width="15%" | Digital Output
! width="15%" | Laptop LCD
! width=30%" | Comments
|-
| <!--Description-->Fudomi GC888A
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->1080p 100in throw projector
|-
| <!--Description-->Vamvo VF320 (720P)
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->720p 90in
|-
| <!--Description-->Happrun H1
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->1080p 90in
|-
| <!--Description-->Umbolite Magcubic HIPPUS HY320 Mini
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->720p 100in
|-
| <!--Description-->Zentality A10 Plus
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->720p 110in
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->nexigo nova mini
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->nebula mars 3
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->epson lifestudio flex plus portable projector
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->dangbei freedo
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->benq gv50
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
| <!--Description-->
| <!--Analogue-->
| <!--Digital-->
| <!--Laptop LCD-->
| <!--Comments-->
|-
|}
Unless your computer uses a Firewire chipset manufactured by Texas Instruments, FireWire interfaces are likely to act buggy.
AROS is unlikely to ever support FireWire.
Bluetooth is similarly unlikely to be ever supported due to huge cost to be certified.
No, x86 PCMCIA card.resource at the moment. Writing card.resource would be a similar amount of work to writing a typical driver. However, it might be complicated by having to support a variety of PCMCIA-controller chipsets like TI PCI1225, PCI1410, PCI1420, 1450, PCIxx12 and O2, etc. m68k card.resource does not really have many higher level functions, most functions are really simple or poke Gayle registers directly. only exception is CopyTuple(). Amiga card.resource has one significant flaw: it's single-unit. would need card.resource and pccard.library. There was talk in the past of designing a new API for PCMCIA because card.resource only supports one slot, but since most modern laptops only have one slot anyway, I think it might be worthwhile to implement card.resource as-is (at least as a first step). pccard.library would be trivial to port. So, a new API is needed.
mt4ocfq9oyt1tjsxrn6z0ysnqkw2umf
Nuclear Physics/Nuclear Fusion and Fission
0
22361
4640097
4613134
2026-06-13T14:02:50Z
~2026-34829-79
3605928
/* Where Does the Energy Come From? */
4640097
wikitext
text/x-wiki
{{Nuclear Physics/Page}}
==Introduction==
Nuclear fusion and fission are the processes by which the nucleus of an atom gains (fusion) or loses (fission) protons, transforming into a different type of atom. Both processes release energy. Nuclear fusion and fission occur in nature, for example, within a star, and artificially, for example in a nuclear reactor.
Energy is released from the nucleus if the [[../Nuclear Binding Energies/]] of the nucleus is increased.
===Where Does the Energy Come From? ===
Everyone has heard of the equation <math> E = mc^2 </math> but surprisingly few know what it actually means. As well as having heavy implications in [[electrodynamics]] and other fields, it says that energy and mass are like beasts, and you can convert one to the other. The Binding Energy, also known as the mass defect, is where this energy comes from. Mass is lost from the nucleus, and energy is released.
'''thermonuclear fireball'''
thermonuclear fireballs happen when 10-30mg of hydrogen compressed to 100000psi and heat up to 3,100c
that level of heat is release and that makes all of the energy is spread into a large area making
an thermonuclear fusion
==Fusion==
Fusion is the process of combining the nuclei of smaller atoms(less protons & neutrons and hence, a smaller atomic number) to create a larger atom. In many stars, the process starts with hydrogen (H) atoms combining to form helium atoms (He) then combining again to form Beryllium (Be) atoms and so on... The process stops when all the atoms are converted to Iron (Fe) and the star is thus dead. The reason for this is that once the atoms reach Iron and higher, the energy required to fuse the atoms becomes greater than the energy released by the atoms.
More precisely, fusion is only favorable up to Iron since it is only up to this point that the energy per nucleon (proton and neutron) continues to decrease. The most efficient energy/nucleon reactions that can occur in the process of fusion are Hydrogen-Hydrogen reactions, or between various isotopes of hydrogen. For nuclei heavier than Iron, the tendency is for fission (see other section) to become more viable in terms of liberating energy, i.e. to reduce stored energy/nucleon.
Fusion occurs naturally in environments where a sufficiently large amount of matter is collapsed under gravitational pressure that atoms are stripped of their electrons and nuclei have a sufficiently low mean free path (i.e. their density is fairly high). The aggregate of matter forming such an object is then usually referred to as a star.
==Fusion Power==
Since the yield from hydrogen fusion is actually higher than for uranium fission, the byproducts are largely benign (with the exception of high energy neutrons), and the materials can be readily obtained by electrolysis from a plentiful resource (water), it is natural to consider trying to build fusion power plants. Since the nuclei are charged, it is possible to control them using powerful magnetic fields, and this is the standard idea in trying to control hydrogen plasma in order to produce a sustained and controlled nuclear reaction. Although progress has been steady, considerable engineering obstacles still need to be overcome.
[[w:Fusion_Power|Wikipedia's entry on Fusion Power]]
==Fission==
This is the breakdown of large, heavy nuclei, to make smaller, lighter, more stable nuclei with a lower energy state and release energy at the same time, this is the process used in creating nuclear weapons . A nucleus may split in many different ways, in fact it is very rare for an even split to occur, one half being larger than the other in most cases . The mechanism maybe something like this
an unstable (large Neutron rich isotope)is held together by the strong nuclear force
because it is unstable it distorts allowing the coulomb repulsion between the positive protons to over come the strong nuclear attraction and separate them
this forms two highly energetic halves.
these may increase their stability by emitting neutrons, these are known as prompt neutrons.
Other neutrons maybe emitted later these are known as not surprisingly delayed neutrons.
There are two types of fission, the first is spontaneous(this happens without first absorbing a neutron)and more common neutron induced fission which is as its name implies.
For power generation only nuclear fission occurring in a chain reaction is of interest. It is performed controlled in a reactor and uncontrolled in a nuclear bomb. For running a chain reaction the absence of neutron captures and materials with fissionables nuclei are required. The only natural nuclei, which can be used for reactor operation is uranium235. Others like plutonium239 have to be created artificially, however also in a reactor, which requires a fuel like uranium235 or plutonium239. Interestingly a few billion years ago, building a reactor would have been much easier, as there was a much higher concentration of uranium235 in natural uranium! You can read the exact content therefore under [[../Change of isotope composition of natural uranium|Change of isotope composition of natural uranium]].
== Driving a Star==
===The Proton-Proton Chain===
This is the main fusion process in stars with masses similar to our Sun. The core temperature reached in such stars is in the order of 15 million Kelvin. For larger stars, with higher core temperatures, the Carbon-Nitrogen-Oxygen cycle fusion process becomes the dominant mechanism.
Basically the Branch I reactions are as follows, with the ultimate generation of 26.72 MeV of energy. These reactions generate approximately 85% of the Sun's solar energy production.<br><br>
<i>p</i> + <i>p</i> = <i>d</i> + <i>e</i><sup>+</sup> + <i>ν</i><sub>e</sub><br>
<i>p</i> + <i>d</i> = <sup>3</sup>He + <i>γ</i><br>
<sup>3</sup>He + <sup>3</sup>He = <sup>4</sup>He +2<i>p</i><br><br>
Branch II and III of main sequence hydrogen burning produce much less energy.<br><br>
<b>Branch II</b><br><br>
<sup>3</sup>He + <sup>4</sup>He = <sup>7</sup>Be + <i>γ</i><br>
<i>e</i><sup>-</sup> + <sup>7</sup>Be = <sup>7</sup>Li + <i>ν</i><sub>e</sub><br>
<i>p</i> + <sup>7</sup>Li = <sup>4</sup>He + <sup>4</sup>He<br><br>
<b>Branch III</b><br><br>
<i>p</i> + <sup>7</sup>Be = <sup>8</sup>B + <i>γ</i><br>
<sup>8</sup>B = <sup>8</sup>Be<sup>*</sup> + <i>e</i><sup>+</sup> + <i>ν</i><sub>e</sub><br>
<sup>8</sup>Be<sup>*</sup> = <sup>4</sup>He + <sup>4</sup>He<br>
===The Carbon-Nitrogen-Oxygen Cycle===
This reaction takes place in stars 1.3 times more massive than our own, it is almost exactly the same as the proton-proton chain except that it uses carbon as catalyst. The carbon in the reaction is not used up and is recycled at the end of the reaction. The CNO process generates 26.72 MeV of energy, this is the main branch.
p + <sup>12</sup>C = <sup>13</sup>N + γ + 1.95 MeV
<sup>13</sup>N = <sup>13</sup>C + e<sup>+</sup> + v<sub>e</sub> + 2.22 MeV
<sup>13</sup>C + p = <sup>14</sup>N + γ + 7.54 MeV
<sup>14</sup>N + p = <sup>15</sup>O + γ + 7.35 MeV
<sup>15</sup>O = <sup>15</sup>N + e<sup>+</sup> + v<sub>e</sub> + 2.75 MeV
<sup>15</sup>N + p = <sup>12</sup>C + <sup>4</sup>He + 4.96 MeV
'''Branch ||'''
There is a small chance that the last reaction in the branch above will not happen and that instead this reaction will.
<sup>15</sup>N + p = <sup>16</sup>O + γ + 12.13 MeV
<sup>16</sup>O + p = <sup>17</sup>F + γ + 0.60 MeV
<sup>17</sup>F = <sup>17</sup>O + e<sup>+</sup> + v<sub>e</sub> + 2.76 MeV
<sup>17</sup>O + p = <sup>14</sup>N + <sup>4</sup>He + 1.19 MeV
<sup>14</sup>N + p = <sup>15</sup>O + γ + 7.35 MeV
<sup>15</sup>O = <sup>15</sup>N + e<sup>+</sup> + v<sub>e</sub> + 2.75 MeV
However the nitrogen produced in the last reaction will eventually take part in the last reaction of the first branch.
'''Branch |||'''
The last branch only takes place in particularly very massive stars where the <sup>17</sup>O + p in the third reaction of the second branch produces a <sup>18</sup>F + γ instead. This can also be called the OF cycle as the oxygen and fluorine used in the reaction are recycled.
<sup>17</sup>O + p = <sup>18</sup>F + γ + 5.61 MeV
<sup>18</sup>F = <sup>18</sup>O + e<sup>+</sup> + v<sub>e</sub> + 1.65 MeV
<sup>18</sup>O + p = <sup>19</sup>F + γ + 7.99 MeV
<sup>19</sup>F + p = <sup>16</sup>O + <sup>4</sup>He + 8.11 MeV
<sup>16</sup>O + p = <sup>17</sup>F + γ + 0.60 MeV
<sup>17</sup>F = <sup>17</sup>O + e<sup>+</sup> + v<sub>e</sub>
It is important to note that all of the cycles can be simplified into one reaction because all branches will use the same reactants and produce the products.
4p = <sup>4</sup>He + 2e<sup>+</sup> + 2v<sub>e</sub> + 3γ + 26.72 MeV
The positrons released in the reaction will annihilate with the electrons and produce more energy in the form of gamma rays.
4rqoor5o1ims4szt239obb1ptfcb54p
Cookbook:Spaghetti alla Carbonara
102
22971
4640105
4640044
2026-06-13T15:19:00Z
SG5536B
3469292
Rv cross-wiki lta
4640105
wikitext
text/x-wiki
__NOTOC__
{{recipesummary|category=Pasta recipes|servings=6|time=1 hour|difficulty=2|Image = [[Image:Spaghetti alla Carbonara (Madrid).JPG|300px]]}}
{{recipe}} | [[Cookbook:Pasta Recipes|Pasta]] | [[cookbook:Cuisine of Italy|Cuisine of Italy]]
'''''Spaghetti alla carbonara''''' (literally "charcoal burners' spaghetti" in Italian) is an Italian pasta dish made with eggs, pecorino romano, guanciale and [[Cookbook:Pepper|black pepper]]. It was created in the middle of the 20th century.<ref name="Alberini">{{cite book |first1=Massimo |last1=Alberini |first2=Giorgio |last2=Mistretta |title=Guida all'Italia gastronomica |publisher=Touring Club Italiano |date=1984 |page=286}}</ref> Like most recipes, the origins of the dish are obscure but there are many legends. As 'carbonara' literally means 'coal miner's wife', some believe that the dish was first made as a hearty meal for Italian coal miners. Others say that it was originally made over charcoal grills, or that it was made with squid ink, giving it the color of coal. It has even been suggested that it was created by, or as a tribute to, the "charcoalmen", a secret society prominent in the unification of Italy. Also, the name may be from a Roman restaurant named ''Carbonara.''<ref name="mariani">{{cite book |last1=Mariani |first1=Galina |url=http://books.google.com/books?id=Mz5tt-4yHIQC&pg=PA140 |title=The Italian-American cookbook: a feast of food from a great American cooking tradition |date=2000 |publisher=Harvard Common |isbn=9781558321663 |location= |pages=140-41 |doi= |id= |first2=Galina |last2=Mariani |first3=Laura |last3=Tedeschi}}</ref><ref>{{cite book |last=Davidson |first=Alan |url= |title=Oxford Companion to Food |date=1999 |publisher=Oxford UP |isbn=0-19-211579-0 |location=Oxford |page=740 |doi= |id= }}</ref>
Recipes vary, though all agree that pecorino romano, eggs, cured fatty pork, and black pepper are the basics. The pork is fried in fat ([[Cookbook:Olive Oil|olive oil]] or lard). Then, a mixture of eggs, cheese and olive oil is combined with the hot pasta, thereby cooking the eggs. All of the ingredients are then mixed together.<ref name="Alberini" /><ref>{{cite book |last=Gossetti Della Salda |first=Anna |title=Le ricette regionali italiane |publisher=Solares |location=Milan |date=1965}}</ref><ref>Accademia Italiana della Cucina, ''Ricettario nazionale delle cucine regionali italiane''</ref> Guanciale is the most traditional cured pork cut for this recipe, but pancetta is a popular substitute.<ref>Luigi Carnacina, Luigi Veronelli, ''La cucina rustica regionale'' (2. Italia Centrale), Rizzoli, 1977 republication of ''La Buona Vera Cucina Italiana'', 1966.</ref><ref>Vincenzo Buonassisi, ''Il Nuovo Codice della Pasta'', Rizzoli, 1985.</ref> In the US, it is often made with American bacon.
Cream is not common in traditional Italian recipes, but is common in carbonara recipes from other countries such as the United States,<ref>{{cite web |last1=Herbst |first1=Sharone Tyler|author-link=w:Sharon Tyler Herbst |first2=Ron |last2=Herbst |work=The New [[wikipedia:Food Lover's Companion|Food Lover's Companion]], Fourth Edition |publisher=Barron's Educational Series. {{ISBN|0-7641-3577-5}} |url=http://www.answers.com/topic/alla-carbonara |title=alla Carbonara |date=2007}}</ref><ref name="OnCooking">{{cite book |last1=Labensky |first1=Sarah R. |first2=Alan M. |last2=House |title=On Cooking, Third Edition: Techniques from expert chefs |publisher=Pearson Education, Inc. |year=2003 |isbn=0-1304-5241-6}}</ref> France, the United Kingdom,<ref>{{cite book |last=Wright |first=Jeni |title=Italy's 500 Best-Ever Recipes |publisher=Hermes House, Anness Publishing |location=London |year=2006–2007 |isbn=0-681-46033-4}}</ref> Australia,<ref>{{cite web |url=http://au.food.yahoo.com/recipes/recipe/-/5348809/fettucine-carbonara/ |title=Fettucine Carbonara |work=[[wikipedia:Better Homes and Gardens (TV series)|Better Homes and Gardens]] |publisher=Yahoo!7 Food}}</ref> and Russia (especially Moscow). Italian Chef Luigi Carnacina, however, used cream in his recipe.<ref>Carnacina, Luigi; Vincenzo Buonassisi (1975). Roma in Cucina. Milan: Giunti Martello. p. 91.</ref> Other Anglo/Franco variations on carbonara may include peas, broccoli or other vegetables added for colour.<ref name="OnCooking"/> Yet another American version includes [[Cookbook:Mushroom|mushrooms]]. Many of these preparations have more sauce than the Italian versions.<ref>{{cite book|last1=Perry |first1=Neil |author-link=w:Neil Perry |first2=Earl |last2=Carter |first3=Sue |last3=Fairlie-Cuninghame |title=The Food I Love: Beautiful, Simple Food to Cook at Home |publisher=Simon and Schuster |date=2006 |location= |page=114 |url=http://books.google.com/books?id=f9--loJsVdUC&pg=PA114 |doi= |id= |isbn=9780743292450}}</ref> In all versions of the recipe, raw eggs are added to the sauce and cook with the heat of the pasta.
==Ingredients==
*450 [[Cookbook:Gram|g]] (1 [[Cookbook:Pound|pound]]) [[Cookbook:Pasta|spaghetti]]
*225–500 g (½–1 pound) guanciale or [[Cookbook:Pancetta|pancetta]]
*5 [[Cookbook:Egg yolk|egg yolks]]
*178 [[Cookbook:Milliliter|ml]] (¾ [[Cookbook:Cup|cup]]) grated [[Cookbook:Pecorino Romano Cheese|Pecorino Romano]] cheese
*178 ml (¾ cup) grated [[Cookbook:Parmesan Cheese|Parmigiano-Reggiano]] cheese
*3–4 [[Cookbook:Tablespoon|tablespoons]] extra-virgin [[Cookbook:Olive Oil|olive oil]]
*½ tablespoon freshly-ground [[Cookbook:Pepper|pepper]]
*[[Cookbook:Salt|Salt]]
==Equipment==
*Large [[Cookbook:Pots and Pans|pot]]
*Large [[Cookbook:Frying Pan|skillet]]
*Bowl
*Measuring cups and spoons
*Fork
== Procedure ==
#[[Cookbook:Dice|Dice]] the guanciale or pancetta into 2.5 [[Cookbook:Centimetre (cm)|cm]] (1-[[Cookbook:Inch|inch]]) pieces.
#Bring a big pot of water to a [[Cookbook:Boiling|boil]] and add salt to taste when it begins to [[Cookbook:Simmering|simmer]].
#Cook the spaghetti until it is [[Cookbook:Al Dente|al dente]] and drain it, reserving 1 cup of water.
#While spaghetti is cooking, heat the olive oil in a large [[Cookbook:Skillet|skillet]] over a medium-high heat. When the oil is hot, add the pancetta and cook for about 10 minutes over a low flame until the pancetta has [[Cookbook:Rendering|rendered]] most of its fat but is still chewy and barely browned.
#In a bowl, slowly [[Cookbook:Whisk|whisk]] about ½ cup of the pasta water into the egg yolks. Add the grated cheese and mix thoroughly with a fork.
#Strain the spaghetti and transfer it immediately to the skillet with the pancetta. [[Cookbook:Mixing#Tossing|Toss]] it and turn off the heat.
#Add the egg and cheese mixture to the pasta while stirring in the remaining pasta water to help thin the sauce and create an emulsion.
#Add the pepper and toss all the ingredients to coat the pasta.
==Notes, tips, and variations==
* Ideally this dish is served with a red [[Cookbook:Wine|wine]] (Merlot, Chianti, Montepulciano d’Abruzzo), allowed to decant for several hours, and served at 65°F (18°C).
==See also==
*[[Cookbook:Carbonara Pasta|Carbonara pasta]]
==References==
{{reflist}}
[[Category:Italian recipes]]
[[Category:Recipes using pasta and noodles]]
[[Category:Recipes using bacon]]
[[Category:Recipes using egg yolk]]
[[Category:Recipes using pecorino]]
[[Category:Recipes with metric units]]
[[Category:Recipes using pasta and noodles]]
[[Category:Featured recipes]]
[[Category:Recipes using parmesan]]
m18sl03y2it16vxfvfu1u17n8lq7s0i
Talk:Conic Sections
1
37291
4640181
4415698
2026-06-13T16:09:00Z
ShakespeareFan00
46022
4640181
wikitext
text/x-wiki
What do people think of deleting circles and integrating it with ellipses, since technically the two are the same thing? Also I have started trying to make some big additions to this wikibook, but this is the first time I have ever contributed so please tell me if I do anything wrong. [[User:Lakshan|Lakshan]] 12:45, 25th February 2011
I've moved all 5 pages to [[WB:NP]] friendly names... --[[User:Azertus|Azertus]] 23:00, 13 August 2005 (UTC)
== Illustrations needed ==
At a minimum, I suggest two illustrations for each conic, one showing the plane intersecting with the cone to form the conic, and another showing the conic straight on, with characteristic points (center, foci, vertex) and lines (axes, directrix, asymptotes) of the conic section denoted. [[User:StuRat|StuRat]] 02:38, 29 October 2005 (UTC)
== Revamping ==
I hate to be so assertive, but here's what I plan on doing in terms of structure:
Conic Sections Introduction: Just what it says. Connections to Flatland.
Types of Conic Sections <br>
General Conic Sections: Two equation formats (Ax^2+Bxy+Cy^2+Dx+Ey+F=0 and (x-h)^2/A+y^2/B=1)<br>
The Circle<br>
The Ellipse<br>
The Parabola<br>
The Hyperbola<br>
Lines and Points: Unofficial Conic Sections: just to mention it.<br>
Features of Conic Sections<br>
Foci of Conic Sections: The foci, directrix, and defining conic sections in terms of that.<br>
Conic Sections as Loci: defining conic sections as loci. No axes involved.<br>
Eccentricity: Stuff about eccentricity. Identifying conic sections by eccentricity.<br>
Conic Sections as Algebraic Relations<br>
Intercepts of Conic Sections: finding x and y intercepts. How this can help graphing <br>
Translation of Axes: how the take the ABCDEF format and transpose the x and y axes<br>
Rotation of Axes: derivation of most things worth knowing about rotation<br>
Rotation of Axes (examples): examples on a ''seperate'' page<br>
Slopes of Conic Sections: Calculus stuff. Implicit derivation<br>
Concluding Remarks: applications of conic sections (parabolas as paths of objects under gravity, for example)<br>
Acknowledgements and Further Reading: Just that. Some sources contributors have found helpful.<br>
Just leave it be for a while. I'll at least establish the structure, and then some.
[[User:Gracenotes|<span style="color:#996600">Grace</span><span style="color:black">notes</span>]] <sup>[[User talk:Gracenotes|<span style="color:#996600">T</span>]]</sup> § 02:48, 22 June 2006 (UTC)
:Once again, would you be so kind as to '''''not touch anything'''''! Thank you. I'd just like to get off on the right foot. Including me, there have only been 10 edits in the past year. The next one is technically not due until about 2 weeks.[[User:Gracenotes|<span style="color:#996600">Grace</span><span style="color:black">notes</span>]] <sup>[[User talk:Gracenotes|<span style="color:#996600">T</span>]]</sup> § 02:53, 22 June 2006 (UTC)
:: This is a wiki. If you ask nicely, I'll leave it alone for a week or two, but eventually this will be "edited mercilessly", etc. How can I help make it better? --[[User:DavidCary|DavidCary]] 20:01, 18 October 2007 (UTC)
hbt9iuf8443z6mz1fftfmucwknpvcnk
Template talk:User
11
37393
4640052
4415662
2026-06-13T12:21:01Z
ShakespeareFan00
46022
4640052
wikitext
text/x-wiki
{{permprot}}
== Origins ==
Copied the idea from uncyclopedia. - [[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Contributions/Aya|C]]</sup> 03:37, 15 August 2005 (UTC)
== Enhancements ==
Something like this, but needs to cope with spacey names.
<code><nowiki>[http://kohl.wikimedia.org/~kate/cgi-bin/count_edits?user={{{1}}}&dbname=enwikibooks stats]</nowiki></code>
[[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Contributions/Aya|C]]</sup> 03:37, 15 August 2005 (UTC)
: The problem appears to be that the parameter is being passed with an underscore in place of the original space (e.g., ''Robert Horning'' is being converted to ''Robert_Horning''). We need some way of stripping the underscore back out again before including it in the URL. The problem is that virtually no processing of the parameters is possible within templates, hopefully that will change in future. [[User:Geocachernemesis|Geo.]]<sup>[[User_talk:Geocachernemesis|T]]</sup> 04:15, 15 August 2005 (UTC)
Well. The best I can do with a single parameter is this (I'm using a new template here, since the other one is 'live'):
* {{user2|Robert%20Horning}}
The links work fine, but the name looks messy.
With two params you could have a inclusion that looks like this:
* <code><nowiki>{{user2|Robert%20Horning|Robert Horning}}</nowiki></code>
[[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Emailuser/Aya|E]] [[Special:Contributions/Aya|C]]</sup> 04:45, 15 August 2005 (UTC)
:I've added a second parameter to this template. Just use <nowiki>{{user|your user name|whatever you want to appear}}</nowiki> and it should work fine. I use <nowiki>{{User|Neoptolemus|'''Νεοπτόλεμος'''}}</nowiki>, which produces {{User|Neoptolemus|'''Νεοπτόλεμος'''}}. This way, Robert can have the template work by doing what Aya suggested above, but no need to use 'user2'. As my signature shows, you can use this to do whatever you want: change a %20 into a space, or change your username into Greek. [[User:Neoptolemus|'''Νεοπτόλεμος''']] ( [[User talk:Neoptolemus|talk]] | [[Special:Emailuser/Neoptolemus|email]] | [[Special:Contributions/Neoptolemus|contribs]] ) 22:24, 13 February 2008 (UTC)
== Documentation ==
Will it be better to replace 'Jimbo Wales' and 'Bill Bailey' with 'John Smith'? John Smith appears commonly in Wikipedia guidelines and honestly I've never heard of Bill Bailey. :P [[:User:Kayau|Kayau]] {{toolbar|separator=dot|[[:User talk:Kayau|talk]] | [[:Special:Contributions/Kayau|contribs]] }} 15:17, 23 October 2010 (UTC)
:How about Jimbo Wales -> Karl Wick (the founder of Wikibooks) and Bill Bailey -> E=MC^2. The last one is supposed to be an example of a user with an = sign in their name and it actually had been Billbailey=legend before I edited it. E=MC^2 is actually a user here with a user page. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 15:37, 23 October 2010 (UTC)
I don't see why we even need a bunch of practically duplicate templates. Seems like we would be better of with just this one template with some parameters like checkuser=yes, global=yes, admin=yes, etc. to add more links. Getting back on topic though I think John Smith, Test, or Test user would be better than an account in use by a person because whatever name is used might get unwanted attention. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span color="midnightblue">dark</span>]][[User_talk:Darklama|<span color="green">lama</span>]]</span> 16:10, 23 October 2010 (UTC)
:We had a handful of User* templates already, so I went about cleaning them up, ensuring they had documentation, ensuring they had a consistent look, checking that links still worked, and checking for categorization or protection needs. I only brought in a few that we didn't already have. I certainly expected an objection from you, Darklama, and am aware of situations like with {{tl|CompactTOC8}} handling all the other variations besides {{tl|CompactTOC}}. I didn't import all the CompactTOC* templates, for instance, because there it makes sense to avoid template duplication. With these, people don't want to have to throw in a huge number of parameters to a template that's supposed to '''save time and hassle'''. When I import histories, you can't tell what was already here and in use. All I can say is that you should compare the length of [[Template:User information templates]] with [[w:Template:User information templates]] to see how I'm not doing a full-fledged pull. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 16:30, 23 October 2010 (UTC)
:: We had only a few to begin with. I saw that most of the templates did not exist yet when you first began importing. How do you know what people do or don't want? There doesn't seem to be any reasoning to what you decide to import. I guess I'm a bit involved and annoyed because I spent time in the past trying to reduce the number of templates we had because many were going unused and remembering which to use in what cases wasn't easy either. People are trying to find ways to make Wikipedia easier for more users to use, and I think Wikibooks was better off than Wikipedia in that regard, lets not repeat Wikipedia's mistakes. There is also no reason to assume that older templates Wikibooks had were copied from Wikipedia or even based on what Wikipedia had, so by importing you also potentially endanger Wikibooks' own unique history since merges make it harder to follow edit histories.
:: I think there isn't a need to have a whole lot of parameters. I think the first thing is the links provided from User0 through User4 can be the default links shown with just a few additional parameters for the tools that Wikibooks has with global working with the other parameters to provide global logs when checkuser or admin links are wanted for example. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span color="midnightblue">dark</span>]][[User_talk:Darklama|<span color="green">lama</span>]]</span> 16:57, 23 October 2010 (UTC)
==Edit counter==
The edit counter used in this template no longer exists, or is in a different location. I fixed this on the {{tlx|Usercheck}} by changing it to '''[http://toolserver.org/~tparis/pcount/index.php?name=Example&lang=en&wiki=wikibooks this counter]''', which is the one used on Special:Contributions. I can't do that here because it's protected, so an admin needs to change this. [[User:Liam987|'''<span style="color:#1c3f94 ">Liam987</span>''']]([[User talk:Liam987|<span style="color:#808000;">'''talk'''</span>]]) 17:03, 20 March 2012 (UTC)
:[[File:Yes_check.svg|15px|link=|alt=]] '''Done''' Thanks for pointing this out. I had remembered to fix the box below the listings on user contributions pages but forgot about templates using the same tool. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 14:35, 21 March 2012 (UTC)
Hello, the counter has changed again for several months now, the current URL is a long redirection. Can an administrator update it to https://tools.wmflabs.org/xtools/pcount/index.php?lang=en&wiki=wikibooks&name=Example please?
Moreover, the five links of this template should have the class "noprint" because they're meaningless offline (eg: [[First Aid/Authors]] in PDF). [[User:JackPotte|JackPotte]] ([[User talk:JackPotte|discuss]] • [[Special:Contributions/JackPotte|contribs]]) 21:49, 22 June 2016 (UTC)
:{{done}} [[User:JackPotte|JackPotte]] ([[User talk:JackPotte|discuss]] • [[Special:Contributions/JackPotte|contribs]]) 21:15, 25 July 2016 (UTC)
imiwo8axk077o7xwguexds4cydwgciq
4640057
4640052
2026-06-13T12:26:00Z
ShakespeareFan00
46022
Undid revision [[Special:Diff/4640052|4640052]] by [[Special:Contributions/ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|discuss]])
4640057
wikitext
text/x-wiki
{{permprot}}
== Origins ==
Copied the idea from uncyclopedia. - [[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Contributions/Aya|C]]</sup> 03:37, 15 August 2005 (UTC)
== Enhancements ==
Something like this, but needs to cope with spacey names.
<code><nowiki>[http://kohl.wikimedia.org/~kate/cgi-bin/count_edits?user={{{1}}}&dbname=enwikibooks stats]</nowiki></code>
[[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Contributions/Aya|C]]</sup> 03:37, 15 August 2005 (UTC)
: The problem appears to be that the parameter is being passed with an underscore in place of the original space (e.g., ''Robert Horning'' is being converted to ''Robert_Horning''). We need some way of stripping the underscore back out again before including it in the URL. The problem is that virtually no processing of the parameters is possible within templates, hopefully that will change in future. [[User:Geocachernemesis|Geo.]]<sup>[[User_talk:Geocachernemesis|T]]</sup> 04:15, 15 August 2005 (UTC)
Well. The best I can do with a single parameter is this (I'm using a new template here, since the other one is 'live'):
* {{user2|Robert%20Horning}}
The links work fine, but the name looks messy.
With two params you could have a inclusion that looks like this:
* <code><nowiki>{{user2|Robert%20Horning|Robert Horning}}</nowiki></code>
[[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Emailuser/Aya|E]] [[Special:Contributions/Aya|C]]</sup> 04:45, 15 August 2005 (UTC)
:I've added a second parameter to this template. Just use <nowiki>{{user|your user name|whatever you want to appear}}</nowiki> and it should work fine. I use <nowiki>{{User|Neoptolemus|'''Νεοπτόλεμος'''}}</nowiki>, which produces {{User|Neoptolemus|'''Νεοπτόλεμος'''}}. This way, Robert can have the template work by doing what Aya suggested above, but no need to use 'user2'. As my signature shows, you can use this to do whatever you want: change a %20 into a space, or change your username into Greek. [[User:Neoptolemus|'''Νεοπτόλεμος''']] ( [[User talk:Neoptolemus|talk]] | [[Special:Emailuser/Neoptolemus|email]] | [[Special:Contributions/Neoptolemus|contribs]] ) 22:24, 13 February 2008 (UTC)
== Documentation ==
Will it be better to replace 'Jimbo Wales' and 'Bill Bailey' with 'John Smith'? John Smith appears commonly in Wikipedia guidelines and honestly I've never heard of Bill Bailey. :P [[:User:Kayau|Kayau]] {{toolbar|separator=dot|[[:User talk:Kayau|talk]] | [[:Special:Contributions/Kayau|contribs]] }} 15:17, 23 October 2010 (UTC)
:How about Jimbo Wales -> Karl Wick (the founder of Wikibooks) and Bill Bailey -> E=MC^2. The last one is supposed to be an example of a user with an = sign in their name and it actually had been Billbailey=legend before I edited it. E=MC^2 is actually a user here with a user page. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 15:37, 23 October 2010 (UTC)
I don't see why we even need a bunch of practically duplicate templates. Seems like we would be better of with just this one template with some parameters like checkuser=yes, global=yes, admin=yes, etc. to add more links. Getting back on topic though I think John Smith, Test, or Test user would be better than an account in use by a person because whatever name is used might get unwanted attention. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 16:10, 23 October 2010 (UTC)
:We had a handful of User* templates already, so I went about cleaning them up, ensuring they had documentation, ensuring they had a consistent look, checking that links still worked, and checking for categorization or protection needs. I only brought in a few that we didn't already have. I certainly expected an objection from you, Darklama, and am aware of situations like with {{tl|CompactTOC8}} handling all the other variations besides {{tl|CompactTOC}}. I didn't import all the CompactTOC* templates, for instance, because there it makes sense to avoid template duplication. With these, people don't want to have to throw in a huge number of parameters to a template that's supposed to '''save time and hassle'''. When I import histories, you can't tell what was already here and in use. All I can say is that you should compare the length of [[Template:User information templates]] with [[w:Template:User information templates]] to see how I'm not doing a full-fledged pull. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 16:30, 23 October 2010 (UTC)
:: We had only a few to begin with. I saw that most of the templates did not exist yet when you first began importing. How do you know what people do or don't want? There doesn't seem to be any reasoning to what you decide to import. I guess I'm a bit involved and annoyed because I spent time in the past trying to reduce the number of templates we had because many were going unused and remembering which to use in what cases wasn't easy either. People are trying to find ways to make Wikipedia easier for more users to use, and I think Wikibooks was better off than Wikipedia in that regard, lets not repeat Wikipedia's mistakes. There is also no reason to assume that older templates Wikibooks had were copied from Wikipedia or even based on what Wikipedia had, so by importing you also potentially endanger Wikibooks' own unique history since merges make it harder to follow edit histories.
:: I think there isn't a need to have a whole lot of parameters. I think the first thing is the links provided from User0 through User4 can be the default links shown with just a few additional parameters for the tools that Wikibooks has with global working with the other parameters to provide global logs when checkuser or admin links are wanted for example. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 16:57, 23 October 2010 (UTC)
==Edit counter==
The edit counter used in this template no longer exists, or is in a different location. I fixed this on the {{tlx|Usercheck}} by changing it to '''[http://toolserver.org/~tparis/pcount/index.php?name=Example&lang=en&wiki=wikibooks this counter]''', which is the one used on Special:Contributions. I can't do that here because it's protected, so an admin needs to change this. [[User:Liam987|'''<span style="color:#1c3f94 ">Liam987</span>''']]([[User talk:Liam987|<span style="color:#808000;">'''talk'''</span>]]) 17:03, 20 March 2012 (UTC)
:[[File:Yes_check.svg|15px|link=|alt=]] '''Done''' Thanks for pointing this out. I had remembered to fix the box below the listings on user contributions pages but forgot about templates using the same tool. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 14:35, 21 March 2012 (UTC)
Hello, the counter has changed again for several months now, the current URL is a long redirection. Can an administrator update it to https://tools.wmflabs.org/xtools/pcount/index.php?lang=en&wiki=wikibooks&name=Example please?
Moreover, the five links of this template should have the class "noprint" because they're meaningless offline (eg: [[First Aid/Authors]] in PDF). [[User:JackPotte|JackPotte]] ([[User talk:JackPotte|discuss]] • [[Special:Contributions/JackPotte|contribs]]) 21:49, 22 June 2016 (UTC)
:{{done}} [[User:JackPotte|JackPotte]] ([[User talk:JackPotte|discuss]] • [[Special:Contributions/JackPotte|contribs]]) 21:15, 25 July 2016 (UTC)
bjj3c1lsed7i5552nwjugt1tl01rr37
Wikibooks talk:No personal attacks
5
49814
4640083
4584970
2026-06-13T12:52:54Z
ShakespeareFan00
46022
4640083
wikitext
text/x-wiki
Long overdue policy adapted from en.wiki. Poll started below to determine consensus. --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 19:51, 21 November 2005 (UTC)
:"No personal attacks, and move personal debates to email" is currently a ''guideline'' at [[Wikibooks:Policies and guidelines]]. An example of a personal attack is at [[Talk:A Neutral Look at Operating Systems]] (and [[User talk:AlbertCahalan]]). <s>I think that a good step would be to label this page as a ''guideline'' in lieu of a ''policy''.</s>
:Before I joined Wikibooks, I read English Wikipedia. However I made no edits to Wikipedia, today I have an account but make few edits. Though I became aware of major policies like "neutral point of view" (because of those NPOV dispute markers), I never became familiar with, and still am not familiar with, most of the English Wikipedia policies.
:<s>If we do have a "no personal attacks" policy, then I would prefer that it start as a small part of some existing policy.</s> --[[User:Kernigh|Kernigh]] 21:14, 21 November 2005 (UTC)
:I change my position. We should get a "no personal attacks" policy ''now''; we might need it later. I still oppose the current version because it has references to things which exist not on Wikibooks, such as the arbitration committee. --[[User:Kernigh|Kernigh]] 21:32, 21 November 2005 (UTC)
::Ummm... it is an important policy. Personal attacks make editors feel bad, and drive people away from the project. Overall they create an atmosphere where no one wants to edit. This needs to be an '''enforced policy''', not just some little addendum somewhere. --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 21:28, 21 November 2005 (UTC)
::Okay, so it has some extra stuff... but that stuff will come later too. Maybe not ArbCom, but some of the other stuff. I'll go remove that, and you can change your vote. --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 21:56, 21 November 2005 (UTC)
:To clarify, I do not think that red links are a problem in an enforced policy. The problem is if the enforced policy references a red link as if it already exists. The policy should not instruct me to read the "dispute resolution process" when that is a red link. --[[User:Kernigh|Kernigh]] 04:31, 23 November 2005 (UTC)
:Is there anything else that can be said about NPOV when editing? A lot of book-related material needs to encompass multiple points of view and I think disagreement over POV is what brings about the largest amount of personal attacks. -[[User:Withinfocus|Matt]] 22:58, 12 December 2005 (UTC)
::Added bit about prevention from POV debates. Heading in the right direction? --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 23:08, 12 December 2005 (UTC)
:::Threw one more sentence in there. Throw it out if it's a problem. I like it either way. -[[User:Withinfocus|Matt]] 23:15, 12 December 2005 (UTC)
::::No, I have no issue with that. It makes sense. --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 16:01, 13 December 2005 (UTC)
== Consensus Poll to enforce==
Should the proposed policy, [[Wikibooks:No personal attacks]], be enforced?
'''Yes'''
#Long overdue. Personal attacks are '''not acceptable'''. --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 19:51, 21 November 2005 (UTC)
#I agree with this, in spirit. I will cast a '''yes''' vote now, with the understanding that we can clean up the specifics, after the policy is in place. --{{User Whiteknight Sig|Whiteknight}} 21:30, 28 November 2005 (UTC)
#:<small>It ''is'' a wiki and nothing is ever completely set in stone. --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 21:42, 28 November 2005 (UTC)</small>
#::I realize that it isn't set in stone, but i'm not the person who is going to fix this policy, or to rewrite it to be more clear, etc. I would rather put up a conditional vote now, as opposed to putting up a "no" immediately, and then forgetting to ever come back and change my vote. --[[User:Whiteknight|Whiteknight]]<small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 20:34, 12 May 2006 (UTC)
# [[User:Lord Voldemort|<span style="color:purple">LV</span>]] made some improvements, so I will support {{tl|enforced}} on the [http://en.wikibooks.org/wiki/Special:Whatlinkshere/Wikibooks:No_personal_attacks current version]. --[[User:Kernigh|Kernigh]] 23:01, 5 December 2005 (UTC)
# Definitely. Textbook material needs a fair unbiased environment even more than other wiki material due to the educational value the pages hold. -[[User:Withinfocus|Matt]] 22:59, 12 December 2005 (UTC)
# [[User:Gmcfoley|Gerard Foley]] 23:44, 17 February 2006 (UTC)
# [[User:JMRyan|JMRyan]] 23:46, 21 March 2006 (UTC)
# [[User:RobinH|RobinH]] 10:00, 5 April 2006 (UTC) An essential policy. We are here for the content.
# [[User:Dragontamer|Dragontamer]] 15:46, 9 April 2006 (UTC) See above. I think we also should have a "three revert policy" as well, but that is out of this page's scope (and yeah, I'm checking out that page)
# [[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 19:47, 28 April 2006 (UTC)
# [[User:German Men92|Doiçt]] 16:32, 14 May 2006 (UTC)
# [[User:Ultimadesigns|Ultimadesigns]] 01:05, 15 May 2006 (UTC)
# '''Support''' How about one to reflect civility too, or would that be overkill? — [[User:nathanrdotcom|Nathan]] <sup>([[User talk:nathanrdotcom|talk]] · [[Special:Contributions/nathanrdotcom|contribs]] · [[Wikipedia:User:nathanrdotcom|en.wiki]])</sup> 04:50, 21 May 2006 (UTC)
'''No'''
:: <s>This lengthy page should only be a guideline for now. [[User:Kernigh|Kernigh]] 21:14, 21 November 2005 (UTC)</s>
:::<small>Are you kidding me? So someone can go around personally attacking people, and not have any repercussions because it was only a ''guideline'' and not policy? That's absurd. --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 21:24, 21 November 2005 (UTC)</small>
::::<small>After posting, I changed my position. In fact, I entered an edit conflict because you posted the above comment. --[[User:Kernigh|Kernigh]] 21:32, 21 November 2005 (UTC)</small>
:: <s>Policy currently has references to nonexistant things. --[[User:Kernigh|Kernigh]] 21:32, 21 November 2005 (UTC)</s>
#Personal attacks ''are'' '''not acceptable''', but the policy can still use some work. I agree with Kernigh that the policy should not reference things that do not yet exist. I also would like to understand what about a "policy" makes it more enforceable than a "guideline". [[User:Rs2|Rs2]] 03:37, 22 November 2005 (UTC)
#It's never a good idea to phrase suggestions in terms of "don't do this". One of the easiest ways to get people to think about something is to tell them not to think about it. If we need a policy on acting civilly towards each other, that should be [[Wikibooks:Always act civilly]] (or something of that ilk), [[User:Jguk|Jguk]] 23:52, 13 February 2006 (UTC)
#Before we make ourselves little dictators of our virtual domain, perhaps we ought to think about the ramifications. Systems of '''''crime and punishment''''' are a ''failure state''. They are an admission that we weren't able to work congenially as co-editors on a common project — that our little [[w:Animal Farm|Animal Farm]] couldn't exist without making some of us "more equal." Do we really want to duplicate the system of punishment and vandalism that exists at Wikipedia? Is their instruction creep working for them? Perhaps we could learn something from our founder. --[[User:Zephram Stark|Zephram Stark]] 03:53, 7 May 2006 (UTC)
<blockquote>''The problem we are seeing, again and again, is this attitude that some poor victim of a biased rant in Wikipedia ought to not get pissed and take us up on our offer of "anyone can edit" but should rather immerse themselves in our arcane internal culture until they understand the right way to get things done. I do not know what is going to change, but something BIG has got to happen and SOON about this issue, because the amount of time it is consuming for some of our best editors is getting way out of control.''</blockquote>
::''~Jimbo Wales May 3, 2006 [http://mail.wikipedia.org/pipermail/wikien-l/2006-May/045082.html WikiEN-l]''
:::You have added identical text to other policy votes. The vote here is about whether this policy should be enforced rather than whether "policies" are a good idea. [[User:RobinH|RobinH]] 10:37, 17 May 2006 (UTC)
'''Comments'''
Okay, a guideline is just that, something that guides people on a certain issue. It is not set in stone, it is merely a strong suggestion. A policy is something much more concrete. It can be cited as policy and should never, ''never'' be violated. That's why it's a policy and not a ''guide''line. --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 15:29, 22 November 2005 (UTC)
: Exactly. Ideas are what should be critisised, never the person personally. I think the policy should include the "fine line" area. Most of us know the difference between a personal attack and critisism of the idea, but the page doesn't state that precisely right now, a potentially dangerous situation. --[[User:Dragontamer|Dragontamer]] 15:46, 9 April 2006 (UTC)
===Implementing poll===
The poll is clearly in favour of enforcement. [[User:RobinH|RobinH]] 10:19, 14 April 2006 (UTC)
:So how does the enforcement policy happen, exactly? we have a solid majority, let's do whatever we need to do, slap a {{tl|enforced}} on there, and call it a day. --[[User:Whiteknight|Whiteknight]]<small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 20:35, 12 May 2006 (UTC)
: Perhaps you've forgotten that WP/WB are not a democracy and we don't implement things based upon # of votes. I am tending towards casting my vote against, and you may have just convinced me to do so. [[User:Kellen|Kellen]] <sup>[[User_talk:Kellen|T]]</sup> 20:45, 12 May 2006 (UTC)
::Is it right to vote NO on this issue because you disagree with another issue? Please notice that the poll has not been implemented and the issue has been reopened. Also notice that the possibility of implementation was raised on the Staff lounge before implementation and the implementation rolled back because of the desire of Jguk to debate it further.
::What is the point of a poll? If you disagree with polls why not open this separate debate at the Staff Lounge? [[User:RobinH|RobinH]] 09:53, 13 May 2006 (UTC)
::: If I were to vote no, it would be because I was convinced by the opposition. We're not suffering from lack of policies here; people can and are banned because they are disruptive, make personal attacks, etc regardless of whether this is tagged as enforced or proposed.
::: The point of a poll is to gauge consensus. What you have here is 3 of 12 people opposed (25%), one of them an admin. That shows that the community has not truly come to consensus about this policy. [[User:Kellen|Kellen]] <sup>[[User_talk:Kellen|T]]</sup> 14:26, 13 May 2006 (UTC)
:::::The problem with consensus, in its normal meaning, is that it entails 100% agreement. In a large group this is impossible. We need a measure of consensus such as a voting procedure and a policy that accepts that n% is sufficient consensus (See [[Wikibooks:General voting rules]]). Those who disagree with the 'sufficient consensus' would then attempt to respect it, despite their disagreement. If we use 100% consensus as the agreement required for any action then no actions will occur on issues that involve more than a few users. 100% consensus also means that one dissident, disturbed or insane person could prevent any action. For instance, suppose the vote here was 14:1, the one person could simply block this policy for ever by demanding 100% consensus, even if the vote became 100:1. Would this be right or good for Wikibooks? If not then what is the acceptable 'sufficient consensus'? [[User:RobinH|RobinH]] 10:10, 14 May 2006 (UTC)
:::::: I cover this in my recent reply in [[Wikibooks:Staff Lounge]]. [[User:Kellen|Kellen]] <sup>[[User_talk:Kellen|T]]</sup> 10:20, 14 May 2006 (UTC)
:::: To be fair, it appears that [[User:Rs2]] hasn't edited since last November, so perhaps his position no longer carries as much weight. [[User:Kellen|Kellen]] <sup>[[User_talk:Kellen|T]]</sup> 14:28, 13 May 2006 (UTC)
==Zero tolerance==
This policy is critical for the maintenance of a pleasant working atmosphere. I would like to propose that this policy has a "zero tolerance" clause. Contributors should be warned on a first offence, suspended on a second offence and banned on a third. [[User:RobinH|RobinH]] 11:06, 5 April 2006 (UTC)
:That may be a ''bit'' harsh. We should be stern, but three times is not bannable material, IMO. --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 01:32, 7 April 2006 (UTC)
::We do need a definite statement of how often this behaviour might be permitted otherwise determined individuals will just take the micky. What would you suggest? [[User:RobinH|RobinH]] 11:19, 7 April 2006 (UTC)
::: I agree with Lord Voldemort. Stern, but not "instant ban" after 3 offences. When we get into stuff like that, there will be flame wars whether or not something should be interpreted as a flame or not, because the stakes will be so high. I suggest we do things as usual here; talk it over with both parties and try to find a resolution, or at least take the flames off Wikibooks. --[[User:Dragontamer|Dragontamer]] 03:59, 19 April 2006 (UTC)
==Definition of a personal attack==
Direct attacks
1 subject is a (derogatory term) - derogatory terms consist of terms such as "fool", "insane", including types of insanity and diagnosis, "genocidal maniac" etc.
2 relations or associates of subject are a (derogatory term)
Snide attacks
3 Anyone who had (any type of ability) would not produce the subject's work. ie: Anyone who had an intellect would not produce the subject's work. Anyone who had a (qualification in...) would not produce such substandard text.
4 The (article/part of article) could only have been produced by someone with (derogatory term). ie: The article could only have been produced by someone who is brain dead.
[[User:RobinH|RobinH]] 15:33, 8 April 2006 (UTC)
== Supporting pages ==
[[Wikibooks:Dispute resolution]] is little more than a stub, and there is also a red link to [[Wikibooks:Blocking policy]]. These are the only links in the "Alternatives" and "Remedies" section, something that gives the policy as a whole a bit less "teeth", and is something that should be expanded to support the policy as a whole. Probably the closest thing to a "Blocking policy" I've seen is [[Wikibooks:Dealing with vandalism#Blocking vandals|on this page]] (which, by the way, isn't even linked to by [[WB:VIP]], even though it has more information on VIP than VIP itself), and there's extensive discussion in Staff Lounge as far as dispute resolution goes, so it's not as if the material isn't there, it simply needs to be implemented in the proper areas. --[[User:Xerol|Xerol Oplan]] 16:57, 9 April 2006 (UTC)
:This has been discussed in the Staff Lounge. I initially suggested something not far short of an Arbitration Committee but, given the lack of bad behaviour and the small size of the Wikibooks community, support [[Wikibooks:Ad hoc administration committee]]. [[User:RobinH|RobinH]] 18:08, 9 April 2006 (UTC)
== Enforced from 14 April to 23 April 2006 ==
The policy was set {{tl|enforced}} by Robin H at 14 April 2006, but set {{tl|proposed}} again by Jguk at 23 April 2006.
The poll above suggests that this policy should now be {{tl|enforced}}. Did I miss something? --[[User:Kernigh|Kernigh]] 17:26, 23 April 2006 (UTC)
:What happened was that RobinH made this move, which I accept was entirely in good faith, despite Rob Horning's pertinent comments on [[Wikibooks:Staff Lounge#Policy Review]]. In the past, my understanding is that on Wikibooks we operate by consensus, and at the very least that would anticipate that there was some discussion about the points raised by the two (one of them was me) who had voted against this proposal. Neither of the "no" votes is advocating that wikibooks should tolerate personal attacks, but there are concerns that should be addressed about the wording before it (or any alternative) goes live.
:I agree with Rob's comment on the Staff Lounge that before any proposed policy becomes "enforced" it should be preceded by a well publicised discussion and a well publicised approval process, as we say with the Naming Convention policy.
:I have seen this type of policy become a welcome refuge for editors who harrass (ie they drive dedicated editors to breaking point, the dedicated editor makes some personal attack in the heat of the moment after being subjected to many personal attacks on themselves, and then leave the dedicated editor to face punitive sanctions if the matter ever comes before ArbCom). I know that is not the intention of those who support this proposal, but I have serious concerns that, as written, it benefits the long-term harrasser over the harrassed. Even if you disagree with me here, I would suggest the point is worth discussion before the text becomes "enforced", [[User:Jguk|Jguk]] 19:23, 23 April 2006 (UTC)
::You archived the discussion of this item on the 24th then changed the policy to proposed again! See [http://en.wikibooks.org/wiki/Wikibooks:Staff_lounge/Archive_17 Archived discussion] where no one demurred from the policy being enforced. [[User:RobinH|RobinH]] 08:19, 24 April 2006 (UTC)
== Benefits the Long-term harrasser over the harrassed ==
Jguk said this in the previous section. I do not follow, sorry. Perhaps you can offer an explanation here? Basically; I see it like this:
The only time a personal attack is warrented, is if there was a personal attack from some time before. Fortunatly, this policy prevents that as now no one can give a personal attack in the first place. Heck, my definition of a long-term harrasser is someone who gives personal attacks in the long term. --[[User:Dragontamer|Dragontamer]] 15:33, 24 April 2006 (UTC)
:I don't think anyone is saying that making a personal attacks is acceptable etiquette. The question is really whether we need to say more as a policy than that message that appears every time you try to edit a talk page: "Please respect Etiquette, assume good faith and be nice." I'm not sure we do. After all, if someone doesn't do that, what will happen? Do they make one solitary personal attack and that's the end of it? If so, then we let sleeping dogs lie. Do they continue? In which case someone will probably give them some friendly advice to calm down. Do they then continue despite friendly warnings? I've never seen it get this bad on Wikibooks - but if it did get this far I imagine an admin would give a warning together with a note that there would be some short block to allow matters to calm down. Continue then? Well, something sensible would happen - maybe an indefinite block accompanied with an undertaking to unblock if the user gives a guarantee not to repeat the offending behaviour. Or to put it another way, something sensible woud happen.
:What's the benefit of being explicit, and also giving people lots of ideas of nasty things to do? Would those here to cause trouble necessarily think about doing all the bad behaviour listed under "Examples" if you don't put the ideas in their heads? Do we really want to highlight lots of possibilities for disciplinary actions, whereas really Wikibooks is quite a friendly place, not plagued by the problems we've probably all seen in various wikis?
:Maybe we do need a behaviour policy for the record, and let's face it we have many, many current candidate policies covering behaviour: [[Wikibooks:Assume good faith]], [[Wikibooks:No legal threats]], [[Wikibooks:No offensive usernames]], [[Wikibooks:No personal attacks]], [[Wikibooks:Ad hoc administration committee]], [[Wikibooks:Editing disputes policy]]. Whereas really how much more than "Please respect Etiquette, assume good faith and be nice" do we need? [[User:Jguk|Jguk]] 18:41, 24 April 2006 (UTC)
::I think we need enforced policies and an enforcement policy. At the moment there are few cases of serious disputes but they can happen. Laying down clear guidelines is the best way to stop them happening. The vote was clearly for this policy to be '''enforced'''. [[User:Jguk|Jguk]], you are one of the two dissenters, should you really stand in the way of it becoming an enforced policy? [[User:RobinH|RobinH]] 22:50, 24 April 2006 (UTC)
I'm one of two who has raised questions about this approach, and I do think our concerns should at the very least be addressed before any move to "enforced". You say that laying down clear guidelines is the best way to stop serious disputes happening - but I don't believe there's any evidence to support it. Compare Wikipedia, which has plenty of guidelines, but which is riddled by disputes. Also, you do not say why a simple policy of "Please respect Etiquette, assume good faith and be nice" is insufficient, [[User:Jguk|Jguk]] 05:10, 25 April 2006 (UTC)
:We have a good example here of why being nice is not always good enough. A vote has been taken on "No personal attacks" over several months that has shown a 4:1 majority in favour of enforcement. Yet one of the two dissenters from that vote has insisted that we should open the issue again to determine whether the vote should be enacted. Surely votes work on the basis that those taking part respect them, that they act in good faith once the vote has been taken. Is what you are doing good faith? [[User:RobinH|RobinH]] 08:48, 25 April 2006 (UTC)
::[[User:Jguk|Jguk]] wrote about the process of dealing with attacks: "Do they then continue despite friendly warnings? I've never seen it get this bad on Wikibooks - but if it did get this far I imagine an admin would give a warning together with a note that there would be some short block to allow matters to calm down. Continue then? Well, something sensible would happen - maybe an indefinite block accompanied with an undertaking to unblock if the user gives a guarantee not to repeat the offending behaviour. Or to put it another way, something sensible woud happen."
::There are two main points here.
::* How bad can it get? I suggest that we look at Wikipedia. On Wikipedia some users make a habit of always starting comments with "It would take a moron to..." and continue to "wind up" the opposition with "Only a fool would..." finishing with flourishes such as "This whole article is (...)". Personal attacks of this level go uncorrected. Users must advance to "You nazi (....)" or similar before the process of correction may or may not be activated.
::* Who gives the friendly warnings? As far as I can see there is no enforcement apparatus in Wikibooks except the Staff Lounge. If a vote is taken at the Staff Lounge one of the admins could simply archive the discussion before any move for enforcement is introduced. We need enforced policies and an enforcement apparatus such as [[Wikibooks:Ad hoc administration committee]].
::[[User:RobinH|RobinH]] 09:35, 27 April 2006 (UTC)
RobinH, Wikibooks, like [[w:WP:WIW#Wikipedia_is_not_a_democracy|Wikipedia]], is ruled by discussion (except when our benevelent dictator visits us once in a blue moon :) ). A comment against an action being taken should have more weight than a simple vote of "support." Jguk's comments at the very minimum deserve to be adressed before enacting a policy. --[[User:Hagindaz|Hagindaz]] 11:18, 27 April 2006 (UTC)
:I agree that discussion is important but it looked to me like this proposal had been decided by a vote over several months. That said, I am happy to go with the discussion, see above. [[User:RobinH|RobinH]] 12:24, 27 April 2006 (UTC)
== Avoid having too many policies ==
Here again are the "policies" that [[User:Jguk|Jguk]] enumerated: [[Wikibooks:Assume good faith]], [[Wikibooks:No legal threats]], [[Wikibooks:No offensive usernames]], [[Wikibooks:No personal attacks]], [[Wikibooks:Ad hoc administration committee]], [[Wikibooks:Editing disputes policy]]. There is an 8th proposal, [[Wikibooks:General voting rules]].
I supported enforcement of [[Wikibooks:No personal attacks]] because I thought that it would be a good idea, and that we could always write a better policy later. I prefer that we have only one policy to deal with user behaviour (limiting insults against users, implementing consistent voting rules, resolving various disputes) instead of creating so many pages. I think that I would vote "no" concerning the other seven policies, but I might support a policy that merges the eight. --[[User:Kernigh|Kernigh]] 01:26, 15 May 2006 (UTC)
:I would whole-heartedly agree with that statement. No sense having too many separate policies, especially when there are a number that deal directly with the topic of user behavior. Most users (myself included) aren't going to take the time to read 8 different pages about the do's and don'ts of behavior, before we go out into the wiki-world with our keyboards blazing, making all sorts of mistakes. I don't have the time this week (or in most upcoming weeks) to write a unified policy of this nature, but if somebody else does, i will certainly cast my measly vote towards it. --[[User:Whiteknight|Whiteknight]]<small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 17:47, 15 May 2006 (UTC)
::PS. I think that [[Wikibooks:General voting rules]] is not similar enough to be merged with the other policies, and that it is an important policy in it's own right. enough so that we should keep it separate. --[[User:Whiteknight|Whiteknight]]<small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 17:48, 15 May 2006 (UTC)
:::Although it may be a good idea to develop a merged policy this should constitute a separate project. The introduction of such a project now seems premature, lets get this policy enforced and progress from there. [[User:RobinH|RobinH]] 17:05, 19 May 2006 (UTC)
I certainly do think that we only need one merged behaviour policy. However, as an interim measure and to help resolve the impasse, I will look to get to a version of this formulation of the idea of "being nice" (and rephrase this to something better if you want).
I have edited out the bits that I found most problematic, namely:
*The over-emphasis on not doing negative behaviour (I believe we should concentrate on encouraging positive, respectful behaviour)
*The repetition of similar points by looking at the same points from ever so slightly different angles
*The length (after all, the underlying idea is very simple - it can be expressed in just three words after all)
The changes I have made can be seen [http://en.wikibooks.org/w/index.php?title=Wikibooks%3ANo_personal_attacks&diff=462070&oldid=435885 here]. I am willing to agree with enforcing the policy post my amendments - although I note (1) a single merged behaviour policy should still be our aim, and (2) others will no doubt wish to comment on the revised draft and may have their our suggested amendments, and time should be allowed for this to happen before this proposal gets "enforced" status, [[User:Jguk|Jguk]] 19:25, 19 May 2006 (UTC)
:Jg, you gave me one of those moments. I thought "No! how the hell can he just change a text that is undergoing a vote!" and reverted it. I then had a cup of tea and put it back again.
:What am I doing trying to push a policy review? Three things, firstly ascertaining which policies are key policies, secondly establishing a bare bones constitution for Wikibooks so that it can never be the place where gangs hang out, thirdly tidying up.
:I have left your amendments in place but have restored the examples of personal attacks as an appendix and have added a sentence that stresses how enforced policies impose duties on administrators. The added sentence also transmits some of the force of the original policy before your changes - personal attacks are simply not acceptable.
:I am happy with the wider project of developing a single behaviour policy but feel that this could take a long time to get consensus support. The wider project will be much easier if there are some policies that are clearly accepted. These can serve as the kernel of your wider plan.
:Your change to the text looked like a delaying tactic which was why I was so irritated. I will contact all those who have voted for the policy to note that the text has changed and to invite them to comment - it might change their vote to a "no". [[User:RobinH|RobinH]] 09:58, 20 May 2006 (UTC)
:: I object to the addition of a "remove personal attacks" section to this policy. RPAing does nothing productive; it is better to let the record stand and take people to task for their actions rather than trying to mask them. [[User:Kellen|Kellen]] <sup>[[User_talk:Kellen|T]]</sup> 14:32, 20 May 2006 (UTC)
::::The paragraph has been changed to address your concern (see below). [[User:RobinH|RobinH]] 08:45, 22 May 2006 (UTC)
:::I think I'd agree. As long as it wasn't too egregious, it should stand (with obvious exception that the atackee can remove it if they want). --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 14:34, 20 May 2006 (UTC)
(reset indent) A "No personal attacks" policy is essential in a Wikimedia environment. I fouled up my response to Jg's change by loading the policy with yet another contentious issue. I have replaced the paragraph with:
Personal attacks are not acceptable on Wikibooks and this
policy imposes a duty on Administrators and Users to stop
such attacks should they occur.
This is just emphasising the fact that this is a '''policy'''. It is not something that administrators and users can just ignore. Jg's re-write took the bite out of the policy; my intention in putting in this paragraph is purely emphasis. It does not change the policy. [[User:RobinH|RobinH]] 08:45, 22 May 2006 (UTC)
:'''If no-one objects then the policy should be moved to enforced by 1st June 2006.''' [[User:RobinH|RobinH]] 10:00, 20 May 2006 (UTC)
== Move to Enforce by June 1, 2006 ==
I agree with [[User:RobinH]] that this policy should become enforced by June 1st, barring any serious objections. [[User:Jguk]] made some changes to the policy recently that seem to keep the same spirit, but attempt to use better, "more positive" language. This section can be used for expressing concerns or objects. Barring any such objections, I agree with [[User:RobinH]]'s motion that this policy should become enforced by June 1st. --[[User:Whiteknight|Whiteknight]]<small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 16:44, 20 May 2006 (UTC)
:First, can we slow down. I have just proposed a significant amendment to the policy and Robin has suggested an amendment to the amendment which, as far as I'm aware, for the first time sets out an actual obligation for Administrators (so that if an Admin did not, for any reason, make a positive action, then they would be in breach of this policy). Additionally, Kellen, with LV in support, has raised a new objection to the bit about "removing personal attacks" (which admittedly has been in the draft a long time). All these points merit discussion. By all means encourage the discussion along, but let's not have a fixed cut-off date - after all, if we're all talking to resolve any differences, 1 July (just one month later than your proposal) is not an unreasonable target date.
:I do find myself largely agreeing with Kellen and LV. Except in a situation where the personal attack was extreme (eg possibly libellous or plainly outrageous), I see no harm in keeping the personal attacks. I would add to this that I do believe that a user has the right to edit his userspace largely how he likes it, and I'd have no difficulty with a user removing a personal attack from his own talk page (as long as in so doing he did not leave a message that misrepresents the views of the original poster - removing an edit in its entirety would always be acceptable).
:I then find myself again getting worried about having a rules-based policy. OK, we maybe can agree a rule that works reasonably in almost all cases (eg do not remove personal attacks), but then I quickly see that there are exceptions to that general rule which take us on to further objections. In fact, staying totally silent on the matter is better here - silence is an invitation to do something reasonable in the circumstances. We should not get too hung up about which reasonable reaction out of a whole gamut of possible reasonable reactions we have.
:I do think that Robin's addition ("This policy imposes a responsibility on Administrators to assist in the removal of text containing personal attacks wherever it appears in Wikibooks and to explain to offenders that such text is not acceptable") needs amending. The first part, as noted above I do not think appropriate (and it seems Kellen and LV are of the same view). As far as the second part is concerned, I do not like the idea of forcing a duty on Admins to explain to offenders that such text is not acceptable. Any reader can explain this. But you should also use your judgment. If someone has used bad language once two weeks ago, just let it pass. Only if it seems a wikibookian is persisting in objectionable behaviour, or if you feel it would be useful to explain the situation in a currently active dispute, is it really appropriate to intervene.
:As far as the appendix is concerned. I do not think we need examples of what constitutes a personal attack. Would anyone really argue that a death threat is not a personal attack? Also, I believe it indicates that some behaviour that I would not find acceptable is acceptable - for example, the phrase "Spurious threats of legal action" implies that we would have no problem at all if there was an actual threat of legal action (or an writ actually being issued because of what has happened on wikibooks). Again, silence is best here - either the person making the comment knows they are doing so in a negative spirit or they have made a comment which they do not mean to be taken with offence that has inadvertently caused offence. We don't need a list of what this may be - and we certainly don't need to offer suggestions to those who might want to disrupt Wikibooks, [[User:Jguk|Jguk]] 16:52, 20 May 2006 (UTC)
::I was just motioning for haste, I certainly can't inforce it myself. I think that wikibooks is lacking because we don't have the policy base that wikipedia does. Because we have fewer definate policies to ground our actions, wikibooks feels more like a free-for-all, and less like a community. I agree in spirit that [[User:RobinH]]'s addition of a duty for admins is not necessary, but I do not beleive that a small detail such as that is grounds not to instate a general behavior policy. '''It should be known officially that personal attacks and bad behavior are not acceptable here at wikibooks.''' The specific measures that should be taken in the event of a policy breach are inconsequential in comparison to the statement of expectations. Maybe we don't need to enforce ''any stated punishment or recourse'' because we can leave it to admins and general users to deal with innappropriateness themselves, so long as we have a solid policy stating that it should be dealt with in some fashion. We can still make all sorts of changes now or in the future, but small details should not be an excuse not to enforce this policy. --[[User:Whiteknight|Whiteknight]]<small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 00:12, 22 May 2006 (UTC)
:::In the interests of preventing yet further delay to the implementation of this policy I have changed the offending paragraph to a paragraph that simply emphasises that policies impose duties on the whole community. This should answer [[User:Jguk|Jguk]]'s first point. On the second point, [[User:Jguk|Jguk]] might note that it waters down the original text that most users approved. In the original text it stated that "Threats of legal action" were not acceptable. If someone is really breaking the law then a threat of legal action is appropriate, it is '''spurious''' threats that are no more than personal attacks.
:::As [[User:Whiteknight|Whiteknight]] says, we need some basic policies or we are wide open to abuse. I feel exposed as a contributor to Wikibooks because, as things stand, anyone can come in, be insulting, uncooperative and deconstruct any book without any defined process for preventing or even disapproving of their actions. [[User:Jguk|Jguk]] says that enlightened admins will prevent this from occurring but without guidance in the form of policy the admins cannot know just how severely a particular case should be treated. A list of what constitutes a personal attack was always part of this policy until [[User:Jguk|Jguk]]'s re-write of a couple of days ago and it helps to provide guidance. [[User:RobinH|RobinH]] 08:48, 22 May 2006 (UTC)
I have made a minor change (from "Administrators and Users" to "Wikibookians"), which I trust is not controversial. It seems the remaining live issue (subject to new ones arising) is whether the Appendix stays or goes. Please let me know whether you wish to aim to make this "enforced" policy without the Appendix (in which case publicise it everywhere and then promote it in a fortnight if there are no objections) and then later argue for the Appendix should be included. Alternatively we can have the "include or exclude" the Appendix discussion now, which would delay making the policy "enforced", but would make the policy more complete when it eventually does become "enforced", [[User:Jguk|Jguk]] 11:43, 22 May 2006 (UTC)
:The advantage of the appendix, and the reason why the original authors included the list, is that it makes it clear that any sort of personal attack is not allowed. Anything from "anyone with half a brain.." to "you nigger jew" is not allowed. Wikibooks is about content, not personalities. Without the appendix anyone intervening might be in some doubt about whether a given personal attack is severe enough for action; the appendix shows that '''any''' personal attack is not allowed and must be withdrawn. It also shows that insulting a person's religion etc. is encompassed by the policy.[[User:RobinH|RobinH]] 12:32, 22 May 2006 (UTC)
::Does an appendix really matter. I think people can figure out what is a personal attack or not. If they complain, a neutral admin can step in and decide how severe it is (if it even is one) and take the appropriate action. So it doesn't really matter to me if it's in there or not. Thoughts? --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 18:26, 22 May 2006 (UTC)
::: I think it's unnecessary and an artifact of how the WP policy developed. [[User:Kellen|Kellen]] <sup>[[User_talk:Kellen|T]]</sup> 20:00, 22 May 2006 (UTC)
::::I briefly toyed with the idea of replacing the list with a sentence such as "Any personal attack, whether it is a snide comment or a direct personal insult is covered by this policy." But then I noticed that in the list it included racial attacks, religious attacks and political attacks. For instance, "Jews are all fools" is not obviously a personal attack - the other person may or may not be a Jew. It is however totally inappropriate for Wikibooks and would be a personal attack upon a jewish reader. The list makes it clear for admins and users that '''any''' personal attack is not allowed. Without the list there would be debate about whether an attack was really "personal" or really severe enough to be covered by the policy.
::::That said, in the interests of compromise, I have inserted my sentence and removed the list. [[User:RobinH|RobinH]] 10:27, 23 May 2006 (UTC)
==Move to enforce==
The new, compromise wording has been in place for a week without objection. I propose to move this policy to "enforced" tomorrow. [[User:RobinH|RobinH]] 13:48, 31 May 2006 (UTC)
:Although I myself do not object to the new wording becoming "enforced", I do think that this move should be republicised on the staff lounge with a note that the wording has changed, and only moved to "enforced" once any comments raised in response to that have been dealt with, [[User:Jguk|Jguk]] 15:11, 31 May 2006 (UTC)
=== New Move to Enforce ===
Actually, this is the same move, I am just bumping this page to the top of the RC list, in hopes that this movement will draw more attention then the last. It is my intention, as per the previous community discussion, to move this proposal to {{tl|policy}} within the week. If there are no dissenting opinions on the matter, I will do it soon. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 15:12, 16 October 2006 (UTC)
: I'd like to object on the grounds that [[Wikibooks:Be civil]] covers this adequately (along with [[Wikibooks:Profanity]]). I'd like to see this proposal '''rejected'''. --[[User:Swift|Swift]] 21:41, 16 October 2006 (UTC)
:This policy is central to creating an atmosphere of congenial behaviour at Wikibooks. The move to enforce was indeed publicised on the staff lounge and not opposed. As far as I was aware it was already accepted for enforcement after protracted discussion. [[User:Whiteknight|Whiteknight]] says "Actually, this is the same move" ie: it was already accepted as enforced and tagged as enforced. Why has [[User:Whiteknight|Whiteknight]] reopened the debate? Do we have to go over every policy endlessly? Perhaps there should be a moratorium of at least 1 year between debates otherwise determined individuals can slowly dismantle any constitutional structure. If Swift thinks the policy is part of "Be civil" and acceptable in this context then there is no objection to the policy as such and it should be left in place. [[User:RobinH|RobinH]] 22:41, 16 October 2006 (UTC)
::Well shoot, i must have mixed up my pages. This one already is enforced, and this new nomination is unneeded. Sorry. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 22:45, 16 October 2006 (UTC)
:::Cheers. Sorry I got a bit aerated but this was almost the only policy that was finally accepted back in May! [[User:RobinH|RobinH]] 22:47, 16 October 2006 (UTC)
:: Well, this may actually be my fault. When preparing this weeks Proposal of the Week, I looked through the list on [[Wikibooks talk:Be civil#Purpose of this policy]] to see the status of each and thought that this was still a proposal, so I put it up on the week's plan for rejection. That may have been what shaded Whiteknight's memory.
:: Sorry about that guys. --[[User:Swift|Swift]] 04:42, 17 October 2006 (UTC)
hsl0mxiouwsuw28g8hist1co88fsq9t
Talk:Muggles' Guide to Harry Potter/Archive 1
1
54221
4640200
3008627
2026-06-13T16:30:57Z
ShakespeareFan00
46022
4640200
wikitext
text/x-wiki
== Standards Discussion ==
This is more of a suggestion: If you are creating original supplimental templates and other "tools" for this Wikibook, you should try (when reasonable) to keep it within the namespace of this project. The above templates are probabaly going to be just fine, but the point is that you want to avoid namespace collisions with other Wikibooks, who may also have similar named items. It is perfectly fine to have five or six "modules" in Wikibooks to have the same name, and even cover the same material. Since they would be in seperate Wikibooks, the namespace allows the content to be seperated.
How you've named the articles and subsections is perfectly reasonable... I'm just trying to point out that you do need to step a little more carefully on Wikibooks if you don't stick to the common namespace of the Wikibook. --[[User:Robert Horning|Rob Horning]] 08:11, 7 August 2005 (UTC)
:Gotcha. I didn't really realize that could be done. So templates should be created as <nowiki>Template:Muggles' Guide to Harry Potter/TemplateName</nowiki>? Since it's early in the book I might just convert things. -[[User:Withinfocus|Matt]] 23:49, 7 August 2005 (UTC)
:Why do you describe this as a childrens book? If you travel on the London underground right now HBP is likely the most common book you will see being read by adults. very much more common than any other single book. The 'adult covers' were supposedly introduced for adults too embarassed to be seen rereading the childrens cover version. I am sure more adults will have read these books than most 'adult' books in existence. Also note that for whatever reason, content has become steadily more 'adult' as the series has progressed.[[User:Sandpiper|Sandpiper]] 08:09, 8 August 2005 (UTC)
::The Harry Potter books are children's books. Rowling has said it herself. It's important to accompany several reader ages. Wikijunior is a secondary goal for now; we need to develop the general content first. I reworded the standards to not be so heavy on 'children' nonetheless. -[[User:Withinfocus|Matt]] 13:20, 8 August 2005 (UTC)
:::I begin to wonder if JKR had a plan to write a set of books intended to be read one book each year as you grow up. This would still make them childrens books, but certainly breaking into adults at the top end. Aside from that, surely the definition is not what the author intended, but what really happened. These books were originally rejected by many publishers, because they did not fit the pattern for childrens books. How many of these books are being read by adults for themselves, how many by children for themselves. An awful lot of quite expensive books just got sold. Who forked out for that, and why? Which group is most likely to become fanatical enough to want to find out more here, so what will the readership here be? But yes, I would agree it would be correct to bear in mind that some readers might be quite young.[[User:Sandpiper]]8/8/2005
:what is appropriate usage for spoiler warnings in character descriptions? Presently it is one article per character, so where should spoilers go? A summary article about a character might contain very basic information (like their death in book 6, say) which would be a very big spoiler for book 1. So should 'character articles have a blanket spoiler warning?[[User:Sandpiper|Sandpiper]] 09:07, 8 August 2005 (UTC)
::Do not reveal any significant information in the biography. That section is for simple character attributes. Beginners should only see the biography. All but one of the following sections are for intermediate readers. The last section, "Greater Picture," is for advanced readers only. Please see [[Muggles' Guide to Harry Potter/Characters/Severus Snape|Severus Snape]] for the template you should use. It would be great if you could enforce this policy on all the other character pages. This book must stay away from being a Macropedia and really focus on the analysis. Your commentary so far looks great. -[[User:Withinfocus|Matt]] 13:37, 8 August 2005 (UTC)
:::hmm, still tricky. I think it may be hard to describe a section as 'biography' if you can not include what would normally be main biographical details, because they would be spoilers. Maybe the heading needs amending somehow? Yes, I can see how it would work with a description of the characters appearance, manner, general affiliations, etc, but this is not precisely biography.
:::The piece I wrote into Snape includes some analysis, drawing in the bit from the prevous book. (memory of exact events there is rather less clear in my head, or i might have added the section in the relevant book, I will eventually). From what you say, you might conside this more appropriately included in general analysis (advanced). Or do you envisage that general will include things which are very hard to precisely pin down from the text, where maybe only a set of possible interpretations can be identified? The issue I described is still the subject of great debate, though the majority I have seen is tending the way I wrote it here (2:1?). This may prove to be a significant spoiler for book 7, though I would hope that JKR knows this and has already planned how she will maintain reader interest despite her own clues. [[user:Sandpiper|Sandpiper]] 16:13 bst 8aug 2005 (appologies this keyboard has no tilde).
::::I renamed the first section to "Attributes." Here is what I planned for the sections:
:::::Attributes: general descriptive statistics. A small amount of text about how the character looks, acts, etc. No analysis (i.e. looks, demeanor, main activities and occupation).
:::::Role in the Books: details of the character's actions in the book. Still, no analysis. This is still the descriptive phase of the page (i.e. killed X in Book 5).
:::::Strengths and Weaknesses: some analysis on where the character has faults, etc. Beginning of inserting facts to back up character statements (i.e. has trouble with confidence, crafty).
:::::Relationships with Other Characters: interactions with other characters and the character's stance on others. Personal referencing (i.e. affectionate towards Y).
:::::Analysis: general analysis on the character. Whereas the Role section covered ''how'' the character acted, this covers ''why'' the character acted. Some content here can tie in with relationship analysis the section above (i.e. X feels at home when at Y and feels a great sense of protectiveness over it).
:::::Questions: reflection questions for the reader. Made to help the reader gain insight on the character (i.e. does this character really care about X?).
:::::Greater Picture: present on many other pages, this is the true "tie-in" section. It points out what the character is likely to do / how likely to act. Point out future controversy and where the role of the character is headed, especially in reference to other characters (i.e. X is likely to go after Y in Book 7 due to his infatuation with Z. After Z's death this damaged X greatly).
::::-[[User:Withinfocus|Matt]] 17:06, 8 August 2005 (UTC)
::::: Attributes sounds a bit clinical, or more to do with dungeons and dragons than people. 'Background', 'History', 'Overview'? something indicating that this is general information, and indeed might vary quite a bit from character to character.[[User:Sandpiper|Sandpiper]] 22:50, 8 August 2005 (UTC)
::::::Let's just go with "Overview" then. That'll work. -[[User:Withinfocus|Matt]] 22:53, 8 August 2005 (UTC)
::I would think that the general spoiler template should only be used on plot pages. That keeps its use to only the Books section. Any other sections will be sufficiently flagged using the Beginner and Intermediate spoiler templates. -[[User:Withinfocus|Matt]] 14:03, 8 August 2005 (UTC)
== VfD Discussion ==
While I think this version of the guide has been modified sufficiently to perhaps justify why it should be a Wikibook, I dislike how this was added to avoid the link to the Wikibook [[Harry Potter plots]] that is going through a VfD discussion. The two are linked together, and frankly the discussion on the VfD page, as it is mostly positive, is going to serve as a justification to keep this Wikibook here rather than something to drag it down. The Harry Potter plots page can be removed with a speedy delete comment (<nowiki>{{delete}}</nowiki>) once you get everything to where you want it to be at. Please don't try to really muddy up the discussion by starting a new Wikibook instead, and you could have done a page move to the eariler content without really mucking things up.
Still, I like the direction this is going. My comment about deleting duplicate content from Wikipedia is still valid, and it should go. Links to Wikipedia are fine and even encouraged. I'm not trying to bite too hard, and the reason for the VfD is simply to close out the discussion for once and all. --[[User:Robert Horning|Rob Horning]] 18:56, 3 August 2005 (UTC)
:I think I answered what you say above on the VFD page. I don't believe this book was created to avoid anything. I believe it was created to show how a proper book should be formed. The book was discussed right in the VFD discussion. I have no problem with Harry Potter plots being deleted now that the Muggles' guide provides for it. I hope this Guide really works well; I think I'll be spending a lot of time at Wikibooks now. -[[User:Withinfocus|Matt]] 19:52, 3 August 2005 (UTC)
== Structuring ==
This is a request to anyone who wants to leave comments on how this book should be structured. This book is VFDed at the moment, mainly I think because it is seen as becoming a Macropedia. I see this guide as a reference textbook to the series. I think the sections that exist now should stay and be developed with specific attention towards analysis of whatever the article is talking about. Wikipedia has some descriptions but I think this book should have both descriptions and analysis. While NPOV is important on Wikipedia, I believe some analysis and angling should occur here at the book, especially with characters. So, my questions, specifically to maybe admins or other big editors here:
*'''How should a reference textbook be approached when it has some connection to being a Webopedia?''' It is important to have lots of distinct detailing (i.e. why wasn't the [[Wikijunior_Solar_System|Solar System book]]'s [[Wikijunior_Solar_System/Moon|page on the moon]] structured as "read the Wikipedia article for details on the Moon, here are some questions?"). I'd like to have lots of sections on specific things. Analysis is also included, but the structuring is like a Webopedia. Are critical commentary and questions about the section a good thing to include? How does a guidebook get down to details and not be encyclopaedic?
*'''How should Wikipedia content be moved here?''' A lot of Wikipedia pages go into a lot of depth. A book seems more appropriate for such depth. Also, some details should be shared between the two projects, especially character biographies. Can that be a copy?
*'''What should a book's TOC be structured as when it is mostly a reference and analysis text?''' I realize the importance of an index. How should the above mentioned and already created categories be organized if they stay in the book?
Thanks. -[[User:Withinfocus|Matt]] 14:23, 5 August 2005 (UTC)
----
One thing I'd like to point out with Wikijunior (as opposed to the other Wikibooks) is that it is sort of a Wikipedia for younger kids. At some point in the future it has been suggested that Wikijunior is going to get its own server and be entirely on its own. The whole project was kinda forced upon Wikibooks by the foundation (there was some sort of grant in it for about $20,000 that went to the foundation as well... paying for the server you are currently using with some additional funding coming from a few other sources). So what I'm trying to suggest is that Wikijunior books really don't compare to the rest of Wikibooks in terms of policies. Especially since Wikijunior has its own complete set of policy guides (like a really bizzare one of no expansion or new book ideas unless agreed upon by the "community"...or even new article ideas for that matter... I've pushed it quite a bit on the Solar System.) IMHO it should have been done on meta first, but instead it has been done through Wikibooks.
I think if this Wikibook is done properly, it can become '''the standard''' to compare other literary study guides. I'm sure you could get creative if you ''had'' to make this on a more literary format, but I don't think that is strictly necessary. How far you would like to go on the deconstruction of the plots and characters of the Harry Potter series is also debatable. I'm also curious how much comparison/contrast between the books and the cinema versions has been done? I'm sure you can find it at fan sites, but Wikibooks would allow you to organize it in a much better manner. --[[User:Robert Horning|Rob Horning]] 07:57, 7 August 2005 (UTC)
== Unite with the Harry Potter WikiProject ==
I think it would be a good idea to run this Wikibook from the [[w:Wikipedia:WikiProject Harry Potter|Harry Potter WikiProject]]. It's not a closed project; anyone here has a voice there. Instead of Harry Potter fans being split into dozens of small enclaves, we'd help to create a single place for Harry Potter fans from all Mediawiki sites to meet. We could then set joint Wikipedia and Muggles' Guide consensus on what subjects deserve a Wikipedia article and how in-depth it should be, as well as provide visible links to the longer, more in-depth articles here. This would do a lot to direct fans' energies here and build this up, and it would also help soothe the Wikipedians against "fancruft". — [[User:131.230.133.185|131.230.133.185]] 05:27, 7 August 2005 (UTC)
:Info on this book has been posted there for some time. I hope some people will actually come over to help. Book summaries are already linked but more more content needs to be. A big issue (and I'm sure the Harry Potter Wikipedia contributors will get annoyed by this) is Transwiking the inappropriate Wikipedia content here. Over time that should happen. Harry Potter Wikipedia pages are really pushing what an encyclopedia should address and the Guide seems a more appropriate place for in depth coverage and analysis of the storyline. -[[User:Withinfocus|Matt]] 05:43, 7 August 2005 (UTC)
:If wikipedia is not going to accept detailed descriptions and analysis, then it is hard to see how they can be transferred from here to there. It sounds more like this will become the main source of in-depth information, with 'pedia only as an entry point.[[User:Sandpiper|Sandpiper]] 09:03, 8 August 2005 (UTC)
I note there is a flag on 'pedia Potter requesting people to port information over to here. Is there policy on what to do with it when it arrives? I guess I mean, take it as a gift to start the articles, then amend it as appropriate? This is beginning to sound a little schizophrenic. People will have a choice of two articles on each topic in different wikis. [[User:Sandpiper|Sandpiper]] 20:21, 8 August 2005 (UTC)
:Some things on Wikipedia are pushing what an encyclopedia should contain and should be ''Transwikied''. '''Appropriate''' material could be moved over if the HP Wikipedia community has a concensus that it is a good idea. I wouldn't want trash coming over here. I expect (and will definitely enforce) quality in this book. There definitely won't be two copies of things; Wikipedia would do its job with explaining the proper amount of information and Wikibooks would handle critical commentary. Copying from Wikipedia is a definite no. Only Transwikied material can come here. Even if they try to Transwiki, Wikibooks has to accept it. The community seems large enough that people will agree to the right things. Anyone doing the Transwiking will need to know both Wikipedia and Wikibooks policies. Since I've gotten into some decent discussions with Wikibooks people over in VFD, I'll probably attempt doing it when the time comes, if ever. The content might just get wiped off Wikipedia if it's garbage and we don't want it here at all. -[[User:Withinfocus|Matt]] 20:38, 8 August 2005 (UTC)
:: I think that has left me even more confused. I saw the tag on 'pedia asking people to copy articles (eg an article about a particular character) over here. As far as I can see, just copy and paste onto an edit box here and it is done. Then it would be a question of reorganising the information for here. That is not about officially transferring a page, rather about putting something on the large number of blank pages here. It is very much easier to take a piece of existing text and reorganise it. Some HP pedia articles have struck me as rather good, though others have definite factual errors (though I would not claim to be able to precisely correct them without a deal of checking).
::What about pictures? Obviously the pictures show film actors and are just one interpretation of characters, but they do liven up a page.[[User:Sandpiper|Sandpiper]] 20:24, 9 August 2005 (UTC)
:::Anyone who starts moving things needs to follow the rules. If people start moving articles we'll get into the politics then. As for images, if those movie characters seem fitting, I think it would be fine to put them in the page. You'll have to edit the template but that's not difficult. This book isn't about the movies, but there should be some visual representation and the drawings people make are almost always horrible. Movie photos are probably the best choice. -[[User:Withinfocus|Matt]] 20:53, 9 August 2005 (UTC)
== Book and Chapter Analysis ==
I think the creation of sub-pages for each chapter is fine, but I also think an overview is needed to orient the reader as to the main plot. This would not necessarily mention every chapter, but really should give a decent synopsis. Pedia is going the way of being very terse in its descriptions and will not fill the needs of someone who wants to spend half an hour and become a dinner party expert.
I noticed that chapter pages do not have a last/next link. One is needed! [[User:Sandpiper|Sandpiper]] 23:08, 8 August 2005 (UTC)
:There's an "Overview" section on the book pages now. Regarding last/next, that will come once organizational changes come to a stop and pages stabilize. Chapters will surely stay the same, but a lot of last/next page business can be added to make the book more booklike once things calm down. For now things are changing too much. -[[User:Withinfocus|Matt]] 23:21, 8 August 2005 (UTC)
== [[Harry Potter plots]] ==
Have you finished with this page? If so, please mark it for speedy deletion. Thankyou. - [[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Contributions/Aya|C]]</sup> 03:02, 9 August 2005 (UTC)
*Be aware that there are many many inward links to it from Wikipedia. Those will need to be tracked down and changed. Until such time it should not be deleted. [[User:Garrett|Garrett]]<sup>[[User talk:Garrett|Talk]]</sup> 08:57, 9 August 2005 (UTC)
**This book, the original before the Guide, was only created a few days earlier. Only a few links were made on Wikipedia and the pages have been redirected to the Guide. This page is acceptable for deletion and I have listed it as such. -[[User:Withinfocus|Matt]] 13:10, 9 August 2005 (UTC)
***Thanks. Be aware that if you mark a page for speedy deletion, you should not add it to [[WB:VFD]]. See [[WB:DP]] for further clarification. - [[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Contributions/Aya|C]]</sup> 15:09, 9 August 2005 (UTC)
****This is now done. If the problems suggested by [[User:Garrett|Garrett]] are in fact accurate, you might want to recreate [[Harry Potter plots]] as a redirect to this book. Also note that the MediaWiki devs are working on an interwiki version of "what links here", but this may take some time to implement. - [[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Contributions/Aya|C]]</sup> 16:31, 9 August 2005 (UTC)
**There are ''no'' inward links from the Wikipedia main article space, as far as I am aware, and haven't been for some time. When the Muggles' Guide was initially set up, I went through all of the Wikipedia articles and modified the <nowiki>{{wikibooks}}</nowiki> tags pointing to [[Harry Potter plots]] into <nowiki>{{wikibookschapter}}</nowiki> tags pointing at the various sub-pages of the Guide. (As an incidental benefit, this finally gave Wikipedia a means for referencing individual chapters of Wikibooks. ☺) [[User:Uncle G|Uncle G]] 16:02:04, 2005-08-10 (UTC)
== Etymology notes ==
[[Transwiki:Notes on etymology in the world of Harry Potter]] is now available for incorporation here. [[User:Uncle G|Uncle G]] 00:50, 3 December 2005 (UTC)
: Are there any plans to integrate this page into the book? --[[User:Hagindaz|hagindaz]] 08:42, 14 July 2006 (UTC)
::I forgot about it pretty much. No. It's now on speedy delete. -[[User:Withinfocus|Matt]] 19:38, 15 July 2006 (UTC)
== Unnecessary pages? ==
Some of the pages on the "magic" section seem unnecessary. I think it would be better to split the magic page into 5 pages, one for each section. And after that, you put all the information on a single page.
The best layout is the kind that *reduced* the amount of clicking the user has to make IMO. --[[User:Dragontamer|Dragontamer]] 20:19, 26 January 2006 (UTC)
== Chapter details and seperation ==
I found this portal looking for another one to participate with, and I am more than willing to help. I have already begun, however I (unfortunatly) dont have a book right here in my face. Im in class. lol. I will though, like to help out, and will help make the Muggles Guide to Harry Potter more accurate and resource-ful. Thanks alot.
PS: the books that I use are in American English, so if something is inaccurate in the books because of language translations, please let me know. [[User:67.115.220.195|67.115.220.195]] 15:22, 22 February 2006 (UTC)
:Excellent that you want to help out. Please create a user account and add your name to the list of authors on the main page. Definitely make sure you understand how the pages are written (see above). Look at well-developed pages such as [[Muggles' Guide to Harry Potter/Characters/Harry Potter]] to see how to write things. Most importantly though is to get book chapter summaries written. I saw you edited some summaries. We need to get extended versions onto each chapter page (and remember the templates!). Also, I think American English is fine. -[[User:Withinfocus|Matt]] 03:14, 23 February 2006 (UTC)
== Chapter names ==
It has occurred to me that it might be useful to have chapter names, rather than just numbers, on the book overview page. Right now, for instance, we have nothing but the chapter numbers on [[Muggles' Guide to Harry Potter/Books/Goblet of Fire|this overview page]], but it would be easier to find the specific chapter needed if the chapter title was there as well. Granted, there might be some spoiler effect, but that would be only slight... and it's a lot easier to find a specific event from the chapter name, in my opinion. As a test, I've done this for [[Muggles' Guide to Harry Potter/Books/Philosopher's Stone|Philosopher's Stone.]] Thoughts? [[User:Chazz|Chazz]] 00:23, 30 August 2006 (UTC)
:Although new and different, I don't mind the new listing you have on Philosopher's Stone. As an addition, it might not be a bad idea to rename the pages as well. Making the list on the summary page will be easier with such a change. If no one objects, I can go through and move each page. Also, spoilers shouldn't need to be considered since they have been warned twice previously that going to book pages will give away information. That's why you don't see the warning on each chapter page as well. There should be a flow to all the pages (like a book) including the explanations of the reader levels, but perhaps only I really see it since I wrote them and we'll have to wait for the first version of the book as a PDF to show it (which maybe we can have the end of the year as a goal for that). When you structure a page think of how it would look in a book since that will be the final result. Some organizational changes may need to happen before we PDF the project. I'm thinking it will be several hundred pages. -[[User:Withinfocus|<span style="color:#000000">'''within'''</span>]][[User talk:Withinfocus|<span style="color:#7A7A7A">'''focus'''</span>]] 04:39, 30 August 2006 (UTC)
::I am a little concerned about changing the name of the chapter pages in the book, if only because it would take longer to type the link target when you're linking to a particular chapter. Of course, that's a trivial complaint... but it is true that the list on the summary page will be only in the one place, and there may be a much larger number of links to any given chapter. Additionally, wasn't there something somewhere about allowing transWiki linkage to specific chapters? That said... my purpose is, given that someone is looking for the story of "Norbert the Norwegian Ridgeback", it is a lot easier to find it in the list that is in PS now, than a simple bald "Chapter 14". [[User:Chazz|Chazz]] 07:04, 30 August 2006 (UTC)
::As I have finished Chamber of Secrets summaries now, I have tweaked CoS's outline page the same way. I hope I'm not being too rash... [[User:Chazz|Chazz]] 19:47, 30 August 2006 (UTC)
:::I will make the changes later if no one else has anything to say. Given your arguments, it will probably be better for Interwiki linking if the chapter page is named after the chapter I think. -[[User:Withinfocus|<span style="color:#000000">'''within'''</span>]][[User talk:Withinfocus|<span style="color:#7A7A7A">'''focus'''</span>]] 00:42, 31 August 2006 (UTC)
== Prefects ==
There is a comment on the Index talkback that Prefects should be mentioned in the book. I agree, as it isn't immediately obvious what a Prefect is to the ordinary reader; but it also isn't magic by any means -- any school that runs on the English model will have prefects, mine did for instance. I would suggest possibly a sub-head below Major Events for School Offices, which would contain Pefects, Head Boy / Head Girl, and Quidditch team captain; this fits better than anything else, because Ron's becoming a prefect (e.g.) is a fairly serious event in the overall story. [[User:Chazz|Chazz]] 22:12, 6 September 2006 (UTC)
:After thinking about this for a while, I actually have created that subhead and started populating the article on Prefects at least. The other articles will follow as I have time. [[User:Chazz|Chazz]] 19:28, 7 September 2006 (UTC)
== Collaboration of the Month candidate ==
I've decided to nominate this Wikibook as a Collaboration of the Month candidate... in preparation to becoming a full Book of the Month candidate. Seriously. This content has gone a long way from when it was listed as a VfD back elsewhen, and has become one of the crown jewels for Wikibooks, and I want to thank everybody who has participated so far. My intention here is that this is a book that could have some general interest contributions by ordinary Wikimedia users, and give this some additional exposure on the front page that it certainly deserves.
This content is also so close to being one of the best of Wikibooks that I also feel that a big push to help improve the content is really all that it needs, and is in fact one of the goals for the Collaboration of the month campaign. More than just raw advertising, I think this is a book that truly deserves this sort of attention.
If you feel as I do that this book could use that sort of attention, please cast your vote on the current voting page for [[Wikibooks:Collaboration of the Month|Collaboration of the Month]] and let everybody know about this book that may be new to Wikibooks. --[[User:Robert Horning|Rob Horning]] 14:46, 29 March 2006 (UTC)
== Collaboration? ==
This book still needs serious work. Before anyone even thinks of nominating it for BotM, there should definitely be another CotM. I fixed up a few articles just because I ran across them. Seriously, even the Voldemort article was grievously lacking! [[User:Jfingers88|Jfingers88]] 03:49, 7 August 2006 (UTC)
:This book will continue to need serious work for many months since its coverage is massive. It will not be long until this is the largest book on Wikibooks in my opinion. When there are 500+ pages and about two continuous editors, it takes time to filter out the garbage people add and build up quality content. -[[User:Withinfocus|Matt]] 22:52, 7 August 2006 (UTC)
== Inactive and Active Authors ==
I'm one of the active authors of this wikibook but erased from the listing because I haven't been contributing for a long time. I've contributing s far the Triwizard Tournament, Hogsmeade, St. Mungo's Hospital for Magical Maladies and Injuries, Hogwarts School of Witchcraft and Wizardry's academics, books of the wizarding world and the Ministry of Magic. What I want to say is, even the author hasnt been contributing for a long time, as long as he/she has contributed single article/ideas/whatever, he/she should never been erased from the lists of the author. Or if you want to emphasize who are actively and not actively contributing, just put it at the end of the uername. Hope you got my point. {{User|Hedwig0407}} 11:31, 26 September 2006 (UTC)
:You certainly aren't an active author here. The three names preceding you have formed a very nicely-organized and intelligent team that contributes great work and continues to do so in the present (although one of those three may soon be removed due to inactivity). Once this book is published, those three names will be the ones I list as authors of the book since those are the ones that have formed substantial contributions to the project. The line must be drawn somewhere. I have now titled the authors section "Active Authors" so that inactive and insignificant users can be removed in future situations if and when the time comes. That section is only meant to be a helpful guide for individuals who might want to contact current contributors and could possibly not even be listed in the official book at all. -[[User:Withinfocus|<span style="color:#000000">'''within'''</span>]][[User talk:Withinfocus|<span style="color:#7A7A7A">'''focus'''</span>]] 02:16, 27 September 2006 (UTC)
::Sorry. I've made a mistake on my sentence there. Yeah, I know Im not active anymore now but in the future I will contribute, I just need time for thinking more information (especially in the Characters and Place). And thanks for changing it to '''Active Authors'''. {{User|Hedwig0407}} 15:21, 27 September 2006 (UTC)
== Found a very very bad stub. Decided to add the "template" to it ==
[[Muggles' Guide to Harry Potter/Magic/Portus]] was quite the bad stub indeed. So I just added what I knew about the subject (aka, nothing) and put it into what appears to be your template. I would suggest that someone check it over. --[[User:Dragontamer|Dragontamer]] 23:50, 14 November 2006 (UTC)
:Gone. It will be created appropriately at a later date. -[[User:Withinfocus|<span style="color:#000000">'''within'''</span>]][[User talk:Withinfocus|<span style="color:#7A7A7A">'''focus'''</span>]] 01:38, 15 November 2006 (UTC)
::Umm... apart from the fact that I'm now curious, would it not have been better to leave it as Dragontamer had left it? I mean, Dragontamer had provided a band-aid; granted that is not ideal, but simply wiping it off the face of creation is rather disrespectful to him; and it could stand until someone expanded on it, no? [[User:Chazz|Chazz]] 22:39, 19 November 2006 (UTC)
:::Having it as it was didn't give much of any information whatsoever. I delete useless stubs all the time because they're almost always three-word descriptions from an anonymous user about a topic and would achieve more progress if created at a later date. There's a lot of poorly-written pages in the Guide and I see it as better to re-create them later. Nonetheless, since you wanted it back, I restored it. -[[User:Withinfocus|<span style="color:#000000">'''within'''</span>]][[User talk:Withinfocus|<span style="color:#7A7A7A">'''focus'''</span>]] 01:23, 20 November 2006 (UTC)
::::With that level of invitation, how can I resist filling it out a bit? Actually, I was more wondering what set "a very bad stub" apart from the other three-word stubs I have found... and must confess to remaining somewhat unenlightened. Was it just the usual "Makes a portkey." sort of thing? [[User:Chazz|Chazz]] 23:52, 20 November 2006 (UTC)
== Warning about HP "fan art", etc. on commons. ==
The toolserver's down right now so I'm not sure if any of these are used in this book, but "fan art" (see [[commons:Harry Potter]]) is considered a derivative work,and all images are being deleted on sight. They might be "fair use" on Wikibooks though... just don't upload these on commons because we have to delete them (sorry!). --[[User:SBJohnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color:green">talk</span>]]</sup> 04:09, 2 January 2007 (UTC)
:Fanart shouldn't be used as it is a form of "original research" and is interpretation that hasn't been used in any of the published materials. [[User:John Reaves|John Reaves]] 04:55, 2 January 2007 (UTC)
::The only thing I can see on the Commons that we use is not in the Fanart section – the Platform 9-3/4 sign is used in the article for that Place. I'm not sure I agree with John that there is no place for fan art in the book; the cover, for instance, is fan art, though AFAICS there is no way that it could be considered particularly derivative, as it has nothing in it that is directly related to any copyrighted images. [[User:Chazz|Chazz]] 08:38, 2 January 2007 (UTC)
:::Well, the book ''needs'' a cover, but individual interpretations of people and things would be stretching the limits. [[User:John Reaves|John Reaves]] 08:53, 2 January 2007 (UTC)
::I'd like to get a new cover in some time since the current one is pretty gross. -[[User:Withinfocus|<span style="color:#000000">'''within'''</span>]][[User talk:Withinfocus|<span style="color:#7A7A7A">'''focus'''</span>]] 23:24, 2 January 2007 (UTC)
:::I'd argue against "gross" as a description; it is actually pretty good. BUT it uses the image of Hogwarts from the film – contrary to what I thought earlier, once I had had a good look at it I see that it is the WB version of Hogwarts – and as such it may well be pushing the limits of copyvio. [[User:Chazz|Chazz]] 08:42, 21 January 2007 (UTC)
::::I find the green way too powerful. There's got to be something better for us to put up there. -[[User:Withinfocus|<span style="color:#000000">'''within'''</span>]][[User talk:Withinfocus|<span style="color:#7A7A7A">'''focus'''</span>]] 22:53, 21 January 2007 (UTC)
== Minor characters (from the characters talk page) ==
I propose either deleting each or merging minor characters in one article which is redirected to by the individual pages. [[User:John Reaves|John Reaves]] 06:38, 2 January 2007 (UTC)
:You'd need to have some pretty fierce definition of what comprised a "minor character". Pretty much any definition would have to have exceptions: Marcus Flint? He's in three books. Adrian Pucey? Two. Minor? Good question. If forced to decide, I'd say Marcus, no, Adrian, yes. Armando Dippet? No... needs an individual write-up. Bertha Jorkins? Strictly speaking, not in any books – when we first hear of her, she's dead – but she's a relatively major part of the set-up of book 4. Personally, I would be '''slightly opposed''' because of the problem of definition. Plus, JKR does have a habit of taking a minor character and suddenly making him or her rather important: e.g. Arabella Figg. And we can't know which until it happens: e.g. Mark Evans. [[User:Chazz|Chazz]] 08:32, 2 January 2007 (UTC)
:I'd say base the def. on the length of the article and personal judgement. If Rowling develops a character, then the article can then be developed, it's not hard to do. The problem is that there are articles that have only one or two sentences. [[User:John Reaves|John Reaves]] 08:55, 2 January 2007 (UTC)
::Sometimes that's a flaw in the article, rather than it being an actual minor character. But I see your point: if it can't be expanded beyond a single sentence, maybe it does belong on a dedicated minor characters page. [[User:Chazz|Chazz]] 18:50, 2 January 2007 (UTC)
:::Most of the time it's a flaw due to the person who created an essentially useless stub. There's nothing negative about having separate pages for characters and it's much easier to organize that way. At the least each individual should have an infobox which separate pages supply easily. This book will be made into one large page anyway (for printing) and having separate pages makes the design of the full book much easier as well since it becomes very modular. I'm pretty opposed to this. Over time, pages will slowly gain more and more. -[[User:Withinfocus|<span style="color:#000000">'''within'''</span>]][[User talk:Withinfocus|<span style="color:#7A7A7A">'''focus'''</span>]] 23:17, 2 January 2007 (UTC)
::::This actually leaves me in rather a quandary. I just created a set of pages for the characters who are listed as being Sorted in GoF. In the process I found a three-word stub for one character, and a ten-word stub for Dennis Creevey, and nothing for any of the others. I've put in the full framework for all of them, but there's not much I can say about (e.g.) Stewart Ackerly: he's Sorted into Ravenclaw, but I don't know if we ever see him again. Did I do the right thing by creating him at all? [[User:Chazz|Chazz]] 06:32, 8 January 2007 (UTC)
== Educational use? ==
How is it that this book could be used in an academic and educational setting? --[[User:Remi0o|Remi]] 02:22, 22 April 2007 (UTC)
:What are you referring to exactly? These books are heavily studied at numerous universities, not to mention secondary schools where the students are much more actively reading them. This book is Cliff's Notes for the Harry Potter series and offers critical insight into what is happening in the books. -[[User:Withinfocus|<span style="color:#000000">'''within'''</span>]][[User talk:Withinfocus|<span style="color:#7A7A7A">'''focus'''</span>]] 15:50, 22 April 2007 (UTC)
::In fact, if you take a look at the second VfD (link at the top of this page), you will see that someone has actually enumerated a bunch of universities that as of two years ago were offering courses in HP. I personally don't know whether this series will have the lasting power of (e.g.) Dickens, but I wouldn't be surprised if it did; and Dickens, in his day, was seen as a good writer, but not a classic. [[User:Chazz|Chazz]] <small>([[User talk:Chazz|talk]])</small> 18:34, 22 April 2007 (UTC)
== Names ==
What a great job you've done here. Shoudn't names be sorted in lists like this:
*Malfoy, Draco
*Potter, Harry
instead of:
*Draco Malfoy
*Harry Potter
? --[[User:S.Örvarr.S|Stefán Örvarr Sigmundsson]] 03:07, 30 July 2007 (UTC)
:We list the names in more readable forms yet still sort by last name. If you see a non-sorted name, please correct it. Thanks. -[[User:Withinfocus|<span style="color:#000000">'''within'''</span>]][[User talk:Withinfocus|<span style="color:#7A7A7A">'''focus'''</span>]] 16:00, 30 July 2007 (UTC)
== Spell template ==
How about adding to the spell template? So fx Avada Kedavra would be:<br/>Type Spell (curse)
<br/>instead of:<br/>Type Spell<br/>--[[User:S.Örvarr.S|Stefán Örvarr Sigmundsson]] 03:24, 30 July 2007 (UTC)
:All the spells use the Magic template. If you'd like to add additional information into a field, please do so. The current number of fields, however, seems to be set up the most efficiently for handling our other magic types as well and so I wouldn't want to add any new ones. -[[User:Withinfocus|<span style="color:#000000">'''within'''</span>]][[User talk:Withinfocus|<span style="color:#7A7A7A">'''focus'''</span>]] 16:02, 30 July 2007 (UTC)
::I wasn't talking about adding a new field into it, only more information into the current fields. Check this out, I've added "('''curse''')": [[Muggles' Guide to Harry Potter/Magic/Avada Kedavra|Avada Kedavra]]. --[[User:S.Örvarr.S|Stefán Örvarr Sigmundsson]] 20:48, 3 August 2007 (UTC)
:::Sounds good to me, as long as it's consistent with all spells. -[[User:Withinfocus|<span style="color:#000000">'''within'''</span>]][[User talk:Withinfocus|<span style="color:#7A7A7A">'''focus'''</span>]] 14:15, 4 August 2007 (UTC)
::::Can't really be consistent, because for a lot of spells the nature of the spell depends on who is casting it. If Moody casts Stupefy, it's a charm (called a spell for assonance); if Barty Crouch Jr. casts it, it's a jinx. At least, that's my understanding. To quote another author, "Black magic is a matter of symbolism and intent"; a spell that doesn't necessarily have deleterious effect may be either black or white depending on circumstance. [[User:Chazz|Chazz]] <small>([[User talk:Chazz|talk]])</small> 23:40, 7 August 2007 (UTC)
Good comment. I agree. --[[User:S.Örvarr.S|Stefán Örvarr Sigmundsson]] 22:05, 23 August 2007 (UTC)
:Although Avada Kedavra can never be anything but a curse. --[[User:S.Örvarr.S|Stefán Örvarr Sigmundsson]] 22:06, 23 August 2007 (UTC)
::Hmm. But Aurors are authorized to use deadly force against Death Eaters. And Molly Weasley does dispatch Bellatrix Lestrange... maybe not with Avada Kedavra, but given that she is defending her children (and later herself), is it then a curse that she uses? [[User:Chazz|Chazz]] <small>([[User talk:Chazz|talk]])</small> 22:41, 23 August 2007 (UTC)
== lmskiver's Writeup in DH chapter 36 ==
I am... impressed with this writeup. But I suspect that it is in the wrong place.
Rather than have it be in the Chapter 36 Greater Picture section, I think that a better place for it might well be in a separate section of its own, one that is linked in after the Epilogue. That should probably be done for each of the seven books in fact; I think that each book could benefit from a whole-book overview and a place in the series overview.
Any thoughts? [[User:Chazz|Chazz]] <small>([[User talk:Chazz|talk]])</small> 18:49, 1 August 2007 (UTC)
:Now that the series is complete we will need to turn a lot of our attention to the Greater Picture sections once we get all the chapter summaries in. I like the idea of adding a "overall analysis" page of some sort a little bit below the chapter listing for each book page. Is there anything else we could add besides a book analysis page? Anything we should discuss for each book? Notable events perhaps? -[[User:Withinfocus|<span style="color:#000000">'''within'''</span>]][[User talk:Withinfocus|<span style="color:#7A7A7A">'''focus'''</span>]] 19:00, 1 August 2007 (UTC)
I like Chazz's idea! It's actually what brought me to the Muggle Studies site in the first place. I had finsihed 7, and was trying to look at the Greater Picture (GP) of how each of the books played into each other, the overall themes and threads that linked one to next, and how succintly Rowling wove them!... I thought I find the shortcuts I needed in the GP section and was dismayed it was incomplete... I was searching for answers to why this? and not that? and what's the overall meaning? even, how does this relate to other literary giants like Tolkein & Lewis? I wanted input from other sources to be convinced that I was really getting it!
I found few insights online, so I was left to my own brain and long conversations with friends. Ironically, they are still catching up, but because of their questions about HP's development in Yr.5, and my trying to both explain and defend him, I had the brainstorm that erupted on your pages. Move it where you deem fit... I wasn't sure it belong here, but felt that it was important to share, for the same reasons I sought it out.
I might add that my cadre' were all Christians... I could write a whole section on how JKR, accused of Wicca and occult promotion, has woven a tale that can be viewed positively from a Christian point of view... and I was confessedly nonplussed, since I was reading for sheer pleasure and wasn't looking for it, or expecting to find it!
-[[User:Lmskiver|<span style="color:#000000">'''lmskiver'''</span>]][[User talk:Lmskiver|<span style="color:#7A7A7A">'''lmskiver'''</span>]] 23:58, 1 August 2007 (UTC)
:I'm somewhat busy lately and might not be able to fully contribute my ideas to this currently, but I would like to add a warning that any external references to other authors, religion, etc. should be kept distinctly separate from chapter summaries and the like. This is a very different world of analysis and I want to make sure it doesn't get mixed in with the content-specific analysis ''too'' much. This is a topic for advanced readers only. -[[User:Withinfocus|<span style="color:#000000">'''within'''</span>]][[User talk:Withinfocus|<span style="color:#7A7A7A">'''focus'''</span>]] 14:06, 2 August 2007 (UTC)
::Right, I can likely handle this. Question: We obviously will want a Detailed Book Analysis section; should that be right on the book page with the chapter headings, with the Intermediate spoiler warning on it, or should it be a separate section entirely, with a link pointer? Maybe a link under the chapter list? Either way would be reasonable, I think... [[User:Chazz|Chazz]] <small>([[User talk:Chazz|talk]])</small> 22:28, 2 August 2007 (UTC)
:::I like the idea of the analysis living in the book's (sub-)namespace since it pertains to just that book. I would want to add a whole new section, probably under Book Highlights, where we could create a couple new sub-pages. The links to these new sub-pages would be under an intermediate spoiler warning. If we go with this idea, we should decide if we'd like to split the book analysis up at all and if so what those sub-pages would be called. -[[User:Withinfocus|<span style="color:#000000">'''within'''</span>]][[User talk:Withinfocus|<span style="color:#7A7A7A">'''focus'''</span>]] 03:10, 3 August 2007 (UTC)
::::Gotcha re:references to other things... if it were ever done it would have to be separate stuff, and probably done via links to external wiki-pages (for all I know someone's already done it; although I bet no one has tackled the "science" thing)... I am and was just thinking out loud about possibilities. RE: the analyses... I'm the newbie here, so I respectfully defer to whatever you all agree upon; I also have no clue how to set up subpages (although I could figure it out in time, I prefer the shortcuts, which are the both of you). Just let me know in what ways you might like me to contribute to the effort. PS. withinfocus, still having a prob with my talk page link... grrr, but I have figured out the rest of my signature... hee, hee... this is fun. Thanks -[[User:lmskiver|<span style="color:67008C">'''lmskiver'''</span>]][[User talk:lmskiver|<span style="color:#e02b00"><big>'''†'''</big><sup>'''alk'''</sup></span>]] 00:26, 4 August 2007 (UTC)
:::::I've added a new section to [[Muggles' Guide to Harry Potter/Books/Deathly Hallows]] for everyone to check out. The sub-pages I linked are my ideas for good pieces of this overall new analysis topic. Add, edit, and remove as you like. -[[User:Withinfocus|<span style="color:#000000">'''within'''</span>]][[User talk:Withinfocus|<span style="color:#7A7A7A">'''focus'''</span>]] 14:40, 4 August 2007 (UTC)
::::::Looks good. I'll have to go through lmskiver's write-up to see if it needs to be sub-divided, but I don't think it needs it; it may just all fit into the Overall Analysis section. Have to create a template for it, of course, though it'll be very wide-open. [[User:Chazz|Chazz]] <small>([[User talk:Chazz|talk]])</small> 17:10, 6 August 2007 (UTC)
*reset
Now done. Looked like the write-up that lmskiver did could be broken into two pieces, character development and storyline analysis, so I put it into two sections. Also tweaked it a little... you know, editors, not happy until they've played with it. I may be wrong in how I've broken it up, but it feels all right to me at the moment... if anyone disagrees, please feel free to correct me. On the bit about why Harry did not die when Voldy did: I'm still piecing that together, it is very complex. [[User:Chazz|Chazz]] <small>([[User talk:Chazz|talk]])</small> 08:12, 7 August 2007 (UTC)
:I renamed the page to Character'''s''' to be consistent and deleted the old redirect and such. I'll try to read the content sometime soon. Why Harry lived when Voldemort died didn't see too complex to me (I figured it's just the prophecy that "neither can live while the other survives" and once Harry's Horcrux is gone there's no real connection between the two anymore and Voldemort plain dies) but how exactly Harry survived the Avada Kedavra that destroyed his Horcrux is much more complex. Thoughts? Saying "the Killing Curse just hit the Horcrux and not Harry himself" seems incomplete. -[[User:Withinfocus|<span style="color:#000000">'''within'''</span>]][[User talk:Withinfocus|<span style="color:#7A7A7A">'''focus'''</span>]] 12:21, 7 August 2007 (UTC)
::The reason it's complex is because of the interrelation. The Elder Wand cannot harm Harry because it accepts Harry as its master -- contrary to the apparent path through history, it is not murder that defeats the bearer of the wand, but forcible removal of the wand, so the wand became Malfoy's, and Malfoy was defeated by Harry. (It was Malfoy's wand Harry was holding when he defeated Voldy. Presumably the Elder Wand recognizes the wand that stood against it, rather than the bearer.) At the same time, Harry can not be killed by Voldy because of the blood linkage -- as he is using Harry's blood, he provides that protection. Which seems far-fetched, Voldy certainly had Riddle blood in him, but he quite handily bumped off Tom Sr. back in '44 or so. Then again, Tom Sr. didn't care about Tom Jr., likely didn't even know he existed. So: Voldy's curse knocks Harry into the waystation, but it is then his option whether to go on or return; and if he goes on, taking Voldy with him, there will still be one Horcrux in Nagini to allow Voldy to return. I don't know whether the creature is meant to be Voldy's soul -- recall he too is knocked out when that curse hits Harry -- or the fragment that was in Harry, but I suspect the former; the fragment, being just a fragment, would have frayed and vanished. In the other direction, then, once the soul fragment is gone, the only thing allowing Voldy to continue to live is Nagini and his own soul; and Nagini snuffs it. There is still the blood link, but that is unidirectional: Lily did not die to save Voldy, did she? And the Elder Wand still believes Harry to be its owner because nobody has forcibly disarmed Harry since he nabbed Malfoy's wand. And therein lies the entire tale, as far as I have figured it out so far... any thoughts? [[User:Chazz|Chazz]] <small>([[User talk:Chazz|talk]])</small> 20:01, 7 August 2007 (UTC)
:::I totally missed this comment; I must not have been reading RC later that day. Anyway, I think I agree with everything you've just said. There definitely is a lot there and we should definitely explain this. Some of it might be presumption but that's what Analysis and Greater Picture are for really as long as they're sound arguments and alternatives are proposed.
:::On a separate note, I formatted the new book analysis pages to what I think is a good idea for expansion. You never really start a page here with a title; there's always a small intro and so I stuck some (useless) text there to build upon. There's an intermediate warning on the book page for the section as well as one on the first section of each new page, just like how we do it on our other templated pages. Tell me if anyone dislikes this. -[[User:Withinfocus|<span style="color:#000000">'''within'''</span>]][[User talk:Withinfocus|<span style="color:#7A7A7A">'''focus'''</span>]] 20:29, 10 August 2007 (UTC)
::::I cleaned up that interrelationship write-up, though I'm still not entirely happy with it; I may hammer it again in a while, once I have re-read that section of the book. Meanwhile, I have to ask: what sort of thing do you envision for the real-world connections section? [[User:Chazz|Chazz]] <small>([[User talk:Chazz|talk]])</small> 16:46, 11 August 2007 (UTC)
:::::I thought it might contain connections to real events in the world like Grindelwald's possible connection to WWII or whatever it was. This would discuss how the author hinted at reality through the story of the magical world. This might be weak for most books so I guess it could be removed. -[[User:Withinfocus|<span style="color:#000000">'''within'''</span>]][[User talk:Withinfocus|<span style="color:#7A7A7A">'''focus'''</span>]] 20:04, 11 August 2007 (UTC)
== Links ==
Relative links have been replaced with full links. See [http://en.wikibooks.org/w/index.php?title=Special:Contributions&offset=20080228193444&limit=500&contribs=user&target=Whiteknight here]. I've managed to track the cause of this to these pages: [http://en.wikibooks.org/w/index.php?title=User_talk:Chazz&oldid=1127075 User_talk:Chazz] (specifically, the "New Page Freeze" and "Re:Bot" sections), [http://en.wikibooks.org/w/index.php?title=User_talk:Whiteknight&oldid=1126836 User_talk:Whiteknight] (Here, "Muggles' Guide Print Version" and "Test runs (Muggles' Guide)"), and [http://en.wikibooks.org/w/index.php?title=User_talk:Withinfocus&oldid=1125827 User_talk:Withinfocus] ("PDF Version" and "re:Bot"). Apparently, there was an issue of some sort when creating a "for print" mega-page. Could be a good idea to provide an outline here, to explain what was happening and why. -- [[User:Jokes Free4Me|Jokes Free4Me]] ([[User talk:Jokes Free4Me|talk]]) 18:00, 21 January 2009 (UTC)
: Actually, [[Muggles'_Guide_to_Harry_Potter/Places/Shrieking_Shack|Shrieking Shack]] has relative links. What's up with that? -- [[User:Jokes Free4Me|Jokes Free4Me]] ([[User talk:Jokes Free4Me|talk]]) 18:13, 21 January 2009 (UTC)
:: The reason for the replacement of relative links with absolute ones is part of the preparation for the print version of the book. The print version is created by first converting to PDF, and the PDF conversion script is not capable of handling relative links. As for the Shrieking Shack page, that was evidently overlooked by the automatic script, which means it may not be properly on the Contents page. I will correct that this afternoon. [[User:Chazz|Chazz]] <small>([[User talk:Chazz|talk]])</small> 20:04, 21 January 2009 (UTC)
::: Speaking as a coder, i'd rather have changed one script to add the very-welcomed feature of handling relative links, rather than update hundreds of pages, and possibly on multiple book projects too. -- [[User:Jokes Free4Me|Jokes Free4Me]] ([[User talk:Jokes Free4Me|talk]]) 13:09, 23 January 2009 (UTC)
::Okay... the Shrieking Shack page is going to be a small problem, because we have two of them. I'll check with an administrator whether we need to merge the edit history of [[Muggles' Guide to Harry Potter/Places/Shrieking Shack|Shrieking Shack]] and [[Muggles' Guide to Harry Potter/Places/The Shrieking Shack|The Shrieking Shack]]. [[User:Chazz|Chazz]] <small>([[User talk:Chazz|talk]])</small> 20:46, 21 January 2009 (UTC)
:::Update: [[Muggles' Guide to Harry Potter/Places/Shrieking Shack|Shrieking Shack]] was more complete by a fraction, so I have merged content and set [[Muggles' Guide to Harry Potter/Places/The Shrieking Shack|The Shrieking Shack]] to be deleted. [[User:Chazz|Chazz]] <small>([[User talk:Chazz|talk]])</small> 20:39, 25 January 2009 (UTC)
Also, having links end in a slash, to work around having to type them as "[...]/PageName|PageName", appears to have caused subsequent issues, and was removed as well. Pity... -- [[User:Jokes Free4Me|Jokes Free4Me]] ([[User talk:Jokes Free4Me|talk]]) 18:00, 21 January 2009 (UTC)
: Yes; the simple reason for that is that they just don't work. If an absolute link of more than one level ends with a slash, the Wikibooks display code seems to think that means we've left out the final level and redlinks, looking for a page named "[...]/PageName/" (with an empty name). If an absolute link ends without a slash, the entire absolute link displays, rather than the final link. Apparently, whoever designed that code was not prepared for the deep tree structure that the Muggles' Guide uses. [[User:Chazz|Chazz]] <small>([[User talk:Chazz|talk]])</small> 20:46, 21 January 2009 (UTC)
::So this is actually a side-effect of having absolute links. :-( Fwiw, the nicety of the ending slash was for relative links only, and then it worked best only on single-level links... -- [[User:Jokes Free4Me|Jokes Free4Me]] ([[User talk:Jokes Free4Me|talk]]) 13:09, 23 January 2009 (UTC)
== Review Standards ==
We need to decide loosely what we'll look for when marking a page as reviewed. First thoughts? -[[User:Withinfocus|<span style="color:#000000">'''within'''</span>]][[User talk:Withinfocus|<span style="color:#7A7A7A">'''focus'''</span>]] 23:40, 22 November 2008 (UTC)
:Okay -- there are three categories in which we are asked to rate things, and I think we may want to have separate conversations about each. I'll suggest that we should sign our comments in each subhead so we know who's talking.
=== Composition ===
:First is Composition. This is pretty much self-explanatory; level 1 is "correct spelling and grammar", level 2 is "good structure", and level 3 is "consistent style". All pages are at level 1 now, and most of the ones I've worked on, and pretty much all of Raven's, are at level 2. I don't know if I can claim "consistent style" because I don't know what the style should be. This is where I would like to get help from Raven, in particular. [[User:Chazz|Chazz]] <small>([[User talk:Chazz|talk]])</small>
::All of our pages are highly structured and organized, so I don't think this one will cause much trouble. Almost all pages will receive a 3 in my opinion, and the small number of 2s will most likely due to the page being empty or unformatted. We tend to have very little spelling mistakes or grammar issues, so I think we don't need to worry about this since the existing frameworks have taken care of it already. Just make sure the page has our correct framework, the proper intro paragraph and detail infobox, and has content in the correct sections. -[[User:Withinfocus|<span style="color:#000000">'''within'''</span>]][[User talk:Withinfocus|<span style="color:#7A7A7A">'''focus'''</span>]] 03:01, 24 November 2008 (UTC)
:::I can certainly work with Chazz on the "style consistency". This certainly seems a bit more abstract because, as Chazz pointed out, we don't know what the style should be, and everyone has an individual approach. Grammar and spelling are certainly good, and I'll defer to Chazz regarding grammar, as he's better at that, although there are US/UK differences, but I try to stick with the British style (which I have to guess at sometimes), as that reflects not only the books, the website. I've mainly been working on chapter analysis for all the books. I framed in the main points (as has Chazz), but I am now working on tying in the broader themes of the entire series.[[User:PNW Raven|PNW Raven]] ([[User talk:PNW Raven|talk]]) 22:20, 30 November 2008 (UTC)
=== Accuracy ===
:Second is Accuracy. Level 1 is Acceptable, level 2 is Good / Average, and level 3 is Verifiable. The areas I have been writing, summaries and such, generally are at level 2, some to level 3. I don't know if we can say any of the analysis is actually verifiable, without talking to JKR herself, so it's a definition of the term I'd be looking for here. Oh -- and lack of vandalism fits in this category as well; vandalism is, by its nature, inaccurate. [[User:Chazz|Chazz]] <small>([[User talk:Chazz|talk]])</small>
::We might want to just shift the numbers around for our uses since we're working on fiction. Unless a brand new editor has added something I think we can assume 2 in most cases and 3 once another user has come across the detail. For instance, if a new user adds a supposed fact then that's really unreviewed or at a 0. We can pass by 1 and once a solid user like one of us comes in and adds a detail it will be treated as a 2. When another one of us passes through and verifies the reference then let's go with 3. -[[User:Withinfocus|<span style="color:#000000">'''within'''</span>]][[User talk:Withinfocus|<span style="color:#7A7A7A">'''focus'''</span>]] 03:05, 24 November 2008 (UTC)
:::"Accuracy" on the analysis sections does seem a bit trickier, as by its very nature, it is someone's interpretation of the author's work. Certainly there are facts associated with it that need to be accurate, and for the most part, we've achieved a good level of correct information combined with opinion. I agree with Withinfocus' suggestions.[[User:PNW Raven|PNW Raven]] ([[User talk:PNW Raven|talk]]) 00:04, 2 December 2008 (UTC)
=== Coverage ===
:Third is Coverage, level 1 is Acceptable, level 2 is Good/Average, and level 3 is Great. Again, the analysis is an area where there doesn't seem to be a clear idea of what the standard is. Can coverage be even Good if the analysis is lacking? I can write everything that Arthur Weasley did, but without analysis as to why, or information about how the author was building Arthur's character, can it be a good article? [[User:Chazz|Chazz]] <small>([[User talk:Chazz|talk]])</small>
::This is where I think we will have the most work. Not too many of our pages will have a 3 from the beginning. We can go through the same iterative process as the above section maybe. Undeveloped articles start of course at unreviewed or 0, we make a first pass which sets us at 1 (most of our pages can default to this), and then to go to 2 or 3 I think Chazz, Raven, or another seasoned editor needs to make some swoops on it. The Trio most likely represent 3s. Maybe a 2 shows significant detail, not much analysis but some, and overall a complete but not full-bodied page. A 3 can be all the final touches including Raven's copyediting and a full analysis / greater picture. -[[User:Withinfocus|<span style="color:#000000">'''within'''</span>]][[User talk:Withinfocus|<span style="color:#7A7A7A">'''focus'''</span>]] 03:09, 24 November 2008 (UTC)
:::I will suggest that the Trio are not at a 3 level yet. Hermione may be a 3 for coverage, though I think she needs more analysis and greater picture yet. Ron is definitely only a 2, and I suspect Harry is only a 1 -- I forget whether I've had the chance to give him the full treatment yet. [[User:Chazz|Chazz]] <small>([[User talk:Chazz|talk]])</small>
::::On re-examination I find that Harry is about 1 on coverage, as is Ron, in my opinion. Hermione could be a 3, but I think she's closer to 2 as analysis is still a little scant. Mike.lifeguard reminds us that 4 is meant for Featured Books and may not be appropriate for us yet... [[User:Chazz|Chazz]] <small>([[User talk:Chazz|talk]])</small>
Is it time to start reviewing on the basis of what we have here? Raven? [[User:Chazz|Chazz]] <small>([[User talk:Chazz|talk]])</small> 20:29, 24 November 2008 (UTC)
Based on what we have here, '''I think it is probably time to start reviewing''', at least as we edit. We have over seven hundred pages... it would be good to start getting them reviewed. [[User:Chazz|Chazz]] <small>([[User talk:Chazz|talk]])</small> 22:16, 1 December 2008 (UTC)
Guys, this is a great description of how these things should be used. Can one of you put that in a project page (maybe move [[Help:Article validation]] too [[Wikibooks:Article validation]] and add it to that page?) double-checking that stuff specific to ''this'' wikibook is generalized to we can apply it more widely? Thanks in advance. '''— [[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 01:33, 27 November 2008 (UTC)
:We could... but bear in mind that it is also wrong. Looking at [[Help:Article validation]] I see that what I had thought was level 1 is actually level 0; as an editor, rather than a reviewer, I can't even see level 4 in the drop-down boxes. Which means that a lot of my reluctance to select level 4 is invalid. In any event... I'll look at this tonight, correct that here, and then see if I can generalize it. [[User:Chazz|Chazz]] <small>([[User talk:Chazz|talk]])</small> 01:44, 27 November 2008 (UTC)
::Now revised to have the correct levels, to match what is on the help page. Next, to see if I can take out the MG-specific stuff... but it all looks MG-specific... [[User:Chazz|Chazz]] <small>([[User talk:Chazz|talk]])</small> 07:18, 27 November 2008 (UTC)
3xcgnnq4gz7dpbo1ocqhr5x1c9ltx9x
Wikibooks talk:Policies and guidelines/Vote/Archive 1
5
60778
4640091
4585048
2026-06-13T13:00:57Z
ShakespeareFan00
46022
4640091
wikitext
text/x-wiki
{{ArchivePage}}
'''This is a historical archive of old threads of September to November 2005 from [[Wikibooks talk:Policy/Vote]].'''
----
==Prohibitions For Immediate Exclusion (Speedy Delete)==
We should also include all of the [http://www.wikicities.com/wiki/Prohibited_content Wikicities' prohibited content].
:That policy includes Hacking/cracking content. To interpret this I would say that it's ok for a book to be about computer security and how to secure your code against exploits, but it's not ok to list flaws specific to any system nor is it ok to include scripts or other instructions to hack in to a system.
We would need to translate some of the policies stated also because WikiBooks automatically excludes more (example: all sales are out, so the specific sale exclusions enumerated would be redundant). These are from the Google AdSense restrictions, actually. But since our wikis are hosted in California, we must be very strict about following the law.
==Qualification on Courses==
How-to topics related to internationally-recognized clubs or sports organizations should also qualify as a "course." Thus, Chess and Poker books would be allowed since such organizations and sponsored competitions exist. Of course, such books should only be included provided that they are instructional and can provide at least two related resources. <s>As a standard, the library of congress must already have two books from different authors/publishers on the subject if it is to qualify as a course (or course sub-topic) in this clause.</s> Where the resources are published books, reputable websites, news articles or other external validation. One implication of such a rule is that more than one person should be able to know how to write the book: if the material is insular enough it's in only one person's head it needs to find another home on the web.
Excluded would be hobbies that count only as entertainment. So, playing video games or watching television aren't real hobbies, while stamp collecting, ham radio, bird watching, model rocketry and sewing are.
A further qualification is that we should also include companion resources, i.e. those that are helpful to courses but might not ever be assigned as the primary text. For example, a Conceptual Guide to Physics might not be used by any courses (because, say, it doesn't use any math) but would still be valuable for people still struggling with the concepts (in addition to the math). In fact, just providing simpler explanations might be the valuable role wikibooks will play in the long run. (So, even if people keep on buying regular textbooks, at least they'll still turn to Wikibooks for another explanation of difficult topics.)
==Original Research is Excluded==
Any work that constitutes original research should be excluded. One criteria to use for this is if two different source materials can be identified (either published papers in journals or conferences, books, or content on reputable web-sites). This is not the same as ''requiring'' references, however. For example, an introduction to orthodox economics will have content that is so well-known and agreed upon (the laws of supply and demand don't change) that it would be trivial to find two references. Also note that content could be very original in other senses: An introduction to programming could use as examples programs that are entirely original. Just so long as the book is based on previously-researched software engineering techniques, it's ok. (Perhaps the original Extreme Programming book would not have been welcome under a rule like this, until the first peer-reviewed publication of XP was released.) What needs to be avoided are personal anecdotes or stated opinions.
: Well, does that mean that we have to downgrade our [[Ada Programming|Ada 2005]] tutorial - which just won [[Wikibooks:Book of the Month|Book of the Month]] - to an Ada 95 tutorial because Ada 2005 is so new that there is no other Ada 2005 tutorial available and the [http://www.adaic.com/standards/rm-amend/html/RM-TTL.html Ada 2005 ISO Standart] is only a ''draft''. Or would an ''draft'' ISO Standart be enough "prior art". Personaly I would find it sad if Wikibooks excluded itself from beein the first in any particular arena. In fact: Beeing the first would show how usefull Wikibooks kann be because we can react faster to new ideas (or ISO Standarts) then other media. --[[User:Krischik|Krischik]] 07:37, 6 September 2005 (UTC)
::I think we need to make the scope of this ''proposed'' rule a little bigger. Your Ada book is not original because ''there are tens of thousands of programming language books''. If the book were about Ada 95 and how to talk to dead relatives, then it should be excluded because no reputable source has that (in any programming language!). But if it follows the form of existing books, then it's ok that there's only a draft standard (because, as you say, beating the press to the punch is useful). The purpose is to exclude people inventing new ideas and creating books on them. Supposing someone reputable made a new idea and wrote about it, we should allow it. But the idea really is to exclude the crackpots, so there's probably a better way of doing so. [[User:Mshonle|MShonle]] 15:02, 6 September 2005 (UTC)
::On further reflection I guess it's the same quagmire Wikipedia deals with in determining "notability." Pehaps the VFD process will still be needed, though it would be nice to go directly to a policy to exclude bad books. [[User:Mshonle|MShonle]] 17:49, 6 September 2005 (UTC)
:Strictly speaking this would exclude some potential "how-to" and craft books. I know the one I started, 'Down'n'Dirty Blacksmithing' would not qualify 'depending on your definition of orignial research'. Most "how to" is based on the personal experience(s) of the author(s): that's the point and the difference between that and "end user documentation". People are looking for techniques and procedures from someone who has done it before. And the interesting possiblity with a Wiki "How To" is that you get collaboration. Which means you will have multiple ways to "defur the feline" ... which is a good thing as far as most people into arts and crafts are concerned.
:The blacksmithing book is not based directly on published research. Yes, there is a reference to a "dirt" forge on line, vaguely. And there are references to using a vacuum cleaner for bellows. And I can point you to a website that has odd ways of creating an equivalent of an anvil. Has anyone put all those bits together before I did it? Probably not in quite that way. Does my doing it and at the request of others putting it into writing qualify as writing from orginal research? Could be.
:Yet to date the only comments have been encouraging. The only complaint is an e-mail that I haven't done more with it for awhile. The main reason I haven't done more with it is that I keep hearing that I shouldn't have "posted it until it was finished", that I "link to places outside of Wikibooks", and that I was cautioned that it was borderline "original research". [[User:Erraunt|erraunt]] 20:26, 6 October 2005 (UTC)
::Blacksmithing has been practiced for centuries, if not millennia, so a book on it would not be original research. Probably many other people are out there using the same techniques that you advocate. If you ''do'' have something original and all your own, then we would require that you've actually done it and can repeat it (otherwise, we'd be making claims that aren't verifiable, or at least have not been verified once). Including pictures could be helpful in showing that "it can be done." But it's strange to me that people would tell you that you should delay posting it... many books have been started as very small stubs that have grown and grown (usually grown by a small group of people). Perhaps the issue is that it's not in a state where others could contribute meaningfully to it yet? But collecting together scattered information is one of our primary objectives. At least, provided that the information is more than just information: That it has real exposition, that it can be read from start to finish, and someone could reasonably learn from it. --[[User:Mshonle|MShonle]] 22:44, 6 October 2005 (UTC)
::I hear what you're saying, but still pose it as this cuts a couple of ways. While I agree with you that what I advocate in my book is more "evolution than revolution" some could still challenge it as "original" and make a case. They probably won't because it's "cool". But there is the "other hand" (and if you're working on policy you have to think about all hands and sometimes feet) and that is that if what I started is "evolution" not "revolution" (i.e. orignial research) then perhaps their "original research" is "evolution" too.
::As for the state of the book itself ...
::I think it is at a place where others could contribute, but I don't know that there are that many who feel comfortable enough to do so. I know it needs photographs and drawings which I haven't provided 1) because life has been going on, and 2) since there seem to be changes in the wind, I want to be sure that the effort will not be thrown out after I go to it. It is really hard to have an idea if what you're doing is "in or out".
::Which brings me to the comment I've seen in the Staff Lounge where some advocate "you should only put a book up once it's finished". That has always struck me as counter to what Wiki sites are about. After you hear that a few times, after you realize you've spent *another* 45 minutes trying to grok the policy stuff to figure if what you post is going to have better than a 50/50 shot of surviving the year, after you've spent another hour trying to figure if the cool forking idea you have is or is not valid and not having a clue if it is or not, and debating with yourself if it's worth just doing and risking the wrist slap ...
:: Yes, that sounds pretty crazed. And it's what I go through every so often ... and I realize often enough that just trying to figure out if it's OK to do takes *longer* than just doing it too often. And that's both my beef, and why I don't change stuff more. Too much policy, too hard to find, too open to interpretation and too arbitrarily enforced. I'm neither an arnarchist or a totalitarian ... but this middle ground is looking pretty weird. [[User:Erraunt|erraunt]] 14:45, 7 October 2005 (UTC)
The "No original content" rule cripples anyone doing a book on something new. It's appropriate for wikipedia, but the goal here is reference texts: do we really want to limit ourselves to producing obsolete ones? I think what this rule is really trying to achieve is that people (a) don't produce reference books on off the wall theories such as orgone energy & (b) ensure the facts in their books are supported. I think this is what we should be targetting with the policy, not original works per se. [[User:Irrevenant|Irrevenant]] 09:41, 15 November 2005 (UTC)
==Implications to existing books==
The K-12 + Universities + an organization's "Courses" rule should leave a very wide window for WikiBook writing. I think I'd be happier if the only gray area we had to contend with was if Monopoly is really a sport (sponsored competitions do exist) than the alternative of contending with books on cheating or blowing up people.
:I find I'm more in the "non-fiction" camp. I see value for Wikibooks as a source for educational materials. I do not think what form those take should be so strictly defined as that limits creativity. (Will discuss this at length but this is not the place.) "Instruction" for someone like myself who has been an *educator* for some years and worked hard to communicate the difference between that and "instructor" is a rather limiting word. By the Wikitionary definition it's about teaching a skill or facts and knowledge. If we use a narrow construction of "textbook" and "instruction" many books have to go away from here. If we continue to narrowly construct our definitions there is less and less that would qualify, and frankly what remained would be very drab.
:Try writing something that is just facts, neutral point of view, *and* engaging. [[User:Erraunt|erraunt]] 21:31, 6 October 2005 (UTC)
::Note that the above idea of following "courses" has been abandoned (by myself, the one who first proposed it). The concrete policy suggestions are a better item to talk about (the directly enumerated section, on this talk page) as it has been debugged from these initial first stabs at making policy. --[[User:Mshonle|MShonle]] 22:31, 6 October 2005 (UTC)
Any books that do get moved should find a place on wikicities (if WC will not take them, then they certainly have no business here either). We should leave notices on each of the pages redirecting them to their new locations. I think the game walkthroughs and the jokebook would be required to be removed under this policy. But a loss for us is a win for wikicities: because we won't be giving them the bad stuff, we'll be giving them the good stuff.
I would appreciate it if anyone could let me know what other books could be affected by these policy changes, in which case I might need to think about expanding the policy even more. [[User:Mshonle|MShonle]] 04:39, 3 September 2005 (UTC)
:For starters, I would very much love to keep [[Super NES Programming]]. There's also [[Blender 3D]], [[Raising Chickens]], [[Knowing Knoppix]], [[Beekeeping]], many more. There could be enough material to teach a course on any of these, but the target audiance is simply so narrow that it's never been done. IMO, there is even room for [[Cellular Phone Programming]]. —[[User:Snargle|Snargle]] 18:30, 3 September 2005 (UTC)
::That's a good point, instructional resources for hobbies should be included too. There are courses at 4H clubs that would cover some of these books. As for the IT books, there certainly are courses that teach SNES programming in the industry (at least, there ''was'') and 3D modeling and Linux admin are also courses. We need to think of a good definition of hobby, however, so as to include international clubs and organizations, but to exclude some other hobbies. Also, I do believe some universities teach cell phone programming. [[User:Mshonle|MShonle]] 18:48, 3 September 2005 (UTC)
:::Amen to that. My local library has 3D Studio Max books, Gimp books, Photoshop books.... so why not Blender books? --[[User:Spiderworm|Spiderworm]] 18:30, 7 September 2005 (UTC)
::::I agree with Spiderworm here.. there is no way the Blender 3D book should be excluded. It was book of the month in July. Doesn't that tell you something about its importance? --[[User:Desoto|Desoto]]
::All of you should be assured that I don't think there's a single person here who wanted to see the Blender book go. Not a single person. Part of the reason there's a list of books below is to show what we ''mean'' by these policy ''proposals''. As you've seen, a proposal is hard to word properly without excluding obviously good books (and at the same time without including obviously bad books). So, please, no cause for alarm here. (BTW, Desoto, are you a WP user? There's no account here with that name, and your message was listed as an anon IP.) [[User:Mshonle|MShonle]] 19:16, 7 September 2005 (UTC)
:Mshonle, I have an issue with a certain proposed guideline. It would knock out [[Super NES Programming]], and maybe [[Blender 3D]] and [[Knowing Knoppix]]: ''As a standard, the library of congress must already have two books..'' There haven't been any books on snes programming because the information has been restricted by nintendo, and the only info has been in the form of docs produced by hobbyists. Blender and Knoppix books just might not be profitable. Also, obscure languages might be excluded. Wikipedia, wikinews, wikiquote, and wikispecies can have original content based on existing data, why not wikibooks?
:If the issue is thet obscure books would become abandoned in early stages, then why not give VFD(or whatever) the power to delete those? —[[User:Snargle|Snargle]] 01:05, 5 September 2005 (UTC)
::Perhaps the two book requirement is too restrictive. But note that Nintendo itself would sell SNES development kits, and not just hobbyists. But there are plenty of books on programming embedded devices, on using operating systems and on using 3D modeling programs. It's not that there should be ''that particular book'' in existence, but that it's a sophisticated enough genre that legitimate books ''like it'' exist. The issue isn't obscurity: it's about keeping crackpot books out, but to do so fairly we need a solid rule, and not just arbitrary decisions. Part of the reason I provided the list of books below is just to show concretely what I'd like the new policy to imply. For example, the how to tie a tie module is great, but it's not long enough to be a book. However, it would be a fine chapter in a western etiquette book. I think ideally, we should not have a miscellaneous section either. [[User:Mshonle|MShonle]] 01:53, 5 September 2005 (UTC)
::I struck out that section... it was a bad idea. It looks like we might be getting closer, though. [[User:Mshonle|MShonle]] 05:00, 5 September 2005 (UTC)
:Also, something ought to be done to prevent dumping. --[[User:Snargle|Snargle]] 18:47, 3 September 2005 (UTC)
::Dumping in the sense of getting material that WP or Meta doesn't want? [[User:Mshonle|MShonle]] 18:48, 3 September 2005 (UTC)
:::Yeah. Not really relevent here, though
:Something else—I started a [[DIY]] wikibook today and added some small/orphaned/transwikied modules to it(including the pykrete bong. Not really illegal IMO). I'm not sure whether it would violate the ''Must be taught as a serious class'' rule. Would it compare to an electronics class or a shop class? Would ''Western Etiquette'' violate that rule as well? —[[User:Snargle|Snargle]] 21:44, 5 September 2005 (UTC)
::I think any books that bring together too-small-to-be-books chapters should have focus and a specific topic. The problem that I see is that some projects, such as the Van Dwelling book, are very interesting but fail to have the course-like nature. Thus, I'm making an additional section on quirky books that stretch the boundaries of "course" but still are instructional because they do have validation and are applications of general scientific principles.{{pbri}}Some of the topics you have in the DIY book might be better categorized separately as Sustainable Living (canning, bio-diesel, making soap), Home Electronics Projects (building a projector, building an antenna) and Do It Yourself Renaissance (sword making). (Even if making a bong is legal, wikibooks shouldn't be the place for that.) So, given that I think these books would be appropriate, although quirky, we should think of a good reason to keep them. [[User:Mshonle|MShonle]] 23:51, 5 September 2005 (UTC)
===Existing Books that would be removed===
For advocating illegal activities or other dark gray areas:
* [[Manual of Crime]]
* [[How To Build A Pykrete Bong]]
* [[How to Cause Havoc]]
* [[Acetone peroxide synthesis]], [[Chemical synthesis/Thermite]] and others in [[Chemical synthesis]]
** No, but they must not advocate. [[User:AlbertCahalan|AlbertCahalan]] 02:51, 23 September 2005 (UTC)
* [[Acquiring Roms]]
* [[A guide to cheating during tests and examinations]]
For failing to be sufficiently instructional resources:
* [[Law Of Time]]
* [[Getting a girl (for guys)]]
** No, unless you intend to ban all unfinished books. [[User:AlbertCahalan|AlbertCahalan]] 02:51, 23 September 2005 (UTC)
* [[Getting a boy]]
* [[Jackie Chan]]
* [[United Arab Emirates]]
* [[Conworld]]
* [[Whole Earth Catalog]] (also need to verify copyrights permission)
* [[Business ideas]] (not a book)
* [[Errata]] (a repository, not a book; possible WC?)
* [[Neopets]] (an almost infomercial for neopets.com)
A loss for us, but a big win for Wikicities:
* [[Freeware]] (a resource for finding freeware)
* [[366 Photographs on the Beach]] (to be moved to Wikicities, if possible)
* [[In Memoriam: September 11, 2001]] (to be moved to [[sep11:In Memoriam|In Memoriam: September 11, 2001]])
* [[Jokebook]] (to be moved to Wikicities, if possible)
* [[Wikibooks:Computer and video games bookshelf|All video game walkthroughs]] (to be moved to Wikicities)
* [[Total Annihilation]] (another game guide)
===Existing Books that possibly would be removed===
For being original research or lacking external validation:
* [[Developing A Universal Religion]]
* [[Aeon Shift Kit]]
* [[Qrai]]
* [[Triangular Earth Calendar]] (original research deleted from Wikipedia, also available [http://www.i8-d.com/calendar.html elsewhere] on the web)
For either not being sufficiently developed, or not large enough to exist as a book:
* [[Keeping a Journal]]
* [[Scouting:BSA Merit Badges]] and [[BSA Merit Badges]]
* [[UFO s in US]] and [[Roswell]] (although books on UFOs should be allowed, as there are serious studies in the cultural and astrobiological areas)
* [[Auctions]]
===Existing Books that are boundary cases===
Quirky books that stretch the boundaries of "course" but might be worthwhile anyway:
* [[Van Dwelling]] (displays a love of knowledge and instruction)
* ... other odd project how-tos
Content that perhaps could be merged into a single book on Western Etiquette:
* [[Dealing with calling tech support]]
* [[How To Tie A Tie]]
* [[Letter writing]]
Could exist with heavy revising:
* [[A guide to cheating during tests and examinations]] could still exist if it were revised to be NPOV with regards to the very legitimate and important POV that cheating is unethical (in fact, the minority view that cheating is OK might not be important enough to warrant that a work be neutral to its point of view). For example, the book could suggest that teachers print up different copies of the examination and distribute them so that a group of students next to each other would all have different tests. However, it would need to cite some primary or secondary sources to avoid being anecdotal.
== "eternal stub" semi-books should be merged ==
External stubs shouldn't even be given their own books I think, they should be given a [[Wikibooks Imports/Whatever is being added]]. That way the information isn't taking up random spots, but instead all put in one spot from which they can be moved to books that are appropriate and supported by a contributor. This would also require that within the editing part of Wikibooks a notice be placed telling people where they should place imports instead of adding things willy-nilly. Of coure, that may simply be me. [[User:65.94.52.193|65.94.52.193]] 22:46, 5 September 2005 (UTC)
== A directly enumerated WikiBooks policy ==
Everyone, please read and consider the following. The list of our sister projects needs to be spelled out (it already is elsewhere, so I just call it [The List...] here), but everything I've written below is directly based on the books to be excluded list and our conversations.
<div style="border:1px solid gray; padding:6px; background-color: #EEEEDD;">
===Prohibited Content===
Any WikiBook must follow rules similar to the Google AdSense/Wikicities [http://www.wikicities.com/wiki/Prohibited_content prohibited content] policy. WikiBooks has extended and consolidated these prohibitions and should be considered separate.
The following is prohibited from WikiBooks:
* Excessive profanity
* Violence, racial intolerance, or advocation against any individual, group, or organization
* Hacking/cracking content with specific cracking details/exploits or scripts. Any computer security auditing instructional resource must not venture into the territory of how to perform a specific crack. However, it can discuss principles behind cracking techniques and how to guard against them
* Illicit drugs and drug paraphernalia
* Pornography, adult, or mature content
* Gambling or casino-related content; except for resources that describe the sports abstractly without any participation in actual games or betting
* Any other content that promotes illegal activity or infringes on the legal rights of others, including (but not limited to) content condoning harassment, intimidation, property destruction, espionage, terrorism
* Any sales, promotion or advertising of materials whatsoever, spamming, pop-ups, pop-unders or exit windows that interfere with site navigation, change user preferences, or are for downloads, including excessive, repetitive, or irrelevant keywords in the content or code of web pages
Any material that qualifies under any of these headings are subject to speedy deletion, which does not require a vote or consensus discussion. An administrator can delete these materials immediately upon discovery or via the suggestion of a non-administrator.
===Exclusions===
The following works are not allowed on WikiBooks:
* Any work that would be categorized as fictional
* Any work that would be considered original research or otherwise unverifiable
* Projects seeking to build communities or political campaigns
* Any entertainment guides or hobby guides that are based on created works of fiction
* Any fan guides or actor/director/producer/writer/etc FAQs or guides
* Personal journals or narratives
* References that are only records of facts, dates, persons, charts, etc that lack instructional value
* Any work that is better suited for a WikiMedia sister project is best directed there [The List...].
Qualifications:
* Examples in otherwise non-fictional textbooks can use fictional characters to demonstrate principles. For example, an economics text book can consider hypothetical transactions between Alice and Bob; but there should be no plot elements or character development beyond what is necessary for the example itself.
* The exposition, order of presentation, and examples used in an otherwise non-original work may be original. For example, if you have a unique way of describing how a known algorithm works then that unique description won't be considered original research.
* The WikiBooks community itself, however, should be built and supported!
* While video games are themselves works of fiction older games such as chess and Go should not be considered works of fiction, even though both games are themselves creations based on folk interpretations of war
* Annotated versions of copyleft source materials (e.g. Shakespeare) are allowed because there are obvious instructional uses, as are study guides that provide plot summaries of works of fiction-- but in each case the books must conceivably be assigned reading for some course
* Purely instructional guides inspired by works of fiction are allowed, but the guides must be primarily educational (e.g. as in a Science Guide to Flaws in Movies)
* Biographies on notable individuals may be allowed, but they must provide references to all sources used and have no annecdotes based on personal or indirect contact with the individual. The individual must be notable enough so that WikiBooks would not be in danger of libel or tort action.
===Inclusions===
The following areas are suitable topics for WikiBooks:
* Any topic that is taught as a serious course, from kindergarten up to and including the university level, is included, provided that the writing itself is written from a neutral point of view (NPOV) and does not violate the immediate exclusions set forth. Cookbooks qualify because there are legitimate cooking courses.
* How-to guides (provided they are not in the domain of prohibited content or are based on specific works of fiction) can be created, but they should demonstrate many opportunities for education and learning about the "classroom of the world". NPOV culture guides are permitted, but travel guides are not allowed.
* Guides that introduce, explore, and teach hobbies and/or vocations, provided the guides do not conflict with the prohibitions or exclusions stated previously.
===Standards of Quality===
* All books must have a clear direction and be on a topic signifigant enough to warrant the scope of a book.
* Books must be on topics where it is concievable that another collaborator can contribute to the project.
* Content that is too small, "mini-books," or "bookless-chapters" must be merged into larger works.
* Books cannot be collections of miscellaneous topics: Anything discussed must have some common theme warranting it to all belong in the same book.
</div>
Note that the above is proposed. Pick apart any weaknesses you can see, as this must be as strong and fair of a policy possible.
Feel free to list books that you care about and I'd be happy to describe how I would see that book fitting in or not fitting into the above policy. (For example, I would count Bee Keeping as a hobby or vocation guide, because people keep bees as a hobby or as part of their job.)
--Thank you, [[User:Mshonle|MShonle]] 05:20, 8 September 2005 (UTC).
===Replies, Discussion, Changes Done to Wording===
*I think this is possibly the clearest and least confusing statement of Wikibooks direction/policy I've read. Subject to further discussion I think we should adopt this as our proposal, after which we need to have a sitewide ad for a vote. Being a contributor mainly to foreign language instruction books I'm also glad we have the "fiction in examples" clause in this policy, which has been a point of concern for me. [[User:Serge|Serge]] 05:29, September 8, 2005 (UTC)
* ''update'': changed qualifications to allow annotated texts more clearly; changed celebrity FAQs to celebrity FAQs and guides; change qualification to make study guides more explicitly allowed; changed "Immediate Exclusions" to "Prohibited Content" and "Other Exclusions" to "Exclusions". [[User:Mshonle|MShonle]] 14:09, 8 September 2005 (UTC)
*I have a few issues with a few points here.
**[My replies are embedded in <nowiki>[]</nowiki>'s like this. --[[User:Mshonle|MShonle]] 20:40, 9 September 2005 (UTC)]
*1) Hacking/cracking. I recently read a brilliant book on reverse engineering. But in order to teach the subject, one has to go through and show by example. Saying "disassemble the program and figure out what it does" doesn't cut it. It would sadden me if such a book would not exist on wikibooks
**[I believe the above policy would allow reverse engineering. It just can't become a resource to enable someone to break into a computer (this is hacking the sense of cracking; not "hacking" as in making cool Lisp programs). For example, a computer security audit book can (and probably should) detail buffer overflows, but the examples would have to use fake machine-code values and fake assembly instructions, so that someone couldn't just read it an have everything they'd need. For example, it would need to be "here's how it can be done in theory" and ''not'' "here's the hexvalues and portnumber and a small perl program that will let you take over this website". --[[User:Mshonle|MShonle]] 20:40, 9 September 2005 (UTC)]
***Ok, so if I was to write an example program for such a book that has no real world use, it would be ok to reverse that as an example? I can live with that.--[[User:Javariel|Gabe Sechan]] 21:01, September 9, 2005 (UTC)
****That would be perfectly fine. We just don't want a wolf in sheep's clothings, dressed as an instructional guide but is really just a resource for script-crackers to go to. Cutting out that information would mean there'd be no way for that content to sneak in (at least not until we revert it ;-). --[[User:Mshonle|MShonle]] 22:54, 9 September 2005 (UTC)
*****This is a touchy subject for me personally. I'm writing [[Programming:Serial Data Communications]], which goes into some very specific issues that can be, from a certain viewpoint, to "venture into the territory of how to perform a specific crack". I've already written specific code examples on how to directly access I/O ports on a Pentium CPU, and what kinds of things can potentially screw up the OS of a computer, or even how to permanently damage the computer through a piece of software. A general policy like this strongly discourages hard technical discussions, even though this Wikibook is not directly about how to exploit other computer systems, if you understand the subject matter in this Wikibook you are certainly going to be capable of using that knowledge to intercept data communications (explicitly [[Serial_Programming:RS-232 Connections#Protocol_Analyser|talked about in this section]]). There are very legitimate and legal reasons to use this knowledge, but it can be considered a cracking tool as well. Should this banned? I think not, but the policy is vague enough to force me into rewriting or removing this section. I think deliberate discussion of performing illegal acts should be banned in general, but an explict policy against hacking is going to drive technical books about computers away from Wikibooks. A How-to hack the Federal Reserve computers or the Pentagon should be banned together with a Wikibook about how to kill the President of the USA. In both cases they are deliberately written to break the law and do harm. Hacking books can be used as an example of encouraging illegal acts, but should not be the focus of the policy. A How to smuggle Cocaine into the USA would be illegal. How to grow Marijuana is marginal but as pointed out below would be considered legal in some areas and under some restrictions even in the USA. If that Marijuana Wikibook goes into how you can evade DEA enforcement, the Wikibook has gone too far. Discussion on how to get DEA permits, on the other hand, would be not only acceptable but encouraged. I just hope you don't have to be a licensed "hacker" in order to program computers in the future. --[[User:Robert Horning|Rob Horning]] 04:00, 16 October 2005 (UTC)
*2)Drugs. I've said before- Wikibooks is an international site. Drugs are illegal only in some countries. Why should someone in a drug legal country (say, the Netherlands) be prohibited from using the site because its about something thats illegal in America?
**[Our site is run from California, and we should stay clear on the side of the law. It is somewhat of a lowest-common denominator issue. People from the Netherlands are still free to use the site, just not free to discuss the finer points of bong-creation, which is probably not appropriate for a textbook project, and I'm sure there are numerous resources on the Internet elsewhere. --[[User:Mshonle|MShonle]] 20:40, 9 September 2005 (UTC)]
***Talking about it isn't illegal, thanks to the first ammendment. Prohibiting people from using the site to make buys/sells would make sense, but disallowing any content at all due to the laws in one country does not seem like a good idea to me. If talking about it was illegal and would get the servers shut down you'd have a point for practical reasons, but that isn't the case. --[[User:Javariel|Gabe Sechan]] 21:01, September 9, 2005 (UTC)
****Can you think of a better wording? The policy proposal we're talking about here is fine with books about, for example, the physiological effects of drugs, about drug enforcement policy, and books that talk about the drug war and its critics. Some people want to draw the line for what is a wikibook at "if it's a true fact, it's acceptable." But I'd rather draw the line in a more academic context (although the proposal allows for much more than just what would be labeled academic). Where to draw this line is part of this whole discussion. I think getting into drug culture, even if it's creative instructions for making bongs, would lead us too far astray from purely educational content. We can accept many non-purely-academic materials (like a book on the board game Monopoly), but if we go too far it can be hard holding back the line and then we might see more books like the Manual of Crime. There certainly are places on the web where talking about making bongs is appropriate. My own opinion is that wikibooks doesn't need to be that place. --[[User:Mshonle|MShonle]] 22:54, 9 September 2005 (UTC)
*****[Also, issues of what we feel is appropriate instructional resources or "what is a wikibook" issues aside, the advantage of including this clause is that it could mean any wikibook would be more closely aligned with wikicities policy. It's not a 100% fit, but there would be advantages in a closer alignment of WB and WC policy. I myself would want to see a more compelling reason to accept paraphernalia content other than just "if it's a true fact, it should be allowed" because we are already invalidating that argument by the very exclusion of the Manual of Crime, which spawned this discussion (which probably should have happened a year ago with the Getting a Girl issue, but we instead decided to put it on the backburner). --[[User:Mshonle|MShonle]] 22:54, 9 September 2005 (UTC)]
*3)Casino books. So sue me, I like a good game of poker. So a book on how to play poker, which would have to go into betting strategies, would be disallowed? It seems very arbitrary. Even more so than the drug one- playing poker with friends isn't illegal anywhere.
**[Books ''on playing'' poker are allowed. There just can't be a "book" that lets you ''actually play'' poker with others. Not that a wiki would be a good way to play poker, but a wiki could be used to place bets, say, on horses or sports games. This policy would just be saying that would be an inappropriate use of ''this'' wiki. Betting strategies et cetera is great content, and should be allowed, provided there are some appropriate sources or resources, like math, probability, psychology, or game theory used, instead of just relying on anecdotal experience.
--[[User:Mshonle|MShonle]] 20:40, 9 September 2005 (UTC)]
***Ok, that sounds good to me. Playing isn't a book at any rate.--[[User:Javariel|Gabe Sechan]] 21:01, September 9, 2005 (UTC)
*4)Fan guides- whats the scope that is and isn't allowed here? Are all autobiographies disallowed, or is this more a POV and depth issue? I can agree with the latter, but not the former.
--[[User:Javariel|Gabe Sechan]] 20:38, September 9, 2005 (UTC)
**[I think there would be some major NPOV issues with ''auto''biographies, and they shouldn't be allowed. But biographies on notable individuals I think should be allowed. I would appreciate if you can help suggest a better wording. The current wording is: "Biographies on notable individuals may be allowed, but they must provide references to all sources used and have no anecdotes based on personal or indirect contact with the individual. The individual must be notable enough so that WikiBooks would not be in danger of libel or tort action." The part about tort action basically says that you can't make a book about the head of your company that would go into details that would be considered slander or libel. We can say many things about Napoleon or Newton, for example, without fear of tort. But saying things about your landlord, no matter how true they are, is too risky for a book (not that your landlord is likely to be notable). Issues of slander or libel are less of a problem the more notable someone is, and that is one of the costs of celebrity. A biography of Bill Gates, completely with his arrest mugshot, would be allowed. A biography of someone less notable with a mugshot might be considered slanderous. --[[User:Mshonle|MShonle]] 20:40, 9 September 2005 (UTC)]
***Bleh, how did that auto sneak in there? Asleep at the keyboard, I'm not *quite* that arrogant :) I have no problems with that as its written, I missed the bio part the first time through. --[[User:Javariel|Gabe Sechan]] 21:01, September 9, 2005 (UTC)
*Added "property destruction" to list of illegal activities, as per Kellen's message. [[User:Mshonle|MShonle]] 17:53, 19 September 2005 (UTC)
==Not found in libraries==
Is it just me, or is this a really arbitrary or hard to enforce way of defining things? First off- what type of library? My college library had all types of books on dead languages and obscure computer programs. For that matter, it had a subscription to playboy, courtesy of alumni Hugh Heffner. For that matter, my local library does indeed have video game guides. They're fairly popular.
If we want to exclude some content, we need to decide what it is we want excluded and makeconcrete rules, not such a vague guideline as "in a library". Then vote on the concrete rules. As is, I don't think I could vote for the rule, its just too poorly defined.--[[User:Javariel|Gabe Sechan]] 21:01, September 9, 2005 (UTC)
:I agree. Libraries is a terrible rule that is ambiguous and is not a helpful guide. [[User:Mshonle|MShonle]] 21:27, 9 September 2005 (UTC)
==Fictional works should be excluded==
What's the meaning of this voting item? I think we all agree that fiction should be excluded, since that is the practice we are already doing (andd there is a wikicity for doing so). So, does this voting item mean that "all non-fiction is ok"? I don't think we should vote for that, given that the Manual of Crime itself would count as non-fiction, but its exclusion from our site is one of the primar reasons for even talking about policy. [[User:Mshonle|MShonle]] 07:20, 19 September 2005 (UTC)
:This is a multi-part vote, just like how the mammoth WP votes are handled; rather than trying to write a single policy document which would never get complete ageement, instead you're voting on bite-sized portions of such a document.
:Users will be able to vote either for or against each option, but all are completely voluntary; if you don't care about either outcome of a particular section there's no need to vote on it. Therefore by voting for this no fiction rule you're not forced to allow things you don't want, because you can ''also'' vote on a rule that clarifies, for example, illegal content.
:The vote selection I drafted is looking pretty horrendous though, and I don't really have the time at the moment to fix it just yet. But the discussion on this page is going nicely, and the things being puzzled out here can then be be written up properly on the voting page itself. [[User:Garrett|Garrett]]<sup>[[User talk:Garrett|Talk]]</sup> 08:25, 19 September 2005 (UTC)
::I think we should make agreement and consensus be the goal, though we might not achieve it. It seems of my proposed, enumerated policy the most disagreeable items are whether to include the Google AdSense prohibitions or not. (I should also enumerate the Sister Project exclusions, just for consistency sake, and doing so may shake something else up.) Before voting begins I would like to see some Pro and Con pages for each item. Something that distills the essence of these conversations. We should also try to run ideas by The Big Guys first, and pehaps any lawyers: no sense in voting for something that the WikiMedia project or their lawyers would say aren't allowed anyway. --[[User:Mshonle|MShonle]] 22:31, 19 September 2005 (UTC)
== Sexual content ==
I note that there is coursework on human sexuality (some at the graduate level) and that sexuality-related topics are among the most frequently viewed on en.wikipedia. While we do not wish to draw the sort of fictionalized fantasy material that characterizes most pornography, we may wish to be sure that we do not exclude any serious attempts at writing books about sex.
[[User:UninvitedCompany|UninvitedCompany]] 23:56, 14 September 2005 (UTC)
:Can you suggest a better wording, to fit exactly what you mean? I agree that a book on reproduction or about culture would be appropriate, but I feel it'd have to be the kind of book that uses verifiable primary and secondary sources. [[User:Mshonle|MShonle]] 07:09, 19 September 2005 (UTC)
== Illicit drugs ==
I think it's important to specificy the jurisdiction. Beer and winemaking are legal in most western countries. The making of distilled spirits is legal, though heavily regulated and taxed, in most western countries; in New Zeland it is legal for private individuals. Zymurgy is a fascinating topic that is a target of serious scholarly inquiry.
[[User:UninvitedCompany|UninvitedCompany]] 23:56, 14 September 2005 (UTC)
:I agree, do you think it should be "Illicit drugs" qualified to the United States? (Since that's where our servers are we should respect that, and also it provides the lowest common denominator.) Because wine/beer are legal in the states the study of their making would make a fine how-to book. (And knowing friends who make their own beer, I do know how scientific and exacting they get about it.) [[User:Mshonle|MShonle]] 07:16, 19 September 2005 (UTC)
:: This rule is pointlessly narrow, bordering on puritanical. I suggest striking it completely. [[User:Kellen|Kellen]] <sup>[[User_talk:Kellen|T]]</sup> 07:59, 19 September 2005 (UTC)
:::I'm not sure that applying labels like that is productive. While you might think the scope is too narrow, you should consider the benefits. For example, instead of being BongCentralStation we won't attract contributions on drugs, which could quickly escalate to things that we'd have to delete. Believing that anyone should be able to say anything on the web is very different than believing anyone should be able to say anything ''anywhere'' on the web. Wikibooks cannot and should not be all things to everyone (particularly given that there is plenty of that content already on the web, yet hardly any free textbooks to speak of still). I would need to see a useful argument on why we should include illicit content. I'm open that such an argument might exist, but no one has presented it yet. [[User:Mshonle|MShonle]] 16:58, 19 September 2005 (UTC)
:::: I think we should include ''information about'' "illicit content" because that information is '''not''' unlawful. Obviously if the information itself is (for whatever reason) unlawful, then delete it. I agree that there are certain benefits to narrowly interpreting the mandate (from wikimedia) for wikibooks, but I find that the implication that just because some act is illegal means that it shouldn't be written about on wikibooks to be distasteful. For instance, I think a technical discussion on growing marijuana/hemp in the Gardening book would be entirely valid. I realize that this information is available elsewhere, but I don't agree that we should disallow it from being on wikibooks simply because of its legal status in the US (which, as an aside, I believe to be immoral). [[User:Kellen|Kellen]] <sup>[[User_talk:Kellen|T]]</sup> 19:36, 19 September 2005 (UTC)
:::::Can you suggest a better wording? We can talk about drugs, for sure, provided we use primary and secondary and other verifiable sources. But talking about drugs and crime is not the same thing at all as giving ''instructions'' to take/make drugs or carry out crimes. Primarily I think the rule is to eliminate people from ''selling'' drugs, paraphernalia, et cetera or providing guides to getting/making them. It should be absolutely clear that Wikibooks will not be a site to enable people to actually get drugs (by, for example, listing areas to go to in big cities, as if it were a stoner's craigslist).
:::::: Material intended to sell drugs, paraphenalia, etc, on wikibooks is prohibited because that content would not form a reasonable textbook. I '''do''' think that an accurate guide to making drugs is a valid topic, even if distasteful to some people. [[User:Kellen|Kellen]] <sup>[[User_talk:Kellen|T]]</sup> 20:50, 19 September 2005 (UTC)
:::::However, I completely disagree with your reasoning that, just because something is legal, that justifies it becoming a book. It's perfectly legal for me to make a photo journal of my trip to Virginia, but that doesn't mean I need to force Wikibooks to house it. [[User:Mshonle|MShonle]] 20:29, 19 September 2005 (UTC)
:::::: The reasoning is not that the material ''should be included'' because it is legal, but that it ''should not be prohibited'' because it is legal (with other obvious qualifications due to the purpose of wikibooks). [[User:Kellen|Kellen]] <sup>[[User_talk:Kellen|T]]</sup> 20:50, 19 September 2005 (UTC)
Looking over the proposed policy again- why is this a separate section? If we have another rule against illegal activity (for some vague definition of illegal, but thats better argued elsewhere), why do we need another rule specificly against drugs? Its redundant. Move to strike and roll it into the illegal clause. Although I'm still against blindly following US law to begin with. I understand (and agree with) not wanting it to be a site for buying/selling drugs because ti could get the servers shut down, but otherwise I stand by the 1st ammendment and think if its educational it ought to be allowed. --[[User:Javariel|Gabe Sechan]] 20:47, 19 September 2005 (UTC)
== Gambling ==
While my hated of institutionalized gambling knows few bounds, I am unsure that we would want to avoid writing books about it. [[User:UninvitedCompany|UninvitedCompany]] 23:56, 14 September 2005 (UTC)
:Could you suggest a better wording? The idea was to avoid activities like actually ''placing'' bets and gambling. For example, ''playing'' poker instead of talking about poker. As someone else noted, wiki-based gambling wouldn't even be a "book" anyway. --[[User:Mshonle|MShonle]] 07:18, 19 September 2005 (UTC)
::The attempt is kind of pointless then; I would suggest striking that rule. [[User:Kellen|Kellen]] <sup>[[User_talk:Kellen|T]]</sup> 07:53, 19 September 2005 (UTC)
== promotes illegal activity ==
"Any other content that promotes illegal activity or infringes on the legal rights of others, including (but not limited to) content condoning harassment, intimidation, espionage, terrorism"
These are already prohibited by way of NPOV ("promotes"). [[User:Kellen|Kellen]] <sup>[[User_talk:Kellen|T]]</sup> 08:25, 19 September 2005 (UTC)
:The "or infringes" part does not get the "promotes". Thus, the two are not equal. --[[User:Mshonle|MShonle]] 16:36, 19 September 2005 (UTC)
:: Then it should read "Any other content that infringes on the legal rights of others." But this is already invalid content for wikibooks. I see that your point is to prevent MoC-style material by way of banning things which "condone" or "promote" "infringe[ment] on the legal rights of others" (such as murder, rape, and possibly property destruction), but this is not the wording for it. Also, as noted above, legality ''of an act'' is much different than the legality of information ''about that act''. [[User:Kellen|Kellen]] <sup>[[User_talk:Kellen|T]]</sup> 16:53, 19 September 2005 (UTC)
:: I find [[Wikibooks:Votes_for_deletion/The_Manual_of_Crime#Manifest_or_Explicit_Motive_behind_a_Wikibook|this]] to be '''much, much''' more useful than judging the content of a wikibook. [[User:Kellen|Kellen]] <sup>[[User_talk:Kellen|T]]</sup> 17:04, 19 September 2005 (UTC)
== reverse engineering ==
Curious, Mshonle, what would you think of including all the necessary instructions to reverse engineer the CVS one-time-use video camera [[User_talk:Whiteknight|(see Albert's note here)]] in the Reverse Engineering wikibook? [[User:Kellen|Kellen]] <sup>[[User_talk:Kellen|T]]</sup> 19:55, 19 September 2005 (UTC)
:We should have a book about reverse engineering, but that doesn't mean we need specific examples that violate the [[wikipedia:Digital Millennium Copyright Act|DMCA]] or similar IP laws. I'd be much more interested in teaching people the principles behind computer hardware and bus interfaces than I would be in telling people how to rip-off CVS. Sure, Albert's posting is nice, and I agree wholeheartedly that it counts as free speech. But that itself is not reason enough to make it a wikibook. (I believe a better venue for such speech would be to disseminate it via peer-to-peer networks.)
::The DMCA might apply if the video in question were copyright by CVS or puredigital, but this is not the case. The user has not performed any action that would cause copyright to transfer. The user has full right to their own video on their own camera. (the camera is purchased, not rented, and there is no contract) [[User:AlbertCahalan|AlbertCahalan]] 02:09, 23 September 2005 (UTC)
:::Other laws could be violated, though. I'm not sure what applies, but our own personal opinions on the laws shouldn't affect the decision. Only the actual legallity and the actual circumstances we find ourselves in should count. [[User:Mshonle|MShonle]] 02:46, 23 September 2005 (UTC)
:But Wikibooks is a real site, with real people investing countless hours and energy and machine resources to it. We have a goal of teaching those who cannot afford textbooks, to level the global playing field. We cannot just let it all be sued away from us just because some people have decided to turn Wikibooks into a platform for their political protests.
:Political protests are a fine thing and part of what makes our country strong. But keep it to the peer-to-peer networks, the streets, and Washington itself. Don't drag down our site just because you want to prove a point. --[[User:Mshonle|MShonle]] 20:42, 19 September 2005 (UTC)
::I completely disagree. Its the big sites that have to take the lead. Noone cares if myrandomcomputerpage.com goes down. If Wiki goes down, its news, and it will get people involved. Claiming Wiki shouldn't use the 1st ammendment is like claiming that only the guilty ever insist upon a warrant. Its rediculous to begin with, and an idea that can start a dangerous errosion of our rights. Sure, you may not care about this particular subject, but just wait. Eventually it will be one you do care about.--[[User:Javariel|Gabe Sechan]] 21:00, 19 September 2005 (UTC)
:::This is exactly what I meant about Wikibooks becoming a platform for political protest. I don't think it's right to all of the contributors and to the real people who are putting their money on the line to try as we can to get WB shut down. Yes, it is big news if a wiki got shut down. But what about the smaller news? What about that homeschooler who was just learning long division, and would then need to buy the book? What about the college student just figuring out his lambda calculus homework? What about the professor who was saving his students money by using a wikibook? What about the missionary in the third-world country who has a great idea to contribute based on her experience? Yes, I do care about these issues you talk about (you need only read my blog to find out). But I also care about these "small" issues too. And the end of the day, could you still say to yourself "it's been nice that they've let me make such great use of this site; I've been a good steward to it"? --[[User:Mshonle|MShonle]] 21:17, 19 September 2005 (UTC)
::::Yes, I could. The spirit of wikibooks is that of a free exchange of educational information in book format. I'd feel I was a much better steward of that spirit if I was permissive on the rules of what type of content is allowed than if I was restrictive. Meaning no offence to you, but its justifications like that which are the root of the problem. You let small evils go by to do a good. Eventually those evils grow. By the time you fight, its too late. I'd rather we take a stand now than later. The first ammendment exists, use it.
::::Remember this is (will eventually be) a vote. There is room for both arguments, as I'm sure you'll admit. In the end it is the users and contributors of wikibooks that will decide which side of the argument is stronger. If the majority of contributors decide that they want to support the free speech side, it should become the path we take. I have no idea what way the vote will go, but I suspect I'm not the only one who will vote the way I will. And of course, I want to make the wording of the rules as careful as possible in case I lose, so only what people really want to outlaw is outlawed.--[[User:Javariel|Gabe Sechan]] 22:34, 19 September 2005 (UTC)
:::::Please note that my position is not the "anti-free speech" side. If the view opposing mine was cast as ''the'' free-speech side we would surely see everyone vote for that. But I don't want to construct strawmen here. I also don't want to see labels like "conservative" or "censorship" or "puritan" getting thrown around.
:::::I just want to make it clear that it's a perfectly valid stance to step back and say "yes, I think there is a place for this content on the web, but I don't think having it housed at wikibooks is in the spirit of the project or appropriate." I think the spirit of our project is to make instructional resources to help educate. That includes making choices like excluding bad explanations of (say) multiplying fractions. How permissive should we be? It's hard to draw the line. The way I see it, it's already been handed down from above (in a decision I agree with) that books like the Manual of Crime should not be allowed.
:::::Given the benefits of allowing people to fork our content and house them someplace that is funded via AdSense we should think long and hard about drawing the line there. I don't think AdSense hates free speech. I think they just needed to make some practical, legal and moral decisions. But I disagree with the line of arguments that put Wikibooks as the keystone to the internet, and if somehow we exclude information suddenly it's excluded everywhere. I also don't think the AdSense prohibitions are "letting little evils go." There is a far stronger argument that favors fictional writing, such as Nicholson Baker's "Checkpoint," a scathing criticism of war, yet we seem not to label "disallowing fiction" as an "evil." There are other reasons to prohibit material, one of which is the signalling argument I've presented before. --[[User:Mshonle|MShonle]] 23:03, 19 September 2005 (UTC)
::::::And I disagree with the signaling issue, especially on content such as this and drugs. This is a place for us to give our opinions on the matter. My opinion is that the legal aspect of it is utterly bogus, as this is protected speach. From there, its a question of if its educational material. This is. Granted, it needs to be written correctly to fit an educational track. Since it is educational, I see no reason why it should be denied. And I see no other reason on this issue. And the default policy should be if there is no reason to deny, it should be allowed. What side the majority of contibutors will take is yet to be seen.--[[User:Javariel|Gabe Sechan]] 23:23, 19 September 2005 (UTC)
:::::::I think a good place to voice the anti-drug war line of thought would be, for example, in an economics book that also talks about the other poor effects of prohibitions. In fact, perhaps there should be a humanities book dedicated to showing the flaws of the drug war (on such issues I myself sound like a libertarian). There are several academic papers and studies that bolster this case. (Perhaps as I've worded this book it would have a non-neutral POV, I'll assume for a moment that what I've said could be massaged into something more compliant.) But these fine books we're talking about aren't the same as, say, a book on hazing rituals for frat boys. Sure, keg stands and other party activites should be talked about freely, but that doesn't mean suddenly a textbook project should be forced into being the forum for it. I think a reasonable person would conceed that Wikibooks cannot and should not be all things to everyone. I also think a reasonable person should consider the benefits of using the AdSense rules, which would allow any wikibook to be transfered to and from a wikicity without legal troubles. --[[User:Mshonle|MShonle]] 23:37, 19 September 2005 (UTC)
:One thing to consider is how old a hack is. If I was writing a computer security book, I'd need to talk about actual weaknesses to describe my points. I think this policy needs a bit of revision. I'd agree with no 0 day hacks (we aren't a security site, this is the wrong place for it) and no code to produce the hack. But once a security breach has been discussed on BugTraq or similar lists/sites, it ought to be fair game for a wikibook. --[[User:Javariel|Gabe Sechan]] 21:00, 19 September 2005 (UTC)
::We can talk about actual weaknesses a lot (mostly aren't they stack overflows?), but I'd rather demonstrate it with fake machine code. Any scripts for any system that would still be running just shouldn't be allowed. Indeed, such hacking information is free speech, but so is fiction, yet we agree to not have fiction on this site. Increasing the tort liabilities of our site is not a stable long term solution, nor do I think it would attract the book-writing crowd (and, equally, it could scare off the more academic types, the exact experts we need the most). --[[User:Mshonle|MShonle]]21:25, 19 September 2005 (UTC)
:::No, most weaknesses are *NOT* stack overflows. THey're a small portion of all weaknesses. Most weaknesses are in the design phase. For example, a weakness in Telnet and FTP is that passwords are transmitted as plaintext. That is a design flaw.
:::Faked weaknesses do not have the same weight as real ones. I can talk about the problems of weak cryptography til I'm blue in the face, and it will have very little effect. I can show how WAP can easily be broken on a wireless network, and that *will* have effect. This is a well known, well published vulnerability. I'm not releasing any new facts.
:::And no, it won't scare off the academics. There's a big debate in the security community- full disclosure vs no disclosure. In full disclosure, you tell a company about a bug, wait a reasonable amount of time for them to fix it (which may increase due to communication between the two parties), then release the info. In no disclosure you never release. The reason full disclosure is popular is that many bugs NEVER GET FIXED until they are disclosed. If they aren't fixed, your ignorance just hurts you, because eventually a black hat will get it. Guess which side industry and academia tend to be on? Industry wants no disclosure, academia wants full disclosure (by and large, exceptions exist).
:::Being able to write about security issues, without being able to give real world examples, is like having to write about chemistry without giving chemical formulas, or physics without equations. Its just not workable. I know I had said otherwise earlier, but more thinking on it reveals how ridiculously the above policy is worded. Under that wording, I couldn't talk about 30 year old mistakes like telnet's plain text passwords.
:::Put a time limit on it is my suggestion. We don't want 0 day exploits (new exploits), but we don't want to cut them off entirely either. My suggestion would be X weeks after publication in a major security forum such as BugTraq. Personally I'd go for an X of 0, but a small value there wouldn't be too bad. Then we're not spreading information on a new attack, but discussing one that has been reported elsewhere, and has likely already been fixed. Serious hackers get their information by subscribing directly to security lists anyway, watching here would be pointless. Too low a frequency, and too delayed from the initial disclosure even with an X of 0.--[[User:Javariel|Gabe Sechan]] 22:34, 19 September 2005 (UTC)
::::Could you suggest a better wording? Specifically, one that does not allow simple perl scripts where you "just point it to a machine and click". I think your points about telnet would be excellent in a book (please star writing it!). I would just rather it stop at saying "and anyone could pick that up, using port listeners" instead of going into the detail of "you can use this port listener, downloadable from here, and here's how you would look for the password and find it." The first part should be sufficient to convince any administrator (the good guys we are trying to help-- I don't think anyone here is advocating we need to help the black hats) that they need to use SSH instead. The second part (where specific, but accidental, and not theoretical, detail is given) is borderline reckless, though I realize the reality is that such information will always be available someplace else.
::::I'm not advocating chemistry without formulas. I'm advocating chemistry as real chemistry, not explosive making dressed up as a book. I'm sure there's a certain level of chemistry where you'll be able to make explosives, but we have no obligation to spell that out in easy steps for just anyone to do. Leaving some dots left unconnected can be a wise stance to take.
::::As for security lists, it doesn't quite seem "bookish" enough to make a module that duplicates that. It should be a book that talks about fundamentals, not rehashes mailing lists. Once stack over flow, bad file systems, dangerous PATHs, flaws on versions of unix that allow setuid programs to generate core files with root ownership, and other flaws are taught I don't think we then need to go into half a dozen examples of ways to break into systems that just echo these same points again and again. Each new, brilliant point should be covered. But variations that are only more modern do not. --[[User:Mshonle|MShonle]] 23:19, 19 September 2005 (UTC)
:::::You misunderstand me. I don't want to have a security list book. I'm saying that once something has been announced publicly on a major list (perhaps with some time delay) it ought to be fair game. We shouldn't be in the buisness of announcing newly found defects (we aren't equipped for it), but once its announced it should be publishable.--[[User:Javariel|Gabe Sechan]] 21:36, 22 September 2005 (UTC)
I started the [[Reverse Engineering]] Wikibook, and my original intention was not to make it a book about security, "hacking," "cracking," or other illegal nonsense. There are some aspects of computer programming that can only really be taught by examining the subject matter from the opposite perspective of a software creator. Yes, a good book about reverse engineering will include at least a few footnotes pertaining to security, because the average person utilizing reverse engineering techniques is a software developer (or outside security consultant) trying to find dangerous bugs before they get exploited by the ne're-do-wells. I do propose at least some treatment of "black hat" reverse engineering, but only in the context of pointing out (and presumably fixing) common security mistakes. For a more in-depth coverage of "bad" material, we should start another wikibook on "hacking" that we can subsequently vote to ban. --[[User:Whiteknight|Whiteknight]]
:As an addendum, I was very careful to include a large disclaimer at the front of the wikibook, to stress the fact that the contents of the book should be legal. Anything therefore that is illegal, should definately be removed, purely in the interests of keeping the book "on topic." Also, on the [[Reverse Engineering:Introduction|Introduction]] page, there is a section on legal issues, that we can expand upon to mention all the specifics of what is, and what isnt legal. As for the notion of protecting illegal hacking issues under a free speach clause, I point out again that the topic of the book is "legal reverse engineering techniques" and all things that dont fit under that catagory should be moved to a new wikibook (which i would certainly vote to delete anyway). [[User:Whiteknight|Whiteknight]]
----
Sounds good, Whiteknight. To continue your thought... It is my firm opinion that anything worth knowing does not have to be taught in base, "lets-hurt-others" ways. I think one standard that could be useful is "yes, after someone reads this book, they'll be able to do some blackhat activities, but they will need to connect the dots for themselves and they'd have to really understand it first." This is opposed to "someone can read this book and perform blackhat activities without even understanding it." I think imposing a limitation would also greatly improve the writing and the direction of the book!
It seems to be a very American idea that "any constraints are bad" and that the less constrained you are, the more creative you can be. In contrast, the European idea is more like "constraints make creativity." I've only now realized that part of the reason my message hasn't been getting through 100% is that some, particularly the Americans, quickly see a constraint as being bad, instead of being a force of good that would: (1) cause the writers to think of deeper principles and explainations; (2) provide a narrower scope, so that the many contributors are that much closer to going to the same goal.
I myself am an American, but have come to see the European view as more useful for many applications. That doesn't mean we should constrain ourselves without cause; but when there are other reasons to add constraints it can be very helpful.
To those who still believe the, for lack of a better description, "freedom of speech" line, I wish they would consider that:
*This is a site setting up it's own editorial guides, not a government shutting down other sites or authors
*We are ''already'' constrained with the NPOV and no-fiction requirements, which is much more burdensome with regards to expressiveness
*If you believe that some things can only be taught by violating the proposed rules I believe what the case is a failure of imagination. A failure to see how the same knowledge can be communicated responsibly, didactically and in accordence to the policy is likely to just be because you haven't bothered to think of it in any other way.
I don't mean to sound harsh to those who hold this view; I think your hearts are in the right place. But I do want to make it clear it seems we've been talking about different things the whole time. I suppose I've internalized the European view so much that I didn't even realize we weren't all on the same page.
As a challenge, I ask for any of your who still disagree with me to present to me even '''one single idea''' that is worth teaching to others, but would be excluded by the proposed policy. I reason that such examples would be hard to find, because the policy restrains how you say something, not ''what'' you actually say. --[[User:Mshonle|MShonle]] 00:17, 23 September 2005 (UTC)
:You asked for it, I will give it. See [[Serial_Programming:RS-232_Connections#Protocol_Analyser]] as an example of something that would have to be modified by the anti-hacking policy but is clearly worth teaching to other people and of incredible usage for a software developer trying to make an application and making the software more reliable. Not only that, I refuse to add a disclaimer to this Wikibook, even though in this case it is designing something that can be used to intercept communications... potentially without the knowledge of the person being monitored. This is not explicitly to do hacking, but an example of how in depth knowledge of a subject can be abused if but for a personal sense of ethics on the use of that knowledge. You can use this device, for example, to obtain passwords for computer systems. Instead of an anti-hacker policy that is poorly written, I think a general policy should be used to discourage discussions of deliberate and intentionally breaking laws. That would get rid of some of the [[w:Paladin Press|Paladin Press]] type books that the FBI goes after, but keep legitimate subject like this Serial Programming book that is clearly designed as a textbook to help people in a technical subject. That is the point, isn't it... to not explicitly help people break the law? --[[User:Robert Horning|Rob Horning]] 04:20, 16 October 2005 (UTC)
::No matter what we do we could in theory be helping law-breakers if they're intelligent and resourceful enough. Another example would be a module on designing CD copy-protection. In order to best explain how to prevent particular circumventation methods it would be useful to include examples of some of the most obvious weaknesses or lackings of past versions of SafeDisc or similar. The things learned from that book could no doubt be used in reverse to design NoCD cracks of your own but that's not our fault, what you do with what you learn here is your business. I think this is just like the Manual of Crime, it depends on the tone and feel of the book; "How to prevent CD copying" is OK while "How To Make A NoCD Crack" is most certainly not. As long as the semi-legal content is clearly being used in order to best teach legal applications there should be no problem. How we word the policy to make all this clear, however, is another matter. [[User:Garrett|Garrett]]<sup>[[User talk:Garrett|Talk]]</sup> 11:24, 16 October 2005 (UTC)
==Travel guides==
Just reading through the list for more things to whine about, and I saw this. I'm curious what the justification behind exclusion is. Is it just POV? If so, would one written in NPOV be allowed? If not, why not? Not something I'm heavily concerned about, but it seemed an odd exclusion, I can't think of any reason other than POV. --[[User:Javariel|Gabe Sechan]] 22:45, 19 September 2005 (UTC)
:There's a sister project, http://wikitravel.org, that is supposed to address this. As best as we can we should coordinate with our sister projects, because we know that forking of contributors energies harms the project. (But external site forks, which are always verbatim copies of our stuff anyway, are good, because it generates more buzz for us, links to us, and they are sometimes up when our severs are down.) --[[User:Mshonle|MShonle]] 23:22, 19 September 2005 (UTC)
::Ah, that makes sense then. I didn't know of that particular sister site. I may have to check it out, I just relocated and it may show me a few things.--[[User:Javariel|Gabe Sechan]] 22:41, 20 September 2005 (UTC)
:::Wikitravel is not a sister project, as it is not under the umbrella of the Wikimedia Foundation. It also uses a license that is incompatable with the GFDL. [[User:Gentgeen|Gentgeen]] 09:39, 10 October 2005 (UTC)
== A personal statement ==
Friends: I have written a [[User:Mshonle/Around 2000 Words|personal statement]] discussing the problems of Wikibooks, why I think my solutions can help, and why I've taken the stance that I have.
Please read the essay (it's under 2000 words) and comment here or on its discussion page. Thank you for your consideration.
== adult, or mature content ==
This is no good. Some of us are mature and/or adult. This rule prohibits all books that even mention the mere existance of, well... [<s>The rule does no such thing. Please note that this list has nothing to do with the discussion on the table.</s> --[[User:Mshonle|MShonle]] 03:12, 27 September 2005 (UTC)]
::Revised: [Some interpretations of the now-ambiguous rule could lead someone, even possibly the community, to consider these list items as counting as "adult" (however, ''other'' interpretations would ''not'' count these as adult). Hopefully a better wording than "adult" will be made soon, making this list obsolete. --[[User:Mshonle|MShonle]] 22:41, 29 September 2005 (UTC)]
:[MShonle seems to be confused about human nature: these things '''''will''''' be considered adult and mature topics by many people, no matter what MShonle's intent may have been. [[User:AlbertCahalan|AlbertCahalan]] 15:57, 29 September 2005 (UTC)]
::Not clear what you mean here. Yes, they will be considered adult by many. So does that mean we exclude the topics? If so US History get's really interesting without the Civil War ("Total War" as a section heading) and discussing the Second World War without "total war" and "genocide" could be ... interesting. [[User:Erraunt|erraunt]] 20:41, 6 October 2005 (UTC)
:::Albert was mostly trying to prove a point that he disagreed with the AdSense wording of "adult" because he felt it was ambiguous. I think I should probably ask Wikicities how they interpret it, because they obviously don't take it to the absurd levels Albert has shown us. --[[User:Mshonle|MShonle]] 22:35, 6 October 2005 (UTC)
:::: I basically agree with Albert. The terms "adult" and "mature" content are so ambiguous as to be meaningless. I say specify: "Wikibooks does not allow (a) pornography, (b) books advocating illegal acts". That should cover basically everything you would want to block. [[User:Irrevenant|Irrevenant]] 09:49, 15 November 2005 (UTC)
*divorce
*satanism
*[[Issue Guide:Same-Sex Marriage|homosexuality]]
*[[Bartending|alcohol]]
*racism
*rape
*suicide
*feminine hygeine
*[[Use_of_male_condoms|birth control]]
*genocide
*total warfare
*BDSM
*abuse
*[[:Category:Pagan_Wikipedians|paganism]]
*virginity
*human sacrifice
*weapons
*[[Islam|non-X religeons (for all X)]]
*[[Evolution|evolution]]
*[[Jokebook:Dirty_Jokes|sexual organs]]
**[Again, note that this list is ''not'' what the rule has intended to exclude. --[[User:Mshonle|MShonle]] 03:12, 27 September 2005 (UTC)]
***Claiming such a thing, even with good intentions, does not make it so. [[User:AlbertCahalan|AlbertCahalan]] 15:54, 29 September 2005 (UTC)
[[User:AlbertCahalan|AlbertCahalan]] 03:24, 23 September 2005 (UTC)
:I would probably call a book on BDSM to be pornographic, which Wikibooks is not. That all depends on how it's written, of course. There could be a scholarly book, or there could be an exhibitionist who didn't want to get a blog (because, you know, being the exhibititionist they wanted the larger audience of wikibooks which ''will'' one day be just as popular as WP is now). The first version ''could'' be allowed, while the second should be deleted outright. But I fear you have a very different notion of what "adult" means if you suddenly think relgion and science are "adult." There are plenty of PG rated documentaries on abuse, racism, evolution, divorse, et cetera. It's good that you point out the ambiguity, so could you suggest a better wording? --[[User:Mshonle|MShonle]] 03:56, 23 September 2005 (UTC)
::A book on BDSM is just a book on a particular aspect of mental health, isn't it? Scholarly or not, it would be prohibited. Never mind a whole book on it though; the rule would block mention of this topic. Plenty of people think that a "PG" rating is for mature audiences only. (I know someone who wasn't allowed to see that stuff at all, even as a teenager.) Plenty of people also feel that way about anything that conflicts with a literal interpretation of the New Testament, the Koran, the Pope's teaching... I think you mean to use "adult, or mature content" as a eupemism for obscenety, indecency, or (redundantly) pornography. If you mean one of these things, then just say it instead of using confusing terms. I think it is sensible to just remove this wording. It's useless and harmful. [[User:AlbertCahalan|AlbertCahalan]] 04:53, 23 September 2005 (UTC)
:::Just one note: This is wording from AdSense, not something I just imagined from thin air. So, we should be trying to pick apart what Google was getting at (and, by extension, Wikicities). It certainly is ''not'' about what you seem to think it's about. [[User:Mshonle|MShonle]] 05:46, 23 September 2005 (UTC)
:::: Wikicities has those requirements ''because'' they want to use the google ads, and it doesn't matter what Google was getting at as this could become policy ''here'' with its own interpretations. The wording is (as Albert demonstrates) easily confusable/extendable to things which should not be restricted on wikibooks. [[User:Kellen|Kellen]] <sup>[[User_talk:Kellen|T]]</sup> 16:46, 23 September 2005 (UTC)
:::::Well, it's my hopes that Albert is just pointing out how it can be ambiguous. We should knock the ambiguity out. Even those who do not like some policy proposals should have an interest in at least being sure they are worded properly. What I dislike is the FUD that is getting spread around, by simply taking the most ridiculous interpretation possible and acting like that's what's on the table. I agree that the wordings aren't perfect; so let's work together to come up with better wordings. --[[User:Mshonle|MShonle]] 16:59, 23 September 2005 (UTC)
::::::Ridiculous? Maybe in ''your'' circle of friends it is. I know somebody who wasn't allowed to play the '''Magic: The Gathering''' collectible card game because some of the cards had unchristian concepts. We should just eliminate this worthless wording, not patch it. There is nothing worth saving. [[User:AlbertCahalan|AlbertCahalan]] 22:33, 23 September 2005 (UTC)
:::::But we're not interpretting the rule by the way your friend's mother lives her life. Wikicities already interprets this rule, so enough with the FUD examples. [[User:Mshonle|MShonle]] 22:55, 23 September 2005 (UTC)
::::::I personally find a number of the things on that list to be offensive. (probably a very different set than you would) If "adult, or mature" qualifies something as prohibited content, then it would appear that we are free to go on pre-approved deletion sprees. Why would you want this wording anyway? Either you intend to ban something or you don't. Either way, this wording is no good. [[User:AlbertCahalan|AlbertCahalan]] 23:19, 23 September 2005 (UTC)
:::::I find the Google ad requirements to be quite offensive in other ways too. They would prohibit books on gun-related topics. [[User:AlbertCahalan|AlbertCahalan]] 22:33, 23 September 2005 (UTC)
:::::I don't like the immediate exclusion on "adult material". Who is to say what is and isnt fit for adult consumption? Wikipedia has articals on violence and sexuality, can wikibooks not have the same (presumably with the same level of respect and decency that WP has had on these topics)? There is a difference between a "mature topic" and gratuitously graphic content. No automatic deletions, we need to consider each offense individually. --[[User:Whiteknight|Whiteknight]] 01:37, 27 September 2005 (UTC)
::::::I think it would be better if we could decide on appropriate wording to give us the same decency as found on WP. Our site has fewer people, so sometimes there is less of a strong signal to drown out the noise. For example, a few people around here think that a how-to module on rape is still a good idea. I think such a belief is grossly misguided, completely inconsistent with the spirit of the project, irresponsible to those who financially support this site, and should be grounds for immediate deletion. '''Of course''' we should be able to write books about mature content (that was never put into question and Albert's list is more or less a non sequitur). But I don't want to give the green light for pornography or a book equivalent of "faces of death." Also, please name some worthy topics that a Junior in High School would ''not'' be able to handle. I can't think of a single one. --[[User:Mshonle|MShonle]] 03:12, 27 September 2005 (UTC)
:::::::Any guide on "How to do X" where X is generally illegal should be banned. Barring that test, i can't think of many subjects that should be outright excluded, assuming they are well written --[[User:Whiteknight|Whiteknight]] 19:54, 28 September 2005 (UTC)
::::::::It's important that we can mention X though, and that "How to do X" is allowed if it would be legal in some countries or generally legal under the right circumstances. (self defense, military service, interrogation, law enforcement...) The one big exception is stuff that is actually illegal to '''describe''' in the USA, which is very rare. ("how to bypass DVD encryption", possibly "how to kill the president"...) [[User:AlbertCahalan|AlbertCahalan]] 21:31, 28 September 2005 (UTC)
:::::::But a book about "How to do X", where X is illegal in the states (for regular citizens), is in pretty sketchy territory and should be avoided. We can still talk about Xish things, however. For example, I think a Karate book would be appropriate. But my challenge is: Name a worthy X that you think a book about "How to do X" should be allowed, but couldn't under the Textbook Camp constraints. For example, The Manual of Crime is very far from a book on Criminology, yet the same topics can be covered. In fact, a book on Criminology would be interesting, would cover more subjects, would be externally verifiable, and could be responsibley written. Perhaps the fighting information would be in a Karate book, and not a Criminology book. But I'm not convinced by these pleas that the Textbook Camp stiffles writing, if anything it encourages better writing, better direction, and communicates knowledge more effectively. --[[User:Mshonle|MShonle]] 01:23, 29 September 2005 (UTC)
::::::::I refuse to participate in distracting this discussion with the merits of a particular X. I can think of a number of examples though; just look at the differences between US law and any given non-US law. If a regular German citizen or a US FBI agent or an Egyptian soldier can do X, a "How to do X" book on the subject should be allowed. [[User:AlbertCahalan|AlbertCahalan]] 01:37, 29 September 2005 (UTC)
:::::::I'm not trying to divert the subject to the merits of X. I'm just wondering if there is some large area I'm completely missing... just to be completely open minded and be sure I'm considering all sides and all concerns. I would appreciate any one coming forward with concerns about material being excluded by the Textbook Camp. Game guides are one, but is there a more "obvious" group of important books being left out? Perhaps once again I should review all shelved books to be sure. --[[User:Mshonle|MShonle]] 02:26, 29 September 2005 (UTC)
== Entertainment guides ==
"Any entertainment guides or hobby guides that are based on created works of fiction " And why not, precisely? I've seen strategy guides for videogames sold at bookstores and offered at libraries. Also, does this include reading aides? What about a "Ways to read Othello" guide, or a "Common interpretations of Paradise Lost" book? I cant understand a ban on items that are "based on created works of fiction" because that cuts out alot of valuable material. Granted, Final Fantasy might not be taught in a classroom setting per se, but Shakespeare certainly is. --[[User:Whiteknight|Whiteknight]] 01:44, 27 September 2005 (UTC)
:I think this does need some rewording. The idea specifically is to exclude guides to television shows and video games, but include guides to Othello and Paradise Lost. The list of "books that would be excluded" is closer to what I mean than than what the wording is/can be interpretted as. For example, I didn't put up the Harry Potter Guide as a work that would be excluded because I think it's reasonable someone would study it. (I also think game guides make more sense on Wikicities, for reasons I've listed elsewhere). Can you think of a better wording? Each time I want to make the policy lean closer to "instructional guides" than to "what someone thinks we should host for them." --[[User:Mshonle|MShonle]] 02:59, 27 September 2005 (UTC)
::I guess i understand the point, no sense trying to duplicate a video-game-specific website. We could reword it to say something along the lines of "only discussions on works of art and literature" although a solid case could possibly be made to classify certain peices of recent culture (movies, TV shows, videogames) as "art". And then if we allow all "how to" guides, we will get some gems (like "how to fix cars"), and then we will get some content that shouldnt necessarily be here (like "how to beat megaman"). The only recourse, perhaps, is to leave the guideline ambiguous, and make a decision on a case-by-case basis. --[[User:Whiteknight|Whiteknight]] 02:10, 28 September 2005 (UTC)
== kelvSYC's thoughts ==
I'm in opposition to most of the changes - why should we bend over to Google's policies? If it is just so that content can be moved to Wikicities, then these changes are simply unreasonable, however sound they are. Wikibooks is not Wikicities - otherwise Wikibooks as a project would cease to have meaning. Wikibooks is not a place to offload unwanted stuff by other wikis, whether it be Wikipedia, Wiktionary, or Wikicities. It should not be a jump-off point for people who want to start their own wiki (Wikiversity, Wikijunior), and it should not be a supplement to someone's for-profit group (Wikicities).
I'm particularly opposed to the prohibition of certain types of books - this new policy, if wrongly interpreted, would not allow us to write a book on Poker strategy, especially on how to tell if opponents are bluffing when they bet. It would not allow us to write about erotic art because someone would believe it's pornography. It would not allow us to write a book on video games as people will say that the fact that it is based on a fictional work means it wouldn't belong on Wikibooks, even if the book is about how to play (and win) at a video game. I will, however, support those changes that mirror the original spirit of Wikibooks in the sense that we shouldn't have a jokebook as it doesn't teach anything.
We don't need a new policy - let's work on enforcing existing policies first. [[User:KelvSYC|KelvSYC]] 16:07, 27 September 2005 (UTC)
:Hi KelvSYC! I don't think that any books ''about'' playing poker would be excluded with these rules. (They certainly were worded to avoid gambling itself, but not ''talking about'' gambling. E.g. you cannot place bets on the wiki, but you can talk about bet placing strategies. Since betting is not "a book" anyway, this is probably too confusingly worded.) So, we should be careful about the wording and the interpretation. I think a book about erotic art could be acceptable as well. It just depends on ''how'' people write it. If they push the limits and it really is pornography, then it should be deleted. If they are respectfully done then there shouldn't be a problem.{{pbri}}As for the game guides, that might merit a separate vote. When thinking about the mission of Wikibooks, I just don't see how game guides fit in. The problem, to me, is that if we allow game guides then we'd have to allow the joke book and practically books on anything. I don't think Grand Theft Auto is instructional or educational, for example. Also, the game guides are really popular, so I think that would give wikicities a good boost (it's the same people as behind wikibooks, so our site would benefit).{{pbri}}But I think new policy is in order, because it's not clear at all where we currently stand. Some people think that Wikibooks should have a narrow scope limited mostly to instructional resources and how-tos (the '''Textbook camp'''). Another group thinks Wikibooks should have as broad scope possible, to include ''all'' books (the '''Nonfiction camp'''). Still others think Wikibooks should be a free wiki hosting service to anyone (the '''Zero standards camp'''). By stating our goals more clearly processes like the VFD will be much more streamlined.{{pbri}}Personally, I think the goal of making free, open instructional-resources and how-tos is a wonderful goal. I'm in the Textbook camp. I also feel that's the intended mission of Wikibooks. I think that the best way to meet that goal is to limit our scope to exactly that. If we try to be everything to everyone we could end up being nothing to everyone. I still feel that those who want zero standards should start their own wiki and stop trying to bend Wikibooks into that. They could call it WikiAgitators, since they strongly support the "agitator" and activist mentality in everything that they do. But it just wouldn't be right for us to have taken money from people who thought they were benefiting an instructional resource project for that money to be spent housing the kind of books we've already deleted.{{pbri}}The agitator philosophy is quite popular around here, because it's similar to the free-form wiki spirit, but I just wish those in that camp would realize we're talking about the scope of just one site, and that we're not judging or condemning other sites by limiting our scope. I'm also a bit curious that, if they believe so strongly in having zero standards, why they ''aren't'' starting their own wikis. Certainly they should conceed that someone would reasonably want to set up a narrowly-scoped textbook site and that there would be value in doing so. I'm trying to convince them that that's what was intended when WikiBooks was started in the first place. --[[User:Mshonle|MShonle]] 19:01, 27 September 2005 (UTC)
:: Well, we can't tolerate the "zero standards" thing now, do we? Otherwise it would be a "vandal's wiki". That's beside the point. If you recall arguments that I've made in the past, we should allow for, say, RPGs, which ''instructs'' players on ''how to'' complete a game, thus it, by the definition above, can constitute a ''textbook''. I'm in the middle of the "textbook" and "nonfiction" as defined by yourself, in the sense that I am all for ''instructional material'' - that is, tools to help us teach and learn better (not necessarily strictly educational - ie. not necessarily compliant to any published educational syllabus).
:: On the topic of scope, I also want to refer to an old revision of my talk page where I proposed a broadening of scope (at the time, the official scope was "textbook", although it was ''de facto'' nonfiction) over the "whether biographies are instructional material" debate, and it seemed to have good support (albeit blindly) from a selection of the more active "higher-ranked" users. (This occured at the same time as [[User:Aya]] self-nominated for bureaucratship, and that user is firmly of the "nonfiction" viewpoint) The prevalent view at the time was that Wikibooks was organically growing in scope to accomodate a more general "instructional resource" - so, for instance, a book is judged by how instructional it is, similar to how Wikipedia articles are judged by how encyclopedic it is. [[User:KelvSYC|KelvSYC]] 22:17, 27 September 2005 (UTC)
:::As a side-note I think that the Nikola Tesla biography should have been allowed. But I think we need to think deeply about what high-level knowledge ''can't'' be described in the Textbook Camp that could be in the Nonfiction Camp? (I claim that the enumerated policy is the position of the Textbook Camp, though I implore people to pick through the wording and suggest alternative wordings that are less ambiguous/more precise.) I've been making this list myself, to see if anything really vital is getting left out. I can think of the Game Guides and, say, An Episode Guide to Growing Pains getting left out. But both of those can be Wikicities... does it really make sense to have game guides both here and on WC? It just seems rather confusing to me that people want to over-generalize WikiBooks so much given that WC (with its "city" idea) seems much more natural at being an anything to anyone place. But I'm willing to consider the possibility that the Textbook statement leaves out vital knowledge... I just want to see some examples, because I believe most knowledge can be taught even in the Textbook constraints. --[[User:Mshonle|MShonle]] 01:37, 28 September 2005 (UTC)
::::In the interests perhaps of aiding our sister wikis (and presumably therefore helping the entire wiki movement), we should consider limiting certain subjects to one wiki, and certain subjects to another wiki. At the same time, we need to ask whether WikiCities provides the book-building framework and environment that WikiBooks does? Can something like a structured game guide really grow and mature in the anything-goes atmosphere like WikiCities? For that matter, Can something like a biography be written up in the instructional atmosphere of Wikibooks, when it might benefit more from the reference atmosphere of wikipedia? It's a question of atmosphere, and we need to ensure that the right materials get supported in the right places to encourage proper growth and development. --[[User:Whiteknight|Whiteknight]] 02:21, 28 September 2005 (UTC)
:::::I don't see a problem with wikicities as a venue for game guides, I'm using it already. At a time when a game guide shift looked imminent I decided to start my new ''[[wikicities:c:gameinfo:Guide:Grand Theft Auto III|Grand Theft Auto III]]'' guide over there instead. The development environment feels no different except that a handful of MediaWiki 1.5 features aren't up and running yet. ''Wikicities'' allows anything, but each ''wikicity'' does not. In the case of Gameinfo, it's a fine environment. Indeed its game data pages provide a somewhat superior entry into the guides as here on WB it's up to each individual author to provide a "what's this game about?" sort of section. I think it's counterproductive to have two "rightful" homes for one material type. We already enforce that non-annotated texts go to Wikisource, encyclopedias go to Wikisource or Wikipedia, and community projects go to Wikicities. However in the case of game guides they could go in either place. I'm not sure this is a good idea. Wikibooks' traffic is no doubt greater than Gameinfo's is, and whether the decision to shift is made now when we have 50 guides, or later when we have 200 guides and people start clamouring for a GameFAQs-esque interface for them, I think it is a change that WILL be made. [[User:Garrett|Garrett]]<sup>[[User talk:Garrett|Talk]]</sup> 04:00, 29 September 2005 (UTC)
::::::Isn't gameinfo newer than some of our older game guides ([[Chip's Challenge]], for example)? If so, that means that gameinfo shouldn't have existed as a Wikicities wiki due to overlapping scope, if my information about Wikicities is correct... [[User:KelvSYC|KelvSYC]] 16:24, 4 October 2005 (UTC)
:::::::Yes, but its reach goes far beyond game guides and also includes game data. Ultimately it was up to Angela & co to give it the go-ahead, and I'm sure they were well aware of Wikibooks' game content when they did so. [[User:Garrett|Garrett]]<sup>[[User talk:Garrett|Talk]]</sup> 05:15, 5 October 2005 (UTC)
The other thing is that with the way this is going, Wikibooks is no more than a mere Wikicities wannabe: why don't we just move the entire wiki to something like textbooks.wikicities.org while we are at it? If this policy goes, I can't see why Wikibooks should keep its distinct identity... [[User:KelvSYC|KelvSYC]] 14:54, 3 October 2005 (UTC)
:The AdSense prohibitions at most would only affect a handful of books and "books." Largely the site would be the same... I guess I don't see your connection to WC here. --[[User:Mshonle|MShonle]] 22:18, 3 October 2005 (UTC)
:A Wikicities wannabe, hmmm? That gives me a good idea for an April Fools' Monobook.css... meheheheheh... anyway, a good 60%+ of our policy was and is forked from old WP policies--does this mean that we are textbooks.wikipedia.org? Well actually I think we ''were'' at some point, but that doesn't mean we are just a fattened encyclopedia. But now that we've sorted out AdSense's ambiguities the only things that will really be affected are the game guides. And would a Wikibooks without game guides feel all that different? [[User:Garrett|Garrett]]<sup>[[User talk:Garrett|Talk]]</sup> 13:44, 4 October 2005 (UTC)
::IMO, yes, due to the broadened scope of Wikibooks over the years, and the various facilities that have been proposed to deal with it (eg. [[WB:CCO]]). If we broadened our scope, I can't see how it can possibly be narrowed without a major uprising of some sort... [[User:KelvSYC|KelvSYC]] 16:24, 4 October 2005 (UTC)
:::I wouldn't consider game guides moving over to WC to be the equivalent of an uprising. Remember: Any transition will be dealt with appropriately. It wouldn't be just suddenly the books are deleted. I imagine it could be a transition phase that would last months. (Either to do the moving itself, or to leave up copies and pointers and ''advance'' notice.) As far as AdSense is concerned it would exclude a handful of books. On the face of it, WikiBooks would look no different. As for the game guides: I consider that a ''major'' win for Wikicities, a project I very much want to see succeed. --[[User:Mshonle|MShonle]] 02:24, 5 October 2005 (UTC)
::::Indeed. Right now Wikicities is viewed by a significant number of Wikipedians (and no doubt many wiki-outsiders) as basically a dumping-ground for any cruft they don't want. The more legitimate content Wikicities can offer the more popular it will become, and thus in turn the prospected Wikimedia projects using Wikicities as their test-beds will be able to get off the ground. Also the fact that each wikicity is individually customisable without affecting other projects is a definite plus. For example [[wikicities:c:gameinfo:Guide:The Legend of Zelda: Link's Awakening|my recent experiment]] with [[wikicities:c:gameinfo:Guide:BS Zelda: Kodai no Sekiban|guide-specific stylesheets]] would be technologically impossible on Wikibooks without either a MediaWiki customisation to allow uploading to the server's /skins/ folder or else enabling offsite image insertion and thus opening up a can of worms for anon-accessible image spamming. Such a silly little feature would be both difficult and dangerous to implement here for use in what would end up as only a very small percentage of our content. Wikibooks can't accommodate any sort of gamer-friendly interface, and so will probably never truly make gamers feel at home. Having now worked on game guides both on Wikibooks and Gameinfo, I'd have to say I prefer Gameinfo, even with ad sidebars and MediaWiki 1.4 limitations taken into account. [[User:Garrett|Garrett]]<sup>[[User talk:Garrett|Talk]]</sup> 05:15, 5 October 2005 (UTC)
:::::Wow, that looks pretty neat. I've been wanting to play with CSS tricks for some the material here. Mostly it means using templates, but templates have limited use because you can't even use a template as an argument to a template! But again, that looks really nice. --[[User:Mshonle|MShonle]] 05:37, 5 October 2005 (UTC)
::::Not just game guides, but a lot more material. What about [[Cookbook]]? It's not a textbook if we are simply talking about academia - even if it does claim to teach you how to cook using pratical recipe examples. So you want to move everything in Cookbook to cookbook.wikicities.org? Anyway, an informal look at RC shows that about 40-50% of active contributions would be, under the proposed cirtieria, not suitable for Wikibooks. That's quite a significant bunch. [[User:KelvSYC|KelvSYC]] 16:30, 11 October 2005 (UTC)
==Wikipedia Is/Is not==
I found this was telling, and far more important than a wikicities requirements list:
:Wikipedia may contain content that some readers consider objectionable or offensive. Anyone reading Wikipedia can edit an article and the changes are displayed instantaneously without any checking to ensure appropriateness, so Wikipedia cannot guarantee that articles or images are appropriate for children or adhere to specific social norms. While obviously inappropriate content (such as inappropriate links to shock sites) is usually removed immediately, except from an article directly concerning the content (such as the article about pornography), some articles may include objectionable text, images, or links, provided they do not violate any of our existing policies (especially Neutral point of view), nor the law of the state of Florida in the United States, where the servers are hosted.
It seems that several proposed rules (such as no adult content) go against the wikipedia precedent. Of the two, being an official WikiMedia sister project, I think our policies should mirror wikipedia, not wikicities. Being the first and foremost wikimedia project, I think it should be taken as having the Board's approval.
The quote was taken from [[wikipedia:WP:NOT]]. Note that this is official policy, and is still being updated and referenced to this day.
--[[User:Javariel|Gabe Sechan]] 23:58, 10 October 2005 (UTC)
:In particular, these are the rules I think it conflicts with:
* Hacking/cracking content with specific cracking details/exploits or scripts. Any computer security auditing instructional resource must not venture into the territory of how to perform a specific crack. However, it can discuss principles behind cracking techniques and how to guard against them
* Illicit drugs and drug paraphernalia
* Pornography, adult, or mature content
*Any other content that promotes illegal activity or infringes on the legal rights of others, including (but not limited to) content condoning harassment, intimidation, property destruction, espionage, terrorism
:Note that it would still need to be a book in educational form to be accepted.--[[User:Javariel|Gabe Sechan]] 00:02, 11 October 2005 (UTC)
::There's no reason why we can't be more restrictive than WikiPedia. And I mean that sentence in the most literal sense: We can allow only what WikiPedia would allow, and additionally disallow extra materials. For example, the requirement that a book actually be broad enough in scope to (one day) become a full book would serve our purposes quite well (this is the Standards of Quality clauses). People don't mind if they see lots of short (<32k) WikiPedia articles. But for WikiBooks if that's the length of most of our ''completed'' books (for example, lots of "books" of the scope found in [[How to catch a pickerel]]) then people would scoff at the notion that we even claim to be writing books. It makes a lot more sense for us to have scope requirements more restrictive than WikiPedia.
::What would the consequence of scope requirements be? Well, there'd be a lot less "eternal stub" books that won't go anywhere. The really strong material would then get merged in as chapters or sections of existing or developing books. Thus, it's mostly an organizational change than it is a content change: At some level the same information could be found, so it's more about encouraging expressions of information that lend themselves well to the notion of online textbooks, rather than an actual restriction on information.
::Anyway, regarding some of your specific points, the exclusion of "Any other content that promotes illegal activity or infringes on the legal rights of others, including (but not limited to) content condoning harassment, intimidation, property destruction, espionage, terrorism" is actually a re-emphasized version of our NPOV requirement! There's no conflict at all; in fact, a proper reading of the NPOV requirements would imply such an exclusion. It just makes sense sometimes to spell it out, particularly given that we've had problems with materials like that before being put on WikiBooks. A programmer will look at redundant rules and have a primal urge to delete them. A pragmatist could see the reasons why some redundancy in the wording of our policy would help make it less ambiguous. --[[User:Mshonle|MShonle]] 02:24, 11 October 2005 (UTC)
:::I'm not talking about the rules of whats a book vs what isn't. I have no problems with that, and it makes sense that the difference between articles and books causes us to have some differences from wikipedia. I'm saying that the WIkipedia Is/Is Not list seems to give a very clear depiction of what the vision is for Wikimedia projects, and that cutting out material because it may be "objectionable" is definitely counter to that picture. --[[User:Javariel|Gabe Sechan]] 16:33, 11 October 2005 (UTC)
::(edit conflict, what I've said is probably redundant) The wikicities base was only a suggestion. But it really depends on how you see the project; do you see it, as the founders apparently did, as a place to write GFDL textbooks for schools/universities? Or do you see it as a site where any legitimate book with an instructive purpose, even on subjects not taught in such settings, should be allowed? I think different opinions on what we are and aren't is the basis of a lot of the problem here. [[User:Garrett|Garrett]]<sup>[[User talk:Garrett|Talk]]</sup> 02:53, 11 October 2005 (UTC)
:::I'd put myself firmly in the second camp. I see no reason why an instructive book should be disallowed because it isn't a textbook. There's a lot of things not taught in college that are useful to know. I also think it would hurt wikibooks to do so, those books bring in traffic, and every additional reader is a possible contributor. --[[User:Javariel|Gabe Sechan]] 16:33, 11 October 2005 (UTC)
::::I'll second the opinion of this user. [[User:KelvSYC|KelvSYC]] 17:12, 14 October 2005 (UTC)
== Self-harm ==
Upon first inspection, there doesn't seem to be any rules pertaining to self-inflicted harm. The illegality clause obviously rules out a book like: ''450 Ways to Commit Suicide'', but if I'm not mistaken it's isn't illegal to be anorexic. However I highly doubt that a book entitled ''How to Hide Anorexia from Friends and Family'' is the kind of thing that we would want on wikibooks. We just need some sort of policy restricting books on self-inflicted harm as well as a clearly defined set of standards dictating what exactly this means. For example I wouldn't want a how to guide on cutting yourself to be allowed but I would be okay with a BDSM manual. --[[User:Genericdave|Genericdave]] 09:27, 24 October 2005 (UTC)
== The list ==
I'm not a regular here (but one of my books was moved to Wikibooks, so I'm not a complete outsider either). Anyway, this list is bad. The most important points are:
* ''Hacking/cracking content with specific cracking details/exploits or scripts. Any computer security auditing instructional resource must not venture into the territory of how to perform a specific crack. However, it can discuss principles behind cracking techniques and how to guard against them''
** This makes it de facto impossible to make a decent textbooks on computer security, network administration or cryptography. Check '''any good textbook''' for those subjects - they discuss the attacks, often in a very fine detail.
* ''Pornography, adult, or mature content''
** I'm fine about banning outright porn, but a lot of material is not very suitable for children, especially in medicine.
Some minor points:
* ''Illicit drugs and drug paraphernalia''
** Synthesis of chemical drugs is described in normal chemistry textbooks. The other candidate - cultivation of marijuana is rarely described in real textbooks, but it's legal in some countries. Almost any drug is legal "in some country".
* ''Gambling or casino-related content; except for resources that describe the sports abstractly without any participation in actual games or betting''
** It's just a sport. I don't see why should we ban bridge while allowing chess.
Now about the other points:
* ''Any work that would be considered original research or otherwise unverifiable''
** We better find a good definition of the banned original research, because some research is involved in writing about any book.
* ''Any entertainment guides or hobby guides that are based on created works of fiction''
** You mean, like, computer game howtos ? I don't see why we should ban those while allowing traditional games.
* ''References that are only records of facts, dates, persons, charts, etc that lack instructional value''
** I've seen a lot of arguments what's the right place for stuff like the system-independent libc reference manual. Most people think the right place is here (I think it's Wikipedia, but anyway). So is this kind of content appropriate for wikibooks or not ?
* ''Any topic that is taught as a serious course, from kindergarten up to and including the university level, is included, provided that the writing itself is written from a neutral point of view (NPOV) and does not violate the immediate exclusions set forth. Cookbooks qualify because there are legitimate cooking courses.''
** There are legitimate cooking courses, but should it really be the main criterion ? Few people attend those, most will use the cookbook in private. Are there legitimate chess courses ? Or civilization 3 courses ? I think a better criterion is needed.
[[User:Taw|Taw]] 00:37, 14 November 2005 (UTC)
Generally I agree with you
* hacking - I agree, we shouldn't prohibit writing about it in detail
* mature content - but f.e. medicine falls under exclusions ("serious course"), so we can keep this prohibition
* original content - ok, there can be some doubt here. I think the main factor for decision will be if we can verify information provided by the book
* serious courses - I like this approach, what are you suggesting instead?
--[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 00:56, 14 November 2005 (UTC)
== What are we using this page for? ==
I'm getting confused here. I thought this page was all about how policies should be changed, yet nothing seems to be happening with "closed votes" and no progress on anything.
What appears to be a significant policy change has happened on [[Wikibooks:What is Wikibooks]], but completely without community concensus or support. Mind you, with Jimbo being benevolant dictator and ruler of all Wikimedia projects he is somewhat entitled to doing things like that, but additional text was added beyond what Jimbo wrote, and that does deserve to have some further discussion before being substantially changed.
More importantly, we need to '''BE BOLD''' here and make this page useful to actually modify policies. Right now, all that happens is to argue endlessly about what the policies might be, but nothing gets changed unless somebody arbitrarily '''is bold''' and makes the changes to official policy. I'm openly admitting that I've made changes to official policy without formal community concensus, simply because I felt it was something that needed to be done.
The danger of having an admin or other project leader make arbitrary changes to policy is that you can put in patent nonsense into the policies, and this is also something ripe for a huge edit war of historic proportions if it isn't dealt with properly. These policies are also the fundimental basis for justification to delete content here, or to generally govern activity of what goes on with this project. As such, we need to decide how changes to these pages will happen.
I could argue about several forms of governance on Wikibooks, but the typical model used on most Wikimedia projects is participatory democracy to conduct legislative changes. That is precisely what IMHO this page represents, and is the forum to make policy changes. This is an underutilized page and I have yet to see a single policy change happen with this forum, yet policies are being modified and changed... even '''enforced''' policies. The way those policies are being changed is not the way it should happen.
I guess I'm also trying to say that Wikibooks has "grown up" enough that we need to get a more formalized process of updating policies. Argue with me on this point if you don't agree, but there have been several new admins added to Wikibooks, not all of whom have the same philosophy.
Here is my proposal:
# Get rid of everything on this page that currently is for some arbitrarily future vote that will never happen. Basically I'm suggesting we blank this page and move on.
# Turn this page into something like the VfD discussions, but with an eye for policy changes. If the vote is to take place in the future, it needs to remain on the talk pages, not on the main vote page. You can form a "comittee" to try and hammer out the specific language of a policy change, but once you have come up with the language and idea for a policy change, don't just change the policy... have a vote on that policy change here.
# Consolidate all other policy votes from everywhere else on Wikibooks that are of a general nature. I'm not talking about policies for an individual Wikibook or to discuss how to approach a single topic, but if it affects multiple Wikibooks or is a part of a general discussion, that vote should take place here, not on some other policy discussion page that may get lost in the shuffle.
# '''Be specific''' about the changes to policy you are proposing to make. This means you need to state what the policy is currently and what you want to change that policy to become. A good example of this is with the current vote on [[Wikibooks talk:What is Wikibooks#Wikibooks is not a dictionary]] which has both an existing policy and a proposed new policy that will be the modified text.
# Keep the time to vote for a specific policy change time-limited in some form. I've strongly suggested that Wikibooks tends to take a little bit more time to accomplish things than Wikipedia, so I'm suggesting this time period to vote should be about a month or until concensus has been reached. A well-worded proposal that follows existing practices is likly to be unanimously accepted anyway, but it still needs community approval...especially on enforced policies.
# Get rid of proposed policies. Either get formal approval to enforce or get rid of it. The place to approve the text of the proposal is here. If the proposal still needs work, fine, keep it as a proposed policy. The problem is that we are now using these proposed polcies to enforce actions on Wikibooks. Most of the proposed policies are fairly well written anyway, and if we need to make a change to those policies, this is an appropriate forum to make those changes.
# We should allow and even encourage multiple proposals to change a policy, even the same text. At that point we can try to select the version of the text that as an individual contributor we like the best.
# If possible, when proposing a policy change, we should also try to identify which Wikibooks would be most affected by the new policy.
Policy changes are just to arbitrary right now, and I think it is time to seriously "clean house" here. --[[User:Robert Horning|Rob Horning]] 17:08, 15 November 2005 (UTC)
:It does seem like I arrived just in time to witness a massive change in the Wikibook structure. And from what I've seen, it really is needed. Not much here seems very organized, and that should be remedied. We need to have one location to discuss proposed policies, with an attached voting page when it is ready to be voted upon. I agree that this page should probably come close to being being totally blanked and started over. I do not think we should only allow changes through proposals though. Small changes that reflect community consensus do not need to be proposed. Someone can '''be bold''' and just add it. If enough people watch the policy pages, people can catch bad things being added. But I think the first major discussion need to take place about the issue over What is Wikibooks. --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 17:34, 15 November 2005 (UTC)
::This obscure page (Wikibooks talk:Policy/Vote) seems to be an artifact from earlier times, and is not in the location that I expect. Try [[Wikibooks:Staff lounge]] or [[Wikibooks talk:What is Wikibooks]]. --[[User:Kernigh|Kernigh]] 22:59, 16 November 2005 (UTC)
::: But what about [[#A directly enumerated WikiBooks policy]]? It is nearly finished and after some tweaks it could help deciding whether a text is suitable for Wikibooks. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 23:19, 16 November 2005 (UTC)
::::Read the rest of the comments on this page. There's major objections to just about every rule on it, many of which have a solid basis (although I'm admittedly biased, as I made many of them). I wouldn't consider it anywhere near nearly finished- its basicly at a standstill between camps who haven't changed their mind, but got tired of arguing as they knew neither had a consensus. --[[User:Javariel|Gabe Sechan]] 23:32, 16 November 2005 (UTC)
::I have completely missed "A directly enumerated WikiBooks policy" because it was not posted at [[Wikibooks talk:What is Wikibooks]]. Thus I have not yet participated in the discussion about it. As for game manuals (a subset of entertainment guides), I have created [[Wikibooks:Game manual guidelines]] and [[Wikibooks talk:Game manual guidelines]] to discuss that. --[[User:Kernigh|Kernigh]] 00:20, 17 November 2005 (UTC)
:This page is not an artifact from an earlier time, but an attempt by Aya to try and get some movement on what is going on here on Wikibooks in terms of policies. I'm just trying to formalize this process and provide a central place for policy vote decisions to be made, as opposed to votes on half a dozen other pages that I don't have time to look at all of the time myself. I also think these votes are inappropriate for places like [[WB:SL|Staff Lounge]], which should be more for new users Q/A and general announcements to the Wikibooks community. We need someplace to do these kind of votes, so why not here? I don't want a major policy change to happen and I'm not aware of it even occuring until I see the rule invoked on the VfD page. --[[User:Robert Horning|Rob Horning]] 15:47, 17 November 2005 (UTC)
::I thought this talk page was a subpage of [[Wikibooks talk:Policy]]. Actually, there is a [[Wikibooks:Policy/Vote]] page. I must have read too many Wikipedia talk pages...
::Then, yes, I would support using [[Wikibooks:Policy/Vote]] as the location for all policy changes that cause voting. --[[User:Kernigh|Kernigh]] 04:15, 18 November 2005 (UTC)
qwy31y9c1e7cujafqabmplkavqy35pq
Wikibooks talk:Naming policy/Archive 2
5
65641
4640090
4415732
2026-06-13T13:00:22Z
ShakespeareFan00
46022
4640090
wikitext
text/x-wiki
== Colon convention and interwiki links ==
What if someone creates a "cookbook" wiki, and someone adds "cookbook" to [[m:Interwiki map]]? Does this means that all [[Cookbook]] links on Wikibooks, like this link [[Cookbook:Recipes]], start failing? That is, do interwiki links conflict with our colon convention? --[[User:Kernigh|Kernigh]] 20:37, 8 November 2005 (UTC)
:Raises a good point, but i can't imagine anybody naming a new wiki something that doesnt have the wiki-prefix attached. I can see a "wikicooks" or something like that spring up, or a "wikicookbooks" or something. All of the new books that I have been working on all use the forward-slash convention anyway, i think that's the best way to go. --[[User:Whiteknight|Whiteknight]] <sub>[[User talk:Whiteknight|T]]</sub><small>[[Special:Contributions/Whiteknight|C]]</small><sup>[[Special:Emailuser/Whiteknight|E]]</sup> 20:49, 8 November 2005 (UTC)
Our current [[MetaWikipedia:Interwiki map]] is bloated. I can do [[Google:Cookbook]] and [[FreeBSDman:cat]]. What if someone copies "Cookbook" from [http://pmwiki.org/wiki/PmWiki/InterMap the default PmWiki InterMap]? (I was surprised to encounter a "cookbook:" wiki, but at least there might not much interest in linking to PmWiki recipes from MediaWiki wikis.) --[[User:Kernigh|Kernigh]] 06:19, 14 December 2005 (UTC)
== Colon Convention Usefulness ==
Could someone explain to me the use of colon convention? I personally think it makes more work for writers, isn't a practice used in other Wikis, and causes a lot of trouble with the MediaWiki software. I like the idea of removing the acceptance of colon convention from this policy entirely. To me, slash notation is a lot cleaner and there's a lot more experience with it by many. If this seems acceptable, I would hope there'd be an effort to refit all existing books, especially [[Cookbook]]. Colon notation seems rather obsolete. -[[User:Withinfocus|Matt]] 21:56, 13 December 2005 (UTC)
:I agree wholeheartedly. there are no benefits to the colon convention, and there are benefits to the slash convention. --{{User Whiteknight Sig|Whiteknight}} 22:32, 13 December 2005 (UTC)
::I'd like for the section to be removed from the policy then (if more people support it). The real problem is getting all the old books fixed up, but I really think getting this policy moved to "enforced" first is a step in that direction. Some Wikibooks' organization is atrocious (some books have even gone as far as having several of their pages be root right off of wikibooks.org) and I think that to get this site some more respect we need to get it more organized. -[[User:Withinfocus|Matt]] 23:30, 13 December 2005 (UTC)
:::The current reason for colon convention seems to be to avoid renaming several existing pages, including the [[Cookbook]] pages. However, I do prefer slash convention for books that I edit, and I did mention the conflict with interwiki links in the previous thread. But my one reason for supporting colon convention is that I currently use it in the category and template namespaces (especially as {{tl|Guide to X11:stub}} does not match any submodule "Guide to X11/stub"). --[[User:Kernigh|Kernigh]] 06:23, 14 December 2005 (UTC)
::::That is a good point. We could keep the colon convention around for use in templates, because in templates, everything is already in the Template: namespace. --{{User Whiteknight Sig|Whiteknight}} 15:11, 14 December 2005 (UTC)
::::I agree that Template should stay around (should have specified that since I never wanted it gone to begin) since it is a proper use of the convention. One thing we may want to add to this policy is that the colon convention should only be used by things like templates, but to keep the templates within a structure of their own based on the book. The Guide to X11 is close to an example of what I'd like. It's not just "Template:Xinerama" or something like that but "Template:Guide to X11/Xinerama." It might not be a bad idea to keep the templates structured this way. Is there a problem with that implementation? -[[User:Withinfocus|Matt]] 15:33, 14 December 2005 (UTC)
:: With respect to the [[Cookbook]], one reason for using the colon convention is that the book is supposedly supposed to get its own namespace (indicated by "namespace:") and leaving it as-is would relieve any updating of links. When this happens is of course completely up to wikimedia administrators and developers so who knows. Also, unlike other books, the Cookbook has much less structure, so I think most pages would end up just being "Cookbook/Recipe Name" anyway... [[User:Kellen|Kellen]] <sup>[[User_talk:Kellen|T]]</sup> 14:49, 16 December 2005 (UTC)
:::With the cookbook, i can understand it. Cookbook isn't exactly a "book" in the sense that you can't coherently read it in order. Giving Cookbook a namespace helps to keep all the unrelated material together in one place. However, i don't think that we should just give an entire namespace to every little new book that comes along. Few books are going to have the depth and scope that the cookbook has. --{{User Whiteknight Sig|Whiteknight}} 15:39, 16 December 2005 (UTC)
:::I read somewhere that someone planned for a "Cookbook" namespace, but so far it has somehow never been created. --[[User:Kernigh|Kernigh]] 23:24, 18 December 2005 (UTC)
::::The problem is that only those with developer access to the wiki's PHP can add a namespace, so it's a slow process. Heck, I asked to enable .ico uploading a while back and I betcha that's still not done either... [[User:Garrett|Garrett]]<sup>[[User talk:Garrett|Talk]]</sup> 23:45, 18 December 2005 (UTC)
:I have made changes to reflect the recent discussions. Hopefully this will help out the organization here. -[[User:Withinfocus|Matt]] 18:33, 26 December 2005 (UTC)
::Generally, good. Slash convention is much more helpful. --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 16:00, 28 December 2005 (UTC)
As a FYI, the Cookbook namespace is currently up, and has been, from atleast December 20. [[User:Gentgeen|Gentgeen]] 13:04, 2 January 2006 (UTC)
----
I changed [[Wikibooks:Naming policy]] so that colon convention would be allowed for Cookbook and Categories, in addition to Templates.
Do we want to allow something like "Category:Bookname/Something". Or should it always be "Category:Bookname:Something"? --[[User:Kernigh|Kernigh]] 03:00, 11 January 2006 (UTC)
:Since cats have no automatic parent I don't think it matters what is used, as long as it's placed within the parent cat and the implied parent cat actually does exist. [[User:Garrett|Garrett]]<sup>[[User talk:Garrett|Talk]]</sup> 09:24, 11 January 2006 (UTC)
:Well, I personally prefer something like "Cookbook:Soup/Chicken Noodle", but that's just me. Unsure about the difference for categories though. --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 21:54, 12 January 2006 (UTC)
::Actually, it would probably work best to use colon after anything that is not a namespace, for example "Template:Guide to X11:stub" instead of [[Template:Guide to X11:stub]]. Otherwise, the <nowiki>{{Guide to X11:stub}}</nowiki> would suggest that "Guide to X11" was the namespace, like with <s><nowiki>{{</nowiki>Wikibooks:Template messages:toc<nowiki>}}</nowiki></s>. <small>(I moved "Wikibooks:Template messages:toc" to [[Template:Template messages]]. --[[User:Kernigh|Kernigh]] 04:57, 30 January 2006 (UTC))</small> In fact, if I created "Template:Cookbook:Development", I probably would not be able to use it. --[[User:Kernigh|Kernigh]] 01:10, 18 January 2006 (UTC)
== one way that colons work better than slashes ==
''"colon convention? I personally think it makes more work for writers"''
I have found one way that colons work better than slashes.
Writers often refer to other chapters of the book.
Writers spend less effort and are less likely to make mistakes
when they use the [[w:pipe trick]].
But the pipe trick only works when titles use colon or the parentheses.
(How do I file a bug report to request that the pipe trick be improved, so that it also works when titles contain slashes?)
Because of the [[w:pipe trick]],
* [[Gardening:Sweet Potato|Sweet Potato]] [[GCSE Science/Electrical Power|Electrical Power]] [[Embedded Systems:Embedded System Basics|Embedded System Basics]] (see the colon?) or
* [[Sweet Potato (Gardening)|Sweet Potato]] [[GCSE Science/Electrical Power|Electrical Power]] [[Embedded System Basics (Embedded Systems)|Embedded System Basics]] (see the parentheses?)
take less work than using the slash to write
* [[Gardening/Sweet Potato|Sweet Potato]] [[GCSE Science/Electrical Power|Electrical Power]] [[Embedded Systems/Embedded System Basics|Embedded System Basics]] (see the slash and the extra typing?)
.
--[[User:DavidCary|DavidCary]] 17:41, 14 January 2006 (UTC)
: I agree that pipe trick is a great thing. I'm disappointed that it does not work with slash convention links. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 19:10, 14 January 2006 (UTC)
::I would also expect that the pipe trick works for subpages. There is already a bug report for this: [http://bugzilla.wikimedia.org/show_bug.cgi?id=845]. But take into account that subpages also provide shortcuts for brevity, e.g. you can use <nowiki>[[/Subpage/]]</nowiki> which resolves into [[/Subpage/]]. [[User:ManuelGR|ManuelGR]] 03:36, 15 January 2006 (UTC)
::: I didn't know that. That trick will save me some time. Thank you. --[[User:DavidCary|DavidCary]] 00:44, 18 January 2006 (UTC)
== Adding book name to the end? ==
Inside the movie making manual, check out the category "[[:Category:Writing movies]]": It's difficult to quickly scan through this page and only read the page titles ("Certification", "Downloading Scripts", "Logline"...), since the linked articles don't begin with this title. Couldn't we add the book name to the end of a book and shorten it, as in "Certification (mmm)", "Downloading Script (mmm)" and so on? Or is there a technical way around this problem, like displaying the alt-name of the category-tag from the linked page? Thanks for any help! [[User:Cramer|Cramer]] 22:59, 16 January 2006 (UTC)
: I see. Yes, that's a good argument for the historical "disambiguation convention" <code><nowiki>[[page name (book name)]]</nowiki></code> once used in some books (and still used at Wikipedia). [[Wikipedia:Categorization#Category_sorting]] has a few tricks, but don't see any that do exactly what you want. --[[User:DavidCary|DavidCary]] 00:44, 18 January 2006 (UTC)
:: [[Wikisource:en:Free Culture]] uses an opposite format, <code><nowiki>[[book name (page name)]]</nowiki></code>. --[[User:Kernigh|Kernigh]] 02:13, 18 January 2006 (UTC)
:: Actually, a style like "Certification (mmm)" would make categories easier to read, but it would also make [[Special:Allpages]] harder to use. I consider both categories and special pages to be mostly for editors, not readers. I think that slash convention (like [[Guide to X11/Starting Sessions]]) is important, because MediaWiki generates a link for readers back to the front page [[Guide to X11]], and many editors otherwise forget to include such a link (consider [[Civ:The Basics]] or [[GCSE Science/Energy|Energy (GCSE science)]].) --[[User:Kernigh|Kernigh]] 02:13, 18 January 2006 (UTC)
:For subpages in categories there is a workaround — setting the sorting key to the title after the slash. But for the [[Special:Allpages]] problem for disambiguation pages there is no workaround. By the way, better that [[Special:Allpages]] for books, is [[Special:Prefixindex]]. See [[Special:Prefixindex/Ada Programming/]], for an example. This would not work for "Chapter (Book)". [[User:ManuelGR|ManuelGR]] 20:39, 18 January 2006 (UTC)
::Well, it's only a partial workaround - the pages are sorted correctly, but displayed incorrectly. I never use [[Special:Allpages]], but if somebody else uses it, I can feel your concerns. I guess the only way around it is to have a different naming space for every book, like wikicities where every new wiki gets their own domain. Could we implement such a thing here? [[User:Cramer|Cramer]] 18:40, 5 February 2006 (UTC)
== Bad Tactics ==
:I have no problem with the concept of coming up with a standard for naming modules, and I am in general agreement with the proposed policy. But I strongly object to placement of banners on modules that appear not to presently fit the suggested naming "rule". These banners are essentially a form of vandalism to the book or module. If they are intended to convey a suggestion (that renaming is in order), then they belong on the discussion page of the module where any information intebnded for contributors is placed. What was one of the real pluses of working at Wikibooks, was the lack of editors with nothing better to do than run around imposing their idea of what is correct on contributing editors work. This phase has apparently ended here. - [[User:Marshman|marsh]] 19:13, 22 January 2006 (UTC)
:: I don't understand you. It is a common Wikipedia rule to place cleanup messages at front of page, not discussion page. Discussion pages are rarely visited and the purpose of {{tl|cleanup-NC}} is to encourage book visitor to help change its naming convention. The template was ment for orphaned books without active contributors, where it's not easy to get help from book authors. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 21:56, 22 January 2006 (UTC)
:: The problem is that we can't do the changes outself. The police allows for some freedom and it is up the authors and contributors of the book to decide how to structure the book. Also: {{tl|rename}} is often uses where we only suspect the page to belong to some paricular book. Take [[Melon]] for example. It can't stand on it's own (Wikibooks is not Wikipedia) and it is linked from [[Nutrition]] and [[Edible Plants]] and could belong to either book. All we can do is mark the book and hope that the authors and contributors take the hint. --[[User:Krischik|Krischik]] <sup>[[User_talk:Krischik|T]]</sup> 07:16, 23 January 2006 (UTC)
:: '''Inappropriate POV use of cleanup message box.''' I think that cleanup message boxes should not be used, even on discussion pages, to attempt to enforce a rejected policy or a proposed policy. The proposed consistent naming policy appears to have lost in [[/Archive 1|previous voting]]. Pages should not be marked with official-looking cleanup message boxes to hint to readers that the page is in violation of policy when it is not in violation. And, especially, a bot should not be used to find and mark such pages as needing "cleanup". [[User:KHatcher|KHatcher]] 13:41, 26 January 2006 (UTC)
::: Excuse me, I'm not a bot, so why do you write about bots inserting cleanup messages? I was marking for cleanup books that had completely wrong naming convention. We were discussing some proposals here, but we all agree that pages shouldn't have titles like "Introduction" and book having chapters "Basic Ecology Contents", "Ecology Introduction", "Ecology: Species and Populations" and "Invasive Species Glossary" are not named properly. There are some generally accepted depreciated naming conventions: "Chaptername" and "Book Chaptername", which shouldn't be used. I think in such cases inserting cleanup message is a right decision. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 17:44, 26 January 2006 (UTC)
== Icelandic Wikibook, naming conventions, etc. ==
Guid day to ye. I'm still bewildered by what you meant by the "naming conventions". What was the name of the Icelandic Wikibook before it was changed (if it was changed)? - 20:37, 22 January 2006 (UTC) [[User:Greatgavini|The Great Gavini]]
== Separating enforced and proposed part of the policy ==
I'm tired of endless discussion of every paragraph of the policy. If we maintain current speed of dispute, we won't prepare complete policy this year. I think that we keep focusing on details with detriment to the whole policy. My suggestion is to divide naming policy into two parts: one we have reached consensus on, and other we are discussing. First will be marked as enforced, second as proposed policy. I would see most of the current article in first part, including title delimiter rules and page structure. As we still have doubts about categories, templates and aliases, these paragraphs will be marked as proposed.
As for me, I would support every consistent policy, regardless which shape it will have. I find current policy mature and well-written, maybe excluding part concerning category naming, but I would accept it. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 22:30, 22 January 2006 (UTC)
=== Clear out the votes ===
I was thinking about clearing the votes. Many of those who have voted have not revised there vote (at least not that I noticed). Yes: seperate the page, clear the votes, start again and hopefully this time we get a consensus.
As for me: I was the first to vote "yes" as I allways thought: "good enough and better then no policy at all". But then came the "nit pickers" who are never satified.
--[[User:Krischik|Krischik]] <sup>[[User_talk:Krischik|T]]</sup> 07:04, 23 January 2006 (UTC)
:I would support clearing the votes. Go for it? You're the admin. -[[User:Withinfocus|Matt]] 02:07, 24 January 2006 (UTC)
::I decided to archive the top of this talk page, including the old poll. This allows someone to start a new poll. The old poll is in [[/Archive 1]] if someone needs it. --[[User:Kernigh|Kernigh]] 07:47, 24 January 2006 (UTC)
== Wikibooks needs best page titles (and happy authors) ==
=== Problems with forcing article titles to be computer filenames ===
The articles (modules) written for Wikibooks need to have a good title (something your English teacher would have approved as an appropriate title) and also a concise filename (something your computer programming teacher would have approved) for use in programming functions such as linking to the article and showing its hierarchy within the chapter and book. This was easy on Wikipedia, because each article (module) could have a short title (encyclopia articles typically do have short titles) which could also serve as the filename. And the Wikipedia articles do not have to link back to any higher level article, so the automatic Table of Contents box on Wikipedia only needs to show the downward hierarchy of any sections and subsections within the article, but it does not need to show any upward hierarchy. But the Wikipedia page naming method and the Wikipedia auto TOC do not really fit the needs of Wikibooks. <br/>
For example, suppose that the editor for a book on Windmills would like to invite a respected historian to contribute an article (module, or section of the book) on the topic of history of the traditional American farm windmill. The historian may wish to call his article, "History of the Traditional American Farm Windmill." The historian might not like to have his article forced to be named: Windmills/History/Farms/American or any other article title which looks like a computer file name. He might not accept the invitation to write the article is he is forced to use some computer convention in naming his work. Forcing the current '''proposed''' Wikibook:Naming Policy may make it harder for book editors to recruit the best people to write the articles. --[[User:KHatcher|KHatcher]] 16:02, 27 January 2006 (UTC)
Has anyone heard of a high quality book publisher (for printed books) who requires book editors and authors to name their book sections according to a hierarchical format (like a computer file structure) as proposed on the WB:Naming Policy page as follows? <br/>
Lifeforms/Animals/Insects/Butterfly <br/>
I think that removing ability of book editors and authors to name their work could make many of them unhappy and likely to look elsewhere for a kinder book publisher.
<br/>
The reason for the current proposed policy (requiring a computer file naming structure as the Wikibook page naming convention) is to show the hierarchical position of the page within the book, and also to help readers quickly navigate to the next higher level section. But there might be a better way to do this than using the page title for this purpose. We need to find a way to meet both objectives: (1) let authors provide best title for the page, and (2) provide a way to show page hierarchy and quick link to the "parent" page. [[User:KHatcher|KHatcher]]
: http://www.pmwiki.org/wiki/PmWiki/Directives#title - But I guess that's a feature request if we want that in MediaWiki as well --[[User:Krischik|Krischik]] <sup>[[User_talk:Krischik|T]]</sup> 07:20, 26 January 2006 (UTC)
* The recommended alternative to the name "History of the Traditional American Farm Windmill" is not "Windmills/History/Farms/American" but rather "Windmills/History of the Traditional American Farm Windmill." The former alternative may be offputting to a historian, but the second is considerably less likely to be so. The proposed policy does not require a hierarchical naming scheme. In particular, it does not require a name like "Lifeforms/Animals/Insects/Butterfly." The hierarchical naming scheme is given as one alternative, and not even as the recommended one. The flat naming scheme is given as the recommended alternative. In it, the butterfly page becomes "Lifeforms/Butterfly". If even this seems a bit offputting, remember that this is an example used to illustrate the difference between the flat and hierarchical schemes. For a real book that follows the recommended nameing scheme, see [[How To Build A Computer]] which was listed approvingly as an example in the policy. For a book I'm writing, [[Formal Logic]], I use a mixed scheme. It has a three level hierarchy with further organization at the the lowest level following the flat naming scheme. Although not specifically forseen by the naming policy, this plan complies with it. See also my comment to your [[Wikibooks Talk:Naming_policy#Idea_1_-_Use_page_filename_and_page_title|Idea 1]] below. --[[User:JMRyan|JMRyan]] 16:04, 28 January 2006 (UTC)
:* Yes, you are right to point out that the flat naming naming scheme is given as the recommended alternative, and that is likely to be less offputting to authors. I like the idea of having alternatives and recommendations regarding the naming scheme to be available to book editors. But even the flat naming scheme can be awkward when the book title is long and the section title is long. I just went to my bookshelf and pulled out a random book, to see how authors might be naming their book sections.
::The book is "An Introduction to Philosophy: Ideas in Confict" (by Peter Y. Windt).
:::Chapter 11 is titled "Perception and Knowledge of the Physical World" and the first section in that chapter is titled
::::"Rene Descartes: 'Sceptical Doubts about Our Knowledge of the Physical World."
:So the page name for this section would be long and probably spill over into two lines of text. The flat naming scheme could be made less offputting to authors if the first line (the book name before the divider) were in smaller font that the second line (the title of the section), and if the line break came at a logical place such as just after the divider. -- [[User:KHatcher|KHatcher]] 16:22, 29 January 2006 (UTC)
::* Suppose Wikibooks (or WikiCommons) editor wished to import an existing classics book (with permission, of course) and set it up with all the linkages. If the original book had long titles, as above, it would be handy to have a shorthand version to type as links (within the double brackets). So a page name that is structured as computer filename would be helpful as a shorthand, such as, PhilosophyIntro:Perception:Descartes for the above case. Then the pages would look better if the page filename appeared in small font and the actual article title appeared in prominent font.
:*Now there is the second issue of whether to force authors to use the slash as the divider. Using the slash, rather than colon, triggers the feature of automatically putting the backlink to the higher level module (first part of page name before the slash) just under the page name. But some book editors may prefer to make their own backlink in their own format, and may not want a duplicate automatic backlink put on the book pages. I think that editors should be free to do this, as long as they do indeed provide some backlink. -- [[User:KHatcher|KHatcher]] 16:22, 29 January 2006 (UTC)
::*Also I think the slash looks less aesthetic in print, because it does not provide enough visual separation between the words.
=== Unbundling TWO Proposed Policies - Naming and BackLinking ===
*The current proposed policy on [[Wikibooks:Naming policy]] actually combines two proposals. The first is the naming convention and the second is how the article will be linked back to the parent article (module). Under the current proposal, lower level page names will be required to include the names of higher level modules within their page name, and to separate the multiple higher level names using slashes. Using slashes in the multilevel page name (instead of colon or dash or space) then triggers the function of automatically showing the backlinks (in small font) just below the page name on each page. This automatic backlinking feature then either forces the book editor to accept this method of showing backlinking on the pages, or it produces a duplicate backlinking if the book editor has already provided his own system of backlinking and showing page hierarchy. I notice that [[User:Marshman]] already uses his own system of showing page hierarchy and backlinking in his [[Botany]] book, and his system looks very nice and looks better than the backlinking system to be forced by the proposed WB:NP. -- [[User:KHatcher|KHatcher]] 16:02, 27 January 2006 (UTC)
=== Idea 1 - Use page filename and page title ===
*One idea is to not try to make the page name serve two different and incompatible objectives at the same time. Instead, separate the two functions by having both a page filename (which shows hierarchy) and a page title (whatever authors want for any new page title).
:One method of doing this is shown in book on Botany in chapter on Mycoloty, [[Botany Mycology]], where the page name (first line on the page) is allowed to be a computer filename, and the actual page (or chapter) title is written as text in large font. So the author can select any most appropriate title he wishes. I would just prefer that the font for the filename be made smaller in comparison with the actual title for the article. -- [[User:KHatcher|KHatcher]] 16:02, 27 January 2006 (UTC)
:Another method (as used by Wikipedia) is to let the page name be the article title. Then the page filename would need to be shown in smaller font below the page title, and there would need to be some way for the author to enter the correct title (rather than the page filename) as the first line on the page. [[User:Krischik|Krischik]] in his comment (above) offered a possible coding method for doing this. -- [[User:KHatcher|KHatcher]] 16:02, 27 January 2006 (UTC)
:* The method employed in [[Botany Mycology]] does not violate the naming policy, though the page name "Botany Mycology" does. Changing the page name to "Botany/Mycology" to conform with the naming policy would not change the fact that the page employs Idea 1. In other words, your idea is consistent with the naming policy. The wiki software provides no support for implementing this idea, but there is nothing, naming policy or otherwise, to prevent you from implementing it by hand as you did in [[Botany Mycology]]. You were concerned above about the offputting name "Windmills/History/Farms/American." Implementing Idea 1 by hand should soothe the few prospective authors that would be put off by the page name "Windmills/History of the Traditional American Farm Windmill." --[[User:JMRyan|JMRyan]] 16:22, 28 January 2006 (UTC)
=== Idea 2 - Improve the auto TOC ===
*Second idea (which may even solve two problems in organizing a book): Improve the automatic table of contents feature on each wikibook page so that it shows the page hierarchy upwards as well as downwards. Then the reader could click on the higher level section or chapter in the auto TOC to navigate to the "parent" page.
=== Idea 3 - Status quo with superheadings ===
*I prefer the status quo where book authors are still allowed to name their book pages as they think best (and no one sneakily adds a bot-written box on the discussion pages to lure readers to change the "nonconforming" page names into the computer file structure format). Anything to help the book authors (help, not force) to improve the clarity and consistency of page hierarchy and improve quick page navigation within the book will be welcome. I'd like to make better use of the existing auto TOC feature for this purpose. Does anyone know how to fix the section numbering within the auto TOC so that the first section is not always numbered as 1.0? For example, if the page is chapter 4 of the book, I would like for the auto TOC to begin numbering the page subheadings as 4.1 then 4.2 then 4.3 etc. With ability to control the numbering, I could then show the upward hierarchy for the page in the auto TOC by using some subheadings creatively as superheadings. [[User:KHatcher|KHatcher]] 00:42, 26 January 2006 (UTC)
=== Idea 4 - Page name using 2 lines and 2 fonts ===
*This might be a compromise solution. Using the proposed naming policy (with slashes) sometimes causes long page names which spill over into two lines at top of a page. The page would look better if this line break occurred at a logical place, such as after the last slash. That would provide a better visual separation of the book name (on the first line) from the chapter or section name (on the second line). I suggest making this separation even when the page name is short. If the first line of the page name (the book title) could be shown in small font, with the second line (the title of the chapter or section) in the existing large font, that might provide a way to meet both objectives. - [[User:KHatcher|KHatcher]] 14:04, 26 January 2006 (UTC)
I'm strongly sceptical about all these ideas. MediaWiki team is focused on improvements useful for Wikipedia, I don't think they would put much effort on features useful only at a marginal project, which Wikibooks unfortunately is. Even if they started working on it, I won't expect results very soon - should we sit and wait for new MediaWiki version? Moreover, in my opinion there will always be books that won't fit schema of "normal" Wikibooks, having an odd structure which would mess up automatic navigation generating. As for me, we are stick to current naming conventions.
One more thing: what if a module got orphaned? If it was named like "Solution 3" it would be very hard to find it's parent book. If you check [[Special:Lonelypages|orphaned page list]], you will see how big this problem is. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 17:44, 26 January 2006 (UTC)
=== Examples where filename and title differ ===
[[image:wiki-titles-x11-building.png|thumb|right|400px|screenshot of [[Guide to X11/Building]]]]
I had a similar problem at Wikisource; the page was called [[Wikisource:Elements of Style:Form|Elements of Style:Form]] but I wanted the title to be "IV. A Few Matters of Form". I added the title in a manner similar to what [[Botany]] does.
Today I adjusted [[Guide to X11/Building]] in the same way. At the top of the page:
# Filename "Guide to X11/Building", which is what I copy and put in double-square-brackets when I want to make a link.
# Backlink "< [[Guide to X11]]" to the front page of the book.
# {{tl|Guide to X11}} which produces a green box for navigation.
# Contents automatically inserted by MediaWiki.
# <tt>== Building ==</tt>, the title; one can replace it with a longer title without renaming the page.
An [http://en.wikibooks.org/w/index.php?title=Guide_to_X11/Building&oldid=271497 older version of the same page] only had elements 1 and 2, the minimum needed to label and navigate this book. When I created the page, if I had called it "Guide to X11:Building" instead, the link would be missing, like how [[Civ:Terminology]] has no link to [[Civ]]. But [[Botany Mycology]] is an example of authors providing links without using slash convention. --[[User:Kernigh|Kernigh]] 00:58, 30 January 2006 (UTC)
::This is a good example, and it shows a professional looking page. It also shows a TOC feature where I have wished for a solution. Your green box shows that Building is your book's chapter 3, but the automatic TOC shows number 1. Building. Does anyone know how to make the TOC show the correct chapter, by numbering as 3. Building, with the sections below numbered as 3.1 then 3.2 then 3.3? -- [[User:KHatcher|KHatcher]] 20:38, 30 January 2006 (UTC)
=== Idea 5 - Use a Book portal, similar to Wikipedia use of topic portals ===
:Wikipedia has several major topic portals to help guide readers to pages which all pertain to a particular topic (Geography, Science, etc.). Might be possible for Wikibooks to also use the portal concept, with Book:Bookname instead of Portal:Geography. In Wikipedia, each page pertaining to the portal topic then gets a template pointing back to the portal entrance. Simiilarly, each page on a Wikibook could also get a template (perhaps as the very first code on the page) pointing back to the book mainpage.
=== Idea 6 - Each book gets own domain name or subwiki, similar to Wikicities projects ===
See discussion under the subwiki topic (below). Also, on February 5, [[User:Cramer|Cramer]] asked about giving each book its own domain name, similar to the way that Wikicities gives each project its own domain name. For example, the StarWars wikicity has domain name [http://starwars.wikicities.com/wiki/Main_Page]. This would keep all the pages in a book together within the same domain name, without having to include the book title in every page name.
==Where was vote on "deprecated" naming schemes?==
The [[WB:NP|proposed naming policy]] points out historical conventions which are said to be "deprecated" (which means disapproved and belittled). But I've looked at current talk page and the one archived talk page, and do not see any discussion or consensus about this. Where is it? The archived talk page shows the losing vote for the [[WB:NP|proposed naming policy]], with its push to force consistency in page naming. This [[Wikibooks talk:Naming policy/Archive 1|losing vote]] is one reason it is unwise to be pushing readers to enforce this proposal and punishing book editors for "violating" it, when it is only a proposal which has already lost a vote. I'll change the project page to remove implication that these other naming schemes are presently deprecated (rather than proposed to be deprecated). It this change is incorrect (if there has actually already been consensus to deprecate some naming schemes), then OK with me to revert and put the correct information on the page. -- [[User:KHatcher|KHatcher]] 18:04, 29 January 2006 (UTC)
: I can't imagine situation where there are 10 different, incompatibile naming conventions allowed at a project. That's completely absurd and would end up with making reading and managing books impossible. If we don't have some standards, don't integrate books together, Wikibooks will turn into unorganised host for completely independent, standalone books with small, closed groups of contributors - because every book would have completely different editorial guidelines. Is that what we want?
: From list of historical naming conventions especially 'no delimiter convention' is the most detrimental and misleading one, it obfuscates book name and makes using automated tools (like bots, but also finding parent book) almost impossible. Wikipedia convention causes the same problem, also disambiguation convention is not convenient in this category. Why we should care about bots? Suppose we have book "Movie making manual" and their authors decided they want the title "Movie Making Manual". But unfortunately first book author started naming pages with one of conventions mentioned above and they have to rename 50 pages manualy. If they had pages named in slash or colon convention, running bot which would alter every page of this book would be very easy.
: Would someone support me if I started vote on only one subject - to completely forbid all historical conventions (I mean all except colon and slash one) for newly created books? --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 20:30, 29 January 2006 (UTC)
::A second vote sounds like a good idea. Well, consistency has advantages, and freedom of choice always comes with the risk of making a poor choice (as well as the opportunity to create a better choice than the conventional choice, or just to be a different flavor). Would you like to remove the user preferences option for Wikibooks? Before casting my vote, I'd like to hear more from your perspective about the advantages of consistency. I know that you do a lot of work to help Wikibooks, and I'd like to hear about how consistency can make your work easier. -- [[User:KHatcher|KHatcher]] 22:53, 29 January 2006 (UTC)
: Last comment by Kernigh gave me an excellent example on how book could mess up with naming convention. Look at [[Botany]] - there are three different naming styles in the main TOC. In my opinion, our policy should clearly dissuade users from giving books such structure.
: Why consistency is important? Do you imagine that people wanting to contribute to someone else's book have to learn everything from scratch for every single book? It's not important which naming convention we choose, the thing is that we should have only one or maybe two so that readers and contributors won't be confused with every new book. Yes, authors are very creative, but in my opinion they should concentrate on writing content not inventing new naming systems. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 15:00, 30 January 2006 (UTC)
:: Yes, I think that you have the right idea here about pointing out advantages and disadvantages of the two approaches (status quo versus proposal 2). So below there is a new subheading to help with that comparison. Wikibooks is a collaborative effort of people with various skills - computer programing, editing, knowledge of specific subjects, etc. The policies need to find a good middle ground, and so discussion from these different perspectives will be helpful. -- [[User:KHatcher]]
:To correct, that vote is not very significant for current discussion. The votes are across a span of six months and the page content changed quite a bit across the "voting time." The votes pointed out important discussion topics at the time but weren't really maintained by those voting. The votes represented an incorrect view of what the policy was becoming and were stricken. There was no "loss" in my opinion since those votes covered way too many issues and were outdated. -[[User:Withinfocus|Matt]] 18:09, 30 January 2006 (UTC)
== Comparing pros and cons for status quo versus proposal 2 ==
=== Clear statement of Proposal 2 ===
Proposal 2, as request by Derbeth (above) is "to completely forbid all historical conventions (I mean all except colon and slash one) for newly created books".
*'''New books''' - only slash is allowed as delimiter for page names. Page names must be in format <Bookname/Chaptername>. Colon as delimiter is reserved to Cookbook only.
*'''Existing books''' - Any convention can be used, provided that book name is included in every chapter title. No cleanup boxes regarding page naming will be used on any existing books. Existing books must provide their own backlinks on all pages (except slash convention which automatically provides the backlinks).
*'''Enforcement''' - Polite cleanup request can be put on the discussion page (not the module page) of nonconforming new books. There is no enforcement for existing books.
=== Clear statement of Status quo ===
Book editors may use their discretion in naming pages in a new book and existing books. The [[WB:NP]] page will provide guidance to help new book editors make an informed choice. Books must provide their own backlinks (using their own format) on all pages, unless slash convention is used to provide the standard automatic backlinking. A template may be used on pages to provide the backlinking to the book title and chapters. The [[WB:NP]] will provide advice and examples of such book templates and custom backlinking. -- [[User:KHatcher|KHatcher]] 22:23, 30 January 2006 (UTC)
=== Proposal 2 - advantages and disadvantages ===
Pros:
* consistent, clear, easy to understand for readers and editors naming policy
* slash convention provides pre-formatted automatic backlinks to the higher level pages (bookname, chaptername)
* slash convention provides exclusive possiblity to use fast links to subchapters (<tt><nowiki>[[/chapter/]]</nowiki></tt>) and sibling chapters (<tt><nowiki>[[../sibling/]]</nowiki></tt>), saving the time for typing the longer form (<tt><nowiki>[[bookname/chapter]]</nowiki></tt>)
* colon convention: only one applicable for namespaces (which Cookbook is)
Cons:
* does not let book authors decide which naming convention is best for them
* forces book section names to look like computer file names, such as: Windmills/Australian farms
* if authors want to use a better book section title, such as "History of Windmills on Australian Farms" then the page appears to have two large-font titles
* slash convention inserts a mandatory (no option to turn it off) second line of text on each page with the pre-formatted backlink, which is unnecessary if pages include their own backlinks or book contents template such as [[Botany]] example.
* slash convention causes multiple redundancy with cluttered appearance at top of each page if authors want to use literary titles for book sections instead of computer file names, and also use their own backlinks (or book contents template) instead of the pre-formatted backlinks. -- [[User:KHatcher|KHatcher]] 16:24, 9 February 2006 (UTC)
=== Status Quo - advantages and disadvantages ===
Pros:
* book auhors have full freedom
Cons:
* two completely different books may link to the same chapter without knowing it (like [[Contents]])
* makes automatics tasks (use of bots to fix errors) hard
* may confuse readers and contributors (if a contributor sees two books with completely different naming conventions)
* two different naming convention in one book are allowed
I think that if good advice is provided at [[WB:NP]], nearly all new books' editors will decide to use the slash convention or the colon convention. But the books' editors will be able to use a different custom page naming scheme if they believe that better suits the book purpose. -- [[User:KHatcher|KHatcher]] 22:23, 30 January 2006 (UTC)
::I really see no benefits of the colon convention over the slash convention (given that slashes allow for better navigation). Let's require all new books to use the slash convention of <Book title/Chapter> (and if they wish <Book title/Chapter/Subchapter>, <Book title/Chapter/Subchapter/Subsubchapter>, etc). It allows for a lot of editor freedom, and has the benefit of clearly segregating each book so that you're never confused as to what book you're reading.
::Then encourage existing books over to this convention. No doubt, at some stage, we'll then be left in time with a small rump of books that haven't changed over to the slash convention. We can look at forcing the final resistance over then, [[User:Jguk|Jguk]] 16:23, 10 February 2006 (UTC)
== In defense of a slash ==
(I started writing this comment before the pros and cons heading above was added. I would have written in in a more pro v. con style had I seen it earlier.)
Wikibooks faces a significant organizational challenge that sets us apart from our sister wikis. We write books, not self-contained articles. Because of this, we need some mechanism for organizing our individual modules pages into discrete books. The wiki software provides only very meager facilities for this. We have to do most of the work by adopting some sort of convention or other. The slash naming convention provides three important organizing elements. Whether we adopt the slash convention or some other, adopting any convention will require enforcing some rules. If it is not an enforced policy, then it is not an adopted convention.
1. The slash naming convention helps authors avoid stepping on each other’s page names. For example, book I am working on, [[Formal Logic]], has a page ([[Formal Logic/Sets]]) giving a quick and dirty introduction to set theory terminology used in the rest of [[Formal Logic]]. There are also set theory chapters of [[Discrete mathematics]], [[Topology]], [[Puzzles]], [[Beginning Mathematics]], and perhaps others. Any number of additional books might want a brief introduction on set theory such as in [[Formal Logic]] but geared to their own book. As another example, a chapter on mushrooms might show up in books on botany (the book [[Botany]] has a chapter on the broader topic of fungi), cooking, gardening, Super Mario, illegal drugs, or or books to which finding edible mushrooms is relevant (hobbies, survivalism, pig-breeding). The slash convention allows all these current and perhaps future pages co-exist peacefully. This is especially important when a book is mapped out with red-linked future pages. The author is guaranteed he won't be surprised by a name clash when gets around to adding a page to match the red link.
:: These are good points. They are not solely advantages of the the slash convention, however. They are achieved by all the historical conventions which do use the book name (or its abbreviation) somewhere in the page name. -- [[User:KHatcher|KHatcher]] 10:35, 31 January 2006 <small>(Note: The [http://en.wikibooks.org/w/index.php?title=Wikibooks_talk:Naming_policy&diff=350867&oldid=350828 post of 10:35, 31 January 2006], was made from IP address [[Special:Contributions/128.192.18.97|128.192.18.97]] while the user was not logged in.)</small>
:::You are not exactly right. Two naming conventions: slash and colon are naturally preferred. One reason is that you can find them in Wikipedia (colon is used in namespaces and slash in subpages). We don't want to embarrass people coming from Wikipedia to Wikibooks by introducing strange naming conventions. Another thing privileging slash and colon conventions are MediaWiki links. You can use "pipe trick" with colon convention: <tt><nowiki>[[Cookbook:onion|]]s</nowiki></tt> and another trick with slash convention: <tt><nowiki>[[/Subchapter/]] [[../Sibling chapter/]]</nowiki></tt>. This is impossible with all other conventions. I think these two facts show real advantage colon and slash convention have over other conventions. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 17:17, 31 January 2006 (UTC)
2. The slash naming convention places a page within a book and lets the reader know where in the book you are. The reader readily sees that he is at this subpage of that chapter of such-and-such a book. At present, for example, it is ambiguous whether Wikibooks has a set theory book. There is a Set Theory link from the [[Wikibooks:Mathematics bookshelf|Mathematics bookshelf]]. But [[Set Theory]] is a redirect to [[Topology/Set Theory]] which may be its own book or may be a chapter of [[Topology]], it’s actually ambiguous which it is. The subpages of [[Topology/Set Theory]] have names like [[Set Theory:Axioms]] which adds to the confusion. And who knows what book [[Set Theory:Review]] review belongs to? It is one of our approximately 1000 [[Special:Lonelypages|orphaned pages]]. It is entirely unclear whether [[Set Theory:Review]] was intended as belonging to [[Topology/Set Theory]]. Without an enforced consistent convention which places pages within a book and which lets the reader know where in the book you are, we end up with a big mess.
:: These are good points. They are not solely advantages of the slash convention, however. They are achieved by all of the historical naming conventions for which the editors do provide backlinks to show position of the page within the book. It is not necessary to require duplicate methods to show position of the page within the book, both backlinks and the page naming scheme. -- [[User:KHatcher|KHatcher]] 10:35, 31 January 2006
3. The slash naming convention provides automatic back-links. This makes it possible to find pages up the hierarchy and, in particular, find the root or main page of the book. Some authors can’t be bothered to adhere to any naming convention, not even a book-specific convention (see, for example, [[Botany]] whose page names vary among approximately three conventions). But even these tend to provide back links within their books. So the importance of back-links seems unquestioned.
:: I agree about importance of back-links. Perhaps the policy should be to require backlinks, rather than to require a particular page naming scheme. Orphan pages are then defined as those which are missing the backlink to the parent module.
:: That the slash convention provides automatic back-links in a standard style would be an advantage for book editors who like that style, but a disadvantage for book editors who would prefer to have a different style of backlinking, such as by using a template on each page to show the book outline. In that case, the slash convention puts duplicate and unnecesssary backlinking information on the page and also puts duplicate information in the page name about position of page within the book. Some book editors may like to have their own graphic design style for the book, and not be forced to use a standard style or to have duplicate information cluttering up the pages. Yes, there are some novices on Wikibooks who are sloppy about book set up. It would good to have a way to deal with this, without harming the competent book editors. -- [[User:KHatcher|KHatcher]] 10:35, 31 January 2006
::: <small>My apologies for not getting back to this until after the vote started.</small> The issue is not just competent v. sloppy authors. It is also a issue of mature books v. new books. Books are frequently created as a few red links and evolve into something useful. The authors will often not fully know where the book is going, what the graphic design should be, what sorts of navigational help will be best suited for that particular book. It would be fairly absurd to start a book and comply with a slash convention (becuase you haven't got all that figured out yet—and then rename all the pages in a freewheeling non-complient way when the book matures and they type of alternative navagation assistance becomes settled. Besides, it the automatic back-link line really obnoxious? It does not seem any more obnoxious then the "Redirected from ..;.." link. --[[User:JMRyan|JMRyan]] 07:15, 15 February 2006 (UTC)
The slash convention provides these organizational features, but perhaps other conventions could do so as well. The kinds of convention we can adopt divide into two sorts: page name conventions and content conventions. (By content convention, I mean requirements concerning actual page content, the stuff that you type in on an edit page. And by adopting a convention, I mean enforcing a policy.) Among page name conventions, the slash convention is the only one that will provide all three advantages. The colon convention, and perhaps others, can provide the first two advantages. However, only the slash convention provides automatic back links. Further, no content convention can provide us with the first of these features. So any alternative to the slash convention that provides all three organizational features will have to be a mixture of page and content conventions.
:: I think the Wikibooks uses the term "convention" to mean just the most common methods and not enforced. But term accepted "policy" would mean enforced. -- [[User:128.192.18.97|128.192.18.97]] 15:39, 31 January 2006 (UTC)
Imagine what an enforced content convention ensuring back links would look like. Would it simply say that you must provide some back links of some sort? Back links to the main page? Back links up the page hierarchy (assuming that there is a page hierarchy)? What other standards would they have to meet? Would you be prohibited from adding additional back links? If you think automatic back links resulting from the slash convention are obtrusive and big-brotherish, imagine you would feel about an enforced content policy requiring back-links. The same kind of consideration goes for an enforced content policy requiring the content to include information as to book the page belongs to and where in the book the page is.
I submit that enforcing the slash convention is the best, most robust, least obtrusive, and least big-brotherish means we have of organizing pages into books.
It has been objected that the slash convention restricts author options. For, example, I can’t entitle my page “History of the Traditional American Farm Windmill.” But there is no reason an author can’t provide such a title in the content independently of the page name. [[Botany Mycology]] does this, (though the page name does not conform to the slash convention). It has been objected that authors want to provide their own back linking scheme, one which may well work better in a particular book than the automatic back links generated by the slash convention. But there is no reason an author can’t provide his own back linking scheme in addition to the slash convention’s automatic back links. [[Formal Logic]] and [[Guide to X11]] do this.
:: These points provide a work-around for the slash convention, by letting authors provide a duplicate page title and a duplicate method of backlinks if they have to use the slash convention but don't like how it makes page names look or how it shows the backlinks. Book editors may not want to have book graphic design style with such duplicate information on all the pages. -- [[User:KHatcher|KHatcher]] 10:35, 31 January 2006
Our authors’ flexibility in how they collect, organize, and back link their pages would be even more constrained if we enforced content conventions concerning these matters. And enforce we must, for otherwise we end up with a mess. Indeed, we already have a mess as indicated by our thousand orphaned pages. In Wikipedia, each article is supposed to be self-contained, so orphaned pages are less important. In Wikibooks, an orphaned page is part of a book that is not really part of a book after all—so orphaned pages are a much more serious affair. Perhaps if the wiki software provided better tools for organizing pages into books, we would not have to enforce a naming convention at all. But it doesn’t, and we have to work with the software we have. --[[User:JMRyan|JMRyan]] 22:48, 30 January 2006 (UTC)
::I would prefer to continue to look for better tools using wiki software to achieve important organizing goals, while continuing to give book editors choice about book graphic design style. Is there another way to deal with the orphaned pages, such as searching for those having no backlinks and putting them all under an "orphaned book pages" folder (book) for a certain period of time until they are repaired?
:: By the way, why are orphaned pages (with no backlinks) such a serious problem on Wikibooks, when all the pages on Wikipedia have no backlinks? I don't really see a serious problem here, just perhaps a small aesthetic issue of wanting to look different than Wikipedia. Could someone please explain? OK, so Wikibooks would have some pages (maybe a lot of pages) which look like Wikipedia pages. Why is this bad? It is not bothering me as a book editor or as a reader of Wikibooks. Why is it bothering you? Please see [[Wikibooks talk:Naming policy#in praise of small snippets]]. -- [[User:KHatcher|KHatcher]] 10:35, 31 January 2006
:This write-up explains the many advantages slash has over other conventions. Perhaps we can have a smaller subvote regarding the removal of proposal information and deciding on which method to use? -[[User:Withinfocus|Matt]] 02:17, 31 January 2006 (UTC)
:I completely agree with arguments of JMRyan. I think that current shape of Proposal 2 written by KHatcher is mature and ready for small vote - understood by vote only about which delimiter should be used in books and how to treat books having other that official naming convention. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 13:46, 31 January 2006 (UTC)
::*Note that Proposal 2 does allow the colon convention, which does not provide automatic backlinks. -- [[User:KHatcher|KHatcher]] 10:35, 31 January 2006
:::*In the second proposal, colon convention is only allowed for a few specific uses. Colon convention's current uses in many books (such as Programming: ones) would need to be marked as needing cleanup. I think of this as a very important point to note. Allowing colon convention for book pages is not acceptable under this proposal. -[[User:Withinfocus|Matt]] 21:56, 31 January 2006 (UTC)
----
IP address 128.192.18.97 (signed as KHatcher, forgot to login?) wrote: ''By the way, why are orphaned pages (with no backlinks) such a serious problem on Wikibooks, when all the pages on Wikipedia have no backlinks?''
Actually, '''every''' [[Wikipedia:Main Page|Wikipedia]] article and [[Wiktionary:Main Page|Wiktionary]] entry has a backlink called "Main Page". Also, encyclopedia articles and dictionary entries have predictable names; Wikibooks do not. I have to check a bookshelf to search to know if a book is called [[Letter writing]] or "Writing a Letter" or "How to write a letter" or "Effective Letters". --[[User:Kernigh|Kernigh]] 16:27, 31 January 2006 (UTC)
:I'd like to add that one of the reasons why orphaned modules are such a huge problem on Wikibooks as well is that generally a single module doesn't stand on its own within Wikibooks, unlike Wikipedia. A Wikipedia article, even a stub, is self-supporting and doesn't really depend on any other article to help build its content. That is one of the reasons why writing a Wikipedia article is generally easier to start or write, as you don't have to do nearly so much preparation. Writing a whole book, on the other hand, takes a considerably higher level of organization and this policy is an attempt to encourage that sort of organization. In addition, if you find an orphaned module that follows this naming convention policy, you can usually link it more directly to where it belongs, and sometimes content that would otherwise be deleted immediately as random gibberish can be kept because it can be put into context for what it represents.
:Consider for a moment this page: [[Riddles: 28]] This page would normally be deleted immediately on Wikipedia, but it is just fine on Wikibooks because of the context it has with the module [[Puzzles:Riddles|Riddles]]. --[[User:Robert Horning|Rob Horning]] 16:40, 31 January 2006 (UTC)
::Just fine with me, too. And it doesn't use the slash or colon convention, it uses a space-colon convention which looks good on the page. -- [[User:KHatcher|KHatcher]] 18:03, 31 January 2006 (UTC)
::: <small>My apologies for not getting back to this until after the vote started.</small> I think [[User:Robert Horning|Rob Horning]] was talking about the content being okay, not the page name. The content is just a back link plus the single word "Ladder". Out of context, such a page would just be trash subject to a speedy delete. But in context, it is the answer to a riddle posed on another page. How do we know not to mark it for speedy delete? Two reasons: (1) it has a (hand placed) back link and (2) the [[Riddles]] page has a link to it. But what if the author forgot to do (2). Then it is an orphaned page: one cannot get to by following links. Now suppose someone moves [[Riddles]] to [[The Book of Riddles]], thus breaking the back link. Or suppose the author mistyped the back link and came up with [[Fiddles]] instead. Three bad things happen. First, someone reading the Riddles book doesn't find the answer to Riddle 28. Second, someone else comes along a creates [[Riddles:28]] to answer Riddle 28, thus duplicating the effort of the previous author. Third, someone marks [[Riddles: 28]] for speedy deletion because they don't know that it actually belongs to a book. For real (not just hypothetical as here) problems of this sort, see [[Wikibooks:Votes for deletion#What is? Wikibook_stubs]] and [[Wikibooks:Votes for deletion#Empiricism]]. --[[User:JMRyan|JMRyan]] 14:05, 15 February 2006 (UTC)
: I changed statement of Proposal 2. In my opinion, we cannot accept situations like [[Contents]]. Even old books with "no delimiter" convention should be fixed. Other ones may stay.
: I see that the discussion has freezed, should we start vote? In my opinion, current shape of naming policy page is hard to understand for newcomers - there are two concurrent proposals with many points, everything is very complicated. I would like to see simple hint: "name pages like Book/Chapter". --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 11:53, 8 February 2006 (UTC)
::The "Clear statement of Proposal 2" in Talk differs greatly from what is said on the content page. I support what's on the content page, especially only allowing slash for new pages (and '''not''' colon). I thought there was significant discussion here explaining how colon really should only be used like it is outlined on the content page. I think clean-up tags could go on talk pages only, but enforcing the naming policy on old books is a must. Here's what I think:
::*Slash only for new book content
::*Colon allowed on new pages for categories, templates, and Cookbook
::*Clean-up tags can go on both new and existing books, in the talk pages
::*Naming policy enforced on both new and existing pages
::The "status quo" idea seemed decently defeated here and the "Clear statement of Proposal 2" seems to be bringing in too much openness. I thought that what I just outlined above was largely the concensus, unless I'm missing discussion somewhere. I would vote "no" on the "clear statement" because I don't think it's what's right for organizing the large mess of improperly named pages all over here. -[[User:Withinfocus|Matt]] 17:35, 8 February 2006 (UTC)
: Ok, I made another change to restrict use of colon convention. But I don't agree with your attitude to existing books. Book authors have better things to do than correcting naming conventions. I think that we should leave it as it is and make enforcement a separate vote. Please understand, that we need any naming convention. Current proposal is less restrictive than yours, but it has chanse for wider support. We can always make another votes to change details - like enforcements for old books. Another thing is naming of categories and templates. This issue is completely unimportant for me and I would like to exclude it completely from this proposal to avoid endless discussions and think about it when we have some basic set of rules ready and accepted. We need minimal but clear set of rules ''now''. I would like to break status quo as soon as possible. If you take such restrictive approach, we won't get consensus soon. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 19:53, 8 February 2006 (UTC)
::Sounds reasonable to me. I think a lot of the recent bot talk was connected to fixing old colon convention pages so I didn't think authors would have to do too much to get their naming correct. I would support what you say above assuming the details can be figured out later. I think old books that didn't conform would tarnish things, but we can definitely focus on just getting new page guidelines up and running for now. I'd go for a vote. -[[User:Withinfocus|Matt]] 23:59, 8 February 2006 (UTC)
: If you haven't noticed it: vote has begun. See [[Wikibooks:Policy/Vote/Naming policy]]. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 09:17, 13 February 2006 (UTC)
== Need to include book folder name in all page names? or use small subwiki? ==
A book such as [[Botany|Study Guide to the Science of Botany]] has both a book folder name (Botany, at very top of the page) and an actual book title, Study Guide to the Science of Botany. Inherent in Proposal 2 is the requirement to include the book folder name as the first portion of every page name. Why is this needed if the page already includes a backlink to the main page of the book?
[[User:Kernigh]]'s comment (above) about Wikipedia pages all have backlink to "Main Page" is fortunate because it sparks an idea. Yes, and every Wikibooks module also has a similar backlink called "Main Page" back to Wikibooks, as shown in the navigation box along the left column. [[User:Kernigh|Kernigh]]'s observation sparks another idea to solve our problems, perhaps using the navigation box. I notice that Wikicities has a way for each project there to have its own Main Page and URL <nowiki>[http://starwars.wikicities.com/wiki/Main_Page]</nowiki> Also Wikipedia provides a sub-wiki for each language. Is there any potential to provide something like a subwiki for each book on Wikibooks? This idea is way beyond my poor computer skills, so I hope you can comment on its feasibility. If it succeeded, we would not need to include the book folder name as part of each page name as a work-around to keeping the pages within the correct book, since they would automatically be within the correct subwiki as they were created. Sorry if this is just wild idea, but I think we need to try think broadly and creatively about a solution to help everyone. -- [[User:KHatcher|KHatcher]] 18:03, 31 January 2006 (UTC)
: I don't think its technically possible, we host hunderds of books. Apart from technical problems, what do you think is easier for a newcomer: note that pages are named like "Book/Chapter" or that each book has its subwiki? --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 18:41, 31 January 2006 (UTC)
:: It was technically possible on Wikipedia, though, for the languages. When Wikipedia had this similar problem, they could have set policy that all pages names have two parts to keep pages together, so articles would be named, for example, "English/History of Windmills". That would not look so good. Wikipedia made the better choice, and it is not hard for authors to work within the language subwiki, instead of typing "Language/ArticleTitle" on every page. -- [[User:KHatcher|KHatcher]] 21:04, 31 January 2006 (UTC)
: Haven't you noticed you need separate account for every language edition of Wikipedia, you can't use templates in one wiki in another etc. In fact distinct language editions of Wikipedia can be treated as separate projects. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 21:18, 31 January 2006 (UTC)
:: This problem may be fixed, BTW. A common account system has been formally developed and tested, but trying to get it up and running is going to be a big pain in the a*** to try and merge all of the Wikimedia accounts. Expect to hear more about this in the not too distant future. As for common templates, yeah, that is going to be a problem. --[[User:Robert Horning|Rob Horning]] 18:24, 5 February 2006 (UTC)
:Giving each book a separate subdomain would mean to break Wikibooks in a thousand of independent projects. This is technically difficult, a redundancy of effort and against maintaining a unified community. On the other hand, it would be easier to request to the developers a different rendering of root page title and subpage title than convince the Wikimedia foundation to provide a different subdomain for every book. And imagine the pain to suffer for starting a new book. If the arguments against subpages are the ugly subpage titles, then there are better ways to improve them than breaking Wikibooks in a thousand of different wikis. [[User:ManuelGR|ManuelGR]] 20:59, 5 February 2006 (UTC)
:Giving books that want to use different naming conventions/navigation system their own namespace is a lot easier, this has already been done for the [[Cookbook]]. Once a book has become a namespace its ID can then be called in CSS and the backlink disabled, or any other necessary thematic changes made. However you'd have to convince the devs, not us, they're the ones implementing it on the PHP side of things. Personally I disagree with it unless it's really irreconcilable (as the case of the Cookbook), as the backlink is very small and can be easily overpowered by making the book's own navigation system more noticeable. Hopefully one day there will be a <nowiki>__NOBACKLINK__</nowiki> command, but until then this is the easiest solution. [[User:Garrett|Garrett]]<sup>[[User talk:Garrett|Talk]]</sup> 22:20, 5 February 2006 (UTC)
== [[Wikiversity:School_of_Library_and_Information_Science#Administration]] ==
This is a funny one. I discovered it when I fixed a redirect link. Only after the fix it came to me that [[Fire Officer IV/Human Resource Management|Human Resource Management]] does not actualy belong the the [[Wikiversity:School of Library and Information Science|School of Library and Information Science]] at all (you have to click on edit to actually see the problem ;-) ). But it shows clearly that Wikibooks can not live without an enforced naming convention because the change of overlap is just to great. --[[User:Krischik|Krischik]] <sup>[[User_talk:Krischik|T]]</sup> 14:54, 2 February 2006 (UTC)
:And something like this doesn't happen in university settings either, where you have a required class for an engineering course on technical writing that is taught by the English department, but only engineering students attend? I've even seen dual-listed department classes (English/Engineering in something like this), which would be the equivalent of having a link on a page like this that is then redirected to another page.
:This is also yet another reason why Wikiversity needs its own space, to deal with issues like this on their own terms and not have to be forced into conventions required by dealing with textbooks. --[[User:Robert Horning|Rob Horning]] 19:25, 10 February 2006 (UTC)
ctocpp8im4hhexkb4u1tai2binc22ad
Wikibooks talk:General voting rules/Proposal/Version 5
5
89554
4640085
556741
2026-06-13T12:55:26Z
ShakespeareFan00
46022
4640085
wikitext
text/x-wiki
==Clarification==
In the low impact section it currently reads:
:''"Some Low-Impact situations, such as nominating votes for the book of the month and the collaboration of the month already have preexisting sets of voting rules that should be followed in lieu of this policy."''
Don't the voting rules on those projects already fit within this structure (i.e., ''"wikibookians are welcome to employ multiple means for decision-making, including consensus, majority votes, or 3rd party arbitration"'')? If so, maybe take out this sentence altogether, or remove the phrase ''"that should be followed in lieu of this policy"''. As the phrasing of the rule explicitly encourages low-priority projects to come up with voting rules, it seems a bit strange to add loopholes for certain projects, especially when they don't actually need them. --[[User:SBJohnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color:green">talk</span>]]</sup> 22:48, 11 August 2006 (UTC)
:That's true, but BOTM and COTM also specify that in the case of a tie, the oldest book wins. Also, BOTM and COTM specify a 20 contribution minimum, which might not be a part of the final policy. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 14:34, 12 August 2006 (UTC)
::I see. However, those rules certainly fit into the loose framework of the rule in any case. The current wording might be interpreted as those voting rules being "set in stone", when it seems to me better to leave them flexible in case there's consensus to change them at a later date. [[User:SBJohnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color:green">talk</span>]]</sup> 09:14, 14 August 2006 (UTC)
==Decisions affecting a single module, a single book, or a localized project==
These were part of "low imapct decisions" ie:
4. Decisions affecting a single module, a single book, or a localized project.
[[User:Kellen]] deleted this line but did not provide any replacement text. This means that the voting policy would not apply to large swathes of Wikibooks' processes such as "decisions affecting a single module, a single book, or a localized project". Kellen noted that he would prefer these types of decision to be "consensus" decisions in the sense used in this proposal. I am happy either way but they should be included in the proposal. [[User:RobinH|RobinH]] 08:28, 14 August 2006 (UTC)
:I'm guessing she didn't want that to automatically apply (I believe Cookbook might use consensus). Added this to the High-impact decisions:
::6. Establishing the voting rules for low-impact decisions
:[[User:SBJohnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color:green">talk</span>]]</sup> 08:39, 14 August 2006 (UTC)
: The reason I deleted this line is that it if each "single module, single book, or localized project" is allowed to choose majority-rules voting for their content decisions it will fundamentally alter the culture of wikibooks and work to supplant consensus decision making out of convenience. Any content decision should be validated by consensus. [[User:Kellen|Kellen]] <sup>[[User_talk:Kellen|T]]</sup> 08:43, 14 August 2006 (UTC)
:: I'm basically asserting that it's not 'low impact' to vote on actual content in any circumstance, and that the line should be deleted again. [[User:Kellen|Kellen]] <sup>[[User_talk:Kellen|T]]</sup> 09:00, 14 August 2006 (UTC)
:::In that case I agree completely. Perhaps replace with:
::::"Other votes that express the communities opinion on issues that have no effect on policy, content, or structure."
:::--[[User:SBJohnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color:green">talk</span>]]</sup> 09:10, 14 August 2006 (UTC)
(reset indent)Kellen said that item 4 would "supplant consensus decision making" in these areas. In this case item 4 should be moved to the section on consensus decision making. [[User:RobinH|RobinH]] 09:52, 14 August 2006 (UTC)
I have added a sentence to explain that votes taken in these circumstances should use the consensus rules. [[User:RobinH|RobinH]] 10:01, 14 August 2006 (UTC)
lbjxdd78931lc1ejw5uuch22f0x8aov
Talk:Horticulture/Ocimum basilicum
1
89940
4640188
1304250
2026-06-13T16:14:52Z
ShakespeareFan00
46022
4640188
wikitext
text/x-wiki
This module originally a transwiki of [[w:Basil]] [http://en.wikipedia.org/w/index.php?title=Basil&oldid=69676877 from this version], now forking as a how-to-grow chapter. --[[User:SBJohnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color:green">talk</span>]]</sup> 18:28, 16 August 2006 (UTC)
39k2yvcmhu8u31u6dzysirs839tvml1
Talk:Nanotechnology
1
92038
4640186
2310238
2026-06-13T16:13:53Z
ShakespeareFan00
46022
4640186
wikitext
text/x-wiki
Please add comments about things you would like to have included or sections that should be improved! ([[User:KristianMolhave|KristianMolhave]] 15:46, 5 June 2006 (UTC))
=== Can someone expand upon Surface Enhanced Raman Spectroscopy (SERS)? ===
Particularly these questions taken from the Wikipedia article (which isn't so good either).
* I would appreciate more visual aids to elaborate on both the '''electromagnetic explanation''' (physical explanation) and '''charge-transfer complex''' (chemical explanation). I barely understand what charge-transfer complex means, but I have no idea how that links to SERS.
* I like the '''tennis ball + spring system analogy''' presented on the Raman spectroscopy page. It could be cleaned up and with a few diagrams could make this article much more approachable to newcomers like myself.
* To what extent do you need to understand '''quantum mechanics to begin interpreting Raman data''', specifically SERS? How about '''electromagnetics'''? Could these prerequisites be '''simply motivated and explained''' in this article?
* I keep hearing about '''selection rules''', are these related to quantum mechanics somehow?
* I also hear that understanding '''group theory''' helps explain Raman and a lot of spectroscopic techniques in general. Can someone help explain why?
** I know it has something to do with symmetry and all these methods have something to do with squishing and twisting and bending chemical bonds, but the math gets very boring and uninteresting and it's easy to lose sight of why I'm learning it.
* Can someone perhaps fix up the article to include some '''more contextual information like where near-IR, mid-IR, far-IR, etc. methods fit in''', perhaps with some nice animated GIFs showing what goes on in each? [[Special:Contributions/68.126.191.150|68.126.191.150]] ([[User talk:68.126.191.150|discuss]]) 21:44, 20 April 2012 (UTC)
=== Size of article ===
Much excellent work has gone into this article since April, and it is now 45 KB long. Perhaps it is time to begin splitting it into several articles? If not now, what criteria do we use to determine when it should be split? ~ [[User:Nanobug|Nanobug]] 13:39, 28 August 2006 (UTC)
: Yes it seems to be about 'split-up' time. I have been waiting for more contributors to join, so we can settle on a structure of the material, and once thats settled, then split it up (and then I like the idea that the whole book could be printed out in one go - but as it stands now its not suitable for printing as its mainly links in many sections) [[User:KristianMolhave|KristianMolhave]] 19:52, 28 August 2006 (UTC)
I checked some of the other wikibooks, as we would probably want to structure it similar to those, and it appears they all have a front page which is basically a table of contents to several other pages, each of which is a subpage of the first one. e.g. [[Acoustics]] points to [[Acoustics/Fundamentals_of_Acoustics]]. So once we agree on the name of the top page, we can create subpages for each of the major sections in a similar way. ~ [[User:Nanobug|Nanobug]] 16:16, 31 August 2006 (UTC)
I have split the article into subsections - right now just 7 sections. As some of these will grow theý can be put on individual pages and get links directly from the the main table of contents as they have done in other books. [[User:KristianMolhave|KristianMolhave]] 22:28, 24 September 2006 (UTC)
=== Search engines ===
How is '''Google Desktop''' relevant as a ''Nanotechnology Related Search Engine''? That is like saying Google is useful for searching about nanotechnology, which it is, but listing it here is still not very helpful. Plus, its only useful at all if you have documents about nanotechnology on your hard drive, which many of the readers of this article will not. ~ [[User:Nanobug|Nanobug]] 16:37, 28 August 2006 (UTC)
: I agree completely, but it is such a nice program that I thought it deserved the PR :-) if you do have lots of nanotech files on your hdd, google desktop is a wonderful tool to find what you want and things you thought you didn't even have. [[User:KristianMolhave|KristianMolhave]] 19:52, 28 August 2006 (UTC)
=== Article name ===
Looking at the [[Wikibooks:Physics bookshelf|Physics bookshelf]], the names of this article, and the one on [[Microwiki]], appear to be inconsistent with all the others, such as [[Astronomy]], [[Engineering Thermodynamics]], and [[Special relativity]]. Is there some reason these names were picked rather than something like [[Nanotechnology]] and [[Microtechnology]], which currently just redirect to these articles? Perhaps the names of these two articles should be changed to make them more obvious and straightforward? ~ [[User:Nanobug|Nanobug]] 16:49, 28 August 2006 (UTC)
: It could also be nanoscience and microfabrication and ... there are so many variations over the micro/nano theme. that's why I made redirects to something simple that I can remember and fairly unique so it can be found through search engines easily (though there are some uses of microwiki and nanowiki on the net already). If its confusing we can change it. [[User:KristianMolhave|KristianMolhave]] 19:52, 28 August 2006 (UTC)
Personally I think ''Nanowiki'' is confusing. It confuses the technology with the tool we are using to document the technology. I think we should just keep it simple and name it [[Nanotechnology]], the most commonly used and searched for term. The fact that it also includes a lot of Nanoscience is not confusing, it is just that the technology depends so much on the science, just like many other fields, such as [[Biotechnology]]. ~ [[User:Nanobug|Nanobug]] 16:16, 31 August 2006 (UTC)
: I have moved both books (microwiki and nanowiki) - and now theres a bit of work to be done changing links in the wikimedia; wikibooks subject pages; and wikipedia - but they can stay for a while since nanowiki/microwiki redirects. Better to all that now before we start adding images etc...--[[User:KristianMolhave|KristianMolhave]] 08:42, 4 September 2006 (UTC)
=== Edit by [[User:213.249.155.238]] ===
This edit was made to the ---Search engines--- section at 09:50, 5 September 2006. The edit was lost when I redid the pagemove, I didn't put it back in because it seems to go against the format of the surrounding sections. Edit was as follows, completely replaced the search engines section as it is currently:
*[http://isi3.isiknowledge.com/portal.cgi/wos ISI - Web of Science Database] contains peer reviewed journals, their references and citations. Very useful tools such as 'find related papers', searches for papers that share the same references. This is the database behind the compilation of the journal citation factors.
*[http://www.knovel.com/knovel2/library/default.jsp Knovel - Online Handbook Collection and Database] is an extensive collection of handbooks and tables.
*[http://prola.aps.org/ PROLA - the Physical Review Online Archive] searches Physical Review journals.
*[http://www.hbcpnetbase.com/ Rubber Bible Online] is a physical chemistry handbook which contains tables of physical and chemical data.
*[http://scitation.aip.org/ Spin AIP Scitation] searches related journals.
*[http://scientific.thomson.com/products/wos/ Web of Science by ISI] generates the [[w:impact factor| impact factors]] (see journals below).
*[http://www.vjnano.org/nano/ Virtual Journal of Nanotechnlogy] collectins nanotech related papers from non-nano spcialized journals
--[[User:SBJohnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color:green">talk</span>]]</sup> 10:17, 8 September 2006 (UTC)
We'll take it ;-) it looks better than the table. [[User:KristianMolhave|KristianMolhave]] 14:38, 8 September 2006 (UTC)
=== Talk page history ===
FYI: due to the copy paste of this article to a new one, and the subsequent revert and move of the article, somehow the history on this talk page before Sept 4 was lost (or at least I cannot find it). Fortunately the history on the main article page was not lost. ~ [[User:Nanobug|Nanobug]] 13:14, 13 September 2006 (UTC)
: yes, I was in doubt about how to make the move from nanowiki to nanotechnology and sb-johnny helped me to get it right for the main page. But all edits are still visible on the talk page, so nothing is really lost. [[User:KristianMolhave|KristianMolhave]] 19:29, 13 September 2006 (UTC)
=='Chat' about the future of the Nanotechnology wikibook==
[[User:KristianMolhave|KristianMolhave]] 21:23, 21 November 2006 (UTC): I'm asking several people to join and contribute specific sections I know they have written about. I also hope to set up an editorial board for the book.
==Structure of the book==
The section on nanomaterials is based on quick attempt to divide them. I'm not sure of some other division wouldn't be more suitable. The introduction describes various ways of classifying nanomaterials and it could be done in still more ways. Comments on ways to divide this chapter are very welcome! [[User:KristianMolhave|KristianMolhave]] 18:58, 10 December 2006 (UTC)
==If you would you like to contribute:==
On the subject of the future of Nanotechnology wikibook: I'm wondering if you would like my help? I've never contributed to anything on neither Wikipedia nor Wikibooks before and I am being Swedish, so I might need some help with editing texts I've written (like spell-checking and such). But I am studying nanoscience and I believe I could contribute in areas like perhaps electron microscopy or some applications, like nanowires etc. I mean - of course I can add anything I want - I just wonder if someone know something that is more urgent or wanted (or something that this person feel is too boring to write him/her-self).
[[User:Deity|Deity]] 23:25, 9 December 2006 (UTC)
:Hi Deity - you are very welcome to add and edit where ever you feel you can contribute! The book is still just starting and I think it would be nice to have small sections on all subjects to sort of cover the entire subject minimally for a start. I hope it will be more appealing for people to add more material to a page that already contains material than a blank page. So if there is a rather empty section where you feel you already have material, know a lot, or would find it fun to contribute then please go ahead! If you would like someone to proof read it, you can email it to me first - but the wiki users are generally very good at helping proof reading so i would just upload it and we can take it from there.
Material is in preparation for the section on environmental nanotechnology, but just add to these pages if you want to, then we'll edit it together when the off line material gets uploaded. 18:58, 10 December 2006 (UTC)
== Intorduction - Origins and Background ==
I'm a newbie...was surfing by and noticed the Wikibook title.
Perhaps someone more qualified than myself can contribute information to the Introduction that gives background to lay readers about both the origins of the term "nanotechnology" and its earliest roots.
What I ''do'' know is that the late Navy Commodore Grace Hopper is generally considered to have coined the term as early as the 1940s, when she was heading up a mainframe computer project, in cooperation with IBM, in the bowels of the Pentagon. I heard her give a first-hand account of the work she had done on this project, which pioneered the way for nanotechnology, in a speech she gave on the topic at a trade association (American Logistics Association) conference--in the context of emerging information technologies, problems with slow government payments to vendors/suppliers, and the potential for using electronic funds transfer (EFT) to address the problem--in the mid-1980s.
People working or studying in the nanotechnology field will no doubt have heard of Grace Hopper and may be able to more readily fill in these blanks on the Introduction's canvas.--[[User:Alangray53|Alangray53]] 14:37, 23 December 2006 (UTC)Alan Gray
== Nanomagnetizm ==
Its good but ı think there must be some information about nanomagnetizm because we can see most interesting changes in magnetizm when we go from bulk to nano size.
== Printable Version ==
I suggest this book should be printable and downloadable as PDF because that will ease most low-budget people to take this book entirely in one attempt.[[User:Robin688|Robin688]] ([[User talk:Robin688|discuss]] • [[Special:Contributions/Robin688|contribs]]) 15:59, 2 January 2012 (UTC)
eowfko34oiqget7om9x16rxlsbuj4yg
Talk:Animal Care/Goldfish
1
93122
4640194
861327
2026-06-13T16:18:07Z
ShakespeareFan00
46022
4640194
wikitext
text/x-wiki
==Transwikied material: Black Smudge Disease==
==== Description ====
Your goldfish will develop black spots
==== Treatment ====
Replace 1/3 of the water in the tank until the water is full cycled.
The only contributor: 12:28, 5 June 2006 Abyab (Talk | contribs)
Transwikied 10:42, 12 September 2006 (UTC) by [[User:SBJohnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color:green">talk</span>]]</sup>
== "Gasping for air?" ==
The article mentions fish "gasping for air" -- don't fish always open and close their mouths? How does one know if they are gasping for air?
::My fish hardly ever surface, they shouldn't be heading to the surface often and gulping air, and if you aren't sure you may as well get a few airation pellets anyways :)[[User:86.144.13.101|86.144.13.101]] 14:20, 12 May 2007 (UTC)
8hddtb5kjsc9i0cszvmo65jt4fimkkv
Talk:.NET Development Foundation
1
96796
4640191
2762760
2026-06-13T16:16:29Z
ShakespeareFan00
46022
4640191
wikitext
text/x-wiki
*{{todolink|.NET Development Foundation|Todo-list of .NET Development Foundation}}
To add a new comment/discussion section, click the "+" tab on top of the page. Don't forget to specify a Subject, it will automatically be the section title. Also please sign your posts using <nowiki>~~~~</nowiki> at the end.
If you passed the exam '''please give us feedback on the [[/feedback|feedback page]]'''.
==Authors references==
Why are many sections of this book marked with "Original text for this page authored by William 'Scott' Baker" ?
Isn't the idea of this Wiki that the text is a group effort and any contributor information is only available in the history?
Can I remove those references? I have the impression that right now they're keeping other people from adding information.
--[[User:GertG|GertG]] 21:02, 15 October 2006 (UTC)
:[[Image:Yes_check.svg|15px| ]] Authors section created in new Intreduction section for those who want a little recognition (seen that in other wikibooks) --[[User:Jacques Bergeron|Jacques]] 20:47, 3 December 2007 (UTC)
==Paragraph naming convention==
This document seems to have an improper naming convention on the chapters. I'm new to wiki and am not sure if the document chapter names should be renamed, if they should be renamed how to do so without breaking the page history, or if this book should proceed with the current structure. Any help would be appreciated.
--[[User:Jason V|Jason V]] 03:11, 18 February 2007 (UTC)
I agree the conventions for these chapters aren't very good. Developing applications that use system types and collections, could just be named "Types and Collections". It makes it much easier to read. Any other ideas on this?
--[[User:Hondomon|Hondomon]]
:[[Image:Yes_check.svg|15px| ]] Paragraphs have been renamed for more concise formulation. The initial wording of the corresponding exam objective has been moved below the title. --[[User:Jacques Bergeron|Jacques]] 20:48, 3 December 2007 (UTC)
==Links only page==
Some of the links to the MSDN site are not completed. When I tried to add one I used the 'standard' that was used for the book e.g. I created a page with only an external link. The site admins notified me that it was not a good idea to create a page with only external links and no content. My plan was to gradually take the links back into the main page and delete the 'link only' pages already dreated. You can look at the 'Manage data in a .NET Framework application by using specialized collections' section to see the new layout I waas planning to use. Does anyone has a better suggestion for cleaning up or a problem with my plan? --[[User:Jacques Bergeron|Jacques]] 17:51, 17 November 2007 (UTC)
:[[Image:Yes_check.svg|15px| ]] End of deleting the "links only pages", next step to complete the MSDN links so that somebody else does not create another link only page trying just trying to help! About 24 detail pages where not deleted during the operation because they had minimal content or code examples. Their integration will be done later. --[[User:Jacques Bergeron|Jacques]] 20:46, 3 December 2007 (UTC)
:[[Image:Yes_check.svg|15px| ]] All wiki type links cleared so that nobody else falls in the "links only page" trap without knowing it. --[[User:Jacques Bergeron|Jacques]] 00:55, 6 December 2007 (UTC)
==Complete links to MSDN==
The initial reason why I started updating this page on november 17th 2007 was to complete the links to MSDN to get a "complete" reference to Micrsoft documentation. From there the module can serve an anchor for studying the exam. --[[User:Jacques Bergeron|Jacques]] ([[User talk:Jacques Bergeron|talk]]) 19:58, 7 December 2007 (UTC)
:[[Image:Yes_check.svg|15px| ]]I just finished adding the links to MSDN. Some claases where "not found" on MSDN!? and need more insvestigations. About 300 links added plus the 200 that were transfered from the links only pages (see above). --[[User:Jacques Bergeron|Jacques]] ([[User talk:Jacques Bergeron|talk]]) 19:58, 7 December 2007 (UTC)
==Renaming subpages==
The following discussion took place on the [[Wikibooks:Reading room/Assistance|Assistance page]] following a "request for comment" --[[User:Jacques Bergeron|Jacques]] 00:50, 6 December 2007 (UTC)
:I noticed something very odd when I was deleting the pages, it seems like whoever made all the links on the page you linked to tried to follow the naming convention, but all of the slashes are backwards, it's supposed to be <nowiki> /subpage/ </nowiki>, not <nowiki> \subpage\ </nowiki>. If the naming was correct, links to the parent page would automatically be generated near the top (like the link to the reading room parent page on the top of this page). Thank you for your improvements so far, that was a lot of link-only pages! Regards, [[User:Mattb112885|Mattb112885]] <small> ([[User talk:Mattb112885|talk to me]]) </small> 21:21, 5 December 2007 (UTC)
::Thanks Matt, this is exactly the kind of comment I was looking for since I'm new to wikibooks and don't know how things are supposed to be. I found [[Talk:Microsoft Certified Professional Developer|this]] that was asking for a renaming. Looks like it was done for the parent page only. Tried it on the first subpage and it worked. It has the interesting side effect that you only need <nowiki> /subpage </nowiki> for a link from the parent page. I will add a "to-do" to rename the other subpages. Thanks also if you deleted some of the "links only" pages I marked for speedy deletion, I knew somebody had to take care of the s... somehow. Regards --[[User:Jacques Bergeron|Jacques]] 21:55, 5 December 2007 (UTC)
:::TODO - Rename 23 remaining subpages to follow naming convention and update links on main page in the form of <nowiki>[[/subpage]]</nowiki> --[[User:Jacques Bergeron|Jacques]] ([[User talk:Jacques Bergeron|talk]]) 19:59, 7 December 2007 (UTC)
::::[[Image:Yes_check.svg|15px| ]] Finish integrating the pages into the main text. 2 pages remain as annexes and where renamed. -- [[User:Jacques Bergeron|Jacques]] ([[User talk:Jacques_Bergeron|talk]]) ([[Special:Emailuser/Jacques Bergeron|email]]) 00:52, 31 December 2007 (UTC)
==Split main page==
On december 10th Mike left a message indicating that the book main page was now too big and should be split.
:[[Image:Yes_check.svg|15px| ]]I have just finished a first split that keeps the possibility of having all on content on one page if we like by using template references. Now a lot of design and presentation work will have to be done on the main page, but that's another story... -- [[User:Jacques Bergeron|Jacques]] ([[User talk:Jacques_Bergeron|talk]]) ([[Special:Emailuser/Jacques Bergeron|email]]) 03:00, 12 December 2007 (UTC)
== Split to separate book ==
The module was split to become a new book and was renamed to ".NET Development Foundation". Following is the discussion that took place on the [[Wikibooks:Reading_room/Assistance|Assistance page]]:
Hi. Stupid question once again... Do we need some kind of authorization to "split" a module from a book to make it a book by itself (and changing the title accordingly). The idea would be to split [[Microsoft_Certified_Technology_Specialist/Exam_70-536]] from the [[Microsoft_Certified_Technology_Specialist]] book and make it a book on its own. The title could be something like ".NET Development Foundation (70-536)". There are two main reasons we would want to do that:
*The exam is part of more then one certification (6 in fact), its kind of weird that it is "glued" to one of them.
*Putting .NET somewhere in the title would be a little more meaningfull about the content of the module.
I would like to it now because:
*I am starting to split the document (pages are getting too big and Mike is sending posting "split" requests :-)). I would like to do the change before having too many pages.
*Also I am referencing the book on discussion groups and other places and I would like to have an address that would not be redirected. So any problem if I do that split? Regards -- [[User:Jacques Bergeron|Jacques]] ([[User talk:Jacques_Bergeron|talk]]) ([[Special:Emailuser/Jacques Bergeron|email]]) 19:46, 13 December 2007 (UTC)
::Authorization per se is not required but to avoid conflicts and since the changes you are proposing go a bit beyond the BeBold status, you should attempt to reach a consensus with all Wikibookians working on the same pages, try posting in the talk pages a notice and see if you get any reaction, as courtesy you could also attempt to find out who was most involved on editing the pages even if the works has stopped, you can even find out people willing to help you on those tasks.
::Split the changes you intent on doing in smaller proposals if not directly related (ie: rename of the book, and splitting it into chapters) add those proposal to the relevant book talk/user pages and establish a close time normally 7 days after the last argument was posted (avoid votes) by asking directly for objections/comments. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 20:00, 13 December 2007 (UTC)
:::Very clear thanks, I will follow your recommendations and post a seven day notice on the relevan talk pages to see if there is any objections. As for the past contributors I did some reseach and did not find any actually active. As for me, I have done a couple of edits on this book lately :-) Regards -- [[User:Jacques Bergeron|Jacques]] ([[User talk:Jacques_Bergeron|talk]]) ([[Special:Emailuser/Jacques Bergeron|email]]) 20:35, 13 December 2007 (UTC)
::::There is no reason to wait, except out of courtesy, if there has indeed been no active contributors to the book in awhile besides yourself (say several months). I think you've probably already done enough and any changes would be in good faith. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 21:19, 13 December 2007 (UTC)
::::I agree with Darklama. If you're the only one working on it, you should get to do things at your own pace. '''Be bold''', create the new book, and let us know if you need any help with it. --'''Whiteknight''' ([[User:Whiteknight|Page]]) ([[User talk:Whiteknight|Talk]]) 23:25, 13 December 2007 (UTC)
:[[Image:Yes_check.svg|15px| ]] Page name changed to [[.NET Development Foundation]] which becomes a new book and double redirects arranged. -- [[User:Jacques Bergeron|Jacques]] ([[User talk:Jacques_Bergeron|talk]]) ([[Special:Emailuser/Jacques Bergeron|email]]) 06:32, 15 December 2007 (UTC)
== Spell Check ==
seriously man, there are so many typos they actually distract from the reading. Most browsers (such as Firefox) even have this feature built in to the browser and you don't even have to open word
:Thanks for the corrections and comment. We will certainly start to do systematic spell checking when we do major updates to sections. Regards. -- [[User:Jacques Bergeron|Jacques]] ([[User talk:Jacques_Bergeron|talk]]) ([[Special:Emailuser/Jacques Bergeron|email]]) 20:28, 26 December 2007 (UTC)
:Thanks again for the corrections, if you have any other ideas about possible improvements dont hesitate to pass them on. Regards. -- [[User:Jacques Bergeron|Jacques]] ([[User talk:Jacques_Bergeron|talk]]) ([[Special:Emailuser/Jacques Bergeron|email]]) 13:55, 7 January 2008 (UTC)
== Implement flat structure ==
All pages in the book except for the front page are now at the second level, this is immediately "under" the front page (ex. .NET Development Foundation/Introduction). This ensure that the links stay correct even when things are displaced or new organizational levels are added to sections. We choose this approach because the book has to evolve gradually, doing page splits and adding levels when the pages become too big. Splitting the pages too early generate lots of near empty pages that are rejected by the admins and do not give "continous" text. Not splitting pages gives too big pages and requests to split by the admins. So the structure of the book must be gradually elaborated, thus the need for an adaptable page organization.
We are constructing a navigational structure built with templates to implement a "soft" page organization that can evolve. Go to [http://en.wikibooks.org/w/index.php?title=.NET_Development_Foundation/PageStructure&action=edit page structure] to get a feel of the way the page structure is defined. This structure will be completed in the coming weeks. Any input or comment is welcomed. -- [[User:Jacques Bergeron|Jacques]] ([[User talk:Jacques_Bergeron|talk]]) ([[Special:Emailuser/Jacques Bergeron|email]]) 01:05, 31 December 2007 (UTC)
== Notes in all in one page ==
All the text of the book is now available directly in the all-in-one page. The only remaining problem before is can serve as a crude "print page" is that the dynamic navigation sections are closed when you open the page. Some research is needed to find a way for then to be all opened when we want to print but all closed during notmal navigation. -- [[User:Jacques Bergeron|Jacques]] ([[User talk:Jacques_Bergeron|talk]]) ([[Special:Emailuser/Jacques Bergeron|email]]) 01:08, 31 December 2007 (UTC)
== Orphaned pages ==
[[.NET Development Foundation/Iterators]] and [[.NET Development Foundation/Value types]] are not linked to. Please link to them, merge them and mark them with {{tlx|now merged|destination page, or if undesired mark them with {{tlx|delete|reasoning}}. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 16:12, 7 August 2009 (UTC)
m2jnwq5xtnhl2kg1kdu2yv7a0d6ei9p
Wikibooks talk:Avoid instruction creep
5
97080
4640122
4624195
2026-06-13T15:27:09Z
ShakespeareFan00
46022
4640122
wikitext
text/x-wiki
== Simplified ==
I like this new revision, it is much more simple and to-the-point then the wikipedia version is. Lead by example: it's a good idea. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 20:53, 18 October 2006 (UTC)
: I'm glad! I started writing a little note here to seem less of a rouge, but then my nieces woke up ... --[[User:Swift|Swift]] 21:54, 18 October 2006 (UTC)
:Yeah, looking good so far. It's definitely a good policy to have. Wikipedia policy has grown ridiculously fat trying to keep people from abusing or confusing rules. Oh, and good luck to new admins trying to extract info on how their new tools actually work from amongst all the harsh warnings about what not to do with them! [[User:Garrett|Garrett]]<sup>[[User talk:Garrett|Talk]]</sup> 01:30, 22 October 2006 (UTC)
== As a Guideline ==
I am in no particular hurry to make this page official, because I'm sure that there are more things that can be said on the issue, and more people who should chime in before we try to make it official. However, I am thinking that this proposal would probably make a better '''guideline''', then a policy. If we specify that distinction early, it will be much easier ( i think) to get the votes to pass it later. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 19:53, 23 October 2006 (UTC)
== Applying [[WB:CREEP]] to itself ==
In regards to [http://en.wikibooks.org/w/index.php?title=Wikibooks:Avoid_instruction_creep&diff=2014367&oldid=2014306 this edit], I appreciate the irony. However, this page is at present only an essay, but pertains to policies and guidelines, and thus does not logically apply to itself. Moreover, the points removed were not making the page harder to understand or manage, but rather were helpful tips. With that said, I do see why it might be problematic to say that each requirement should have "clear consensus", as it's not necessarily good to remove an instruction just because consensus was never explicitly established for it. The last point, "prune instructions regularly", might be problematic for similar reasons. [[User:Belteshazzar|Belteshazzar]] ([[User talk:Belteshazzar|talk]]) 16:32, 9 January 2011 (UTC)
== 'Requirements which are found to lack community consensus should be removed or modified.' ==
I changed this sentence to 'Requirements without community consensus should be removed or modified', though this was later changed back. IMO the sentenced should be shortened in the above manner for concision. This is because it requirements are 'found to' lack community consensus, they ''do'' lack community consensus; if it is not 'found to' lack community consensus, how does one know that it lacks community consensus? Leaving out 'are found to' also removes a passive voice phrase. As for 'lacks;, if something lacks community consensus, then it doesn't have community consensus. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl:Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 14:28, 21 March 2011 (UTC)
:It seems to me that saying it that way could encourage summary removal of instructions for no reason other than that consensus was never explicitly established for them. Granted, that is not necessarily a bad thing, but in some cases it could cause disruption. "'''''Are found to''' lack community consensus''" seemed like it would encourage discussion. If the grammar is a problem, perhaps there is a better way to say it. [[User:Belteshazzar|Belteshazzar]] ([[User talk:Belteshazzar|discuss]] • [[Special:Contributions/Belteshazzar|contribs]]) 16:57, 21 March 2011 (UTC)
::If consensus was never ''explicitly'' established for them, surely one cannot tell, at first glance, that there is no consensus? [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 12:55, 23 March 2011 (UTC)
: I agree with Belteshazzar, the sentence should be clear that discussion should happen before lack of consensus is considered to be the case. I also think lack of consensus and no consensus can mean two different things. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 14:42, 23 March 2011 (UTC)
:: It's pretty much 'common sense' that discussion should happen, IMHO. In any case, I don't think 'found to' implies discussion either. What is the difference between lack of and no consensus? [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 14:57, 23 March 2011 (UTC)
::: I think "common sense" can be found in many pages in the Wikibooks namespace. Lack of consensus can mean there was lack of an attempt to find common ground and an agreeable compromise. No consensus can mean that several clear options have been expressed with some people agreeing with each, but overall the options conflict with one another and no common ground could be found as a result despite attempts to find an agreeable compromise. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 00:37, 24 March 2011 (UTC)
::::Fair enough, I see the difference between lack and no. But then, does 'found to' really imply the need of discussion? [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 13:19, 24 March 2011 (UTC)
::::: I think "found to" may mean that a person attempted to look into whether there is a consensus or not. I think [[Wikibooks:Decision making]] might imply the need for discussion. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 10:36, 30 March 2011 (UTC)
5tginaa6jwte8p61bvt0b4tjd2zeseg
Wikibooks talk:Reading room/Administrative Assistance
5
98723
4640087
4540041
2026-06-13T12:59:01Z
ShakespeareFan00
46022
4640087
wikitext
text/x-wiki
{{metatalk}}
== Vandal reports? ==
Ooo shiny new page! Do the vandal reports go here now? Or from when? Does the "recent changes" link to vandalism need doing. --[[User:Herbythyme|<span style="color:green">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 14:31, 3 November 2006 (UTC)
== Usage? ==
While asking questions, should people start making all those requests here and is this meant to replace the other pages or should transclusions be done? --[[User:Darklama|darklama]] 14:38, 3 November 2006 (UTC)
:Maybe. Less pages to watch for admins might be a good thing :). --[[User:SBJohnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color:green">talk</span>]]</sup> 14:49, 3 November 2006 (UTC)
::So is that merger or transclusion then? Should the first merge history request be for all the other pages? Then its just a mater of turning the other pages into redirects. BTW not sure the name really helps people know what its intended usage is. How about "Administrators' Help", "Requests for Help", "Request for Administrative Action", "Request for Administrative Help", "Staff Help", "Request Staff Help", etc. --[[User:Darklama|darklama]] 15:09, 3 November 2006 (UTC)
:::See [[w:WP:AN]]. --[[User:SBJohnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color:green">talk</span>]]</sup> 15:11, 3 November 2006 (UTC)
::::So your trying to help Wikipedians too then? I was going to suggest "Staff Helpdesk" next as another name I just thought of to coincide with "Staff lounge". Nothing stopping this page from existing as a helpful redirect for Wikipedians. "Administrative noticeboard" on Wikipedia looks more like "Staff lounge" here from a quick look. --[[User:Darklama|darklama]] 15:17, 3 November 2006 (UTC)
:::::It could be "staff desk" — [[User:Iamunknown|User:Iamunknown]] 22:40, 31 December 2006 (UTC)
Definitely not :). The WP version of the staff lounge is [[w:WP:VP]]. --[[User:SBJohnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color:green">talk</span>]]</sup> 15:42, 3 November 2006 (UTC)
== Checkuser requests ==
As we now have a rather fuller complement of Checkusers could we work out a way to make sure that all who need to be checked are? Understanding that Whitekinight would like to be notified of requests on his user talk page, I know Derbeth checks the Vandalism in Progress page BUT quite a few have been picked up and blocked by an admin and so don't get a mention on that page. Personally I tend to check the block log first thing and work on that. Would people like an acknowledgement that a check has been made? And if so where?
Thanks --[[User:Herbythyme|<span style="color:green">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 12:55, 11 January 2007 (UTC)
:I'd like to know when checks are being made since this system should be used somewhat sparingly. I am not sure where these checks could be listed though. Maybe at the admins' noticeboard? -[[User:Withinfocus|<span style="color:#000000">'''within'''</span>]][[User talk:Withinfocus|<span style="color:#7A7A7A">'''focus'''</span>]] 02:17, 13 January 2007 (UTC)
::The issue I was looking to resolve here was how folk would "request" a checkuser dig and a way of ensuring that none got missed by accident. On vandal ones I have done I have placed a message on the blocking admin's page acknowledging I have made the check. If a block is the result, it and the reason, will be available for all to see.
::As to use of checkuser rights the log of enquiries is available across Wikis so all those with the rights can see what is being done. There are really very few entries however equally it is clear that those with the rights will act on suspicion as well as requests. I hope that it is quite clear that it would not be appropriate to divulge this information unless there was an issue that might be having an effect on us (such as sock puppetry). Certainly if I found something as a result of such a check I would share it privately with other checkusers or admins/'crats if appropriate in the first instance to request views and advice. --[[User:Herbythyme|<span style="color:green">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 19:53, 15 January 2007 (UTC)
:::Checkuser needs to be used quietly, privately, with considerable discretion, and above all rarely. We could come up with a public log of when it's done and why, but the wikimedia privacy policies wouldn't let us say who was checked and what we found. Would such a log be useful? --[[User:SBJohnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color:green">talk</span>]]</sup> 01:22, 18 January 2007 (UTC)
::::All of the Checkusers should keep tabs on each other, but I think in some cases it might not be detrimental to note that a Checkuser could be used in certain investigations. The outcome, when sensitive, would of course be kept under wraps. -[[User:Withinfocus|<span style="color:#000000">'''within'''</span>]][[User talk:Withinfocus|<span style="color:#7A7A7A">'''focus'''</span>]] 00:18, 19 January 2007 (UTC)
:Just to clarify, it's not that I need a special invitation or anything (although the attention is nice). I tend not to read VIP if the last edit to that page was made by an administrator. My thinking here is that 1), I have better things to do then read everything that ever happens, and 2) my fellow administrators can be trusted to quickly and ruthlessly destroy vandalism wherever it is found. Also, all vandals don't need to be checkuser'd, just vandals that appear to be coming from the same source. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 00:24, 19 January 2007 (UTC)
== Oversight of a sort ==
Testing my suspicion and following a test by Az1568 it is quite possible to remove edits to a page from "general" visibility (they can still be seen and restored by an admin only). To do so all you need do is delete the page and then selectively restore it leaving off the items not required. Ok it is rather more work but for now until we establish a real need it would pass for some instances? If you take a look at my user page history you (admins) will see 4 edits that have been "left off". --[[User:Herbythyme|<span style="color:green">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 13:07, 20 January 2007 (UTC)
== Ordering of posts on AN ==
I just juggled all the unchronological posts and made them all chronological. I figure that, since the noticeboard is not used often (and when it is, in short spurts), and most of the posts of late are non-topical (or, at least, they were never put in their topical subcategory), it is best to keep it like this. If someone feels like reverting me, go ahead...I wouldn't care. --[[User:Iamunknown|Iamunknown]] 01:59, 4 March 2007 (UTC)
== eh? ==
This page has a rather rediculous name now. Since I'm the "original author" of WB:AN, am I allowed to revert the name change? ;p --[[User talk:SB_Johnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[meta:Wikimedia Pennsylvania|<span style="color:green">PA!</span>]]</sup> 17:57, 14 October 2007 (UTC)
:Oh nevermind, I just made the redirect :(. --[[User talk:SB_Johnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[meta:Wikimedia Pennsylvania|<span style="color:green">PA!</span>]]</sup> 18:00, 14 October 2007 (UTC)
== Re moving content ==
Thanks for the quick reply!
The reason I came here was because I got the message
'''You do not have permission to move this page, for the following reason: The page could not be moved: a page of that name already exists, or the name you have chosen is not valid. Please choose another name, or use the administrative assistance reading room to ask an administrator to help you with the move. Do not manually move the content by copying and pasting it; the page history must be moved along with the page text.'''
Copying content is fine with me - but the history gets lost, and only stays preserved with "Moves". Should I go ahead and copy the content, and make a note in the Talk page?
--[[User:Thomas.haslwanter|Thomas.haslwanter]] ([[User talk:Thomas.haslwanter|discuss]] • [[Special:Contributions/Thomas.haslwanter|contribs]]) 15:25, 10 February 2015 (UTC)
:I'll contact one of the administrators around here to help you. --[[User:Atcovi|atcovi]] ([[User talk:Atcovi|talk]]) 15:35, 10 February 2015 (UTC)
::Which page is it you want moving? [[User:QuiteUnusual|QuiteUnusual]] ([[User talk:QuiteUnusual|discuss]] • [[Special:Contributions/QuiteUnusual|contribs]]) 15:45, 10 February 2015 (UTC)
:::From what I can tell you are only moving part of the content, in which case the whole page cannot be moved. However, you don't need to bother copying the whole revision history to the Talk page. When you copy the content in the edit summary insert the permanent link URL to the page you copied from (by using the '''Permanent link''' option in the Tools section of the side bar menu visible on every page). This will provide a permanent link to where you got the content from and is sufficient for the license. [[User:QuiteUnusual|QuiteUnusual]] ([[User talk:QuiteUnusual|discuss]] • [[Special:Contributions/QuiteUnusual|contribs]]) 15:51, 10 February 2015 (UTC)
---
OK, I have cleaned up the content, and (hopefully!) done it such that all the attribution information is still visible.
So I have two questions left:
1) What to do with the original page
https://en.wikibooks.org/w/index.php?title=Sensory_Systems/NonPrimates&oldid=2750653
which was split into
https://en.wikibooks.org/wiki/Sensory_Systems/Arthropods
and
https://en.wikibooks.org/wiki/Sensory_Systems/Other_Animals
Should the original page be deleted? Or is is just kept there without reference? I have put a comment into the corresponding Talk Page, with the relevant links.
2) Can someone please tell me what the option
"Re-review this revision"
at the bottom of each page is intended for? Since I can mark my own pages, would not everybody mark his pages as "good"?
--[[User:Thomas.haslwanter|Thomas.haslwanter]] ([[User talk:Thomas.haslwanter|discuss]] • [[Special:Contributions/Thomas.haslwanter|contribs]]) 15:14, 11 February 2015 (UTC)
:I would change the original source page to a redirect to one of the two new pages so that the history is still available. As for Review this Revision, this is part of the FlaggedRevisions software. You can read more about it at [[Wikibooks:Reviewer]] and [[WB:REVIEW]]. We really only use it to prevent vandalism appearing to users who aren't logged in on pages intended for younger readers and for anti-vandalism work. We trust people to flag their own pages appropriately! [[User:QuiteUnusual|QuiteUnusual]] ([[User talk:QuiteUnusual|discuss]] • [[Special:Contributions/QuiteUnusual|contribs]]) 15:48, 11 February 2015 (UTC)
== Vandalism in progress and personal threats: [[User:Joesbread]] ==
This user is repeatedly re-adding an item which has been removed by admins, and further is sending me threats via wikimail. [[User:Chazz|Chazz]] <small>([[User talk:Chazz|talk]])</small> 01:00, 30 July 2019 (UTC)
: The above non-sense & pure rubbish, trash & garbage makes no sense at all because I am not adding nothing on this page, IM simply asking a question on this page's talk page, so it surely deserves to be here. Also Chazz emailed me & told me to get lost so I simply told him to get lost. He is overstepping his bounds, trying to look smart but self-contradicts himself ...
::oh, me. A slanging match? I have never emailed you. If I had, you'd know my TLD, which is a little odd. The question posted has been repeatedly removed by admins, as the page history will show. The page history would also show several threats directed both at me and at others in the edit comments, except that many of those revisions have been removed as possibly actionable... but any admin can see them. [[User:Chazz|Chazz]] <small>([[User talk:Chazz|talk]])</small> 01:08, 30 July 2019 (UTC)
:::I put in a steward request for this sockpuppet. This person is banned by the WMF, so you can just remove anything he posts without comment. [[User:Antandrus|Antandrus]] ([[User talk:Antandrus|discuss]] • [[Special:Contributions/Antandrus|contribs]]) 02:39, 30 July 2019 (UTC) (Brief followup - actually Plyrstar93 did -- I reported a different one.) [[User:Antandrus|Antandrus]] ([[User talk:Antandrus|discuss]] • [[Special:Contributions/Antandrus|contribs]]) 02:44, 30 July 2019 (UTC)
::::I was (and still am) being harassed by another editor over email who is now globally banned. Maybe this is related? [[User:Leaderboard|Leaderboard]] ([[User talk:Leaderboard|discuss]] • [[Special:Contributions/Leaderboard|contribs]]) 05:29, 30 July 2019 (UTC)
:::::Highly likely -- is it [https://meta.wikimedia.org/w/index.php?title=WMF_Global_Ban_Policy/List&diff=prev&oldid=18480443 this one]? Is he trying to recruit someone to his side to fight the battle of eternal justice against some bad bad admins or stewards, and doing so in non-native, comma-spliced invective, while making hyperbolic claims about being a bunch of different people? [[User:Antandrus|Antandrus]] ([[User talk:Antandrus|discuss]] • [[Special:Contributions/Antandrus|contribs]]) 14:36, 30 July 2019 (UTC)
::::::{{ping|Antandrus}} I don't know. The WMF confirmed that the account from whom mail was sent to me was related to a banner WMF user but did not specify which one, and also said that user was spamming/abusing WMF as well but wasn't aware till now that they had an account here. [[User:Leaderboard|Leaderboard]] ([[User talk:Leaderboard|discuss]] • [[Special:Contributions/Leaderboard|contribs]]) 18:10, 30 July 2019 (UTC)
:::::::Um, lol. Yes, that's the one (see recent page history). [[User:Antandrus|Antandrus]] ([[User talk:Antandrus|discuss]] • [[Special:Contributions/Antandrus|contribs]]) 20:49, 30 July 2019 (UTC)
== [[User:I am abusing several accounts 2A; Scrimbley strikes back! ATT Version]] ==
{{userlinks|I am abusing several accounts 2A; Scrimbley strikes back! ATT Version}}
Inappropriate username [[Special:Contributions/~2025-26918-66|~2025-26918-66]] ([[User talk:~2025-26918-66|talk]]) 23:45, 27 September 2025 (UTC)
: {{done}}. [[User:Codename Noreste|Codename Noreste]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 00:09, 28 September 2025 (UTC)
nsg0cqx6yf6yolhd088nzxljmovjohd
Talk:Aspies Book/Resources
1
98813
4640199
1894519
2026-06-13T16:26:24Z
ShakespeareFan00
46022
4640199
wikitext
text/x-wiki
{{rfd-survived}}
== Is it a book? ==
Herbythyme stated "Not sure - this is solely a collection of external links on Aspies, maybe useful but should it be in Wikibooks?"
For me it seems to be a book, since my thoughts of what a book is, is a page with various sorts of information which also expresses personal belief or ideas.
Since it says "Aspies Book/Resources". It could be left as a book containing just resources, for the current moment, and later be expanded in greater descriptions regarding the links. [[User:Logictheo|Logictheo]] 11:42, 4 November 2006 (UTC)
:Well, as a book it's no good, actually. But as a chapter of a book it's fine :). --[[User:SBJohnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color:green">talk</span>]]</sup> 12:56, 4 November 2006 (UTC)
5v61aq1ox0z4i96n7auvief825tecvd
Talk:X Window Programming
1
98898
4640195
2694555
2026-06-13T16:19:18Z
ShakespeareFan00
46022
4640195
wikitext
text/x-wiki
== Merging GTK+ Book ==
Merging the GTK+ book into this book would allow people to contribute to one effort rather then dividing the community as well as allows readers to learn GTK+ along with other aspects of X Windows Programming. --[[User:Darklama|darklama]] 17:33, 5 November 2006 (UTC)
: Excellent idea. --[[User:Swift|Swift]] 08:18, 10 December 2006 (UTC)
:Bad idea. Remember that GTK is cross-platform. It does not have to run under X. - Anonymous 16:05, 18 May 2007 (UTC)
: Please don't do this. You don't need to know anything about X to program using Gtk, and you don't need to know anything about Gtk to program X Windows. --[[User:Tony Sidaway|Tony Sidaway]] 23:04, 20 December 2007 (UTC)
: Another vote for not doing this. As already pointed out Gtk and X programming are not related. If you still think they are consider, why we should not merge this with Qt programming, or FLTK programming or someother toolkit programming. --[[User: Balbir Thomas|Balbir Thomas]] 15:12, 21 January 2008 (UTC)
While GTK+ is cross-platform and doesn't need to run under X, GTK+ is most commonly used under X, was originally made for use with X, and still relies on X concepts that need to be understood to write programs that use GTK+. Most of the topics covered in this book will be dealing with libraries and toolkits which happen to be cross-platform, because there more frequently used. Other toolkits or libraries, like Xlib or XCB, are less frequently used directly. This book will be covering GTK+ and Qt, along with other toolkits, regardless of whether or not the merger happens, as most programmers today use them to create programs for X. So why not keep things simple and easy, by letting any contributions to be concentrated in a single work, rather then having work and effort split among different books? --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 01:35, 23 January 2008 (UTC)
: I'd take it the other way round: merge the X Window Programming relevant chapters to existing books, the [[Guide to X11]] for instance. Looking at the X Window Programming content, I've noticed that most of the chapters (beyond XLib and XCB) present only general information, that is, they haven't developed into real book chapters yet. Moreover, the four last topics (SDL, OpenGL, Qt and GTK+) are not part of the X Window system: SDL, GTK+ and Qt use some X Window libraries when built on X11, but they're cross-platform toolkits and use different libraries on other systems; OpenGL is in no way bound to X Window. As a consequence, I'd move the XLib and XCB chapters to the [[Guide to X11]] book, and the Motif information to Wikipedia (Motif is the only toolkit that depends only on X, so it could stay in an X book, but as a framework it can have its own book). Move the other chapters either to Wikipedia or the existing independant books ([[OpenGL]], [[Gtk]], [[Qt]]). I'd add that most of the GTK+ or Qt programmers have never learnt about the X Window concepts, there's no need to learn X to use frameworks built on top of it. Though Qt and Gtk+ were historically based on X libraries, they're now real cross-platform toolkits (especially Qt); many application authors probably choose one of them with that cross-platform idea in mind, whichever the system they choose (or are used to) for main developments. No work will be duplicated when splitting the X Window Programming book because there's no direct relationship between any of them (excepted beetween the first two ones). Moreover, once you've choosed a framework, you don't need to learn (or even know) about the other ones. Some of them allow making direct calls to the X libraries (in which case you'll refer the the X specific book), but they're primarily meant as X abstraction frameworks. --[[User:Romainbehar]]
:: I disagree with splitting this book up. [[Guide to X11]] is for installing and using X11, not for programming under X11. Most of the general information in this book is based on already existing Wikipedia articles. [[Gtk]] hasn't had much development yet either, which is why I suggested a merger with this book, while not suggesting any other mergers. While GTK+ or Qt programmers may never touch X, this book isn't for those type of programmers. This book is for programmers wanting to write programs or games that run under X11, whether only one toolkit or library is being used or a mix of toolkits/libraries are going to be used together. This book is intended to be useful in introductory classes that introduce all these libraries, and useful in advance classes in which students are expected to learn how to make window managers, new interface elements, and use libraries/toolkits together. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 17:43, 15 March 2008 (UTC)
::: I agree. The two have different scope. [[Gtk]] and [[X Window Programming/GTK+]], however, share a scope and should be merged. Whether that's under this book or the other (used as a reference here) doesn't really matter. --[[User:Swift|Swift]] ([[User talk:Swift|talk]]) 09:48, 6 February 2009 (UTC)
== Splash pages ==
Would anyone object to moving the upper half of the main page to /Cover and merge the /Contents with the lower half (the introduction)? I've done this with abandoned books as per the splash page discussion on [[WB:MOS]]. --[[User:Swift|Swift]] ([[User talk:Swift|talk]]) 10:08, 6 February 2009 (UTC)
: There is already a short table of contents listed on the main page that lists each major section of the book. The intent is for /Contents to be a more complete table of contents. The order in which each major section is read should more or less not matter, while chapters in each major section should be read in the order presented. I think this is similar to how [[Muggles' Guide to Harry Potter]] is organized. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 18:14, 7 February 2009 (UTC)
== Unix programming ==
Hi. In polish wikibooks is a small page about [[:pl:Programowanie w systemie UNIX|Unix programming]]. Can it be treated as a polish version of this book ? --[[User:Adam majewski|Adam majewski]] ([[User talk:Adam majewski|discuss]] • [[Special:Contributions/Adam majewski|contribs]]) 20:10, 26 February 2011 (UTC)
: X Window has many implementations and is available for other systems besides UNIX. I think English Wikibooks may not have a [[Unix Programming]] book yet. Unix Programming is a broader topic in some ways, and in other ways might cover things which may not be compatible across the systems in which X Window is implemented. A person should hopefully be able to write graphic programs using any number of graphic libraries and X Window, whether they are in a UNIX environment or not. How about starting a Unix Programming book instead? --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 20:47, 26 February 2011 (UTC)
== Xview ==
What about old [http://www.physionet.org/physiotools/xview/ Xview] library ? --[[User:Adam majewski|Adam majewski]] ([[User talk:Adam majewski|discuss]] • [[Special:Contributions/Adam majewski|contribs]]) 07:08, 27 February 2011 (UTC)
: I am open to the idea of covering other libraries too. Are their people using Xview to develop programs? I think a criteria for inclusion should be that their be an active community of developers using it. The link you provided mentions some problems that have been known since 1993, suggesting there might be no incentive for people to develop programs using Xview any more. Maybe some kind of migration guide could be useful for people that come across programs still using Xview? --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 14:29, 28 February 2011 (UTC)
== Key concepts and their examples ==
I suggest add some key concepts in the book with examples of each one.
display is the X hardware abstration for hardware input/output set. Example: computer jonh's keyboard, mouse and two LCD screens connected thru X Server are viewed (this is the abstraction) for the X client like one "Display".
widget is the X software abstraction for window (not, x window) derivatives like menus, forms, lists, checkboxes, etc.
Example: label window saying "hello world".
resources is the set of resource itens that a widget owns.
resource is one atributte of a widget. Example: width of a window.
== Tranparent programming ==
The X programming consist in make X clients. One can programming a client to run in one OS (not necessary a UNIX one) and use
another like user interface. Example: John create an "hello X World" application that was compiled in your computer running FreeBSD OS.
Paul interact with John's "Hello X World" program running in their computer thru a network system using your computer running a GNU/linux system. The Paul's computer have an X Server installed, that communicates with John's computer running X client.
Example : Make this example in C code.
From Alan tutorial (Maybe this program could be considered a "Hello X World", cause it shows an "X" formed by two lines)
/* first include the standard headers that we're likely to need */
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xresource.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char ** argv){
int screen_num, width, height;
unsigned long background, border;
Window win;
XEvent ev;
Display *dpy;
GC pen;
XGCValues values;
/* First connect to the display server */
dpy = XOpenDisplay(NULL);
if (!dpy) {fprintf(stderr, "unable to connect to display\n");return 7;}
/* these are macros that pull useful data out of the display object */
/* we use these bits of info enough to want them in their own variables */
screen_num = DefaultScreen(dpy);
background = BlackPixel(dpy, screen_num);
border = WhitePixel(dpy, screen_num);
width = 40; /* start with a small window */
height = 40;
win = XCreateSimpleWindow(dpy, DefaultRootWindow(dpy), /* display, parent */
0,0, /* x, y: the window manager will place the window elsewhere */
width, height, /* width, height */
2, border, /* border width & colour, unless you have a window manager */
background); /* background colour */
/* create the pen to draw lines with */
values.foreground = WhitePixel(dpy, screen_num);
values.line_width = 1;
values.line_style = LineSolid;
pen = XCreateGC(dpy, win, GCForeground|GCLineWidth|GCLineStyle,&values);
/* tell the display server what kind of events we would like to see */
XSelectInput(dpy, win, ButtonPressMask|StructureNotifyMask|ExposureMask );
/* okay, put the window on the screen, please */
XMapWindow(dpy, win);
/* as each event that we asked about occurs, we respond. In this
* case we note if the window's shape changed, and exit if a button
* is pressed inside the window. We also draw lines whenever a part
* of a window becomes viewable. */
while(1){
XNextEvent(dpy, &ev);
switch(ev.type){
case Expose:
XDrawLine(dpy, win, pen, 0, 0, width, height);
XDrawLine(dpy, win, pen, width, 0, 0, height);
break;
case ConfigureNotify:
if (width != ev.xconfigure.width
|| height != ev.xconfigure.height) {
width = ev.xconfigure.width;
height = ev.xconfigure.height;
XClearWindow(dpy, ev.xany.window);
printf("Size changed to: %d by %d\n", width, height);
}
break;
case ButtonPress:
XCloseDisplay(dpy);
return 0;
}
}
}
== Basic Xlib programming ==
Unix has a strong link with the C programming language, so Xlib was created as a C language library. Remebering that UNIX was created mostly in C language.
Despite X could be programmed in another languages, the better choice is to start from the beginning.
9d45asfo8mm9gjqy6u9njzs8ugo0hme
Wikibooks talk:Deletion policy/Archive 2
5
100321
4640092
4585045
2026-06-13T13:02:40Z
ShakespeareFan00
46022
4640092
wikitext
text/x-wiki
{{talk archive}}
== better Vfding system ==
'''Note''': This section moved from [[Wikibooks talk:Votes for deletion]]. - [[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Contributions/Aya|C]]</sup> 22:00, 8 August 2005 (UTC)
I think now that Wikibooks is getting bigger we need a proper Vfd system like Wikipedia with subpages and all. As it is the archive is going to become unmanagable. Of course I know that means more work is required with Vfd bots and all, but the benefits would surely outweigh the difficulties. [[User:Master Thief Garrett|Garrett]]<sup>[[User talk:Master Thief Garrett|Talk]]</sup> 01:50, 10 July 2005 (UTC)
*I'm not familiar with Wikipedia's process for this, but I'll check it out. In the meantime, I've made a few changes to the page that should hopefully speed things up while minimizing the length of the VfD page. The archive page is currently still as before, but I like the idea of having separate pages for each controversial page. This way it could serve as a complete history for why the page exists or not (i.e. roll up VfD and VfU into the same page). The downside is that it's gonna require a lot more maintenence to keep several pages where before there was only one. - [[User:Aya|Aya]] 19:10, 10 July 2005 (UTC)
*True, but soon entire '''books''' will be put up for deletion and not just individual modules. We must have clear [[Wikibooks:Naming conventions|naming conventions]] before we can deal with splitting up VFD into a separate CFD, RFD, IFD, etc. [[User:KelvSYC|KelvSYC]] 19:06, 10 July 2005 (UTC)
**Ah, hm, now that's a problem. Perhaps if you nominate the core of a Wikibook that counts as deletion for the rest of it as well, whereas if you nominate a page you only delete it and its subpages? Hm. [[User:Master Thief Garrett|Garrett]]<sup>[[User talk:Master Thief Garrett|Talk]]</sup> 22:56, 10 July 2005 (UTC)
***That makes sense to me. When we delete just a module, we sometimes also delete the images too. I suppose the only exception to the "recursive delete" plan would be if multiple books link to, say, an image that actually is valid. [[User:Mshonle|MShonle]] 16:51, 5 August 2005 (UTC)
== Deprecation of voting ==
'''Note''': This section moved from [[Wikibooks talk:Votes for deletion]]. - [[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Contributions/Aya|C]]</sup> 22:00, 8 August 2005 (UTC)
Moved from [[User talk:Uncle G]] - [[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Contributions/Aya|C]]</sup> 16:19, 3 August 2005 (UTC)
Any particular reason you felt the need to revert my attempt to tidy up this section?
Rather than rolling back your edit in an adversarial fashion, I shall instead justify my edit with a brief summary of the way in which VfD sections are normally formatted, to preserve the clarity of this somewhat contentious process. This will soon become part of [[Wikibooks:Deletion policy]] to prevent edit wars, and minimize the time it takes for admins to sort all this nonsense out (they don't get paid for this y'know), unless you have a better idea.
The first conceptual subsection should indicate the reason why the page is contentious enough to warrant a VfD, signed by the user who believes it to be the case. Discussions on this reasoning should be carried out in this subsection using the standard talk-page paradigm (i.e. signed, indentated paragraphs). Signing comments is important for context, and so that users don't have to trawl thru the edit history to work out who said what. This section is arguably most important, since, at any time, an admin may decide that the page obviously falls within the criteria for speedy deletion, and just delete it without continuing the vote. This is largely to prevent redundant voting on pages that just say "sdlsdkjfsldk" or similar nonsense.
The second conceptual subsection should be used for voting. This can go on in parallel with the discussion in the first subsection. Only registered Wikibooks users are eligable to vote. To clearly separate actual votes from mere discussion, these should be bullet-pointed. For clarity, the first word or word-phrase should represent that user's vote, and should be emboldened, so that when the voting process ends, an administrator can quickly count up the votes. If the emboldened vote is at the end of the paragraph, they make get overlooked. Usually this vote is one of either "Delete" or "Keep" optionally followed by a justification, but other alternatives have been allowed such as "Move" or "Transwiki" (interpreted as "Move/Transwiki and delete from original location), with a more appropriate location suggested. Each vote must be signed or it will not be counted. It is customary for other users to use the 'indented bullet' format to comment on another user's vote, or perhaps elaborate on their own. Again, these comments should be signed.
The third conceptual subsection is reserved for when a decision has been made by an admin. They will append a non-bullet-pointed paragraph to indicate the resolution of the process. This is usually something like "Deleted", "Kept", "Moved", possibly emboldened for clarity, optionally followed by a reasoning for their subsequent actions, and signed.
The rest of the process is already documented in [[Wikibooks:Deletion policy]].
Comments? - [[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Contributions/Aya|C]]</sup> 22:48, 2 August 2005 (UTC)
*You're question is the wrong question. The ''right'' question is why ''you'' felt the need to alter the words of other people's comments, and felt that what you were doing (which involved making grammatical nonsense of a sentence) was in fact "tidying up" at all. It wasn't "tidying up". It was altering comments to support a bad idea.{{pbri}}The "way in which VFD sections are normally formatted" is simple mimicry of the way that Wikipedia does it, and on Wikipedia what you are proposing is widely seen to be ''exactly wrong'' and a terribly bad idea. (There are a couple of pages on Meta dealing with the wrongness of focussing simply on votes, too.) To repeat an oft-said mantra from Wikipedia VFD: '''It's not about the votes.''' Deletion discussions are ''discussions'', to determine a consensus. The discussions are not "mere", as you term them. They are the most important parts. Emphasizing the votes at the expense of the rationales is exactly wrong. My votes go after my rationales for that very reason, and I encourage other editors to put the rationales first, and administrators to ''read the rationales''. This is exactly the reverse of the direction that you are pushing for, which encourages administrators to not read the discussions at all and to simply count boldfaced words instead.{{pbri}}If you want to deal with sockpuppets, then don't try to make Wikibooks into a democracy. Mimic Wikipedia some more, instead. On Wikipedia, administrators have the leeway to ''optionally'' discount votes. The [[Wikipedia:WP:GVFD|Guide to VFD]] states outright that "administrators will discount any obviously bad faith contributions to the discussion when closing the discussion and making a decision. In contrast, a user who makes a well-argued case based upon the deletion policy and in a civil manner may well sway the discussion despite being anonymous." [[User:Uncle G|Uncle G]] 00:51:31, 2005-08-03 (UTC)
Okay. I just realised my post was somewhat self-contradictary...
# The first conceptual subsection...This section is arguably most important...
# The second conceptual subsection...separate actual votes from mere discussion...
...but this is a result of iterative editing while I actually re-think my position on the fly. Pretend I didn't use the word 'mere'. To clarify, I strongly believe the discussion part to be more important than the voting, so perhaps we're in agreement after all. Hopefully discussions will serve to create better policy which could ultimately deprecate the whole voting concept. I'd already alluded to this in [[Wikibooks:Staff lounge]], and I already made changes to [[Wikibooks:Deletion policy]] to make it clearer when things can be deleted without a vote. I'm thinking of starting a new VfD for the page [[Wikibooks:Votes for deletion]] itself. Perhaps it should be renamed [[Wikibooks:Requests for policy clarification]]. Do we really need voting at all? - [[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Contributions/Aya|C]]</sup> 01:20, 3 August 2005 (UTC)
: In fact I just looked up [[w:Wikipedia:Sock puppet]], a concept which had occurred to me already. I just didn't realise there was a common word-phrase for it. This would tend to imply that voting is fundamentally flawed with the current MediaWiki software, so perhaps it should be deprecated completely. - [[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Contributions/Aya|C]]</sup> 01:40, 3 August 2005 (UTC)
*'''Keep''' - ''Short version:'' VfD useful even if votes not considered in a 50% + 1 context (which they should not be). ''Long version:'' In the collectives that I have worked in, there is often a call for a straw poll, which is done before extensive discussion on a particular matter. This is the quick way to determine consensus, and the VfD could be seen in this light. On the other hand, a collective meeting is synchronous and wikibooks is (very) asynchronous and discussion occurs anyway. I do believe that if there is a clear consensus via votes to delete/keep, that should be sufficient. If there is a split, examining the discussion is required. A major problem of consensus decision-making is that it tends to favor the status quo, and in a place like wiki(books|pedia|etc) where there is tons of unregulated input, this can get messy since the status quo is whatever random shit somebody made into a module. Given that, I believe that the admins should have some amount of discretion in deletions even when there is not a clear consensus (as in wikipedia, by examining the quality of viewpoints in the discussion). [[User:Kellen|Kellen]] 17:42, 3 August 2005 (UTC)
*'''Keep'''- I think this provides a very useful purpose, and is a "gut check" to see if a book really should be removed or kept. Notable successes include [[How To Build A Pykrete Bong]] and [[Making an Island]], where they were overwhelmingly confirmed as being a part of Wikibooks. [[21 Century Math]] was a good example of something that got deleted that really never should have been here either. The long and short of it is that perhaps a discussion about the distinction between the <nowiki>{{delete}} tag and the {{VfD}} tag</nowiki> could be discussed, and a stronger policy distinction should take place. Perhaps the delete tag should be used more often? Other tags could also be implemented that would take care of some issues, or perhaps into seperate discussion, such as a particular module with a copyright violation (no need for a VfD... just delete the page history of the violating content), NPOV criticism (put into a list of books that need to be revised... or simply deleted but after nobody is willing to do the revision), and Wikipedia fork violation (where the discussion should take place ''within'' the Wikibook discussion page itself before thrown onto the VfD page). A larger variety of content objection tags might help clean up some of the mess. --[[User:Robert Horning|Rob Horning]] 21:08, 3 August 2005 (UTC)
**Wikibooks actually ''has'' a <nowiki>{{</nowiki>[[Template:cleanup|cleanup]]<nowiki>}}</nowiki> tag already. It is possibly underused because ''it isn't documented anywhere'', and because it gives no opportunity for an editor to be specific. I'll be bold and document it for you. Imitating the Wikinews cleanup tag, instead of the Wikipedia one, is also a good idea. That way, you won't ''need'' a "larger variety of tags". I'll be bold and do that for you, too. [[User:Uncle G|Uncle G]] 22:07:06, 2005-08-03 (UTC)
*Several points:
**Less should be read into the discussions that have very recently sprung up on Wikipedia than you are reading. The discussions are in fact ''old'' ones, that have been discussed and re-discussed many times. They are simply being recycled on fresh discussion pages by Wikipedia editors who have patently not read [[w:Wikipedia talk:Votes for deletion]] and its (copious) archives. They have resulted from a Wikipedia editor actually deleting Wikipedia's deletion discussion area (a disruptive act for which xe has subsequently been roundly condemned), taking another Wikipedia editor's hyperbolic talk page comments involving disrupting Wikipedia to make a point at face value and actually enacting them (which I don't believe was that latter editor's intention).
**To state something that is stated in Wikipedia VFD discussions (mainly when people come to it nominating things to be merged): ''Don't nominate something for deletion that you don't in fact want deleted.'' You don't actually ''want'' [[Wikibooks:Votes for deletion]] deleted, so you shouldn't really have nominated it. The correct place for a discussion of altering the way that this page works ''is'' its talk page, ''not'' here, and gradual discussion has indeed been happening there since July. Don't follow the bad example of the aforementioned disruptive Wikipedia editor.
**This shouldn't be about being different to Wikipedia. ''All'' of the WikiMedia projects have deletion discussion areas. They have various names, but they are all similar in concept. This is because the concept is the same across all of the projects. Deletion is performed by administrators following, as best they can, official policy and consensus. That doesn't change.
*I strongly suggest ''not'' having this discussion here, speedily closing this nomination where no deletion is actually desired, and instead simply continuing the discussions that have been ongoing on [[Wikibooks talk:Votes for deletion]]. [[User:Uncle G|Uncle G]] 22:07:06, 2005-08-03 (UTC)
**Personally, I'd be happy if the page did get deleted, since it is not lending itself to creating policy to prevent the same few arguments cropping up again and again. The reason I said it would more likely be moved is that it was my suspicion that other users would not want it deleted, so I have moved this section here. Problem is now, this page will most likely be ignored for the next 50 years. - [[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Contributions/Aya|C]]</sup> 23:32, 3 August 2005 (UTC)
'''Keep''': The proposal for an alternative is a non-proposal. It is nonsense to talk about changing the existing system when: (1) no real alternative has been discussed yet, or even presented; and (2) the faults with the existing system aren't clear or spelled out. Comments like "Do not add anything more to that section" are not helpful: a discussion of a specific replacement needs to be carried out. I propose a new page gets created to talk about the alternative. After that discussion is had, then we should vote to do the replace or not. [[User:Mshonle|MShonle]] 23:34, 3 August 2005 (UTC)
: Not quite. The obvious point is that since only admins can perform deletions, then admins merely need to execute deletion policy as decided by the community. Thus to get something deleted, the community should modify [[Wikibooks:Deletion policy]] to cover some sort of generalized case which includes the thing they want deleted. Why is the community so petrified to change policy?
: e.g. Instead of nominating, [[Neo]], just add a new bullet-pointed criterion to [[Wikibooks:Deletion policy#Speedy deletions]] such as:
:* Books about constructed languages
: After all, you're not actually objecting specifically to just [[Neo]], but '''any''' book with a similar scope. The current VfD page itself can just live in [[Wikibooks talk:Deletion policy]], which is conceptually what [[WB:VFD]] is discussing after all.
: [[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Contributions/Aya|C]]</sup> 23:44, 3 August 2005 (UTC)
::I think the existing policy and system we have works well. I'll agree that it has its flaws, but I'm not going to pretend that there is a flawless system that we can use instead. With your suggestion this is what would likely happen: (1) someone wants a specific book deleted; (2) they infer a general rule that would include that book, but none of the books they want to keep; (3) the discussion on that new, general rule would turn into a debate effectively about keeping that one specific book or not. In order words, I don't think we'd ever think exactly about general rules; and it wouldn't be that different than what we're doing already. It's nice to have congress, but what they do needs to be checked by the supreme court. We can't just legislate deletion policies and leave it up to only admins to execute it.
::Perhaps what you'd like to see instead is more activity on the speedy deletion side? I.e., deletion of material that an admin can objectively determine does not fit the speedy criteria? Whatever the case, there is high value in having discussions about specific books: generally the truth comes out and minds change. [[User:Mshonle|MShonle]]
:::Okay. Perhaps it's apathy, not fear. So perhaps I should take on the task of widening the criteria for speedies. I'll have a look through all past VfDs, summarize the reasoning behind each decision, and add it into policy. I just find VfDs extremely predictable, and thus a waste of time. I just wish someone else would help out to write these policies. Really, we want less of them, not more, and they need to be clear and simple, else they'll be ignored. I thought my recent changes to [[Wikibooks:Deletion policy]] were much clearer. Thinking about it, isn't [[WB:WIN]] conceptually similar to [[Wikibooks:Deletion policy]]. Maybe I should merge them? - [[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Contributions/Aya|C]]</sup> 00:02, 4 August 2005 (UTC)
::::Done. See [[Wikibooks talk:Deletion policy#Policy merge]]. It also occurs to me that the most important policy docs should be those which cover the functions which only admins can perform (i.e. deletion, blocking, user renaming and page protecting). - [[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Contributions/Aya|C]]</sup> 01:03, 4 August 2005 (UTC)
== Policy merge ==
I've merged [[WB:WIN]] into the speedy criteria of this document. I left out the 'original research' part, since it seems too vague, so these will go to VfD. Can the community please review this document before it becomes enforced policy. - [[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Contributions/Aya|C]]</sup> 01:01, 4 August 2005 (UTC)
:'''Update''': I'm not entirely happy (nor was [[User:Angela|Angela]]) with my extremely terse summaries of [[WB:WIN]] that I placed into [[WB:DP]], so [[WB:WIN]] has been temporarily reverted. Instead I shall merge [[WB:WIN]] in a more verbose fashion into a new '''exclusions''' section of [[Wikibooks:About]], and re-word [[WB:DP]] to indicate that the '''exclusions''' listed in [[Wikibooks:About]] will become speedy deletion candidates instead. I worry that a terse definition will be too easily open to interpretation, and thus will cause arguments.
: I shall also add in an '''exclusion''' for the case of fictional Wikibooks including educational fiction for children. These are not compatible with the goals of this project, nor the separately funded [[Wikijunior]] project, which was originally intented to be a children's edition of Wikipedia, although I am happy for Wikibooks to host the [[Wikijunior]] project. See [[m:Wikijunior]] and the minutes of the board meeting linked therein for further details. The net result will be that the current vote in [[WB:VFD]] for [[Ardvark the Aardvark]] will be discontinued, and will be speedily deleted as per policy (although I will allow time for material of this nature to be transwikied to another server). This is a shame, but as a host for '''textbooks''', I don't think anyone can argue that this was ever intended to include fiction of any kind.
: In addition, [[Wikibooks:About]] will have a new '''inclusions''' section, and as discussed in [[Wikibooks talk:Votes for undeletion]], I shall explicitly '''include''' biographies, regardless of whether they are considered Wikipedia forks or not. Over time, they will no doubt diverge from the content in Wikipedia, and this will hopefully prevent further arguments on overly long biographies on Wikipedia. The net result will be that the current vote in [[Wikibooks:Votes for undeletion]] for [[Biography of Nikola Tesla]] will be discontinued, and will be allowed to be (speedily) undeleted as per policy.
: My goal is that [[Wikibooks:About]] should not be considered a mutable policy document, but rather a document listing the fundamental goals of the project, which should never really be changed, but rather clarified over time. The '''inclusions''' section will be interpreted as an implicit '''speedy keep''', and the '''exclusions''' will be interpreted as a '''speedy delete'''. Hopefully this should mean far fewer cases will need to crop up in [[WB:VFD]], and we can spend less time discussing politics, and more time writing good content for the Wikibooks project. I hope this solution will be more favorable for all concerned, although you should feel free to comment on these proposed changes, and reconsider your voting positions.
: Thankyou. - [[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Contributions/Aya|C]]</sup> 14:04, 5 August 2005 (UTC)
'''Support'''
# Looks fine. Some of WIN needs to be on the "start a new book" page just so people don't start those, whereas the deletion policy version of it they'll only read ''after'' being marked for Vfd/speedy. [[User:Garrett|Garrett]]<sup>[[User talk:Garrett|Talk]]</sup> 01:44, 4 August 2005 (UTC)
# I guess I ought to vote too, as long as voting is considered the 'right thing' to do. - [[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Contributions/Aya|C]]</sup> 03:01, 4 August 2005 (UTC)
# Ditto [[User:Garrett]]. There appears to be some opposition to out right deleting the [[WB:WIN]] page, but including the content here as well is a good idea. This should be the "official policy" and [[WB:WIN]] merely explanitory material (with the policy statement at the top reflecting that concept). --[[User:Robert Horning|Rob Horning]] 11:32, 5 August 2005 (UTC)
'''Oppose'''
# [[User:Angela|Angela]] was quite right. This is ''exactly the wrong thing'' to do. Consistency with all other WikiMedia projects wins. [[Wikibooks:What Wikibooks is not]] is, and has been since 2003, the policy page that states what does not belong on the project and that is a policy that, [http://en.wikibooks.org/w/index.php?title=Wikibooks:What_Wikibooks_is_not&diff=204309&oldid=204064 in Angela's words], "was developed by a lot of people". (The fact that it wasn't marked as an official policy only reflects the fact that explicitly marking all such things as official policies is a relatively recent development.) All of the other project pages have a <nowiki>"{{PROJECTNAME}}:What {{PROJECTNAME}} is not"</nowiki> official policy page. ([[Wikinews:Wikinews:What Wikinews is not|What Wikinews is not]], [[Wiktionary:Wiktionary:What Wiktionary is not|What Wiktionary is not]], and so forth.) [[Wikibooks:About]], just like the <nowiki>"{{PROJECTNAME}}:About"</nowiki> pages on all other projects, is an ''introductory'' page (notice that it is linked to from the foot of every page) introducing newcomers to the project. It is [[Wikibooks:What Wikibooks is not]] that is and should continue to be the official policy, ''not'' [[Wikibooks:About]], which should be reverted to [http://en.wikibooks.org/w/index.php?title=Wikibooks:About&oldid=195869 the simple friendly introduction and pointers to the rest of Wikibooks that it once was]. [[User:Uncle G|Uncle G]] 16:57:05, 2005-08-10 (UTC)
'''Neutral'''
'''Comment'''
First of all, I should point out that the beginnings of this merge were at [[Wikibooks talk:Policies and guidelines#Proposal for major policy overhaul]]. It might be worth reading that to get an idea of the background. [[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Contributions/Aya|C]]</sup> 20:56, 10 August 2005 (UTC)
Replies to [[User:Uncle G|Uncle G]]'s concerns. I've broken this up, since you cover a lot of different points:-
* [[User:Angela|Angela]] was quite right. This is ''exactly the wrong thing'' to do. Consistency with all other WikiMedia projects wins. [[User:Uncle G|Uncle G]] 16:57:05, 2005-08-10 (UTC)
** I think perhaps you should stick with saying what ''you'' think, and not trying to attribute your opinions to another user. The only thing [[User:Angela|Angela]] ever said, you have already referred to in your next sentence. [[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Contributions/Aya|C]]</sup> 20:56, 10 August 2005 (UTC)
*** I didn't attribute anything to [[User:Angela|Angela]]. I said, in so many words, that she was quite right. [[User:Uncle G|Uncle G]] 13:55:13, 2005-08-20 (UTC)
* [[Wikibooks:What Wikibooks is not]] is, and has been since 2003, the policy page that states what does not belong on the project and that is a policy that, [http://en.wikibooks.org/w/index.php?title=Wikibooks:What_Wikibooks_is_not&diff=204309&oldid=204064 in Angela's words], "was developed by a lot of people". (The fact that it wasn't marked as an official policy only reflects the fact that explicitly marking all such things as official policies is a relatively recent development.) [[User:Uncle G|Uncle G]] 16:57:05, 2005-08-10 (UTC)
** This is all true, but not really relevant. Looking at the history of the page, it started off as a very simple document containing the heading "Wikibooks is not", and the two lines "a place to copy text from the copyrighted sources" and "a place for fiction texts". Over time, it has mutated into containing such subjective nonsense as "educational or instructional", which has caused far too many meaningless debates on [[WB:VFD]], particulary [[Wikibooks:Votes for deletion#Ardvark the Aardvark]]. Had it never been changed since this first revision, this argument would never have happened, and thus users would not have had to waste their time on it. I just didn't feel comfortable with reverting the page, especially after [[User:Angela|Angela]]'s revert. I don't want to get involved in edit wars, so if someone reverts my changes, I generally rethink my actions. [[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Contributions/Aya|C]]</sup> 20:56, 10 August 2005 (UTC)
*** The document evolved. All policies did, on all projects.{{pbri}}What I described is very relevant. [[Wikibooks:What Wikibooks is not]] is the official policy. You removed the entire text of the official policy and you were reverted. You'll find that if you do that to any of the official policy pages on any of the other projects, the same thing will happen. ☺ The way to change official policy in the face of that is not to unilaterally declare that [[Wikibooks:What Wikibooks is not]] is no longer the official policy and then write a completely new policy elsewhere.{{pbri}}"educational and instructional" is not nonsense at all, by the way. [[User:Uncle G|Uncle G]] 13:55:13, 2005-08-20 (UTC)
* All of the other project pages have a <nowiki>"{{PROJECTNAME}}:What {{PROJECTNAME}} is not"</nowiki> official policy page. ([[Wikinews:Wikinews:What Wikinews is not|What Wikinews is not]], [[Wiktionary:Wiktionary:What Wiktionary is not|What Wiktionary is not]], and so forth.) [[User:Uncle G|Uncle G]] 16:57:05, 2005-08-10 (UTC)
** Not true. Not all other Wikimedia projects have a "what <project> is not" page, although the few you mention do, most likely because they were all originally forked from Wikipedia, with little modification. Interestingly Wikinews also has a "what <project> is" page. It just made sense to amalgamate the two concepts into a single page to make it easier to ensure that they do not contradict one another. The whole Wikibooks project was based on the rather flaky premise of "open-content textbooks". The [http://www.askoxford.com/concise_oed/textbook?view=uk Compact OED] defines a "textbook" as "a book used as a standard work for the study of a subject", but I wouldn't imagine that anybody would consider a Wikibook to be a standard work in any subject. I felt, therefore, that this needed some more clarification, otherwise any user could argue that none of the content constituted a "textbook", and would thus be grounds for deletion. I happened to choose [[Wikibooks:About]], since it's a highly 'visible' page. If you click the first link (Wikibooks) on the [[Main Page]], you're there, whereas the page [[WB:WIN]] is at least two or three clicks away. This system is optimized for new users, not long-standing veterans of the project such as yourself, since you already know this. [[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Contributions/Aya|C]]</sup> 20:56, 10 August 2005 (UTC)
*** The original friendly [[Wikibooks:About]] page was optimized for new users. It didn't throw them directly into the specific details of one single specific area of the project, the article exclusion policies. It instead presented a simple list of pointers to the various areas of interest. One of those pointers was to the list of official policies, where [[Wikibooks:What Wikibooks is not]] was listed. That's how it should be. It's an "about" page, as the name says. [[User:Uncle G|Uncle G]] 13:55:13, 2005-08-20 (UTC)
* [[Wikibooks:About]], just like the <nowiki>"{{PROJECTNAME}}:About"</nowiki> pages on all other projects, is an ''introductory'' page (notice that it is linked to from the foot of every page) introducing newcomers to the project. [[User:Uncle G|Uncle G]] 16:57:05, 2005-08-10 (UTC)
** Agreed, which is why it's so important that this page adequately defines the project for the benefit of new users. [[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Contributions/Aya|C]]</sup> 20:56, 10 August 2005 (UTC)
*** No. I'll say it again: [[Wikibooks:About]] is an ''introductory'' page. It's an introduction to the project and a pointer to more details. It should not be a policy page for one specific official policy (out of many). [[User:Uncle G|Uncle G]] 13:55:13, 2005-08-20 (UTC)
* It is [[Wikibooks:What Wikibooks is not]] that is and should continue to be the official policy, ''not'' [[Wikibooks:About]], which should be reverted to [http://en.wikibooks.org/w/index.php?title=Wikibooks:About&oldid=195869 the simple friendly introduction and pointers to the rest of Wikibooks that it once was]. [[User:Uncle G|Uncle G]] 16:57:05, 2005-08-10 (UTC) [[User:Uncle G|Uncle G]] 16:57:05, 2005-08-10 (UTC)
** I don't see what is unfriendly about the new version. I have removed many of the "will be grounds for speedy deletion" from [[WB:WIN]] after the merge. Perhaps you could better define the word 'friendly' in the context of that sentence, if you intend to use it as an argument for reverting these changes. [[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Contributions/Aya|C]]</sup> 20:56, 10 August 2005 (UTC)
== Length of time between last comment/vote to action on VfD ==
Again I'm getting into an ugly argument on the VfD page in regards to the Harry Potter stuff. This time it is in relationship to how long something must be on the VfD page before action is taken by an admin.
Admitedly we have been short-handed with admins in the past. This has caused some discussions to go on and on and on and on (and on) without apparent resolution. This has been of particular note on the request for adminship page, but this also shows up on the VfD page.
Typical Wikipedia resolution is about 1 week from the end of disucssion. This also seems to be the amount of time that Wikipedia allows for discussion in the Village Pump discussions, so I'm also using that as a guide here.
Wikibookians tend to take their time on things. The Staff Lounge has sections that typically last about a month or sometimes even more before being archived (it has been picking up lately). As I pointed out, the process of trying to write a book is such that a hurried process for voting just isn't compatable with the style of a typical editor here. I do think that a '''''minimum''''' of seven days should pass from the last vote or comment to when action should be done with a VfD (contrary to the actions of the Tesla book that I'm still sore about because of this point). Perhaps even more time should elapse.
I am also arguing that just because Wikipedia does it one way doesn't mean it has to be done here the same way, nor should it. --[[User:Robert Horning|Rob Horning]] 12:13, 5 August 2005 (UTC)
* The way I interpret VFD is that once an item is listed, the community has 7 days to discuss the implications of this action, expressing their opinions as either 'votes', or in some other fashion. An admin may not act upon the results until these 7 days have expired, since it may transpire that during this time, a single user may come up with a water-tight reasoning as to exactly what action should be taken. Futhermore, users should not be expected to check the VFD page more frequently than once a week. As soon as the week has expired, action may be taken '''immediately''' by an administrator. The 'votes' are not counted as a mere '''keep''' vs. '''delete''', but rather, the reasoning will be weighed up by admins, and used to adjust policy to '''include''' or '''exclude''' material of this nature in future cases. This will allow us to bypass the problems caused by sockpuppets and other non-contributors. I will try to clarify this in the future. {{pbri}} In the specific case of the Harry Potter vote, current policy is somewhat vague about material of this kind, else I would've thrown out the vote already. I shall tighten up this definition very shortly. Remember that the key word is '''textbook''', and I could see a book of this nature as a valid textbook for an English Literature course. It also seems to have devolved into a discussion about what to name the book, which is arguably outside the scope of VFD, and renaming the book during a VFD ought to be frowned upon. The name of the book is relatively unimportant. What '''is''' important is the scope that the book intends to cover, since this will determine its content in the future, and whether or not that content constitutes a '''textbook''' or not. Further clarifying a book's scope in the book's 'main page' during a VFD is perhaps a better way of dealing with this. I also get the impression that another matter of objection in this case is forking or relocating of Wikipedia content. This will also be more clearly defined in the future, but may take more time, since it may be very difficult to do in a clear-cut way. {{pbri}} The "Staff lounge" is a completely separate issue and discussion should be redirected to [[Wikibooks talk:Staff lounge]]. The general reason that stuff is not promptly archived is that no-one can be bothered to do it. In fact, this general apathy to sort stuff out is most likely the cause of 90% of the problems that occur on Wikibooks. I'm still chewing over ideas on ways to make this easier. See also the relevant section in my Critique of Wikibooks. - [[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Contributions/Aya|C]]</sup> 14:54, 5 August 2005 (UTC)
** Myself, I welcome the length of time HP was discussed. Having gained a bit of understanding of 'books policy now, it seems that under the stated policy this book was a distinct candidate for a speedy delete. It remains the case that it must continue to repeat the information contained on 'pedia, and 'pedia will not be deleting their version. The official criterion on content allowed on either wiki do not seem to be so different, just their interpretation. So it was an issue of whether 'books would forebear to axe something until it was knocked into an acceptable format. The issue of duplication/forking and macropediality remains to me unresolved. So a longer delay in the decision seems justified. I remain agrieved at the nuttiness of essentially splitting one project over two wiki sites, which is what is happening. [[User:Sandpiper|Sandpiper]] 08:33, 9 August 2005 (UTC)
*** This whole forking issue is still unresolved, although I'm trying to sort it out. See: [[User talk:Aya#Muggles guide to Harry Potter]] for a more complete reply. - [[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Contributions/Aya|C]]</sup> 17:01, 9 August 2005 (UTC)
*** False on several counts: It was not a candidate for speedy deletion. No speedy deletion criterion covered it then, nor ''should'' speedy deletion criteria cover such things. Wikipedia ''has'' removed its full plot summaries that were transwikied here, replacing them with soft redirects. (You know this. You've commented upon it over on Wikipedia.) In fact, they were transwikied ''after'' they were deleted from Wikipedia. (The sequence of events at Wikipedia was somewhat ... unusual.){{pbri}}Objecting to splitting one project over two WikiMedia projects is what is ''actually'' "nutty" here. Not to mention that such a split is little different to splitting one project over multiple articles, we have these multiple projects and the interwiki linking mechanism ''exactly so'' that we can make use of the strengths of each project to support the others and build an interwiki web that forms a whole. The source archive provides the raw source texts of books/poems/songs for the annotated texts and for the encyclopaedia articles. The dictionary provides lexical support for the encylopaedia, the newspaper, and the textbooks. The encyclopaedia provides background articles for the newspaper. The newspaper provides a primary source historical record, and comprehensive indirect sourcing, for the encyclopaedia. And so forth. [[User:Eloquence|Eloquence]] made a good point in the [http://en.wikipedia.org/w/index.php?title=Wikipedia:Votes_for_undeletion&oldid=20208769#Harry_Potter_and_the_Half-Blood_Prince_-_Full_Plot_Summary Wikipedia VFU discussion] about "multiple levels" and "zooming in on any level of detail" that the reader desires. I recommend reading it. [[User:Uncle G|Uncle G]] 16:38:41, 2005-08-10 (UTC)
=== Delay policy from when a Wikibook is created to VfD ===
'''Note''': This section moved from [[Wikibooks talk:Votes for deletion]]. - [[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Contributions/Aya|C]]</sup> 22:00, 8 August 2005 (UTC)
[[User:Withinfocus]] brought up a very valid point that I think has been completely overlooked so far in the past. In particular, with the Harry Potter discussion, the discussion over the VfD status for the [[Muggles' Guide to Harry Potter]] was started by a malcontent trying to stir up trouble in the first place. In this case [[User:Kappa]] has only two edits: Placing the <nowiki>'''{{VfD}}'''</nowiki> tag on the [[Harry Potter plots]] page and then the subsequent creation of the section for this Wikibook's VfD discussion.
In short, I consider the actions of this person to be tantamount to social vandalism and something that should be discouraged in the future. If somebody does this in the future, the VfD discussion should simply be removed altogether (perhaped archived, but I think that is too kind) and the VfD tag removed from the Wikibook as well. I'm not trying to set a specific number of edits that are necessary, but I do believe that a nomination for VfD status should come from a registered user who has at least some experience and time here on Wikibooks, specifically to avoid this situation in the future.
I also suggest that perhaps in the future we give a certain amount of time to a Wikibook from immunity from a VfD simply to give the authors a chance to try and put some content in or even reorganize the Wikibook. Give these authors a good faith 1 month to get up to basic standards (including blatant violations like a copyright violation or forking from another project or even within Wikibooks). Content in more established Wikibooks is free to be removed, but if you have a problem with the organization of the new Wikibook it should be done within that Wikibook, preferably on the talk pages of that Wikibook first. If you are going nowhere with the organization, then it should be moved to a VfD discussion.
Blatant vandalism of course will never be tolerated and should be punished as usual. A good faith effort to produce a new Wikibook, particularly by new users, should be given extra lattitude.
The Vote for Discussion page is a very powerful tool, and can be abused if not done properly. In retrospect, this whole discussion about the [[Muggles' Guide to Harry Potter]] should never have happened in the first place, at least on the VfD pages. It is also a lousy way to encourage new users to try and contribute to Wikibooks. --[[User:Robert Horning|Rob Horning]] 13:31, 5 August 2005 (UTC)
:I agree that there should be one month of immunity towards a VFD. The Muggles' Guide has been around less than a week and has already received heated debate over its structuring. There hasn't been enough time to even receive commentary on its specific structural attributes. A user came here to VFD it and left. That is unfair to persons like me who had actual intentions to do work before VFD was blasted on it. I have significant reluctance to work on the book since I now see it as having a chance at deletion. Book-writing motivation could be greatly increased if books could have a time of "stewing" where comments can be received before a VFD (i.e. please share your thoughts on structure at the Guide's main [[Talk:Muggles' Guide to Harry Potter|talk page]]). -[[User:Withinfocus|Matt]] 14:05, 5 August 2005 (UTC)
:This sounds like a good plan. I should note that a new user (one with even zero edits on a registered account) can always post a request for a more experienced user to put it up to VfD. Or, to encode it another way, requests for VfD from zero-edit users need to be seconded by a user with more useful edits first. There have been times that I simply removed a VfD tag because it was done by a vandal. I mean, think about that as a form of vandalism: you just put a VfD tag on there, and suddenly everyone is wasting time trying to defend it.
:We should also have standards for what counts as a VfD. If someone "doesn't like" the book then that would not be good enough. If someone can't even provide a cogent reason for why the book should be up for deletion that that would not be good enough either. We should keep in mind precedent, too: For example, there were good reasons to delete Getting a Girl, and I think any policy should secure the Cookbook as a valid wikibook. [[User:Mshonle|MShonle]] 16:47, 5 August 2005 (UTC)
::This is mainly to "codify" for admins what should happen, and to give a '''heads-up''' about a possible vandal attack avenue that I wouldn't have anticipated. If an admin wants to, they could take a discussion section and "freeze it" by throwing it into a template and then placing protection on the template, with a note that this discussion is "frozen" until the required time has elapsed. Or even outright removal if necessary. The idea that a VfD should be seconded is an outstanding idea. I think any user names that have "red letters" (no user page) should also be suspect, but that can't always be depended on either. I have seen some Ass Pus attackers put in a user page (although for what reason, I don't know other than to piss off somebody trying to clean up their c****). Excuse me, I just dealt with one last night, and it seems to be more regular all of the time. --[[User:Robert Horning|Rob Horning]] 17:16, 5 August 2005 (UTC)
:::Have we move-protected all the important pages now? I remember the page move attacks (e.g. renaming Staff lounge to Staff Toilet or something) were the most tedious to repair. On the VfD vandalism: someone put up the Vegan Cookbook for deletion, which I quickly removed... they kept trying to put it back up saying "it really *is* up for deletion!" but did not provide any valid reason for even deleting it. [[User:Mshonle|MShonle]] 17:52, 5 August 2005 (UTC)
speaking as someone with about 4 edits to my credit here (though maybe 500 on 'pedia now),I shall put in my penneth. Pedia seem very eager to delete things at the drop of a hat. I expect they do have a valid problem with the numbers of articles to be processed, but I presume that is a lot less of a problem here. Presumably people must set up books just for the hell of it, and might realise that it is even more fun if they get a months grace. But even so, my instinct there and here is to give people a chance to do something before instantly zapping it. Requiring seconder(s) for a delete vote sounds good.[[User:Sandpiper|Sandpiper]] 20:05, 8 August 2005 (UTC)
:I've updated [[WB:DP]] to state that only pages which have existed on the DB for more than one week may be added to VFD. If this should not work out, then we can increase the time to one month. Note this does not affect speedy deletions. - [[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Contributions/Aya|C]]</sup> 21:46, 8 August 2005 (UTC)
::I advocate a full month at least, if only because new users in particular are often just trying to get used to how Wikis even operate. I know that my first month here my head was spinning, and the page I was writing quickly got a <nowiki>{{stub}}</nowiki> tag thrown onto the top by a well-intentioned but misinformed individual. Had I thrown over some copyrighted material as part of the article by mistake, I would have been thouroughally confused and even offended. A user's talk page in that case would be useful and there are other approaches that can be used instead of forcing a VfD discussion. One week on a VfD discussion may be an appropriate limit to keep discussion moving along to the next topic, but when you are talking about how long it is going to take a new user to try and become familiar with how a wiki even works in the first place might be too short of a period of time. One week certainly is much too soon. --[[User:Robert Horning|Rob Horning]] 00:49, 9 August 2005 (UTC)
In the spirit of being friendly to newbies, perhaps this policy could suggest that the person who initially lists the VFD shouldn't put the "will be deleted" template on the page -- it must be seconded by another.
I agree that it should be ''at least'' a week after a book is listed for deletion (perhaps a week after the motion was seconded) before it gets deleted. (If it needs to be deleted sooner than that, use speedydelete, not VFD). --[[User:DavidCary|DavidCary]] 08:28, 8 January 2006 (UTC)
== Role of VfD and new Wikibooks ==
Since I'm stirring up the pot a little bit, I might as well link in a dicussion I've started. See:
[[Wikibooks talk:Votes for deletion#Delay policy from when a Wikibook is created to VfD]]
Keep the discussion on the VfD:Talk page for now. If it gets resolved, some changes to this page may have to be done as well. --[[User:Robert Horning|Rob Horning]] 13:48, 5 August 2005 (UTC)
== German Wikibooks pages ==
I've come across a few Wikibooks modules that date back to when Wikibooks was an all-language wiki. Many of these pages have the following template: [[:Template:De]] or something similar. (see also [[Special:Whatlinkshere/Template:De]]) This proposal is going to affect almost 400 Wikibook modules, so this is not something to be taken lightly to quickly delete. They appear to be here from before transwiki protocols were established as well, as this wouldn't be current policy on any other Wikimedia server that I know of right now. I'm asking what the fate of these should be. I would suggest that we delete these wikibook modules, but we could perhaps move the history page over to German Wikibooks (simply copy & paste to there... or even follow standard transwiki policy that is in place '''now'''.)
An interesting page to look at is [[Wikibooks:Portal]], which is a source of some vandalism attacks. If somebody here speaks fluent German (mine is rather poor, but I could try if I had to) perhaps we could ask the German Wikibooks community what they think of these pages as well and where they should go. --[[User:Robert Horning|Rob Horning]] 00:03, 8 August 2005 (UTC)
I can understand perhaps why Aya decided to move this discussion to here instead of the VfD pages, although it is not going to get the "headliner notice" that perhaps this issue does deserve. Regardless....
I don't understand why German gets the big distinction as none of the other "language" pages get this kind of treatment. Virtually nobody here on Wikibooks even looks at these pages except for vandals and new users who get lost, and they are not on any bookshelf so you can't find them even if you wanted to. The move from this wiki to a totally seperate German-language wikibooks domain happened long enough ago that the arguments for keeping this content here are quite weak.
The main argument in support for keeping this content is to keep track of the user edit history, which unfortunately MediaWiki software doesn't do a good job of transfering when doing a transwiki at the moment (perhaps a future bug fix???) [[m:Transwiki#Page history]] does cover this so far as a "policy" is concerned, however. I wish I had the notes from when the "breakup" of Wikibooks occured from all languages being here to when they went off to seperate domains and editor groups. I'm having a very hard time trying to find the notes of that occurance at all.
I did find in the "wayback machine" a [[Wikibooks:Reading_room/Archives/2003/September#Multilingual Wikibooks|discussion on the Staff Lounge about this topic]]. (There is nothing like trying to go through all 1500 versions of the Staff Lounge) From the tone of this posting, it appears as though these Wikibook modules should never have been here in the first place. I can't find anything at all in the Staff Lounge about moving other language content into other domains. Or anywhere else on Wikibooks for that matter other than on the above template. --[[User:Robert Horning|Rob Horning]] 14:05, 10 August 2005 (UTC)
: ''I don't understand why German gets the big distinction as none of the other "language" pages get this kind of treatment.''
:: Isn't it obvious? Someone wrote some words suggesting that 'German gets a big distinction', and you believed it. Don't believe anything you read.... ever... including anything I write. :) - [[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Contributions/Aya|C]]</sup> 16:29, 10 August 2005 (UTC)
:::So, do we delete the whole lot or get German Wikibooks involved? --[[User:Robert Horning|Rob Horning]] 19:11, 10 August 2005 (UTC)
::::Well really we should make sure they've all been transwikied first. Someone could have applied that template without checking if it really existed on the other end first. [[User:Garrett|Garrett]]<sup>[[User talk:Garrett|Talk]]</sup> 02:10, 11 August 2005 (UTC)
:::::My German is sufficient that I think I can find the content over there and navigate the links to verify that it has been copied over. Should I replace the tags with <nowiki>{{delete|has been transwikied to de.wikibooks}}</nowiki> when I complete the verification? Copy the relevant history page as well? --[[User:Robert Horning|Rob Horning]] 10:30, 11 August 2005 (UTC)
::::::Copy the history to the talk page, and mark the page on this site as a speedy. That should suffice. - [[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Contributions/Aya|C]]</sup> 15:54, 11 August 2005 (UTC)
== horribly misspelled pages ==
I think it should be OK to instantly delete some redirects as they are spotted, but the currently proposed deletion policy sort of discourages that at the very least. I'm thinking of these:
*CookbookLCaesar Salad ''(typo;, "L" and ":" are next to each other on a QWERTY keyboard)''
*Coookbook:Rosemary ''(Cooooooking for Goooooogle?)''
*Cookbook: ''(note the ":" with nothing after it)''
[[User:AlbertCahalan|AlbertCahalan]] 06:41, 13 August 2005 (UTC)
: Agreed. The part which I've mostly written up to and including the section entitled "Meaningful content" seems okay. The rest probably needs some editing, since it's been copied directly from Wikipedia, where the rules are slightly different. My own views on the other things are:
:* Redirects are generally a 'bad thing (tm)' on Wikibooks.
:* Red links into main namespace pages are a 'bad thing' (e.g. <code><nowiki>Add some [[spinach]]...</nowiki></code>)
:* Red links into correctly named subpages are a 'good thing' (e.g. <code><nowiki>Add some [[Cookbook:Spinach|spinach]]...</nowiki></code>)
: I'd say don't worry too much about deleting pages, but in general, keep images unless they're offensive, since you can't undelete them at a later date.
: [[User:Aya|Aya]] <sup>[[User talk:Aya|T]] [[Special:Contributions/Aya|C]]</sup> 13:11, 13 August 2005 (UTC)
==Archiving the [[WB:VFD|votes for deletion]]==
The wiki software tells me that [[Wikibooks:Votes for deletion/Archive]] is far too large. I decided to archive stuff at [[Wikibooks:Votes for deletion/Archive 2]] instead. --[[User:Kernigh|Kernigh]] 18:14, 22 October 2005 (UTC)
== New Speedy Criteria Proposal ==
I would like to propose that any double redirect that does not have anything link to it be a candidate for speedy deletion. There is really no point on having them around, and fixing them doesn't do much good either. And they just seem kind of pointless to list on regular VfD. Thoughts? --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 17:47, 14 November 2005 (UTC)
:There is a bunch of stuff in the orphaned pages as well that needs to be speedy delete candidates. Deleting double redirects, especially if they have nothing linking to them, I think is generally appropriate, or changing the redirect so it is no longer a double redirect, which requires a manual update (that stinks, but it has to happen sometimes). Please in general follow the policies on [[Help:Editing#Redirecting|Wikibooks:Redirect]], which I'm adding to the policy pages. --[[User:Robert Horning|Rob Horning]] 18:35, 14 November 2005 (UTC)
::Well of course manually fixing the double redirects might be the best option, but as nothing links to it, and would be unlikely to be searched for, I still think they should be speedied. You can already list them at VfD, this would just expedite the process, and clear up a bunch of junk in the process. --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 18:42, 14 November 2005 (UTC)
:::The problem with assuming that nothing links to a redirect is that you don't know what links to it. The redirect may be linked by a hard http link on some other web page, or it may be a link on another Wikimedia project. The search option of "What links here" won't show that. On the other hand, cluttering up Wikibooks with a bunch of meaningless redirects is also not important. If there is an edit conflict where you try to create a page and you find a redirect instead, there should be a formal policy to ignore the redirect and simply add the content you want to put in there instead. I don't know how often this is an issue, but I think it would be more common on Wikibooks. Basically, use your best judgement. Redirects are not content anyway, and don't deserve a VfD. If you don't think it belongs, delete it. If you don't have admin authority, go ahead and simply add the '''<nowiki>{{delete|<reason>}}</nowiki>''' tag and it will likely be deleted as well. --[[User:Robert Horning|Rob Horning]] 06:42, 15 November 2005 (UTC)
== Shouldn't this be policy? ==
Umm... why is this a proposed policy and not an enforced policy? Can we take some sort of poll on seeing if this can be enforced? --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 17:12, 15 November 2005 (UTC)
:OK, I will try to make this into a vote... If you do not like this vote, then vote No. --[[User:Kernigh|Kernigh]] 03:29, 16 November 2005 (UTC)
:To be more specific, by "be an enforced policy", I meant replacing {{tl|proposed}} with {{tl|enforced}}. --[[User:Kernigh|Kernigh]] 16:31, 18 November 2005 (UTC)
=== Poll ===
Should [[Wikibooks:Deletion policy]] ([http://en.wikibooks.org/w/index.php?title=Wikibooks:Deletion_policy&oldid=250329 this version]) be an enforced policy?
'''Yes'''
# [[User:Kernigh|Kernigh]] 03:29, 16 November 2005 (UTC)
#* <s>With some wiggle room for change... --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 15:16, 16 November 2005 (UTC)</s> <small>I don't really know if the page explains enough. I'll think about it and re-vote later. --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 20:56, 18 November 2005 (UTC)</small>
#We need to have something on the books, so when we need to make a tricky decision, we can point back to it. We can change little errors later. --{{User Whiteknight Sig|Whiteknight}} 21:46, 28 November 2005 (UTC)
#[[User:Gentgeen|Gentgeen]] 08:44, 3 May 2006 (UTC) - If it needs to be changed later, we can ammend it. A body of enforcable policies is long overdue.
'''No'''
#
== Impending Doom Template ==
On a whim, I made a single template to announce that a textbook is undoubtably going to be deleted.
{| cellspacing="2" cellpadding="3" style="width:80%;border:solid #999 1px;background:#F8F8F8;margin:0.5em auto;clear:all"
|style="width:10%;text-align:right"|[[Image:Warning_icon.png|Warning]]
|style="vertical-align:top"|This book '''will''' be deleted very soon. Please begin a discussion of whether and where to move it. See [[Wikibooks:What is Wikibooks]] for enforced policy.
|}
{{tl|Impending Doom}}
This way we don't need to write out the whole <nowiki>{{Message|This wikibooks will...</nowiki> each time we want to can a policy violation. --[[User:Whiteknight|Whiteknight]] <sub>[[User talk:Whiteknight|T]]</sub><small>[[Special:Contributions/Whiteknight|C]]</small><sup>[[Special:Emailuser/Whiteknight|E]]</sup> 17:51, 17 November 2005 (UTC)
:The thing I like the most about this template is that I can use the "What links here" to find all of the modules that have this template. Good tounge-in-cheek humor as well. Thanks. --[[User:Robert Horning|Rob Horning]] 18:16, 17 November 2005 (UTC)
::Why not just add a category to the template that automagically puts tagged articles into one place? -[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 18:27, 17 November 2005 (UTC)
I thought about adding a category for it, but i figure articals with this will also be tagged with a speedy delete, or VfD notice already. Of course, people don't exactly need my permission to add a category to this (i may even want to change the wording to make it more ambiguous). --[[User:Whiteknight|Whiteknight]] <sub>[[User talk:Whiteknight|T]]</sub><small>[[Special:Contributions/Whiteknight|C]]</small><sup>[[Special:Emailuser/Whiteknight|E]]</sup> 23:33, 17 November 2005 (UTC)
:::I added a link to [[WB:WIW]] to the template. See [[Template talk:Impending Doom]]. --[[User:Kernigh|Kernigh]] 06:44, 18 November 2005 (UTC)
I added some descriptive text to the template module page, and I included a [[:Category:Candidates for speedy deletion]]. --[[User:Whiteknight|Whiteknight]]<small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 22:37, 7 July 2006 (UTC)
== Copyvios ==
Keeping in line with other Wikimedia projects, I have added a section in the Speedy Deletion Candidates about copyright violations. I know this is a big step, and perhaps I was ''too'' bold, but I feel this is needed. Any objections? --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 19:02, 18 November 2005 (UTC)
:The existing policy on Wikibooks is to keep the content, even if it has been identified as a copyright violation, for one week from when the notice was added. I don't see any reason to change that policy, even if it may not be exactly what is found on other Wikimedia projects. The point here is that we want to mentor people to become Wikibooks contributors, so I would argue that we need to keep the grace period especially for new contributors. After the week passed, it could be deleted without comment or VfD vote, essentially a speedy delete anyway. 48 hours is generally too soon for many Wikibooks contributors to respond, at least from my experience. Unless a compelling legal reason to delete within 48 hours, especially from English-speaking countries like the UK, USA, Australia, etc. can be offered, I don't see a compelling reason to make this drastic of a change. --[[User:Robert Horning|Rob Horning]] 20:38, 18 November 2005 (UTC)
::Okay, that's fine. I suppose there is no genuine compelling legal reason to speedy them, since most jurisdictions allow for some reasonable amount of time to allow the potential infringer (Wikibooks in this instance) the right to investigate the copyvio claim. I will go ahead and change it back (if you aren't doing that as I type this). Sorry about that. This page could use some refactoring by the way. I'll look into it. --[[User:Lord Voldemort|<span style="color:purple">LV</span>]] <sup>[[User talk:Lord Voldemort|<span style="color:#3D9140">(Dark Mark)</span>]]</sup> 20:52, 18 November 2005 (UTC)
== Speedy Delete vs. Delete ==
I would like to see some section in here about the precise difference between a speedy delete and a VfD. Aside from the fact that a speedy isnt voted on, we don't have much in the way guiding how speedys are handled. For instance, how long must an adminstrator wait between lableing a page as a speedy delete, and actually deleting it? --{{User Whiteknight Sig|Whiteknight}} 21:44, 28 November 2005 (UTC)
4xo3se9p6qtnbf2da3nyew1wxjxqbh1
Talk:Windows Registry Hacks
1
100483
4640187
1566122
2026-06-13T16:14:24Z
ShakespeareFan00
46022
4640187
wikitext
text/x-wiki
== Start off getting late ==
I'm busy till Jan 2007 due to semester exams. Will start writing the book in Jan. --[[User:Varun kumar|<span style="color:red">'''seXie'''</span>]][[en:User talk:Varun Kumar|<sup><span style="color:green">♭♭</span></sup>]][[Special:Contributions/Varun kumar|<sub><span style="color:blue">'''c'''</span></sub>]] 08:23, 19 November 2006 (UTC)
== Template ==
Please use the template <nowiki>{{Registry}}</nowiki> to specify the values and data. {{Registry}}
{| border="0"
!'''System Key'''
|This causes system wide changes. Start with HKEY_LOCAL_MACHINE
|-
!'''User Key'''
|This causes changes only for the particular user. Starts with HKEY_CURRENT_USER<br>
|-
!'''Value Name'''
|The name of value e.g. NoCloseKey<br>
|-
!'''Data Type'''
|The type of Data e.g. STRING (REG_SZ), DWORD etc<br>
|-
!'''Data'''
|The actual Data e.g., 0, 1 etc
|}
An example can help with the same
{{Registry
|HKLM\Software\Microsoft\Windows\Current Version
|
|ProductID
|STRING
|<your prouct ID>}}
nyenvludqfpvbrlzz767rzarp5zkn6z
The Linux Kernel/Modules
0
108805
4640210
4632253
2026-06-13T17:19:26Z
Conan
3188
add brief descriptions to source file references
4640210
wikitext
text/x-wiki
<noinclude>{{DISPLAYTITLE:Linux modules}}</noinclude><includeonly>== Modules ==</includeonly>
A kernel module is a code that can be loaded into the kernel image at will, without requiring users to rebuild the kernel or reboot their computer.
Modular design ensures that you do not have to make a monolithic kernel that contains all code necessary for hardware and situations.
Common kernel modules are device drivers, which directly access computer and peripheral hardware.
Kernel modules have a .ko extension.
⚲ API
: /proc/modules
: {{The Linux Kernel/man|8|insmod}} – simple program to insert a module
: {{The Linux Kernel/man|8|modprobe}} – searches and loads a module with dependencies
:: /etc/modprobe.d/
:: /lib/modules/$(uname -r)/modules.dep – module dependencies, is created by depmod -a
: {{The Linux Kernel/man|8|lsmod}} – list loaded modules
: {{The Linux Kernel/man|8|kmod}} – core program to manage Linux Kernel modules
: {{The Linux Kernel/man|8|modinfo}}
: {{The Linux Kernel/include|linux/init.h}} – initcalls
: {{The Linux Kernel/include|linux/module.h}} – macros and functions for kernel module support
:: {{The Linux Kernel/id|module_init}} – module initialization entry point
:: {{The Linux Kernel/id|module_exit}} – module initialization exit point
:: {{The Linux Kernel/id|MODULE_LICENSE}} – licence declaration
: {{The Linux Kernel/include|linux/mod_devicetable.h}} – device ID tables for module device matching
: {{The Linux Kernel/include|linux/export.h}} – macros for symbol export control to kernel modules.
: {{The Linux Kernel/include|linux/kernel.h}} – miscellaneous stuff
⚙️ Internals
: {{The Linux Kernel/source|kernel/module}} – loadable module support
📖 References
: {{The Linux Kernel/doc|Building External Modules|kbuild/modules.html}}
📚 Further reading
: {{w|Loadable kernel module}}
: [https://sysprog21.github.io/lkmpg/ The Linux Kernel Module Programming Guide]
: https://wiki.archlinux.org/title/Kernel_module
: [https://github.com/makelinux/ldt Linux Driver Template]
: http://lwn.net/images/pdf/LDD3/ch02.pdf
: http://www.xml.com/ldd/chapter/book/ch02.html
: [https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/managing_monitoring_and_updating_the_kernel/managing-kernel-modules_managing-monitoring-and-updating-the-kernel Managing kernel modules, RHEL]
: http://www.tldp.org/LDP/tlk/modules/modules.html
{{BookCat}}
ptpby47wpq9gyknc1rf2c0m1knc5jrz
4640233
4640210
2026-06-13T19:15:08Z
Conan
3188
fix module_exit description: cleanup, not initialization
4640233
wikitext
text/x-wiki
<noinclude>{{DISPLAYTITLE:Linux modules}}</noinclude><includeonly>== Modules ==</includeonly>
A kernel module is a code that can be loaded into the kernel image at will, without requiring users to rebuild the kernel or reboot their computer.
Modular design ensures that you do not have to make a monolithic kernel that contains all code necessary for hardware and situations.
Common kernel modules are device drivers, which directly access computer and peripheral hardware.
Kernel modules have a .ko extension.
⚲ API
: /proc/modules
: {{The Linux Kernel/man|8|insmod}} – simple program to insert a module
: {{The Linux Kernel/man|8|modprobe}} – searches and loads a module with dependencies
:: /etc/modprobe.d/
:: /lib/modules/$(uname -r)/modules.dep – module dependencies, is created by depmod -a
: {{The Linux Kernel/man|8|lsmod}} – list loaded modules
: {{The Linux Kernel/man|8|kmod}} – core program to manage Linux Kernel modules
: {{The Linux Kernel/man|8|modinfo}}
: {{The Linux Kernel/include|linux/init.h}} – initcalls
: {{The Linux Kernel/include|linux/module.h}} – macros and functions for kernel module support
:: {{The Linux Kernel/id|module_init}} – module initialization entry point
:: {{The Linux Kernel/id|module_exit}} – module cleanup exit point
:: {{The Linux Kernel/id|MODULE_LICENSE}} – licence declaration
: {{The Linux Kernel/include|linux/mod_devicetable.h}} – device ID tables for module device matching
: {{The Linux Kernel/include|linux/export.h}} – macros for symbol export control to kernel modules.
: {{The Linux Kernel/include|linux/kernel.h}} – miscellaneous stuff
⚙️ Internals
: {{The Linux Kernel/source|kernel/module}} – loadable module support
📖 References
: {{The Linux Kernel/doc|Building External Modules|kbuild/modules.html}}
📚 Further reading
: {{w|Loadable kernel module}}
: [https://sysprog21.github.io/lkmpg/ The Linux Kernel Module Programming Guide]
: https://wiki.archlinux.org/title/Kernel_module
: [https://github.com/makelinux/ldt Linux Driver Template]
: http://lwn.net/images/pdf/LDD3/ch02.pdf
: http://www.xml.com/ldd/chapter/book/ch02.html
: [https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/managing_monitoring_and_updating_the_kernel/managing-kernel-modules_managing-monitoring-and-updating-the-kernel Managing kernel modules, RHEL]
: http://www.tldp.org/LDP/tlk/modules/modules.html
{{BookCat}}
ae4cypy9bu0i7p96uti7pqvo8hrffgg
Wikibooks talk:What is Wikijunior?
5
110762
4640086
4509577
2026-06-13T12:57:03Z
ShakespeareFan00
46022
4640086
wikitext
text/x-wiki
Okay everybody. What is Wikijunior? --[[User:Xixtas|xixtas]] 19:37, 10 February 2007 (UTC)
:The cynic in me says that Wikijunior is the abandoned effort for fundraising by certain members of the WMF board of trustees in their attempt to try and kiss the behinds of a couple of wealthy benefactors who gave some money back elsewhen for a cool idea called "Wikijunior", but has since been taken over by Wikibookians and changed to their own devices and goals. The money collected was spent on some crazy party that seemed cool at the time, but nobody remembers what really happened.
:A more sincere and apologetic response would be that Wikijunior represents an attempt to create books that are oriented toward children, with an eye toward creating high quality content over starting a whole bunch of random stubs that are half-started. The money raised in various fundraisers was used to finance the bandwidth and hosting costs of this project.
:There are many good intentions with Wikijunior, but I would have to say that this project needs to find a new focus and goal in many ways. There is some incredible content that has been created under the "Wikijunior" brand, and it should also be noted that in many ways Wikijunior represents a completely seperate Wikimedia project that just happens to be using Wikibooks as an internet hosting service.
:That so many of the Wikijunior books have also achieved "Book of the Month" status shows something of the quality that this content has already reached, and that there may be some merit to the slow growth development style. But this slow growth does have its own costs as well.
:For where to take this page, that is a good question. I've been a long critic of Wikijunior being hosted on Wikibooks for the reason that such projects should be on something like the Incubator Wiki (that was finally created!) Still, it is here on Wikibooks, and for now I can live with that. There are areas of Wikijunior that need development and improvement, and this page may be a good place to start. --[[User:Robert Horning|Rob Horning]] 01:21, 12 February 2007 (UTC)
::Before I started this recent effort I thought long and hard about whether moving Wikijunior forward was worth the effort. My eyes are wide open. I have seen what I perceive to be substantial indifference to this project from every quarter. But I believe in the idea that quality free content for kids makes the world a better place. This project has made a start on 14 useful open-content titles for kids. That's nothing to sneeze at. I am an idealist at heart. After careful deliberation, I believe that Wikijunior can accomplish important things, and this is step one. The community needs to decide what <strike>Wikibooks</strike> Wikijunior ''should be''. Step two we can figure out once we know the outcome of step one. --[[User:Xixtas|xixtas]] 03:44, 12 February 2007 (UTC)
:::As has been said elsewhere I don't do policy however to me Wikijunior is the flagship part of Wikibooks. It is tightly focused, well maintained and has good (generally consistent) contributors. May not help you but my 0.02 anyway --[[User:Herbythyme|<span style="color:green">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 15:31, 16 April 2007 (UTC)
::::Thank you Herby, that's a very nice thing to say. We do have some great contributors here who are not at all indifferent. Forest for the trees and all. --[[User:Xixtas|<span style="color:turquoise">xixtas</span>]] <sup>[[User_Talk:Xixtas|<span style="color:magenta">talk</span>]]</sup> 02:44, 18 April 2007 (UTC)
:::ဘဝပန်းတိုင် [[Special:Contributions/202.191.105.109|202.191.105.109]] ([[User talk:202.191.105.109|discuss]]) 00:56, 9 June 2025 (UTC)
My stance is the following: I am a casual contributor to the wiki* projects and I have only recently started contributing to Wikijunior which is why I do not have strong sentiments towards the relationship of wikibooks and wikijunior. My general feeling, however, is that it is of mutual benefit (I for one thing have found my way to junior through books). [[User:Sboehringer|Sboehringer]] 11:18, 2 May 2007 (UTC)
In my opinion, the policy is quite good. At the moment I don't see any ideas for improvements in it.
Speaking about Wikijunior - is there any sense in discussing here whether Wikijunior should be a part of Wikibooks? Such things are always decided on Meta Wiki. My personal view is that there is no reason for separating Wikijunior from Wikibooks. When Wikijunior and Wikibooks exist on the same wiki, there is a greater chance that users of one get involved in another. As a significantly smaller wikiprojekt, Wikijunior would only benefit from larger community of Wikibooks. Splitting projects is always an inconvenience: you have to register on another project and learn how to deal with a new community. Keeping dividing projects into small ones is a road to nowhere for me. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 20:11, 3 May 2007 (UTC)
I don't see any great advantage to splitting the projects apart. Personally I don't have the time or energy to launch a wikiproject. We do need to launch a separate child's portal that will be unlike anything else on any other mediawiki project (so far as I know), but I think we can do that and continue developing content here. --[[User:Xixtas|<span style="color:turquoise">xixtas</span>]] <sup>[[User_Talk:Xixtas|<span style="color:magenta">talk</span>]]</sup> 02:40, 4 May 2007 (UTC)
:I '''agree''' [[Special:Contributions/41.122.64.87|41.122.64.87]] ([[User talk:41.122.64.87|discuss]]) 08:57, 3 January 2025 (UTC)
I like the proposed policy and believe that it pretty much encompasses the aims and spirit of the Wikijunior Project. If i may make a suggestion, though only a little one, could we change any instance of the word 'kid' to 'child' and 'kids' to 'children'. Just for consistencies sake and no other. However I am impressed by the policy proposed here. And i agree with you there Xixtas, we need to work on a portal for accessing the Wikjunior projects for children to use, something simple but striking. [[User:Urbane|<span style="color:black"><b>Urbane</b></span>]] [[User talk:Urbane|<span style="color:green"><small>(Talk)</small></span>]] [[Special:Contributions/Urbane|<span style="color:green"><small>(Contributions)</small></span>]] 17:32, 4 May 2007 (UTC)
To my mind "kids" and "children" are synonyms and that change doesn't change the meaning of the policy in any meaningful way. Go ahead and change it. If you want to note that you specifically favor that revision then you could just include the number of the revision you favor in your comments. I don't think anyone would object to such a change. --[[User:Xixtas|<span style="color:turquoise">xixtas</span>]] <sup>[[User_Talk:Xixtas|<span style="color:magenta">talk</span>]]</sup> 03:14, 5 May 2007 (UTC)
== Clarify "Kid friendly" ==
I think we should clarify the "kid friendly" part of this policy to show explicitly that WJ books are censored by the community for the protection of minors. Alternatively, this could be an addition to the bottom of the page or something. If we do say that WJ is censored, however, we have to make it clear that the censoring process is not immediate, nor is it a guarantee or a statement of liability. --'''Whiteknight''' ([[User:Whiteknight|Page]]) ([[User talk:Whiteknight|Talk]]) 17:23, 21 November 2007 (UTC)
:I agree something needs to change if WJ is intended to be censored. I'm not so sure if a liability statement is needed specifically for WJ. I think the general disclaimer, and other disclaimers apply to WJ as much as it does to the rest of Wikibooks. I think if a statement about censoring WJ is added it also needs to be clear on what types of censoring is appropriate or not, or how its decided whether its appropriate to censor something. I'm in favor of adding it as an addition to the bottom of the page rather then changing the meaning of kid-friendly. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 18:09, 21 November 2007 (UTC)
::I think that we may be getting hung up on the word "censored". The objective is to create kid friendly content (in every sense.) This means content that is inappropriate for kids should not be included and must be removed. What is inappropriate? well, offensive racist or intolerant hate speech, gratuitous or prurient sexual content, gratuitous violence, instructions for doing or making things which are very dangerous or widely illegal... Those are three off the top of my head. I'm not sure how much of this isn't already covered by [[WB:NPOV]] and the stipulation that Wikibooks doesn't allow fiction. I don't object to adding a stipulation that Wikijunior is censored (meaning doesn't allow certain types of content) for the protection of minors but I'm not convinced that it's necessary. Is there really confusion about this? --[[User:Xixtas|<span style="color:turquoise">xixtas</span>]] <sup>[[User_Talk:Xixtas|<span style="color:magenta">talk</span>]]</sup> 00:23, 22 November 2007 (UTC)
:::Well after your crude statement on VfD about censorship, and trying to put a stop to any suggestion of it being otherwise, yes I think clarification is needed. Different people have different views on whats appropriate for children or whats kid-friendly. I think kid-friendly basically says to write in a way that is understandable for children and will be enjoyed by children. The same issues of being dangerous and illegal that apply to Wikibooks as whole apply to children books, even more so because you not only have different laws which don't apply everywhere, but you also have different cultures and views on parenting. Children can be exposed to all the things you used as examples and may be something that some parents might feel ought to be discussed in a book here for children to read, rather then simply ignored or censored, and may be perfectly legal to do. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 01:02, 22 November 2007 (UTC)
::::I don't understand where you're coming from at all. So if someone starts a "Wikijunior Illustrated Guide to Sexual Positions" we shouldn't even be allowed to discuss whether it's appropriate? Because you assumed (incorrectly) that the phrase "kid friendly" only applied to style issues and not content? (even though content is discussed in the second sentence following that bullet point.) Again, I don't understand it. I still don't see the value in adding more legalistic verbiage to this policy. --[[User:Xixtas|<span style="color:turquoise">xixtas</span>]] <sup>[[User_Talk:Xixtas|<span style="color:magenta">talk</span>]]</sup> 02:08, 22 November 2007 (UTC)
::::Just to be absolutely clear, the policy already says that content in Wikijunior should be kid friendly. It's like you're not recognizing that it already says that. --[[User:Xixtas|<span style="color:turquoise">xixtas</span>]] <sup>[[User_Talk:Xixtas|<span style="color:magenta">talk</span>]]</sup> 04:46, 22 November 2007 (UTC)
== Relationship with Wikibooks ==
I disagree that a sub-project of Wikibooks should be able override the project-wide policy. If that's desired, split the project out like was done with Wikiversity. A more restrictive policy for a sub-project could be appropriate, but a less restrictive policy I feel goes against [[WB:INCUBATOR]] (though citing that wouldn't be relevant if we've already established that project-wide policies can be ignored). The policy's already been formulated, but I thought I'd put my opinion out there. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 14:31, 4 June 2010 (UTC)
: Wikijunior was started by a grant from the Beck Foundation, and was never intended to be a subproject. Wikijunior has its own domain name (http://www.wikijunior.org) which unfortunately redirects to [[Wikijunior]]. This is unfortunate because Wikijunior is not limited to English Wikibooks nor Wikibooks in general. Wikijunior exists on some language editions of Wikinews too for example. Wikijunior, like Wikiversity, predated the WB:INCUBATOR rule, and Wikimedia wide policy about incubations. Wikijunior is presumably an exception to the rules because of its history. I believe Wikijunior is a bit stuck. I believe it was intended to be moved as a separate project at some point and I'm not sure why that hasn't happened yet. I see Wikijunior as being an entirely independent project that unfortunately is still here. I must admit I have been inclined to enforce Wikibooks' rules on Wikijunior too, if only to try to force progression towards its intended independence. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 15:26, 4 June 2010 (UTC)
:* Wikijunior is most naturally a subproject of Wikibooks, so that whatever the ''specific'' historical events that led it here, this is always where it would tend to settle. Wikijunior and Wikibooks both benefit form the association. Their natural contributor bases blend seamlessly — there is no distinct line between them — and separating the projects would only create an artificial barrier to contributors roaming freely between, thereby reducing overall level of contribution on both sides of the artificial line. That would destroy Wikijunior outright, and Wikibooks would have to invent a subproject as an outlet for the energies that its contributors want to direct toward a younger target audience. And probably the first step of that would be to transwiki to this hypothetical Wikibooks subproject the books from the defunct separate project Wikijunior (much like the gradual absorption of simple Wikibooks that's going on now). Leaving us all back pretty much where we are now, except for the lost time and effort spent getting there.
:* Concerning the relationship between policies in mainspace and Wikijunior. I, at least, have never thought of Wikijunior as ''exempt'' from any of the Wikibooks policies; rather I see a few of those policies (and only a few of them) as being sufficiently articulated that they can accommodate variations in circumstances, including the circumstances of Wikijunior. The policies have somewhat fractal boundaries anyway, with various specific kinds of works allowed or disallowed for specific practical reasons (the prohibition against computer game walkthroughs springs to mind), so I see nothing extraordinary about provisions for Wikijunior. That doesn't mean everything is as well phrased as it could be. The wording on this page could be taken to suggest that Wikijunior is a law unto unto itself (which I think it neither is nor should be). If I had more time right now (maybe later), I'd go through the policies carefully to see that each one actually ''mentions'' the nuances for Wikijunior that, I'm claiming, are really integral to those policies rather than overriding them. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 19:28, 4 June 2010 (UTC)
:*: I disagree. Wikijunior is not naturally a subproject of Wikibooks. For example, Wikjunior is also intended to include a published magazine with articles of interest for children, and news stories revolving around current events in the world written by and for children. A magazine is not a book, and news stories are also not a book. Which is probably why Wikijunior expands across multiple wikimedia projects. Wikijunior's scope is broader than Wikibooks just like Wikiversity.
:*: I think most policies were written without Wikijunior in mind, precisely because they were never intended to apply to Wikijunior. Wikijunior needs its own independent community with its only independent policies. I think Wikibooks is more likely to crush, limit, and restrict Wikijunior, rather than allowing Wikijunior to mature and grow to its intended purpose. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 12:22, 5 June 2010 (UTC)
:::: I'll amend my position; I think most of the details of what I said earlier are not so much refuted as placed into a larger context that I was failing to take into account. I have admittedly tended to simplify my view of Wikijunior (validly for some purposes, but not for this one) by dismissing the whole magazine-and-whatnot as grandiose plans that clearly won't ever happen. It may be more accurate to say that they won't ever happen as long as Wikijunior is a wholly owned subsidiary (so to speak) of Wikibooks. I stand by most of my earlier claims, ''given the current strong barriers between projects''. As things are, separating WJ from WB would annihilate Wikijunior and create a Wikijunior-shaped hole in Wikibooks coverage. As long as Wikijunior is here, the magazine isn't going to happen, and conversely, if the magazine were to happen, Wikijunior shouldn't be here. As long as Wikijunior is here, I believe it is (recalling Adrignola's original question) appropriate and sufficient to view Wikijunior as a special case in the Wikibooks policies rather than an exception to them.
::::The difficulty is that right now the barriers between projects are too high. If we had [[w:Wikipedia:Integrated watchlists|integrated watchlists]], Wikijunior and Wikibooks could be separated without diminishing either project (though there's no doubt which project can least afford to be diminished) — although, if we had integrated watchlists, it would also cease to be a binary decision between keeping Wikijunior here and making it a separate project. Conceivably, the best solution would then be to keep the Wikijunior ''books'' here, and make the ''other'' components of Wikijunior a separate project. Once the inter-project barriers come down, the workable possibilities expand vastly.
::::In the past I've always been very skeptical about the usefulness of integrated watchlists, but I seem to have rather suddenly become a believer. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 16:20, 5 June 2010 (UTC)
:::::An aside, there is a [http://en.wikipedia.org/w/index.php?title=Wikipedia:Village_pump_%28proposals%29&oldid=366199110#Integrated_watchlists discussion] on Wikipedia at this moment on integrated watchlists for trans-wiki collaboration. – [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 18:05, 5 June 2010 (UTC)
::::: I must admit I often find myself swaying back and forth between the bigger, the smaller, and the current picture of Wikijunior. I don't know if Wikijunior would be annihilated by becoming a separate project or not, I imagine that concern may have been raised for Wikiversity in the past as well. Creating a coverage hole is mainly why the situation is unfortunate. One possible solution to the coverage problem might be to allow some overlap. Wikibooks could have educational textbooks in the main namespace without any kind of organization other than by subject, and as is already the case, provide no assurance of appropriateness for children. Wikijunior could than be a lot like Wikisource in hosting more or less static texts. Wikijunior could host static texts of children's works from the other projects which have undergone a review by Wikijunior contributors. Wikijunior could also allow contributing to children's works in cases where there is no other place where the work is allowed, which could include things like the coloring book. Anyways that is one possible solution for Wikijunior as a separate project.
::::: Oh BTW, I meant that Wikijunior is an exception in the context of the rules regarding incubation. This policy is also an exception to Wikibooks' policies when there are contradictions. Most other things apply because Wikijunior hasn't made any other policies yet. I believe the deletion policy still applies to Wikijunior, for the most part for example. I think spam, nonsense, and copyright violations in Wikijunior can be deleted, while the general guideline about deleting modules that will never become educational doesn't apply because Wikijunior doesn't require books to be educational. I hope that clarifies my thinking some. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 16:31, 6 June 2010 (UTC)
== Requested move ==
There is a requested move at [[Wikibooks talk:What is Wikibooks#Requested move]] that concerns this page. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 05:55, 22 December 2024 (UTC)
37gxo1299y8j04em5kzxxw4qn6vjl1t
Wikijunior:Bugs
110
110865
4640275
4476423
2026-06-14T09:08:47Z
Dirk Hünniger
343292
4640275
wikitext
text/x-wiki
__NOTOC__
[[Image:Calliteara pudibunda Kopf.jpg|right|200px|thumb]]
== [[Wikijunior]] Bugs ==
{{Print version}}
<span style="font-size: 120%; line-height: 1.5">
This [[Wikijunior]] book is on the topic of 'Bugs' with the target audience being those who are 8-12 years old. The project will cover many bugs that children may know, or that may be particularly interesting to them. There will be a main introduction, and then a sub introduction for each group of bugs (e.g. insects...) and there will also be a glossary. The project may also include other general interest articles about bugs as a group. If you would like more information about contributing, please [[/Contributing/|see here]]. If you would like to have formal credit for being an author, please add your name to the [[/Authors/|authors list]].
</span>
{{clr}}
{| align="left" width="100%"
| width="50%" bgcolor="#eeffee" style="border:1px solid #99ff99;padding:1em;padding-top:0.5em;" valign="top" |
== Articles ==
* [[/Crazy Bug Facts/]] {{stage short|25%|May 26, 2010}}
* [[/Insects Intro/]] {{stage short|50%|Jan 5, 2009}}
** [[/Ant/]] {{stage short|75%|Jan 2, 2007}}
** [[/Aphid/]] {{stage short|75%|Dec 28, 2007}}
** [[/Beetle/]] {{stage short|75%|Jan 17, 2008}}
** [[/Bee/]] {{stage short|100%|Apr 18, 2007}}
** [[/Black Fly/]] {{stage short|50%|Oct 25, 2008}}
** [[/Caterpillar/Butterfly/]] {{stage short|75%|Jul 15, 2007}}
** [[/Cockroach/]] {{stage short|100%|Dec 28, 2007}}
** [[/Crane Fly/]] {{stage short|100%|Apr 18, 2007}}
** [[/Cricket/]] {{stage short|75%|Oct 19, 2010}}
** [[/Cicada/]] {{stage short|25%|May 27, 2008}}
** [[/Diving Beetle/]] {{stage short|25%|January 16,2010}}
** [[/Dragonfly/]] {{stage short|50%|Apr 18, 2007}}
** [[/Damselfly/]] {{stage short|75%|Mar 5, 2012}}
**[[/Dragonfly & Damselfly/]]
** [[/Firefly/]] {{stage short|75%|Jan 21, 2007}}
** [[/Fly/]] {{stage short|50%|February 19, 2010}}
** [[/Flea/]] {{stage short|50%|Apr 18, 2007}}
** [[/Fruit Fly/]] {{stage short|75%|Apr 12, 2010}}
** [[/Grasshopper/]] {{stage short|25%|May 27, 2008}}
** [[/Ladybug/]] {{stage short|25%|Apr 18, 2007}}
** [[/Locust/]] {{stage short|25%|May 27, 2008}}
** [[/Louse/]] {{stage short|25%|May 27, 2008}}
** [[/Mayfly/]] {{stage short|75%|December 19, 2008}}
** [[/Mosquito/]] {{stage short|25%|February 20, 2008}}
** [[/Monarch butterfly/]] {{stage short|0%|April 28, 2015}}
** [[/Moth/]] {{stage short|50%|Apr 18, 2007}}
** [[/Pondskater/Water Strider/]]{{stage short|75%|January 1, 2009}}
** [[/Praying Mantis/]] {{stage short|25%|Mar 1, 2007}}
** [[/Predaceous Diving Beetle/]] {{stage short|50%|Feb 23, 2011}}
** [[/Shield Bug/]] {{stage short|75%|Mar 1, 2009}}
** [[/Stinkbug/]] {{stage short|50%|Feb 18, 2010}}
** [[/Walking Stick/]] {{stage short|75%|Dec 28, 2007}}
* [[/Arachnids Intro/]] {{stage short|50%|June 19, 2024}}
** [[/Black Widow/]] {{stage short|25%|Apr 18, 2007}}
** [[/Harvestman (Daddy Longlegs)/]] {{stage short|25%|January 4, 2007}}
** [[/Pseudoscorpion/]] {{stage short|50%|September 12, 2009}}
** [[/Tarantula/]] {{stage short|75%|June 16, 2010}}
*** [[/Mexican Red-Kneed Tarantula/]] {{stage short|50%|October 13, 2014}}
** [[/Mite/]] {{stage short|25%|January 1, 2010}}
** [[/Scorpion/]] {{stage short|50%|Jan 2, 2007}}
** [[/Australian burrowing scorpion/]] {{stage short|25%|June 19, 2024}}
** [[/Spider/]] {{stage short|75%|Jan 1, 2007}}
*** [[/Ant-Mimicking Spider/]]
*** [[/Brown Recluse/]]
*** [[/Crab Spider/]]
*** [[/Funnel-Web Spider/]]
*** [[/Jumping Spider/]]
*** [[/Orb Weaver/]]
*** [[/Trap-door Spider/]]
*** [[/Wolf Spider/]]
** [[/Tick/]] {{stage short|75%|Jan 21, 2007}}
* [[/Other Intro/]] {{Stage short|25%|19 June 2024}}
** [[/Earthworm/]] {{stage short|25%|Feb 6, 2024}}
** [[/Centipede/]] {{stage short|75%|Jan 21, 2007}}
** [[/Millipede/]] {{stage short|75%|Jan 1, 2007}}
** [[/Woodlouse|Woodlouse, Pill Bug or Armadillo Bug]] {{stage short|75%|Jan 13, 2010}}
*Reference
**[[/Glossary/]] {{stage short|75%|February 19, 2008}}
| width="50%" bgcolor="#eeffee" style="border:1px solid #99ff99;padding:1em;padding-top:0.5em;" valign="top" |
== Toolbox ==
[[/Contributing/|Contributing Page]]
[[/Authors/|Authors List]]
----
Development Stage Indicators:
* Sparse Text {{stage short|00%|Jan 1, 2007}}
* Developing Text {{stage short|25%|Jan 1, 2007}}
* Maturing Text {{stage short|50%|Jan 1, 2007}}
* Developed Text {{stage short|75%|Jan 1, 2007}}
* Comprehensive {{stage short|100%|Jan 1, 2007}}
----
Other wiki sites (Useful for reference and gathering information)
{{sisterlinks|Bug}}
|}
{{Shelves|Wikijunior The Natural World}}
{{Alphabetical|B}}
{{status|50%}}
[[nl:Wikijunior:Kriebelbeestjes]]
[[bn:Wikijunior:কীটপতঙ্গ]]
mz1ybynlbsfj1mkldld7dz388a3eoi2
4640288
4640275
2026-06-14T09:38:06Z
Dirk Hünniger
343292
4640288
wikitext
text/x-wiki
__NOTOC__
[[Image:Calliteara pudibunda Kopf.jpg|right|200px|thumb]]
== [[Wikijunior]] Bugs ==
{{Print version}}
{{PDF version|Wikijunior_Bugs}}
<span style="font-size: 120%; line-height: 1.5">
This [[Wikijunior]] book is on the topic of 'Bugs' with the target audience being those who are 8-12 years old. The project will cover many bugs that children may know, or that may be particularly interesting to them. There will be a main introduction, and then a sub introduction for each group of bugs (e.g. insects...) and there will also be a glossary. The project may also include other general interest articles about bugs as a group. If you would like more information about contributing, please [[/Contributing/|see here]]. If you would like to have formal credit for being an author, please add your name to the [[/Authors/|authors list]].
</span>
{{clr}}
{| align="left" width="100%"
| width="50%" bgcolor="#eeffee" style="border:1px solid #99ff99;padding:1em;padding-top:0.5em;" valign="top" |
== Articles ==
* [[/Crazy Bug Facts/]] {{stage short|25%|May 26, 2010}}
* [[/Insects Intro/]] {{stage short|50%|Jan 5, 2009}}
** [[/Ant/]] {{stage short|75%|Jan 2, 2007}}
** [[/Aphid/]] {{stage short|75%|Dec 28, 2007}}
** [[/Beetle/]] {{stage short|75%|Jan 17, 2008}}
** [[/Bee/]] {{stage short|100%|Apr 18, 2007}}
** [[/Black Fly/]] {{stage short|50%|Oct 25, 2008}}
** [[/Caterpillar/Butterfly/]] {{stage short|75%|Jul 15, 2007}}
** [[/Cockroach/]] {{stage short|100%|Dec 28, 2007}}
** [[/Crane Fly/]] {{stage short|100%|Apr 18, 2007}}
** [[/Cricket/]] {{stage short|75%|Oct 19, 2010}}
** [[/Cicada/]] {{stage short|25%|May 27, 2008}}
** [[/Diving Beetle/]] {{stage short|25%|January 16,2010}}
** [[/Dragonfly/]] {{stage short|50%|Apr 18, 2007}}
** [[/Damselfly/]] {{stage short|75%|Mar 5, 2012}}
**[[/Dragonfly & Damselfly/]]
** [[/Firefly/]] {{stage short|75%|Jan 21, 2007}}
** [[/Fly/]] {{stage short|50%|February 19, 2010}}
** [[/Flea/]] {{stage short|50%|Apr 18, 2007}}
** [[/Fruit Fly/]] {{stage short|75%|Apr 12, 2010}}
** [[/Grasshopper/]] {{stage short|25%|May 27, 2008}}
** [[/Ladybug/]] {{stage short|25%|Apr 18, 2007}}
** [[/Locust/]] {{stage short|25%|May 27, 2008}}
** [[/Louse/]] {{stage short|25%|May 27, 2008}}
** [[/Mayfly/]] {{stage short|75%|December 19, 2008}}
** [[/Mosquito/]] {{stage short|25%|February 20, 2008}}
** [[/Monarch butterfly/]] {{stage short|0%|April 28, 2015}}
** [[/Moth/]] {{stage short|50%|Apr 18, 2007}}
** [[/Pondskater/Water Strider/]]{{stage short|75%|January 1, 2009}}
** [[/Praying Mantis/]] {{stage short|25%|Mar 1, 2007}}
** [[/Predaceous Diving Beetle/]] {{stage short|50%|Feb 23, 2011}}
** [[/Shield Bug/]] {{stage short|75%|Mar 1, 2009}}
** [[/Stinkbug/]] {{stage short|50%|Feb 18, 2010}}
** [[/Walking Stick/]] {{stage short|75%|Dec 28, 2007}}
* [[/Arachnids Intro/]] {{stage short|50%|June 19, 2024}}
** [[/Black Widow/]] {{stage short|25%|Apr 18, 2007}}
** [[/Harvestman (Daddy Longlegs)/]] {{stage short|25%|January 4, 2007}}
** [[/Pseudoscorpion/]] {{stage short|50%|September 12, 2009}}
** [[/Tarantula/]] {{stage short|75%|June 16, 2010}}
*** [[/Mexican Red-Kneed Tarantula/]] {{stage short|50%|October 13, 2014}}
** [[/Mite/]] {{stage short|25%|January 1, 2010}}
** [[/Scorpion/]] {{stage short|50%|Jan 2, 2007}}
** [[/Australian burrowing scorpion/]] {{stage short|25%|June 19, 2024}}
** [[/Spider/]] {{stage short|75%|Jan 1, 2007}}
*** [[/Ant-Mimicking Spider/]]
*** [[/Brown Recluse/]]
*** [[/Crab Spider/]]
*** [[/Funnel-Web Spider/]]
*** [[/Jumping Spider/]]
*** [[/Orb Weaver/]]
*** [[/Trap-door Spider/]]
*** [[/Wolf Spider/]]
** [[/Tick/]] {{stage short|75%|Jan 21, 2007}}
* [[/Other Intro/]] {{Stage short|25%|19 June 2024}}
** [[/Earthworm/]] {{stage short|25%|Feb 6, 2024}}
** [[/Centipede/]] {{stage short|75%|Jan 21, 2007}}
** [[/Millipede/]] {{stage short|75%|Jan 1, 2007}}
** [[/Woodlouse|Woodlouse, Pill Bug or Armadillo Bug]] {{stage short|75%|Jan 13, 2010}}
*Reference
**[[/Glossary/]] {{stage short|75%|February 19, 2008}}
| width="50%" bgcolor="#eeffee" style="border:1px solid #99ff99;padding:1em;padding-top:0.5em;" valign="top" |
== Toolbox ==
[[/Contributing/|Contributing Page]]
[[/Authors/|Authors List]]
----
Development Stage Indicators:
* Sparse Text {{stage short|00%|Jan 1, 2007}}
* Developing Text {{stage short|25%|Jan 1, 2007}}
* Maturing Text {{stage short|50%|Jan 1, 2007}}
* Developed Text {{stage short|75%|Jan 1, 2007}}
* Comprehensive {{stage short|100%|Jan 1, 2007}}
----
Other wiki sites (Useful for reference and gathering information)
{{sisterlinks|Bug}}
|}
{{Shelves|Wikijunior The Natural World}}
{{Alphabetical|B}}
{{status|50%}}
[[nl:Wikijunior:Kriebelbeestjes]]
[[bn:Wikijunior:কীটপতঙ্গ]]
0zwp1it48wa2lczt7gyrrel64eh982d
Talk:C++ Programming/Programming Languages/C++/Code/Statements/Variables/Type/Data Types
1
112860
4640190
2362075
2026-06-13T16:15:54Z
ShakespeareFan00
46022
4640190
wikitext
text/x-wiki
Shouldn't the "magic numbers" (127, -32767, etc.) in this document be replaced with their constants from limits.h (SCHAR_MAX, SHRT_MIN, etc.)? --[[User:12.9.179.117|12.9.179.117]] 18:30, 26 February 2007 (UTC)
:Magic number should be avoided but we don't have a list of default values, the standard (2003) only mentions of reserved identifiers from the C library, personally I don't know if the values one expects them to represent are fixed (consider for instance http://msdn.microsoft.com/en-us/library/296az74e(VS.71).aspx it states that that list is Microsoft Specific). --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 03:50, 17 September 2008 (UTC)
== Less or More? ==
I have made a change to the Data Types table. The original text was: "Any encoding of 8 bits or less (e.g. ASCII) can be used to store characters". I have changed it to read: " Any encoding of 8 bits or more ...", since that is what the previous column in the table would suggest. Was the wording simply incorrect, or did I miss the point of that line? – '''[[User:E_James|<span style="color:#D02000">e</span><span style="color:#FF9000">James</span>]]''' <small>([[User_Talk:E_James|talk]])</small> – <small>22:34, 16 September 2008 (UTC)</small>
:I've restored to the prev. edit, the intention expressed is that char is only guaranteed to have 8 bits (it may indeed hold more in specific setups, compiler and OS). --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 03:32, 17 September 2008 (UTC)
====
There seems to be confusion over the two words char and character.
C++11 (Draft):
"The fundamental storage unit in the C++ memory model is the byte. A byte is at least large enough to contain any member of the basic execution character set (2.3) and the eight-bit code units of the Unicode UTF-8 encoding form and is composed of a contiguous sequence of bits, the number of which is implementation defined. ...
The memory available to a C++ program consists of one or more sequences of contiguous bytes. Every byte has a unique address." So a byte is 8 bits OR MORE and a char is one byte OR MORE. I am changing the table. I am also removing "sizeof" it is a great idea to have it on this page, but not in the table.
* {{C++ Programming/kw|sizeof}} gives the size in units of <tt>'''char'''</tt>s. These "[[w:Byte|bytes]]" need not be 8-bit bytes (though commonly they are); the number of bits is given by the <tt>CHAR_BIT</tt> macro in the <tt>climits</tt> header.
[[Special:Contributions/71.31.146.16|71.31.146.16]] ([[User talk:71.31.146.16|discuss]]) 22:50, 10 June 2012 (UTC)
2z3pnfex3dceh0t2o9n4ek0lz3usjuf
Talk:First Aid/B for Breathing
1
125960
4640196
973681
2026-06-13T16:21:22Z
ShakespeareFan00
46022
4640196
wikitext
text/x-wiki
==Image request==
The image that was on this page to show a proper breathing check doesn't. The head-tilt chin-lift wasn't maintained during that breathing check. Does anyone have a picture showing a good breathing check maintaining an open airway? [[User:Mike.lifeguard|Mike.lifeguard]] 16:12, 19 June 2007 (UTC)
==O<sub>2</sub> Claim==
The following was removed as a dubious claim, especially considering that ILCOR's paper claims that O<sub>2</sub> isn't proven to be effective.
<pre>A patient whose lungs are full of pure oxygen can stay in apnea for nearly ''30 minutes'' (half an hour).
Thus, pure oxygen is a great help which will allow you to perform urgent duty and leave the patient for a few
minutes if necessary.</pre>
[[User:Mike.lifeguard|Mike.lifeguard]] 16:17, 19 June 2007 (UTC)
== proposed chapter for advanced topics ==
I really like using D for Deadly Bleeding, as it reinforces that there needs to be a "wet check" (aka "gross blood check" or "Rapid Body Survey"). How do we feel about using D for that, and finding another way to integrate AED in another section. We could have a chapter on more advanced aspects of first aid, such as AED and O<sub>2</sub> (which is currently included in [[First Aid/B for Breathing|B for Breathing]], which I don't like)?? So AED and O<sub>2</sub> (and possibly some other stuff) would get moved to a chapter called "Advanced First Aid Topics" or something, and D would turn into a section on deadly bleeding, which would remove that section from [[First Aid/External Bleeding|External Bleeding]]. Comments? [[User:Mike.lifeguard|Mike.lifeguard]] 01:33, 24 June 2007 (UTC)
:ILCOR's protocol is clearly to use D for defibrillation as part of BLS, so we should use this, as we are keeping the entire book based on their procedures. [[User:Owain.davies|Owain.davies]] 20:35, 13 July 2007 (UTC)
::(Copied from MLs talk page) As for D for defibrillation, they do advocate further training, but they also clearly give ABCD with the D as defibrillation : See [http://circ.ahajournals.org/cgi/content/full/112/22_suppl/III-1 Part I: Introduction] of the ILCOR protocol, under "The Universal Algorithm". Even the title suggests that they are trying to get this adopted by everyone. As we are following ILCOR so far as possible, there really is no option but to use this variant! [[User:Owain.davies|Owain.davies]] 08:19, 14 July 2007 (UTC)
== B for breathing ==
I've been back and checked, and the protocols i added there are definitely correct. The two rescue breaths were dropped in the last revision, as there is no clinical requirement for them - once cardio-respiratory arrest had taken place, the gases are stuck where they are (because no respiration can take place whilst there is no blood or pulmonary movement! - i.e. the blood is still full of oxygen until circulation and breathing start again.)
Rescue breaths are only appropriate for trauma and paeds. In children, they are more likely to enter respiratory arrest only, making the use of breaths first to stimulate them to breathe on their own appropriate. For trauma, due to the mechanism, the gases are likely to be used up as the body struggles to keep going. For this reason, the number was upped to five.
As for the hand on the chest, i find that to be the most reliable of the indicators for breathing when in a stressful situation.
On that basis, i have reverted back to my edits (although fixed the spelling!)
[[User:Owain.davies|Owain.davies]] 17:08, 11 July 2007 (UTC)
::Your rationale may or may not be legitimate, but is totally irrelevant. Resuscitation is not defined by either of us. As I noted on your talk page, [http://circ.ahajournals.org/content/vol112/22_suppl/ ILCOR] [http://lifesavingsociety.com/PDF/98CPR-Insert-Lifeliner2006.pdf LSS] and [http://www.americanheart.org/downloadable/heart/1132621842912Winter2005.pdf AHA] disagree with the protocols you've put here. I need to see a citation - ''then we can think about including it''. <s>I've reverted to a previous edit; please don't add these protocols again without a good citation and discussion with other editors.</s> I will do this shortly, but I have to run for a few minutes. ''' – [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 17:14, 11 July 2007 (UTC)
::'''Done''' ''' – [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 17:20, 11 July 2007 (UTC)
:::So apparently the UK didn't go along with ILCOR. The point of this text is that it's international in nature - the main protocols should be from ILCOR, and the ones you sent to me (btw do you have a link so everyone else can see that pdf?) should be included as regional differences. Feel free to make a separate section for them, or use {{tlx|FA Regional Note}}. Note that those standards come from the Red Cross and SJA ''of the UK only''. ''' – [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 01:02, 13 July 2007 (UTC)
== ILCOR/AHA only, or include regional standards? ==
[[User:Owain.davies|Owain.davies]], let's finish discussing this issue before making changes. I reverted to the previous version, which is correct - it includes ERC and ILCOR/AHA protocols. The issue here is whether we're going to go strictly by what ILCOR says or whether we're going to include notes about regional differences. I think it's entirely appropriate to include regional differences from ILCOR's protocols. However, you seem to be misinterpreting the CoSTR. As you know, the AHA hosted the conference in Dallas; they also interpreted the standards. Instead of a dense technical paper aimed at the resuscitation community, the AHA published a concise interpretation aimed at those implementing the changes.
The only citation you gave for ILCOR wanting EMS to be called after checking breathing is the diagram for the universal algorithm. Unfortunately, the text of the document contradicts the algorithm on that exact issue. Luckily for us, we don't have to guess at whether the diagram is correct or whether it's an oversimplification and instead we're supposed to implement what's in the text of the paper. The AHA has already done that for us, and it turns out that the universal algorithm you cited was an oversimplification.
It should be noted that the CoSTR is not technically a set of protocols - the ERC went in a different direction on several major points, which is their right. And those differences are highlighted for people in those areas. So far as I know, the rest of the ILCOR member councils followed ILCOR's lead though. It makes sense that the modules should reflect the consensus (from ILCOR, as interpreted by AHA if need be) and any deviation from that (ERC standards) should be highlighted in boxes as is done currently. I don't see how that's a problem.
''' – [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 01:52, 17 July 2007 (UTC)
:I can't find anywhere in the text that contradicts it (except for paeds where summon ems comes after a round of CPR). The AHA, ERC and the others all make their own decision based on ILCORs consenus. I think that including regional variations is confusing for any potential rescuers as it intimates that you should do things differently in different places (and also weakens the rationale for any given procedure). For that reason, i think you were right in the first place, and we should undertake to follow the original ILCOR text (regardless of whether adopted by all or any of the member councils), as these guidelines will be good, understandable and based on sound science, without confusing any potential reader.
:On this basis we should:
*Change to D for defibrillation
*Move to Call for help after unconscious and call for ems after breathing (except paeds)
*Keep the 2 initial breaths in for adults
:If we keep within one set of protocols, we can manage a clear document, based on the outputs of the highest authority (rather than regional variations). [[User:Owain.davies|Owain.davies]] 06:39, 17 July 2007 (UTC)
::Here's one contradiction, on the same page:
{{TextBox|The links in the [adult] Chain of Survival are early recognition of the emergency and activation of the emergency medical services (EMS) system, early CPR, early defibrillation, and early advanced life support, including postresuscitation care. The links in the infant and child Chain of Survival are prevention of conditions leading to cardiopulmonary arrest, early CPR, early activation of the EMS system, and early advanced life support.}}
::You'll notice that EMS comes before CPR for adults and after CPR for children and infants.
::They also noted on the same page that the Universal Algorithm diagram is not to be taken literally:
{{TextBox|Inevitably modification will be required in some situations, and these exceptions are highlighted elsewhere in this document.}}
::They also require training for AED use by lay responders, which would require keeping in Advanced Topics:
{{TextBox|Use of AEDs by trained lay ... responders is recommended to increase survival rates in patients with cardiac arrest. Use of AEDs in public settings (airports, casinos, sports facilities, etc) where witnessed cardiac arrest is likely to occur can be useful if an effective response plan is in place. The response plan should include equipment maintenance, training of likely responders, coordination with local EMS systems, and program monitoring.}}
::If you want to follow what ILCOR's paper recommends, I suggest you read it in-depth, since you've already made several errors of fact.
:*<s>Change to D for defibrillation</s> Not supported by ILCOR
:*<s>Move to Call for help after unconscious and call for ems after breathing (except paeds)</s> Also not supported by ILCOR
:*Keep the 2 initial breaths in for adults {{Done}}
::That's what we have already. If you want to keep ERC protocols, go ahead - I think it's a good idea. <sarcasm>But now that you've pushed so hard to accept only what ILCOR's paper says, I'm sure you'll want to throw those out the window, right??</sarcasm> ''' – [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 14:26, 17 July 2007 (UTC)
:::<irony> my errors of fact? </irony> let me point you in the correct direction.
:::*Change to D for defibrillation - Supported by ILCOR where is says "Defibrillation is both a BLS and ALS skill"
:::*Move to call for help after unconscious and ems after breathing - in black and white on the text. You're saying that EMS comes before CPR - exactly right and what i've been saying. Before CPR, not before breathing checks. The only 'variation' it points to in the whole document is for paeds, where is CPR before calling. The important first step to the chain of survival is 'recognition of the emergency' - i.e. you must recognise that they are not breathing before moving to stage two. Elementary my dear Mike.
:::*Keep to 2 breaths - all fine, we can agree (it's called compromise - i can see that ILCOR varies to the ERC protocol and therefore will accept it. Now if you'd just accept that ILCOR varies to your AHA protocol in some places too, we could get on with it)
:::They do intend the universal algorithm to be taken literally, with an exception for paeds. We should teach one system to avoid confusion, and keep with the ILCOR guidelines. Stop trying to force your regional variation on it! [[User:Owain.davies|Owain.davies]] 17:18, 17 July 2007 (UTC)
::::'''EMS:''' I think we're using the same words to mean different things. CPR is open airway-check breathing-2 breaths-30 compressions-repeat. You're using CPR to mean 30 compressions-2 breaths-repeat. I'm pretty sure that they want EMS to come before the BLS sequence of ABC. AHA standards ''don't'' vary from ILCOR. If you're interested, I checked in ''Critical Care and Resuscitation'' for the standards from the ANZCR, I checked the RCSA standards, I checked HSFC standards, and I checked the standards for IAHF, and they have all disagreed with your interpretation on this point. Everyone else seems to think that ILCOR's paper says to activate EMS before even starting ABCs for adults. If the founding members of ILCOR agreeing on a single interpretation (with one exception - ERC, but they didn't follow ILCOR on several major points) isn't clear enough for you to accept it, I'm not sure what would be. ''The only regional variation from call first is from the ERC.'' Since you're so committed to ''not'' including regional variations, you should delete those regional notes highlighting ERC protocols.
::::'''AED:''' AED may be part of BLS, and I think that's great. But the treatment recommendations from the CoSTR ''specifically'' say that additional training is required and go on to outline how PAD programs should be set up... which includes training of responders (''Circulation'' Volume 112, Issue 22 Supplement; November 29, 2005; Page 18; 1st column; under ''Treatment Recommendations''). Perhaps in light of that, we should rename the chapter to Primary Assessment & CPR for clarity. But certainly we need to recognize that specific additional training is required, and reflect that in the text.
::::'''2 breaths:''' Keep to 2 breaths - of course. Please delete the ERC variations.
::::''' – [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 18:07, 17 July 2007 (UTC)
:I've had a busy couple of weeks, so i've not been here, but i'm back and i've been doing some checking. I have to say i think you are slightly misguided. CPR is simply the process of compressions and ventilations - it doesn't include the checking. The ILCOR guidelines are clear (and these respected doctors and scientists don't make it up for fun). As for the other societies, i'm having real difficulties finding their guidelines on the internet (so if you have links that would be appreciated), but i'm sceptical - ILCOR is clear and made up of the opinion of its members. You can't reach that sort of consensus with just 1 member agreeing! Until you can present actual evidence, the call for ambulance must stay after the breathing check. [[User:Owain.davies|Owain.davies]] 07:07, 28 July 2007 (UTC)
::The ANZCR standards are published in ''Critical Care and Resuscitation'' (you'll need to do some sort of database search - I used my university database account to gain access.
::The AHA standards are in [[First Aid/Appendix C: Sources]]
::[http://www.resuscitationcouncil.co.za RCSA] standards, [http://www.heartandstroke.ca HSFC] standards (I went from memory, as this is what I teach, but it's certainly published online somewhere), and [http://www.iahf.org IAHF] (in Spanish, but explicitly uses AHA standards) standards are all posted on their websites.
::ERC standards are in [[First Aid/Appendix C: Sources]]
::Of all these member councils, ''only'' ERC calls EMS after opening the airway and checking breathing. Since the ERC didn't go along with ILCOR on several other major points, we can't even assume that their policy on this issue is an attempt to interpret the CoSTR, whereas we can say with certainty that the other councils have done exactly that, and agreed on a single interpretation.
::''' – [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 12:32, 28 July 2007 (UTC)
:::I think we can assume that, given that ILCOR explicitly write it in the text! The sites you give are a bit wooly on detail, so i still say we stick with what is written as the universal algorithm. They didn't write it for fun, and they are highest authority. [[User:Owain.davies|Owain.davies]] 23:18, 29 July 2007 (UTC)
::::We've already been over the universal algorithm issue. The text of the paper contradicts the diagram, and all the founding members of ILCOR except ERC agree with the text - not the diagram. I quoted the text of the paper before, and I'll do it again:
{{TextBox|Lone rescuers of adult victims of cardiac arrest phone the emergency medical services (EMS) system and get an AED ("call first") before starting CPR. The lone rescuer of an unresponsive infant or childvictim was instructed to provide a brief period of CPR before leaving the victim to phone for professional help and an AED ("call fast").}}
{{TextBox|A period of immediate CPR before phoning emergency medical services (EMS) and getting the AED ("call fast") is indicated for most pediatric arrests because they are presumed to be asphyxial or prolonged.}}
::::Again: all the founding members have that exact policy in their standards - only ERC disagrees (as is their right). I don't mind having those differences mentioned; that's why I created {{tlx|FA Regional Note}}. The websites are not "wooly" on detail; I checked them myself - they all agree on this point:
::::*AHA:
{{TextBox|For the unresponsive adult, the lay rescuer sequence of action is as follows:
* The lone rescuer should telephone the emergency response system and retrieve an AED (if available). The rescuer should then return to the victim to begin CPR and use the AED when appropriate.
* The lay rescuer should open the airway and check for normal breathing. If no normal breathing is detected, the rescuer should give 2 rescue breaths.
* Immediately after delivery of the rescue breaths, the rescuer should begin cycles of 30 chest compressions and 2 ventilations and use an AED as soon as it is available.
For the unresponsive infant or child, the lay rescuer sequence for action is as follows:
* The rescuer will open the airway and check for breathing; if no breathing is detected, the rescuer should give 2 breaths that make the chest rise.
* The rescuer should provide 5 cycles (a cycle is 30 compressions and 2 breaths) of CPR (about 2 minutes) before leaving the pediatric victim to phone 911 and get an AED for the child if available. The reasons for immediate provision of CPR are that asphyxial arrest (including primary respiratory arrest) is more common than sudden cardiac arrest in children, and the child is more likely to respond to, or benefit from, the initial CPR.}}
::::*HSFC and IAHF collaborated with AHA on those standards, and simply reference the paper in ''Circulation''. HSFC publishes their standards in print; IAHF standards are in Spanish, but are identical to the AHA standards, because... they ''are'' the AHA standards.
::::*RCSA:
{{TextBox|Check for response. If no response, call 112 (cell) or 10177 (or other Ambulance No.) Ask for CPR instructions if necessary... Tilt head back, lift chin up and look, listen and feel for breathing for up to 10 seconds. If not breathing normally, pinch nose closed, cover mouth with yours and blow until you see the chest rise. Give 2 breaths; each breath should take about 1 second...}}
::::*ANZCR: Is published in ''Critical Care and Resuscitation'', so if you can't take my word for it, you'll have to do a database search somehow.
::::That's clear enough for me. EMS before Airway or Breathing according to ILCOR CoSTR text (although their Universal Algorithm diagram has caused confusion in some), AHA, HSFC, IAHF, RCSA, with ERC dissenting.
::::''' – [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 04:22, 30 July 2007 (UTC)
::::I found a poster I could copy ANZCR standards from:
{{TextBox|Check for Danger... Responsive?... If not, Call for help Call 000... Open Airway...}}
::::''' – [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 04:26, 30 July 2007 (UTC)
I agree that the ANZCR and RCSA standards give to call the ambulance before checking breathing. However, that first ILCOR quote and the AHA one do not lead to believe that. It says to call before commencing CPR, not before checking breathing. CPR is ONLY the performance of breaths of compressions. This therefore backs up the universal algorithm diagram given. As for the AHA, i think they mean the same thing because you wouldn't see that the patient was unresponsive and then immediately leave to get an AED - that verges on criminal negligence. If they were able to breathe on their own and just needed their airway opened, then you've effectively just killed them by going away to get something you didn't need, where the recovery position would have been adequate.
In conclusion the ILCOR text matches the diagram perfectly, and the AHA guidance is either poorly written (because it causes confusion) or just negligent. [[User:Owain.davies|Owain.davies]] 17:36, 30 July 2007 (UTC)
:Your concern about leaving a victim with a closed airway to get an AED and activate EMS is appropriate - first aiders should move the victim into the semi-prone position so that the airway is protected while they're gone. This applies whether they're breathing or not, so checking ''before'' activating EMS is an unnecessary delay.
:The reason I think that ILCOR meant CPR to mean what I said is that they go on to describe it that way. They say, in essence, "If your victim isn't responsive, call 911" and then go on to describe CPR as "Open the airway, check breathing..." The AHA does the same thing (including in the quote you though wasn't clear on that issue), and makes it abundantly clear in their candidate- and instructor-level resources (for example, the ones posted in [[First Aid/Appendix C: Sources]]) The quote I gave from the AHA above says "The lone rescuer should telephone the emergency response system and retrieve an AED (if available). The rescuer should then return to the victim... The lay rescuer should open the airway and check for normal breathing. If no normal breathing is detected, the rescuer should give 2 rescue breaths. Immediately after delivery of the rescue breaths, the rescuer should begin cycles of 30 chest compressions and 2 ventilations." Does that not ''clearly'' mean that they want rescuers to call EMS, then open the airway, check for breathing and (if the victim isn't breathing normally) give 2 rescue breaths?? I think it does mean that.
:The ILCOR text only matches their diagram because you're misreading it that way. Similarly, you've misread the AHA's position; they've endorsed all the programs which have produced the resources I'm going from - resources which make this issue abundantly clear. Again, all the founding members except ERC thought that the CoSTR wanted EMS to be activated before starting ABCs, so the most of the experts responsible for interpreting the document agree with what I've been saying here.
:''' – [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 16:17, 5 August 2007 (UTC)
::Without meaning to be flippant, do you think it is more likely that the highly learned doctors and scientists of ILCOR released this paper with the consistent message which i am reading out of this document (and you still haven't come up with any repudiation of from the ILCOR document itself) or do you think its more likely that this respected, pier reviewed group decided to give two different sets of instructions in their paper! Even less likely is that this is an oversight (as it would have been picked up and ammended as one of the published erratum). I'm sorry Mike, but the ILCOR document follows my interpretation only. If some of the member societies chose to ignore this part (as they chose to ignore other parts) then so be it, but the ILCOR guideline is unequivocal. [[User:Owain.davies|Owain.davies]] 18:19, 7 August 2007 (UTC)
:::Your own words, in discussing how-tos concerning [[w:CPR|CPR on Wikipedia]] (emphasis mine):
{{quote|Strongly Disagree - Wikipedia is not an instruction manual, nor does it need to link to one at the top of the page. '''The first action for anyone witnessing cardiac arrest is calling an ambulance.''' The ambulance controller will talk them through CPR - far more effective than running back to your computer screen. I can't imagine anyone looking up CPR in wikipedia as the first thing they do if someone they know collapses. Owain.davies 09:47, 17 June 2007 (UTC)}}
:::'''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 21:29, 19 September 2007 (UTC)
::::That, of course, is for someone who is not trained in first aid! The question there surrounded whether someone might run to their computer for first aid instructions, rather than the phone when they realise the person is not breathing or not well. The first aider should always be opening the airway and checking breathing before calling an ambulance. This is still the ILCOR position, and isn't likely to change until the next revision (2010 i believe). [[User:Owain.davies|Owain.davies]] 06:48, 20 September 2007 (UTC)
t7saw1h26oflpwktnyj5f5f6gybh7on
Template talk:Closed
11
129782
4640069
3065733
2026-06-13T12:37:32Z
ShakespeareFan00
46022
4640069
wikitext
text/x-wiki
Is anyone else having trouble getting <nowiki>~~~~</nowiki> to work in this template? I think it's the <nowiki><sup></sup></nowiki> tags in my signature - is there any way to get the template to render it properly? ''' – [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 16:35, 5 August 2007 (UTC)
==Stop hand==
I kind of liked the stop hand, how do people feel about bringing it back? [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 11:56, 25 June 2010 (UTC)
:The whole point of the reformat was to address Kayau's issue with the stop hand. Also, it's been tweaked slightly where you want to use {{tlx|closed|reason}} with no space after the pipe, or it preformats the text. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 12:03, 25 June 2010 (UTC)
::Fair enough, but it wasn't a point I agreed with. Maybe we can find some other way to find a compromise, we could turn the background a shade of red? Or instead use something a little softer, like [[File:Emblem-important.svg|40px]]. I will play around and see if I can find something I like. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 12:50, 25 June 2010 (UTC)
::PS The second point might explain why I got confused about some formatting earlier. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 12:52, 25 June 2010 (UTC)
::: How do you like the changes I made? Do you think this could benefit from using a collapsed box? Could make reading discussions still open easier. A collapsed box could also help to emphasize that the discussion has been closed. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 22:24, 25 June 2010 (UTC)
::::I think a collapsed box would be great, using class="collapsed" on a table rather than NavFrame divs. The heading row can show the closing comment with the discussion inside the collapsed zone. A good idea. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 22:27, 25 June 2010 (UTC)
:::: As far as images go I like a bolder warning sign instead of a quieter info symbol. That being said, if this were collapsible I think the point would come across even better. So I say we either make it collapsible or tweak the icon to give the sense of warning instead of information. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 14:58, 28 June 2010 (UTC)
So much for phasing out the NavFrame class. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 12:32, 30 June 2010 (UTC)
== Multiple changes ==
I made multiple changes that I felt were aesthetically good. These are proposals and I kind of expect some of these are going to be reverted or at least opposed. I was being bold. --[[User:Dan Polansky|Dan Polansky]] ([[User talk:Dan Polansky|discuss]] • [[Special:Contributions/Dan Polansky|contribs]]) 17:24, 22 March 2016 (UTC)
i0j2xjbxtnu15wz1hdt9zvohause2ns
Template talk:Featured book
11
131021
4640068
1000044
2026-06-13T12:36:42Z
ShakespeareFan00
46022
4640068
wikitext
text/x-wiki
== Please no animated pictures ==
Hi Darklama,
I'm not a huge fan of the barn star myself, but I think an animated smiley and the like has no place on wikibooks, much less on something like a featured books templates. I feel that it is annoying (in the sense that browser pop-ups and flashy ads are annoying) and deeply unprofessional, not the kind of thing I would like to have associated with our best work. Do you think we might be able to find something else? Thanks! -- [[User:Kowey|Kowey]] 14:48, 20 August 2007 (UTC)
: I'm with Kowey on this. So much so, that I created [[Template:Featured book with star]] for use in my book. I will happily delete that template if something more acceptable comes along. --[[User:Jomegat|Jomegat]] 15:36, 20 August 2007 (UTC)
:Me three. Moving flashing blinking things are for pizza parlours and the like. [[User:Webaware|Webaware]] <sup>[[User_talk:Webaware|talk]]</sup> 15:40, 20 August 2007 (UTC)
: As with the other commentors, I agree that the moving smiley face looks a little cheezy. At the very least the eyes could have been slowed down a bit, because that smiley was reading about a thousand words a minute! ;) But it is true, the barn star is a little unexciting. Perhaps a new image could created from the red, blue and green stack of books (seen on the [[Main Page]] as a link into the Feature Book page). [[Image:Featured_article_books_and_star.svg|100px]] Maybe something like this would be acceptable?--[[User:NickPenguin|NickPenguin]] 04:28, 21 August 2007 (UTC)
:: I have no objection to NickPenguin's star. --[[User:Jomegat|Jomegat]] 12:53, 21 August 2007 (UTC)
:: I am leaning slightly more towards the old star, as it is a little more sober, albeit boring. But insofar as we are not using animations, I also feel this is not something that needs a lot of discussion ;-) -- [[User:Kowey|Kowey]] 13:44, 21 August 2007 (UTC)
:I have no problem with using something else. I was looking at pictures on Commons and came across it and thought it looked like something that would be better then the barnstar, since it was at least book-related. I think we could use something book-related/book-themed. Someone reading a book seemed appropriate for featured books. Maybe a static image of someone reading a book instead? --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 17:17, 21 August 2007 (UTC)
==Featured Book Seal==
:I like the new image, and the bronze type colour is appropriate. --[[User:NickPenguin|NickPenguin]] 01:26, 5 September 2007 (UTC)
== Print Versions ==
I have edited the template to include an inline version of the PDF and Print version floating boxes - as otherwise title pages become very cluttered. I hope that I haven't changed anything - only added stuff, so it shouldn't make any difference, but if there are problems I am sorry.
This can now be used
<nowiki>{{featured book|print=Print Version|PDF=NameWithNoFileExt}}</nowiki>
As with the PDF_version template, the name of the PDF file should be passed without Namespace of file Extension, and as with the Print_version template, this will look either for a subpage with the given argument or for the complete page with this name. (sadly I dont know how to get it to have a guess at these things like the other templates do.)
See [http://en.wikibooks.org/w/index.php?title=Special_Relativity&oldid=988461] versus [http://en.wikibooks.org/w/index.php?title=Special_Relativity&direction=next&oldid=988461] for why.
[[User:Conrad.Irwin|Conrad.Irwin]] 22:42, 11 October 2007 (UTC)
nx89x5axi46824r8gwa99ar976us9mv
Wikibooks talk:Language Learning Difficulty for English Speakers
5
133956
4640089
4463406
2026-06-13T12:59:34Z
ShakespeareFan00
46022
4640089
wikitext
text/x-wiki
{{WikiProject Languages}}
== The alleged source has different information ==
I checked the website from the State Department, and they do have a table similar to this one, but there are many differences, the classification is different, some languages don't appear, others appear with different names, is a mess.
I could link you to the website with the correct information and a color coded table that shows the inconsistencies BUT wikipedia doesn't allow me to save my edit with links to other websites
{{vfd-survived}}
This list is really stupid. And is not accurate. I am a native/bi lingual speaker of English, and I have learnt most of these languages in less time than projected. What gets me is how you can compare that Mongolian is as difficult to learn as Russian or Icelandic? Get out of here. I am a huge language nerd and I had to give up on Mongolian a few times, even with many resources such as books, software, internet, and mongolian friends. Then Japanese is considered hard? I am in a japanese class in USA now and it seems to me that many of the students in the class, who don't speak anything else but English, have an easy time with it. And how can you put French on Category I? Or other Romance languages? I don't have a solution to fix this list, I just offer to delete this rediculous Category of difficulty for langauges for English Speakers, but native English speakers aren't the only ones who use the English wikibooks you know. --[[User:Girdi|Girdi]] 17:49, 16 September 2007 (UTC)
:Actually, I think French is a really easy language. As a matter of fact, even though I'm a native English speaker, I think French is actually easier than German, despite the fact that English and German are more closely related to each other, so I don't understand why you're surprised about the fact that French is in Category I. Anyway, about Japanese, how could you find that easy, even if you are bilingual in an unrelated language (as I am)? Sure, spoken Japanese may be easy, but what about written Japanese? A Japanese learner has to learn all of the Hiragana and Katakana characters, as well as thousands of Kanji symbols. On top of all of this, there's also the very difficult politeness system, too. How could all that NOT be difficult? I must admit, I haven't even tried to learn Japanese because I'm far too busy to be able to learn all of that stuff, but I fail to see how learning all of that could be easy. [[User:Runningfridgesrule|Runningfridgesrule]] ([[User talk:Runningfridgesrule|talk]]) 21:01, 20 March 2008 (UTC)
::I don't think you can really rank languages like this. Especially JUST by similarity. Perhaps instead have each language's difficulties examined in detail, and with other lists of things like, similarity, vocabulary size, pronunciation, complexity, etc. For some people high vocabulary is a problem, for others it is pronunciation. French and Japanese were exceedingly difficult for me, for example, because of all the conjugation. In 2 years of self study and high school classes respectively I still can't put a sentence together. Two weeks of Chinese self-study and I can communicate fairly well, online at least. So this really is a useless page. (By the way, the list doesn't seem to distinguish between Mandarin and Cantonese, both of which could be called "Chinese"--Cantonese is way harder for English speakers than Mandarin is.)--[[Special:Contributions/76.20.29.191|76.20.29.191]] ([[User talk:76.20.29.191|talk]]) 14:23, 24 August 2010 (UTC)
:::As a native Cantonese speaker, I agree with you in that Mandarin is easier than Cantonese because: Cantonese has nine tones as opposed to Mandarin's four, and that the grammar of speaking and writing are completely different. [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 14:23, 24 August 2010 (UTC)
== Agreement with above comment ==
As a teacher of English to students as a second language I have to agree with the above comments. I've never heard of this list before and never heard of Foreign Service Institute which certainly isn't a highly known body of foreign languages. This list seems to aim to compare totally different languages and add an arbitary number of hours for learning to these languages. No language is necessarily difficult - it depends on the individual, the exposure to the language, your ability at learning and learning languages and attributes of the languages like grammar complexities, pronunciation and alphabet. This kind of list is not helpful. [[User:Xania|Xania]] [[Image:Flag_of_Italy.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 00:28, 8 November 2007 (UTC)
I don't understand why it is so difficult for people here to understand what this list is: given a group of native English speakers with language aptitude, how many hours on average would it take to obtain level 3 proficiency as measured by the FSI in the courses that it offers? Since the FSI trains US diplomats, wouldn't it make sense that they know what they are talking about? Just because you have never heard of the FSI means nothing. All these people babbling about motivation, attitude, etc are missing the point. [[Special:Contributions/160.83.32.14|160.83.32.14]] ([[User talk:160.83.32.14|talk]]) 18:24, 5 May 2008 (UTC)
:In theory it seems good. In practice, a few of us find the rankings given very strange. Indonesian, with extremely simple grammar, the same alphabet, spelling that's about about 98% phonetic and mostly simple pronunciation with less phonemes than English, is listed as harder than Spanish, French and other conjugated European languages. That's completely counter to my experience and I've never met anyone with experience of Indonesian who thought it was harder than any other language. --[[User:Chriswaterguy|Chriswaterguy]] ([[User talk:Chriswaterguy|talk]]) 08:12, 12 June 2009 (UTC)
::surely a government agency teaching cadres of people is a rather more relevant datapoint than the personal experience of an anonymous commenter on the Internet? Verifiable sources should count for something on wikipedia. And I honestly believe them re Indonesian because of the vocabulary familiarity in romance languages, and conquering that is by far a greater time sink than a quite modest flexion system of romance languages. [[Special:Contributions/89.164.23.10|89.164.23.10]] ([[User talk:89.164.23.10|discuss]]) 22:59, 2 January 2025 (UTC)
:: I find the rankings strange as well; while we may think they are unrealistic, they '''are''' empirical, having been compiled by a language school, and they are the only broad-sample study by a language instruction body I know of. I would love to see better results, and I would really like to see results that give the learning time of various languages by related languages (I would like to know how long it takes Hindi second language speakers to learn Panjabi, for example); if anybody finds such results, they should post them, make a new page, and re-title this page to indicate that it only contains FSI data. Until we have other data to put here (and I have googled heavily in English, German, and French to find some, to no avail), I say leave the page as it is. -- [[User:mrbenjones|mrbenjones]] ([[User talk:mrbenjones|talk]])17:57, 2 Feb 2010 (UTC)
==In Disagreement with Deletion Request==
I think this webpage should be 're-titled' not deleted, as the FSI course guidelines were created for monolingual native English speakers from the USA, who wanted/needed/desired to learn another foreign language. Also, the hours required to learn a given foreign language, were assumed for an adult, not a person between 1-18 years old. You'll notice that the list of languages by difficulty on the FSI list, reflect the emphasis of the USA State Department bureaucratic needs.
Spoken Japanese is fairly easy to learn for a native English Speaker, I'll agree. However, the FSI takes into account the need to become fluent in writing as well. This is the area, where the Japanese Language becomes relatively more difficulty for a native English speaker, who lacks the background in Kanji (Chinese Characters). Of course, a native Chinese, will find written Japanese much much easier than English. Yes, Hiragana & Katakana, are taught in intro. Japanese, but those thousands Kanji and their various combinations are relatively difficult...especially compared to the say, the Vietnamese Written Language, for a native English language speaking person. Even native adult Chinese (Mandarin) speakers, have relative difficulty with their own native written language compared to other languages which have various types of alphabets: including Korean, Vietnamese, Thai, Arabic.
[[w:Foreign_Service_Institute|FSI]] has existed in it's present form since March 1947. There are ''two other bodies'' that have similar "Language Learning Difficulty for English Speakers":
* [http://www.sil.org/lingualinks/LANGUAGELEARNING/OtherResources/ACTFLProficiencyGuidelines/TheACTFLGuidelines.htm ACTFL (American Council of Teachers of Foreign Languages)]
* [http://www.utm.edu/staff/globeg/ilrhome.shtml ILR (US Government Interagency Language Roundtable)]
Within the USA at least, both of these bodies are very important.
Outside of the USA, these bodies importance would vary a ''lot''. For example, within the country of Vietnam, Australian English standards as 2nd language tend to take more importance, from what I gather. Why? Geography, Business, and Travel reasons is particular. Australian language businesses are meeting the huge demand, by Vietnamese to learn English. Plus, Australians generally find it cheap to live in Vietnam, and a nice environment with cheap beer & beautiful beaches.
In regards to this critique, " No language is necessarily difficult - it depends on the individual, the exposure to the language, your ability at learning and learning languages and attributes of the languages like grammar complexities, pronunciation and alphabet."
I would to this list:
# the amount & depth of ''motivation'' to learn a given language
# Pattern solving skills, knowledge.
# a thick skin, when errors occur in the language learning process.
Now in regards to the claim that 'This list seems to aim to compare totally different languages and add an arbitrary number of hours for learning to these languages,' that is '''false''' on its face, as FSI did extensive testing before arriving at the estimated amount of time it would take to learn a given foreign language for a native English speaker.
In concluding, as this Wikibooks page, is about 'Language Learning Difficulty from a native English Speaker perspective'. I believe we should retain this webpage, but either "Re-title" the topic (e.g.: add the word "native" to the title), '''''or''''' add the rest of the native English speaking world perspective in this topic.
Meaning what does the United Kingdom, the Commonwealth, Ireland, Ghana, Australia, New Zealand, Hong Kong, Singapore and South Africa among others, rank the difficulty to learn another language as an adult/child?
I'm specifically looking for national professional associations/bodies who have done extensive research & have made published studies in this area of question. Not pseudo-knowledge, with hear-say.
Notice, the title of this article does not refer to previously 'bilingual', multi-lingual individuals/people, only to English Speakers (monolingual). <small><span class="autosigned">—Preceding [[w:Wikipedia:Signatures|unsigned]] comment added by [[User:71.106.228.196|71.106.228.196]] ([[User talk:71.106.228.196|discuss]] • [[Special:Contributions/71.106.228.196|contribs]]) </span></small>
:Well, first off, this is not the USA, so don't compare an organisations importance on how important it is in the USA. I also like to comment on your ''does not refer to previously bilingual'' comment. So you are saying '''only native speakers of English''' can use this wiki? Well, I am kinda offended by that since I am more or less bilingual in English. Sometimes my Icelandic helps me with learning languages like say Latin, Norwegian, or Danish, and sometimes my English helps me learning languages such as Spanish and Irish. So to say that this refers to English speakers only, perhaps we should make other pages saying ''Language difficulty for Icelandic speakers? for German speakers? for Russian speakers?'', because I am sure there are many people on the English wikibooks whose native language is not English.
:This organisation you speak of is just one of many I am sure. So to base a book and whole Wikibook-department on some organisation is just wrong. Maybe it is some organisation you love and think is correct. Well, let's take a look at English language for a second. As for me, I prefer writing in British English, I beleive it is the standard English of the world and is correct. But because this is an English wikibook, not based off of any organisation other than Wikimedia, I don't mind at all seeing American, Canadian, Australian, Irish, or New Zealandic English here. Thus basing a policy or a template off of a real life organisation that not everyone agrees with should have no home here on Wikibooks.
:In defence of my comments, it does depend on the individual. Spoken Japanese, for me it is easy but for others it might not be. Spanish would be easy to an Italian-English speaker, but more difficult for a Russian-English speaker maybe. This list is absolutely wrong, if a real organisation really did in fact come up with this list, then I think that organisation is pointless and needs to just shut down. If someone who is interested in learning ''Korean'' for example, why would he want to know first before he learns it if it is difficult or not? And so what if he did, he would come to this page and see, wow Korean is really hard, and then give up on something he would have loved to accomplish, just because someone is saying ''Well, Korean is very difficult and will take lots of time, but Spanish here is easy, and so is Danish. (Which anyone who has studied Danish knows that it is not that easy as Norwegian, I mean come on!)''.
:I think I just covered everything you said. But a Wikibook-Policy note to you. First you must sign your signature, even if you are an IP, for your comment. Second, do not remove the deletion notice from a page! The only time that will come down now is when we come to a decision, whether it be in favour or not, or an administrator takes it down. You might be blocked next time. --[[User:Girdi|Girdi]] ([[User talk:Girdi|talk]]) 14:13, 21 December 2007 (UTC)
What a bunch of blathering nonsense. Who cares how much you dislike the US and whether you think that British English is the "standard of the world" or is "correct" or that "this is not the USA" or any such childish (and linguistically silly) pouting? A European English teacher who has never heard of the Foreign Service Institute should spend more time with the linguists at the Council of Europe, who have dinner with their long-time FSI colleagues at every international conference.
What matters is empirical data. FSI has successfully trained thousands of native (and non-native) English speakers to FSI Level 3. These speakers are tested regularly by multiple native speakers of the target language, who decide which of several level descriptions seems the best match for the student's current proficiency level. When that student reaches a level 3, by consensus of the native judges, it is noted how many hours it took, what the student's background was, and other data.
There is no a priori judgment about language difficulty, just observations of average hours to reach level 3. The language data in the list is the result. The Council of Europe takes this data very seriously, because they have nothing comparable. Gathering data of this sort is harder in Europe because of the fragmentation of efforts and the fact that most Europeans who learn a new language learn one that they have been exposed to sporadically over many years. There are few who start from zero and run to FSI 3 (equivalent) in one straight line, so the data points are few and the variance is huge, making it almost useless except when Europeans are learning non-European languages.
Every serious second-language acquisition researcher, including those at FSI I'm sure, would love to see data based on the COE's "Common European Framework", which could in theory extend the FSI's data into a grid of difficulty from all (or many) L1-L2 language pairs. Such an effort would take decades, though (FSI's data is the result of decades of observation), so until such data is available you can either have your little anti-American tantrums and throw away great data, or grow up and take advantage of it. -- Frank Lin
::I am most amused by your comments: you have totally disregarded most of what Girdi said and just gone on a tirade about American English v. British English. Grow up. He was saying that wikipedia is not purely American and it needs to cater universally to all English speakers.
::I totally agree with Girdi: you cannot put a number of hours on various languages and assess their difficulties. One of my friends has been doing French and German for 6 years, same number of hours per week. He is almost fluent in French and is quite poor at German. Yes, this is anecdote, but it also shows how this system is flawed.
::As for Japanese and Chinese, spoken chinese is one of the easiest languages to learn, having just 4000 potential words. Oh, yes, people who have never even tried to learn it will complain of how hard tones are, but this is a load of rubbish. The use of tones can be developed perfectly after just a week of lessons. In fact, the problem with Japanese and Chinese is their writing systems. But, therefore, putting Korean on the same level is totally wrong: they have just an alphabet.
::Finally, I'd like to make my stance on this subject clear: I think it could be useful to be a rough guide, but I do not think every language should be stamped with it, as it makes it seem like it's the be all and end all.[[Special:Contributions/77.100.4.112|77.100.4.112]] ([[User talk:77.100.4.112|talk]]) 18:10, 3 January 2009 (UTC)
:::The list is meant to show averages, with the exact numbers taken under unusual conditions that will not be replicated outside of intensive study programs. Some people just pick up some languages very fast, and some people just can't pick up a certain language at all, like your friend's difficulties with German. I find Arabic much harder than Japanese, but I'm sure someone reading this page thinks the reverse. It's more useful as a general guide to difficulty for monolingual English speakers, which presumably make up most of the readers of this page as it is written in English. I lay heavy emphasis on "monolingual." If you are learning a third language, you both have more experience of language learning in general and might have already learned a closely related language. Furthermore, this is a guide for native speakers of English. If this were a guide written for native speakers of Japanese, Korean would be listed as an easy language and Danish as hard or very hard. Arabs would find Hebrew easy. There is no such thing, to the best of my knowledge, as a list of languages by absolute difficulty, and such a list would be in any event completely useless to foreign language learners. I'd absolutely love to see more data and especially data on various L1-L2 pairs, but lacking such data this list is much better than gossip, rumors, and blog posts.
:::4000 potential words in spoken Mandarin? I think you meant "syllables". Words can be made up of more than one syllable, even in Chinese (and especially in Mandarin). By that standard, Japanese should be one of the world's easiest languages as it only has ~110 moras. Also, this list was compiled decades ago, when hanja (characters) were a mandatory subject of study and in use, so they had to be learned for Korean, alphabet or not. Korean hanja aren't as ridiculous as Japanese kanji, but on top of difficult pronunciation and Turkish-like grammar it's quite enough to place Korean in the "very difficult" class.
:::My personal experience suggests that the order of magnitude in the list is more or less correct. Japanese is requiring at least double the class time that Spanish required to get to a similar proficiency level, and Arabic is shaping up to require triple or quadruple the class time since it agrees with me less. I wouldn't discourage anyone who wants to learn these beautiful languages, but they should know going in that it will take more work than a language closer to English/written in Latin script, barring some special circumstance (e.g. heritage speaker, prior knowledge of an Altaic/Semitic language, prior proficiency with script), and be prepared for that. That's what this list is for, and no amount of complaining about how it doesn't take into account the altered difficulty of Ottoman Turkish for the English-Korean-Arabic-Urdu quadrilingual or how it was compiled by Americans rather than the proper guardians of the Queen's English (which, the last time I checked, had grammar so similar to the American dialect that users of both could understand each other, so speakers of it should have similar difficulty with exotic grammar) will render the list unfit for that purpose. [[Special:Contributions/98.223.236.66|98.223.236.66]] ([[User talk:98.223.236.66|talk]]) 01:54, 6 February 2010 (UTC)
== How about based on language families? ==
How about just a list of the languages grouped by family (but only one or two levels deep). That would give an idea of how similar languages are without making crazily specific claims about difficulty? [[User:GalaxiaGuy|GalaxiaGuy]] ([[User talk:GalaxiaGuy|talk]]) 14:59, 10 December 2007 (UTC)
:I also agree with Xania's comment. I have already started what you proposed GalaxiaGuy, have a look at [[Manx]] or [[Icelandic]]. I made a template below to navigate to languages in the same category. We should have more like Romance Languages, Germanic Languages, Slavic Languages, Indic Languages, Language Isolates, Altaic (Which exists but needs some renovation), African languages, (not including Afrikaans since that is a Germanic and European language, don't know whos idea was that to group Afrikaans under African languages), and so on. --[[User:Girdi|Girdi]] ([[User talk:Girdi|talk]]) 15:12, 10 December 2007 (UTC)
:: I don't like popularity contests but a list ordering the languages in terms of number of speakers would be more useful for Wikibooks readers. This way it would be easier to find Japanese, Portuguese and Spanish (all near the top of the list) as well as languages like Manx, Breton and Estonian (all nearer the bottom). Putting the languages into order would be difficult as people always disagree because of bilingualism, the difficulty of measuring one's ability and problems determining between a language and a dialect (Croatian, Bosnian, Serbian, for example). [[User:Xania|Xania]] [[Image:Flag_of_Italy.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 00:20, 13 December 2007 (UTC)
::: So can someone delete this rediculous page already and remove the Category templates? I will place a delete tab. --[[User:Girdi|Girdi]] ([[User talk:Girdi|talk]]) 22:22, 20 December 2007 (UTC)
== A word about verifiability ==
You may think this page is total BS; that's fine. But you can't edit it on that basis. This is about the FSI's system, and must therefore reflect it accurately (regardless of whether it's right or wrong). If you want to have objections to it, please make them [[WB:OR|not just your own opinion]], no matter how well-informed or correct it may be. This is basic [[WB:NPOV]] folks.
As a parallel, take a look through the arguments regarding AEDs (an index is [[First Aid/What needs to be done?|here]]) in [[First Aid|my project]]. Most if not all of the contributors agree that AEDs require no training to use, and that certification for that is ridiculous. But we can't put that in because the training organiations (who have the only opinions which matter) think that training is important. Well, that means that according to [[WB:NPOV]] and [[WB:OR]], our hands are tied.
You might not like it, but these form the foundation of this project, and must be followed. I will be watching this page with interest in the future; please make an effort to find a compromise to this, as there is no consensus to delete this page. '''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 13:52, 21 January 2008 (UTC)
:Well its still not right to base other languages difficulties here on an American organisation, that I as a linguist, have never even heard of it. I suggest keep the page but don't place labels on other pages regarding language difficulty. Also, shouldn't this then be moved to Wikipedia? I can't see this as a "book". --[[Special:Contributions/88.149.117.47|88.149.117.47]] ([[User talk:88.149.117.47|talk]]) 02:03, 24 May 2008 (UTC)
I'm amazed at these supposed "teachers" and "linguists" that haven't even heard of the FSI. If you spend any time at all interacting in language learning forums or communities, discussions about the FSI appear continually.
:Maybe in the USA the FSI is respected and considered to be important but as I've said again and again it has no such respect internationally and we should not use a US government scale in Wikibooks.--[[User:Xania|ЗAНИA]] [[Image:Flag_of_Italy.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 12:19, 10 September 2011 (UTC)
== I'm impressed ==
I'm impressed that this page is an almost verbatim quote out of a certain US government website. I think the only saving grace is that US law declares all federal government publications to be public domain.--[[Special:Contributions/75.17.119.118|75.17.119.118]] ([[User talk:75.17.119.118|talk]]) 03:28, 24 February 2008 (UTC)
:It is indeed public domain if it's created by US federal officers - good for the US government. Using that as a basis for a wiki is a great thing, and we should do it at every opportunity. --[[User:Chriswaterguy|Chriswaterguy]] ([[User talk:Chriswaterguy|talk]]) 08:17, 12 June 2009 (UTC)
::The US federal officers must be presiding over a people with an uncanny nack for irregular plural forms, since Swedish fall in category I. Swedish was, allegedly invented by 8th century school teachers as a way to discipline very very naughty children, with the unfortunate effect that those very very naughty children fled overseas and founded the Viking nation, that subsequently ravaged the Early Medieval West, at least that is the most plausible reason for the complicated plural forms of Swedish. As far as I know, immigrants to Sweden that learnt Swedish after having learnt the simple and clear English, would certainly accept my theory right away (Bork Bork!). [[User:Rursus|Rursus]] ([[User talk:Rursus|talk]]) 16:39, 15 August 2009 (UTC)
== Friendly debate ==
I disagree with some of the comments on this page, but defend the right of people to say it. I know some people haven't learnt how a wiki works (signing in, not removing a deletion notice without consensus) but we were all newbies once. Let's keep debating, in constructive way. --[[User:Chriswaterguy|Chriswaterguy]] ([[User talk:Chriswaterguy|talk]]) 08:20, 12 June 2009 (UTC)
== Removal of my contribution re: Esperanto as a bridge language ==
Hi,
[[User:93.193.96.139]] decided to delete a small contribution I made pointing out that Esperanto could be useful as a bridge language for some learners, particularly French language learners. I detailed my rationale for why my addition should be in the article on his talk page. Basically, I referenced http://en.wikipedia.org/wiki/Esperanto#Education and if anybody disputes the factuality of that article section, they should perhaps take it up on the discussion section of that particular article before disputing it on this one.
As such, I have undone his reversion, but feel free to comment here if you disagree with me.
:I disagree with the idea of including Esperanto as a bridge language, mostly because I don't think we should push any language in the article. Esperanto in particular is problematic. If you want to treat Esperanto as any other language, you have to recognize that the FSI hasn't evaluated it, and it doesn't belong on the list as currently structured (though it fits in the title of the article), which it has in common with other languages with many more speakers such as Oriya, Hausa, Tok Pisin, and Malagasy.
:If you want to recognize Esperanto as a special case, then you have to take into mind that it would be the only language on the list with a WP article on its shortcomings.[http://en.wikipedia.org/wiki/Criticism_of_Esperanto] Choosing to learn Esperanto specifically, or any other international auxiliary language is inherently a political statement, in the way that choosing to learn no natural language is; you learn it because you want to speak with like-minded people: Esperantists.
:I won't say that it doesn't belong in an article ''like'' this, I will say that it shouldn't be given any undue weight, which means that it doesn't belong in the header, and as the article is currently structured shouldn't be given consideration (inclusion of a non FSI-evaluated article) that other languages aren't. You could suggest a revision of the book. But I believe the FSI list is in fact what most people are looking for: an assessment of languages English speakers are likely to find most useful, and their difficulty, assessed by consistent standards. I might suggest creating additional pages to the book that go into research on second-language acquisition, and which could appropriately include Esperanto. I might do that myself, at some point. --[[User:Quintucket|Quintucket]] ([[User talk:Quintucket|discuss]] • [[Special:Contributions/Quintucket|contribs]]) 08:10, 23 December 2011 (UTC)
== Good article--but difficulty is different from time needed. ==
I think this is a useful article summarizing data on the time needed for English speakers to attain a high level of proficiency in various languages. It is based on a well-known study done at the FSI many years ago, which is often referenced in articles in the field. My only suggestion is that references to "difficulty" be replaced with time needed. This study is only about time needed to reach that level of proficiency in an intensive program. "Difficulty" is a more complex term and could include such matters as amount of effort needed and the degree of ultimate attainment reached. Since the source study is only about time, I'd suggest sticking with what the study shows.
[[User:David108tx|David108tx]] ([[User talk:David108tx|discuss]] • [[Special:Contributions/David108tx|contribs]]) 15:22, 2 April 2011 (UTC)
== Mongolian==
Is Mongolian really that hard?
The website cited lists it as category II with an asterix.
Why it jumped in difficulty on this website?
:Good point. I've fixed this. Thanks for pointing out this error. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 13:05, 19 March 2012 (UTC)
Hate to burst your bubble, but German is much closer related to English than Italian. (English and German are both West Germanic languages)
: They may be more closely related but that doesn't necessarily mean the language will be easier. German pronunciation, grammar and vocabulary can be an issue for those learning German compared with Italian.--[[User:Xania|ЗAНИA]] [[Image:Flag_of_Estonia.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 11:44, 31 January 2013 (UTC)
== Can we get rid of this? ==
I se that this has been brought up numerous times before, but this categorization system is inaccurate and completely unhelpful. It has even been removed from the website it was originally posted on. I am not going to nominate this page for deletion (and I know it already has been, closed as no consensus), as I see no reason to, but I do suggest that this system be ceased from use. I'm am posting this so the discussion can be brought up again. [[User:Liam987|<span style="color:#808000;border:1px solid;background:#0055A4;text-shadow:0 5px 8px #850000">'''Liam987'''</span>]] 16:58, 14 March 2013 (UTC)
== A question...? ==
Just a question. Where would Yiddish be on this list? I don't care if this doesn't belong here, because nobody will notice this is here anyway. [[User:Shikku27316|Shikku27316]] ([[User talk:Shikku27316|discuss]] • [[Special:Contributions/Shikku27316|contribs]]) 01:16, 5 April 2013 (UTC)
: Don't know for sure but my guess is that it would be either Cat 1 or Cat 2. Of a similar difficulty to German or Polish.--[[User:Xania|ЗAНИA]] [[Image:Flag_of_Estonia.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 19:15, 6 April 2013 (UTC)
::Okay, thank you for responding. I would assume it is Cat 1, because of being like German but simpler. Thanks. [[User:Shikku27316|Shikku27316]] ([[User talk:Shikku27316|discuss]] • [[Special:Contributions/Shikku27316|contribs]]) 02:37, 18 April 2013 (UTC)
== Not the actual FSI list so not a credible reference source ==
This list is not credible. There are no specific reference sources cited other than the mention of the FSI, and many of the languages listed are not rated by the FSI or contained in its list. One of these is Irish, which I'm currently researching: it has been included here as a category II language but the FSI makes no reference to the Irish language anywhere.
==seconding this point. I saw the difficulty ranking from another page and came to see how it worked in wikibooks. I was surprised tho that this is not the actual FSI ranking, Russian is in category II for English speakers??? what. according to this list the only languages which are difficult for english speakers are sino-tibetan and mongolian or japonic. this needs to be revised at best. most slavic languages rank category III in the III category system. there's also a four category system and apparently now a V.
this is a link to an FSI page http://www.effectivelanguagelearning.com/language-guide/language-difficulty
2dkf7g490bifwoykelx80szfxzl9e4y
Template talk:PDF version
11
136521
4640054
3240220
2026-06-13T12:22:57Z
ShakespeareFan00
46022
4640054
wikitext
text/x-wiki
{{permprot}}
==Vapirware==
What is vapirware, and why is it used here? The term gets 3ghits excluding wikibooks and mirrors. If it is to remind people to include the link, should a more useful message be printed, I assumed it was vandalism! [[User:Conrad.Irwin|Conrad.Irwin]] 22:00, 11 October 2007 (UTC)
:Not vandalism, just bad spelling. [[w:Vaporware|Vaporware]]. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span color="midnightblue">dark</span>]][[User_talk:Darklama|<span color="green">lama</span>]]</span> 22:13, 11 October 2007 (UTC)
::How is PDF vaporware? It's not even software, it's an open standardized document format as long as you use PDF/A and not the Adobe version. Adobe Acrobat/Reader is certainly bloatware and dangerous (closed source, vulnerable, spyware, crash-prone), but not vaporware either.--[[Special:Contributions/88.74.219.203|88.74.219.203]] ([[User talk:88.74.219.203|discuss]]) 14:07, 5 March 2011 (UTC)
These ''vaporware'' or whatever shouldn't figure into [[:Category:Books with PDF version]] because it's false. On the French Wikibooks we used the same system (#ifexist) to automatically categorize them into [[:Category:Books with requested PDF version]]. And I'm frustrated to see that on this highly protected template. [[User:JackPotte|JackPotte]] ([[User talk:JackPotte|discuss]] • [[Special:Contributions/JackPotte|contribs]]) 01:40, 1 February 2016 (UTC)
==Limiting PDF Access to authenticated users==
In a different wiki, How can I make the pdf files accessible only to authenticated users? <br>
--[[User:Abercrombie|Abercrombie]] ([[User talk:Abercrombie|talk]]) 21:56, 6 December 2007 (UTC)
:You should modify your LocalSettings.php. [[User:JackPotte|JackPotte]] ([[User talk:JackPotte|discuss]] • [[Special:Contributions/JackPotte|contribs]]) 01:40, 1 February 2016 (UTC)
== Link to instructions for creating a new, more up-to-date PDF? ==
PDF versions get out-of-date quickly. In the long run, we want automatic generation of PDFs--is that in the queue? In the meantime, maybe it's worth linking to the [[Help:Print_versions#PDF_versions|instructions]] for creating/updating PDFs? [[User:Jodi.a.schneider|Jodi.a.schneider]] ([[User talk:Jodi.a.schneider|discuss]] • [[Special:Contributions/Jodi.a.schneider|contribs]]) 11:00, 14 March 2011 (UTC)
:[[Help:Print_versions#PDF_versions]] is linked from this template to create them manually.
:There is an automatic version in [[special:book]] but it can be buggy, especially with the table tags. [[User:JackPotte|JackPotte]] ([[User talk:JackPotte|discuss]] • [[Special:Contributions/JackPotte|contribs]]) 01:40, 1 February 2016 (UTC)
You can to PDFs with table tagss using the MediaWiki to LaTeX tools I wrote. Currently 75 percent of the PDF available on the english wikibooks were created with it. Just tell me if you need an updated pdf version. Currently you can get it for a well know commercial operating system as well as a source code for linux, a binary will also be included in the next release of Ubuntu --[[User:Dirk Hünniger|Dirk Hünniger]] ([[User talk:Dirk Hünniger|discuss]] • [[Special:Contributions/Dirk Hünniger|contribs]]) 16:41, 1 February 2016 (UTC)
== Spacing error ==
[[Parasitic Insects, Mites and Ticks: Genera of Medical and Veterinary Importance]]<br />
On this page, the template outputs "A PDF versionof Parasitic Insects, Mites and Ticks"<br />
with "versionof" instead of "versionof".<br />
[[User:Varlaam|Varlaam]] ([[User talk:Varlaam|discuss]] • [[Special:Contributions/Varlaam|contribs]]) 19:30, 30 June 2017 (UTC)
:{{done}} [[User:JackPotte|JackPotte]] ([[User talk:JackPotte|discuss]] • [[Special:Contributions/JackPotte|contribs]]) 21:01, 30 June 2017 (UTC)
34eqd5zp4rn63kd4tau9vy58pia3ym3
4640056
4640054
2026-06-13T12:24:21Z
ShakespeareFan00
46022
4640056
wikitext
text/x-wiki
{{permprot}}
==Vapirware==
What is vapirware, and why is it used here? The term gets 3ghits excluding wikibooks and mirrors. If it is to remind people to include the link, should a more useful message be printed, I assumed it was vandalism! [[User:Conrad.Irwin|Conrad.Irwin]] 22:00, 11 October 2007 (UTC)
:Not vandalism, just bad spelling. [[w:Vaporware|Vaporware]]. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 22:13, 11 October 2007 (UTC)
::How is PDF vaporware? It's not even software, it's an open standardized document format as long as you use PDF/A and not the Adobe version. Adobe Acrobat/Reader is certainly bloatware and dangerous (closed source, vulnerable, spyware, crash-prone), but not vaporware either.--[[Special:Contributions/88.74.219.203|88.74.219.203]] ([[User talk:88.74.219.203|discuss]]) 14:07, 5 March 2011 (UTC)
These ''vaporware'' or whatever shouldn't figure into [[:Category:Books with PDF version]] because it's false. On the French Wikibooks we used the same system (#ifexist) to automatically categorize them into [[:Category:Books with requested PDF version]]. And I'm frustrated to see that on this highly protected template. [[User:JackPotte|JackPotte]] ([[User talk:JackPotte|discuss]] • [[Special:Contributions/JackPotte|contribs]]) 01:40, 1 February 2016 (UTC)
==Limiting PDF Access to authenticated users==
In a different wiki, How can I make the pdf files accessible only to authenticated users? <br>
--[[User:Abercrombie|Abercrombie]] ([[User talk:Abercrombie|talk]]) 21:56, 6 December 2007 (UTC)
:You should modify your LocalSettings.php. [[User:JackPotte|JackPotte]] ([[User talk:JackPotte|discuss]] • [[Special:Contributions/JackPotte|contribs]]) 01:40, 1 February 2016 (UTC)
== Link to instructions for creating a new, more up-to-date PDF? ==
PDF versions get out-of-date quickly. In the long run, we want automatic generation of PDFs--is that in the queue? In the meantime, maybe it's worth linking to the [[Help:Print_versions#PDF_versions|instructions]] for creating/updating PDFs? [[User:Jodi.a.schneider|Jodi.a.schneider]] ([[User talk:Jodi.a.schneider|discuss]] • [[Special:Contributions/Jodi.a.schneider|contribs]]) 11:00, 14 March 2011 (UTC)
:[[Help:Print_versions#PDF_versions]] is linked from this template to create them manually.
:There is an automatic version in [[special:book]] but it can be buggy, especially with the table tags. [[User:JackPotte|JackPotte]] ([[User talk:JackPotte|discuss]] • [[Special:Contributions/JackPotte|contribs]]) 01:40, 1 February 2016 (UTC)
You can to PDFs with table tagss using the MediaWiki to LaTeX tools I wrote. Currently 75 percent of the PDF available on the english wikibooks were created with it. Just tell me if you need an updated pdf version. Currently you can get it for a well know commercial operating system as well as a source code for linux, a binary will also be included in the next release of Ubuntu --[[User:Dirk Hünniger|Dirk Hünniger]] ([[User talk:Dirk Hünniger|discuss]] • [[Special:Contributions/Dirk Hünniger|contribs]]) 16:41, 1 February 2016 (UTC)
== Spacing error ==
[[Parasitic Insects, Mites and Ticks: Genera of Medical and Veterinary Importance]]<br />
On this page, the template outputs "A PDF versionof Parasitic Insects, Mites and Ticks"<br />
with "versionof" instead of "versionof".<br />
[[User:Varlaam|Varlaam]] ([[User talk:Varlaam|discuss]] • [[Special:Contributions/Varlaam|contribs]]) 19:30, 30 June 2017 (UTC)
:{{done}} [[User:JackPotte|JackPotte]] ([[User talk:JackPotte|discuss]] • [[Special:Contributions/JackPotte|contribs]]) 21:01, 30 June 2017 (UTC)
6xfhjd8669gahfcepzwndn0pmz9bnpc
Talk:History of Islam/Modern period/Azerbaijan
1
138665
4640193
1018747
2026-06-13T16:17:31Z
ShakespeareFan00
46022
4640193
wikitext
text/x-wiki
History merge from [[w:Azerbaijan]] required. '''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 17:03, 2 November 2007 (UTC)
{{Import failed|Azerbaijan|'''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 17:50, 2 November 2007 (UTC)}}
onzehtcn4a3pqeslj5bd8fsjiuae9ru
Talk:History of Islam/Modern period/Bahrain
1
138667
4640201
1018752
2026-06-13T16:32:04Z
ShakespeareFan00
46022
4640201
wikitext
text/x-wiki
History merge from [[w:Bahrain]] required. '''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 17:04, 2 November 2007 (UTC)
{{Import failed|Bahrain|sig='''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 17:51, 2 November 2007 (UTC)}}
q38gdv3mbyaf1zyr9hj22vt77haw5h5
Talk:History of Islam/Modern period/Bosnia and Herzegovina
1
138671
4640203
1132399
2026-06-13T16:33:10Z
ShakespeareFan00
46022
4640203
wikitext
text/x-wiki
History merge from [[w:Bosnia and Herzegovina]] required. '''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 17:06, 2 November 2007 (UTC)
{{Import failed|Bosnia and Herzegovina|sig='''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 17:53, 2 November 2007 (UTC)}}
r3jh18xphcxxtzwrdfbi9d3jwmnb9ux
Talk:History of Islam/Modern period/Comoros
1
138679
4640204
1018771
2026-06-13T16:33:45Z
ShakespeareFan00
46022
4640204
wikitext
text/x-wiki
History merge from [[w:Comoros]] required. '''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 17:10, 2 November 2007 (UTC)
{{Import failed|Comoros|sig='''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 17:59, 2 November 2007 (UTC)}}
kolu0xiv68uprrqogu6uaaplzuw96a1
Talk:History of Islam/Modern period/Eritrea
1
138683
4640202
1018769
2026-06-13T16:32:37Z
ShakespeareFan00
46022
4640202
wikitext
text/x-wiki
History merge from [[w:Eritrea]] required. '''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 17:12, 2 November 2007 (UTC)
{{Import failed|Eritrea|sig='''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 17:58, 2 November 2007 (UTC)}}
m2avyri32jiud1lyocb7bqjguwlgfk7
Talk:History of Islam/Modern period/The Gambia
1
138687
4640183
1132401
2026-06-13T16:10:12Z
ShakespeareFan00
46022
4640183
wikitext
text/x-wiki
History merge from [[w:The Gambia]] required. '''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 17:14, 2 November 2007 (UTC)
{{Import failed|The Gambia|sig='''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 17:57, 2 November 2007 (UTC)}}
dbtoonq1gux8e78p1k5ht13bktq2zgp
Talk:History of Islam/Modern period/Indonesia
1
138691
4640180
3558708
2026-06-13T16:08:11Z
ShakespeareFan00
46022
4640180
wikitext
text/x-wiki
History merge from [[w:Indonesia]] required. '''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 17:15, 2 November 2007 (UTC)
{{Import failed|Indonesia|sig='''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 17:57, 2 November 2007 (UTC)}}
7y07cz5mpjrs0al156c2j8r9u50lme4
Talk:History of Islam/Modern period/Pakistan
1
138693
4640178
1018763
2026-06-13T16:06:57Z
ShakespeareFan00
46022
4640178
wikitext
text/x-wiki
History merge from [[w:Pakistan]] required. '''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 17:16, 2 November 2007 (UTC)
{{Import failed|Pakistan|sig='''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 17:56, 2 November 2007 (UTC)}}
oiwk4unm70hjfd9fgtf6kbdumsda2b7
Talk:History of Islam/Modern period/Saudi Arabia
1
138695
4640177
1132402
2026-06-13T16:06:21Z
ShakespeareFan00
46022
4640177
wikitext
text/x-wiki
History merge from [[w:Saudi Arabia]] required. '''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 17:17, 2 November 2007 (UTC)
{{Import failed|Saudi Arabia|sig='''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 17:56, 2 November 2007 (UTC)}}
timpd7pn45w3aur960qam91dnj3ay9m
Talk:History of Islam/Modern period/Recent history
1
138702
4640184
4114548
2026-06-13T16:10:49Z
ShakespeareFan00
46022
4640184
wikitext
text/x-wiki
History merge from [[w:Muslim_world]] required. '''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 17:22, 2 November 2007 (UTC)
{{Import failed|Muslim_world|sig='''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 17:54, 2 November 2007 (UTC)}}
j97pfrd27kb8e83xghnkunw1uzjbskp
Talk:History of Islam/Modern period/Political Fault Lines
1
138704
4640179
1132405
2026-06-13T16:07:34Z
ShakespeareFan00
46022
4640179
wikitext
text/x-wiki
History merge from [[w:Muslim world]] required. '''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 17:23, 2 November 2007 (UTC)
{{Import failed|Muslim world|sig='''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 17:53, 2 November 2007 (UTC)}}
2ypu8x649z26qrmcr63meorcu2bbyl6
User talk:Girdi
3
138887
4640156
3225357
2026-06-13T15:43:29Z
ShakespeareFan00
46022
4640156
wikitext
text/x-wiki
Welcome to my '''Talk Page'''. Click "Add Topic" above to leave me a message, have a discussion, talk about something - whether it be off topic or about Wikipedia, or anything else you'd like to say. I love getting messages so drop me a line!
== Question ==
I tried creating a quiz for myself but it doesn't seem to be working. Would you mind finding the problem for me? Thanks!
<quiz display="simple">
{Question 1
|type="[]"}
+ Choice 1 (correct choice)
||<span style="color:green">Explanation for Choice 1</span>
- Choice 2
||<span style="color:red">Explanation for Choice 2</span>
- Choice 3
||<span style="color:red">Explanation for Choice 3</span>
- Choice 4
||<span style="color:red">Explanation for Choice 4</span>
</quiz>
: It seems to be working fine. Make sure you include |type="()"} if you want to have button. Right now it is multiple selection for a possible answer. What exact problem are you having though? --[[User:Girdi|Girdi]] ([[User talk:Girdi|discuss]] • [[Special:Contributions/Girdi|contribs]]) 12:19, 8 February 2011 (UTC)
::Oh... must be something to do with show preview. Whoops. Thanks [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 15:45, 10 February 2011 (UTC)
:::The submit button doesn't work until the page is saved. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 15:58, 10 February 2011 (UTC)
== Error in Icelandic/Grammar/Nouns ==
Hello,
I realize that this isn't your mistake, and that you've not edited in nearly a year, but I'm pretty sure you're the best person to tell this to. In the Icelandic Nouns section on [[Icelandic/Grammar/Nouns#Adjective_Placement|adjective placement]], the second example's text states that when the suffixed definite article is used, the adjective should follow the noun; but in the example itself, the adjective is first. I looked through the history, and this ''was'' changed from an earlier version; but I don't think I should change it back, since the declension was also modified in the same edit, and I know next to nothing about Icelandic. :) Hope you can fix it. [[Special:Contributions/50.0.244.207|50.0.244.207]] ([[User talk:50.0.244.207|discuss]]) 04:21, 21 August 2012 (UTC)
: Hi, you should ask an admin as you are right, I have and plan on staying inactive for some time. I still wear my Wikibooks t-shirt though in public :) --[[User:Girdi|Girdi]] ([[User talk:Girdi|discuss]] • [[Special:Contributions/Girdi|contribs]]) 07:02, 21 August 2012 (UTC)
::Oh, alright. If you don't mind, could you recommend an admin that would know the proper Icelandic syntax? I'm new to Wikibooks (I spend most of my time on Wikipedia), so I've no idea where to report this. Before coming here I looked for an error report section of the bulletin board, but couldn't find one. [[Special:Contributions/50.0.244.207|50.0.244.207]] ([[User talk:50.0.244.207|discuss]]) 19:07, 21 August 2012 (UTC)
Update...soon? :)
Hi!
I didn't know how to conctact you but...are you going to update the Chechen lessons? I'm interested in them, they were the only lessons I found on internet and they are well structured! :)
Thank you
== Hello there! ==
Are you still active here? If so, why don't you do something, like, say, updating the Chechen language Wikibook?
== Greetings ==
Hi, Johann!
My name is Hamzat Aslahanov, I'm Chechen from Dishny teip.
Its interesting for me to see such a person as You. You pronounce Chechen words without any eccent, as I can see in pronontiations section in Wiki. You speak it very well.
I remember You speak Faroese, why its not presented in your language section on the right of page ?
rx9pbu2vpv6gx9wnzpuwc89cwnuose3
Wikibooks:Reading room/Administrative Assistance
4
140081
4640272
4640032
2026-06-14T08:10:25Z
ArchiverBot
1227662
Bot: Archiving 1 thread (older than 14 days) to [[Wikibooks:Reading room/Administrative Assistance/Archives/2026/May]]
4640272
wikitext
text/x-wiki
__NEWSECTIONLINK__ {{Discussion Rooms}} {{shortcut|WB:AN|WB:AA}} {{TOC left}}
{{User:MiszaBot/config
|archive = Wikibooks:Reading room/Administrative Assistance/Archives/%(year)d/%(monthname)s
|algo = old(14d)
|counter = 1
|minthreadstoarchive = 1
|minthreadsleft = 1
}}
{{ombox|type=content|text='''To request a rename or usurpation''', go to the global request page at Meta [[meta:SRUC|here]].<br />''Please do not post those requests here!''}}
{{Clear}}
Welcome to the '''Administrative Assistance reading room'''. You can request assistance from [[WB:ADMIN|administrators]] for handling a variety of problems here and alert them about problems which may require special actions not normally used during regular content editing. Please be patient as administrators are often quite busy with either their own projects or trying to perform general maintenance and cleanup.
You can deal with most vandalism yourself: [[Wikibooks:Dealing with vandalism|fix it]], then [[Wikibooks:Templates/User_notices|warn the user]]. If there is repeated vandalism by one user, lots of vandalism on a single page, or vandalism from many users, tell an admin here, or in [irc://irc.freenode.net/wikibooks #wikibooks] (say <code>!admin</code> to get attention).
For more general questions and assistance that doesn't require an administrator, please use the [[WB:HELP|Assistance Reading Room]].
{{clear}}
[[Category:Reading room]]
== GSTFILLING reported by MathXplore ==
* {{userlinks|GSTFILLING}}
Spam <!-- USERREPORTED:/GSTFILLING/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:29, 5 June 2026 (UTC)
:{{done}} —[[User:Atcovi|Atcovi]] [[User talk:Atcovi|(Talk]] - [[Special:Contributions/Atcovi|Contribs)]] 12:45, 5 June 2026 (UTC)
== [[:Category:Wikibooks fully protected edit requests]] needs a clean out ==
Has several unhandled requests dating back to December. Thanks. [[User:Pppery|Pppery]] ([[User talk:Pppery|discuss]] • [[Special:Contributions/Pppery|contribs]]) 04:56, 7 June 2026 (UTC)
== ~2026-29002-30 reported by MathXplore ==
* {{userlinks|~2026-29002-30}}
Abusing multiple accounts: [[Special:Contributions/Babywacko]] <!-- USERREPORTED:/~2026-29002-30/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:20, 9 June 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 15:42, 9 June 2026 (UTC)
== ShaneWarne1 reported by MathXplore ==
* {{userlinks|ShaneWarne1}}
Spam <!-- USERREPORTED:/ShaneWarne1/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:45, 11 June 2026 (UTC)
: Globally locked by M7. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 22:12, 11 June 2026 (UTC)
== Nsysgroup reported by MathXplore ==
* {{userlinks|Nsysgroup}}
Spam <!-- USERREPORTED:/Nsysgroup/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:36, 11 June 2026 (UTC)
:{{done}} by [[User:Codename Noreste|Codename Noreste]] —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 00:21, 13 June 2026 (UTC)
jyau2erdkjfu60k1zck1s12c4trt14n
Template talk:Template doc
11
143236
4640064
4415606
2026-06-13T12:34:37Z
ShakespeareFan00
46022
4640064
wikitext
text/x-wiki
== Purpose ==
This template is intented to be used to visually harmonize the documentation in the various templates using the [[WP:DOC]] /doc subpage paradigm. <span class="user-sig user-Quarl"><i>—[[User:Quarl|Quarl]] <sup>([[User Talk:Quarl|talk]])</sup> <small>2007-03-09 04:19Z</small></i></span>
: Thank you, nice work. -- [[User:Earle Martin|Earle Martin]] [<sup>[[User_talk:Earle Martin|t]]</sup>/<sub>[[Special:Contributions/Earle Martin|c]]</sub>] 13:17, 17 March 2007 (UTC)
: I really like it! It does indeed appear visually appealing. --[[User talk:Iamunknown|Iamunknown]] 18:53, 16 April 2007 (UTC)
::Excellent man! --'''''[[User:Andersmusician|<span style="color:green">Andersmusician</span>]] [[user_talk:Andersmusician|<span style="color:red; font-size:medium">$</span>]]''''' 20:46, 15 May 2007 (UTC)
::: '''This really is a good idea'''. It's alot easier to read the template if the "doc" section is split onto its own subpage. [[User:Timneu22|Timneu22]] 11:33, 16 May 2007 (UTC)
== Deprecates old way? ==
Does this mean that <code><nowiki>{{{{FULLPAGENAME}}/doc}}</nowiki></code> is totally deprecated? — [[User:Omegatron|Omegatron]] 23:44, 23 July 2007 (UTC)
:Yes. This new solution is much better and looks much better. --[[User:Davidgothberg|David Göthberg]] 07:42, 18 September 2007 (UTC)
== Editprotected to finish merge tagging, and to fork template into template code and doc page per its own purpose (d'oh). ==
{{tl|Editprotected}}
Please add:
<pre>
<noinclude>{{Mergeto:Documentation|{{subst:DATE}}}}</noinclude>
</pre>
to the top of the documentation of this template (i.e. under the template code itself); someone has created and is deploying another system of template documentation templates, and now we have a sensless situation of competition between two sets of templates that functionally do precisely the same thing. I find it unbelievable ironic that this template's own documentation is not using its own advice and having the template and the documentation separated, thus necessitating this editprotected request. SO, please also fork this page into the template code and the documentation /doc subpage so this won't ever have to be editprotected for any reason other than changes to the template's actual code. — <b><span style="font-family:Tahoma;">[[User:SMcCandlish|SMcCandlish]]</span></b> [[[User talk:SMcCandlish|talk]]] [[[Special:Contributions/SMcCandlish|cont]]] <b>‹(-¿-)›</b> 05:17, 2 October 2007 (UTC)
:There ''is'' a doc page. For clarity I have split up the code into an includeonly and noinclude part, so that the latter is standard.--[[User:Patrick|Patrick]] 08:06, 2 October 2007 (UTC)
==Merge Template:Documentation and Template:Template doc==
{{Discussion top}}
The result was '''merge''' into [[Template:Documentation]] with the merge talk page designated as [[Template talk:Documentation]]. -- [[User:ConradPino|Conrad T. Pino]] 07:23, 6 November 2007 (UTC)
Proposed by [[User:SMcCandlish]].
:'''Merge to <s>{{tl|Template doc}}</s> {{tl|Documentation}}''': There should probably be only one of these templates, and I prefer {{tl|Template doc}}, since it is slightly more compact, it doesn't include confusing jargon (i.e., "transcluded"), and has the ability to "preload" a doc page (very nice feature). However, I do like the {{tl|documentation}} namespace better, since this doesn't need to be used exclusively with templates. <tt>+[[User:Mwtoews|<span style="color:#008000">m</span>]][[User talk:Mwtoews<span style="color:#6B3FA0">|t</span>]]</tt> 07:58, 7 October 2007 (UTC)
::I did not propose it, I just fixed an error in the tag. Anyway, I support it. Preload works for both templates.--[[User:Patrick|Patrick]] 09:32, 7 October 2007 (UTC)
:::(sorry ... fixed the nominator) <tt>+[[User:Mwtoews|<span style="color:#008000">m</span>]][[User talk:Mwtoews|<span style="color:#6B3FA0">t</span>]]</tt> 18:21, 7 October 2007 (UTC)
:::: See [[User:Pathoschild/Sandbox|my sandbox]] for a comparison between {{[[template:template doc|template doc]]}} and {{[[template:documentation|documentation]]}} (essentially a list of improvements). —<small>{[[WP:ADMIN|admin]]} [[User talk:Pathoschild/s|Pathoschild]] 04:04:00, 09 October 2007 (UTC)</small>
:::::This discussion seems rather stagnant. I think {{tl|documentation}} is clearer and it doesn't use an abbreviation. Also, {{tl|documentation}} uses better code. I vote to merge {{tl|template doc}} into {{tl|documentation}}. --[[User:MZMcBride|MZMcBride]] 18:54, 13 October 2007 (UTC)
::::::'''Agree''' — we can always merge any missing features from {{tl|template doc}} in the future. So I guess convert {{tl|template doc}} into a redirect to {{tl|documentation}} ? <tt>+[[User:Mwtoews|<span style="color:#008000">m</span>]][[User talk:Mwtoews|<span style="color:#6B3FA0">t</span>]]</tt> 19:43, 13 October 2007 (UTC)
:'''support''' We need only one way to do this. --[[User:Gadget850|Gadget850 ( Ed)]] 17:21, 22 October 2007 (UTC)
:'''Support''': I agree with the proposal to keep {{tl|Documentation}} and remove the other variant for aesthetic reasons as well as functional reasons. I have worked with all the succession templates and have been adding /doc pages to all of them, and after considerable thought, enjoy the first option much better, although I agree that the second does have some handy features. Keep the pretty one, merge the good features of the ugly one. 'Tis all!<br><span style="font-size:90%;">–'''<span style="color:Seagreen">[[User:KuatofKDY|Darius von Whaleyland]],</span> [[User talk:KuatofKDY|<span style="color:Forestgreen">Great Khan</span>]] [[Special:Contributions/KuatofKDY|<span style="color:Lightsalmon">of the Barbarian Horde</span>]]'''</span> 23:48, 22 October 2007 (UTC)
:'''Support''': Keep it at {{tl|Documentation}}—the less templates for this purpose, the better. Perhaps there can be a <nowiki>{{Documentation/template}}</nowiki> subpage option for specifying the template namespace (this method could also be applied to other name spaces). Or this can be built into the original, provided someone here has strong Wiki-fu to alter the template display based on its namespace. —'''[[User:Down10|Down10]]''' <sup style="font-size:75%;margin-top:-2px;">[[User talk:Down10|TA]][[Special:Contributions/Down10|CO]]</sup> 21:51, 3 November 2007 (UTC)
:'''Support''': Keep {{Tl|Documentation}}. No need for multiple methods provided the function is equivalent. I've been reading both and finding significant behavior differences indicating lengthy discussion. Where and how shall we discuss the issues and determine consensus? – [[User:ConradPino|Conrad T. Pino]] 16:54, 4 November 2007 (UTC)
'''Closure''': The merge was proposed [[2007-10-07]] and there are no dissents. Shall the close the proposal and move on to implentation? – [[User:ConradPino|Conrad T. Pino]] 17:06, 4 November 2007 (UTC)
{{Discussion bottom}}
== Parameters ==
What is the purpose of the two parameters <nowiki>{{{1}}} and {{{2}}}</nowiki>? [[User:16@r|16@r]] 23:09, 7 October 2007 (UTC)
:There is only one: 1 = name of the documentation page.--[[User:Patrick|Patrick]] 23:19, 7 October 2007 (UTC)
== This template's heading ==
This template previously implemented the classic "(icon) Template documentation" heading but now implements the default {{tl|Documentation}} heading. This change is part of the [[Template talk:Documentation#{{Documentation, template}}'s final fate|{{Documentation, template}}'s final fate]] discussion. – [[User:ConradPino|Conrad T. Pino]] ([[User talk:ConradPino|talk]]) 18:51, 18 November 2007 (UTC)
==Broken?==
I haven't been following the merge discussion, but I've noticed that yesterday's changes to this template appear to have broken it. See for example [[Template:Citation]] or [[Template:Infobox Football biography]] - doc subpages exist but aren't displayed properly any more. If this isn't a transitory thing I'd suggest reverting to the last functional version of this template. [[User:Bryan Derksen|Bryan Derksen]] ([[User talk:Bryan Derksen|talk]]) 09:44, 25 November 2007 (UTC)
:I made a quick fix. Works at least for regular cases now.--[[User:Patrick|Patrick]] ([[User talk:Patrick|talk]]) 11:38, 25 November 2007 (UTC)
i5qiuuoexskbkr5ner00tfbes3jgpff
Template talk:Click
11
143367
4640070
1420309
2026-06-13T12:39:13Z
ShakespeareFan00
46022
4640070
wikitext
text/x-wiki
Hello!
Please add a link to [[:pt:Predefinição:Click]] in your template.
--[[Special:Contributions/200.17.211.142|200.17.211.142]] ([[User talk:200.17.211.142|talk]]) 23:51, 20 December 2007 (UTC)
[[Image:Yes_check.svg|15px| ]] '''Done''' thanks --[[User:Herbythyme|<span style="color:green">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 14:56, 14 January 2008 (UTC)
Please also add [[:th:แม่แบบ:Click]] into this template. Thanks ! --[[Special:Contributions/125.25.19.142|125.25.19.142]] ([[User talk:125.25.19.142|talk]]) 14:23, 6 March 2008 (UTC)
:[[Image:Yes_check.svg|15px| ]] '''Done''' '''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 15:07, 6 March 2008 (UTC)
== Deprecated? ==
[[File:Wikibooks-logo.svg|60px|right|link=Main Page]]
It seems that this template has been deprecated by a software feature. Images can now be linked to using the <code>link</code> variable. If no-one objects I suggest we replace transclusions with simple file tags and let the template go the way of the Vogons. --[[User:Swift|Swift]] ([[User talk:Swift|talk]]) 06:04, 20 February 2009 (UTC)
: I don't think this template is completely deprecated yet. Using this template you can override the title attribute, which often is shown in the form of a tooltip in graphical browsers. This currently cannot be done when using the link option with File.
[[File:Wikibooks-logo.svg|60px|frameless|Example]]
[[File:Wikibooks-logo.svg|60px|frameless|link=Main Page|Example]]
[[File:Wikibooks-logo.svg|60px|frameless|link=Main Page|alt=Example]]
{{click|image=Wikibooks-logo.svg|size=60px|type=frameless|link=Main Page|alt=Example}}
: --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 13:09, 20 February 2009 (UTC)
:: Good catch. This actually exists since [[mw:Help:Images|MW 1.14]]. The image "alt" attribute ''is'' set, but not the link's "title" attribute, which is what the template does. I guess this may just be poor choice of naming for the template variable.
:: The title-setting feature is only used on [[Template:Sisterlinks]]. --[[User:Swift|Swift]] ([[User talk:Swift|talk]]) 13:58, 20 February 2009 (UTC)
::: The alt and title attributes are set by using the description field for images when not using a file/image "type" that shows a description. I was just trying to use similar template argument names as used with File. Template.Sisterlinks isn't the only place the title-setting feature is used. I think there are many others. [[Template:Userbox2]] is probably the latest to do so. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 14:31, 20 February 2009 (UTC)
249vcn8vji0q2jrddmhs0s9ras14h6e
Wikibooks talk:Reading Levels
5
146090
4640084
4473116
2026-06-13T12:54:23Z
ShakespeareFan00
46022
4640084
wikitext
text/x-wiki
== Levels ==
I'd like to suggest that we change the level designations for this guideline to something more broad. Assigning age groups isn't always the best approach. If we remove the grade-based levels to some other wording like beginner or intermediate I think more books can use this (not everything here is explicitly academic. I would consider using this for the Muggles' Guide if we could get larger groups in as well, such as "children to adults". -[[User:Withinfocus|<span style="color:#000000">'''within'''</span>]][[User talk:Withinfocus|<span style="color:#7A7A7A">'''focus'''</span>]] 19:50, 15 January 2008 (UTC)
:I like that proposal. I guess i'm so wrapped up in my own academics that I forget that it isn't the only way to break down materials. There are probably 4 major groups that I would like to differentiate between:
:#Children who can't read, or are just learning to read. These are things like picture books or story books. "Pre-Reader" is still a non-academic designation, but i would be open to other suggestions
:#People who read at a basic level ("Beginner"?) These books would be light on vocabulary, simple sentence structures, etc. I don't want to call this group "Novice", as a personal preference.
:#People who are reading at a "normal" adult reading level ("Intermediate"?). These books don't have to go out of their way to be simplified, but should make efforts to be easily accessible.
:#People who are professionals or are highly educated in one domain. These people can sift through jargon and acronyms, and can dig through very dense, dry, academic work ("advanced", or "professional"?)
:It would be fairly easy to change these categorizations, once we decide what precisely to change them to. --'''Whiteknight''' ([[User:Whiteknight|Page]]) ([[User talk:Whiteknight|Talk]]) 15:13, 17 January 2008 (UTC)
::I'm supportive of Pre-Reader -> Beginner -> Intermediate -> Advanced -> Professional myself. I feel that Advanced and Professional should be separate. For instance, when I was a college student I was Advanced in some engineering topics but still learning them. My instructors were Professional. Also, let's throw in "All Ages". -[[User:Withinfocus|<span style="color:#000000">'''within'''</span>]][[User talk:Withinfocus|<span style="color:#7A7A7A">'''focus'''</span>]] 18:19, 18 January 2008 (UTC)
:::That's fair. We keep the same number of categories, so conversion is as simple as category renaming. I'll get started on it as soon as I have time (probably next week). --'''Whiteknight''' ([[User:Whiteknight|Page]]) ([[User talk:Whiteknight|Talk]]) 18:45, 18 January 2008 (UTC)
{{done}} --'''Whiteknight''' ([[User:Whiteknight|Page]]) ([[User talk:Whiteknight|Talk]]) 18:05, 10 April 2008 (UTC)
== Levels are too Limiting ==
Noticing "[[A Little C Primer]]" was put in the [[:Category:Beginner Reading Level|Beginner]] level, it seems to me painfully obvious that the current system may benefit from some reworking.
As far as "reading levels" are concerned, the currently used levels are more than sensible, for Reading Levels. The problem seems to be that writers confuse them with content difficulty level.
A C Primer is "beginner" C/S reading, but i hardly can immagine your average 8-year old can digest that.
At the moment, only the two most "high level" categories make any sense for any sort of higher academic matierial (any programming, any science etc), not allowing for different levels of comlexity within the subject.
Maybe there could be a separate difficulty specifier for the subject's difficulty...
A C Primer should be a Beginner Text for an Advanced Reading-capable person.
---
m
:Yes, but these are ''reading levels'' -- we also have [[Template:Prerequisite]] to better describe the audience. If you have other descriptors to suggest, we can consider them. Perhaps age is one such descriptor.
:But your analysis is correct - there are books which are easy to read but difficult to understand (as in your example of a C primer). That's not a fault with this system. It's not a fault at all. Those books exist, and should be described as such.
:Though I suggested age as another descriptor, I'd be reluctant to actually implement that because age is notoriously difficult to work with in this area. In young children there is too much variability, and among adults there is not enough to make it useful. '''— [[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 06:29, 23 November 2008 (UTC)
:: I've made some changes to try to clarify what this page is about so this sort of confusion is hopefully reduced. I've focused on mentioning different reading skills that are mastered, starting with not having learned to read at all yet, and from there for each skill level mentioning things like having mastered the ability to work out the meaning of most unfamiliar words just by the content of their usage. I think that helps clarify the intent of this page and makes clear that this page is not about a person's ability to understand a subject based on what they have learned previously about the subject. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 16:40, 30 November 2008 (UTC)
== Reading level for non-native speakers ==
Should a new level be created, or should it be an addition to beginner? [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 11:13, 4 June 2010 (UTC)
: A non-native speaker is much like native speaker in that there skill levels can vary.
:* A non-native speaker that knows no words yet, or needs assistance to understand words might be called a pre-reader.
:* A non-native speaker that knows some words and language structure, and only needs assistance some of the time might be called a beginner.
:* A non-native speaker that has been able to master an ability to figure out what unfamiliar words mean from their context and usage might be called Intermediate.
:* A non-native speaker that knows some specialized words, often only used in a specific field, might be considered Advance.
:* A non-native speaker that knows most specialized words in a specific field, might be considered to have a professional understanding of the language.
: Do you see what I mean? --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 14:17, 4 June 2010 (UTC)
::I see... perhaps a word or two could be added about non-native speakers to every level. [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 09:49, 7 June 2010 (UTC)
::: Well the page doesn't really attempt to differentiate between native and non-native speakers. I'm unsure there is a clear way to differentiate them in any case or a need to. Whether someone considers themselves a native or a non-native speaker is a personal choice/opinion. What I said about non-native speakers is also true of native speakers, and the page already mentions these things without reference to whether a person is native or non-native. The reading levels aren't even based on some age group, just on lack of or skills learned which is age neutral and native/non-native neutral. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 12:13, 7 June 2010 (UTC)
== New reading level for reference books ==
I propose that we create a new "Introductory" category for beginner reference books that are written with non-technical vocabulary but require an adult's level of comprehension. Books in the category would be introductions to advanced/professional topics, for example the books [[A Little C Primer]] and [[Java Programming]], for which readers would not be expected to have prior knowledge (which makes it a misnomer to categorize the books as Intermediate). The two books are currently categorized as Beginner, but those books clearly don't meet the criteria of being intended for young children and reliant on pictures. The Introductory category would only apply to nonfiction reference works, and it would categorize books that are written at an Intermediate level but require a basic adult comprehension level. I think such a category would solve the unique problem involving the miscategorization of nonfiction works for beginners in a particular subject. This would solve the problem discussed in a [[Wikibooks talk:Reading Levels#Levels are too Limiting|previous section]]. --[[User:Apollo1758|Apollo1758]] ([[User talk:Apollo1758|discuss]] • [[Special:Contributions/Apollo1758|contribs]]) 00:28, 21 June 2012 (UTC)
: This page describes level of fluency in reading a language, such as a fluency in reading the English language. Some people seem to confuse language fluency with topic difficulty. {{tlx|prerequisite}} covers any prior knowledge a person should have in a topic if any. Whether a person has any prior knowledge on a specific topic and how difficult a topic may be to learn is beyond the scope of this page. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 14:17, 21 June 2012 (UTC)
== Prereaders ==
It would be good to have a category meaning: picture dictionary/word book for beginning readers.
This category is for native-language learners possessing an oral vocabulary of words known by pronunciation and meaning but who are just beginning to learn to read.
For these learners, word books/picture dictionaries give an initial exposure to the spellings of orally known words. The overall gestalt, and often, first and last letters, of the written words are learned in association with known pronunciation and meaning.
This category of books is distinct because it enables learners to self-teach.
It is especially important for English because of the variability of English spelling. The pictures in such books function as pronunciation guides as well as definitions for the spelled words.
We could say that these books are for pre-readers because regular pronunciation guides, such as Webster's, need basic literacy to be used.
Then, the current category for books with higher reading-level than content-level could have a separate cagegory that could span multiple levels.
I have been to other sites with children's books that use the category "prereaders" for very hard books and felt frustrated by that. This section of Wikibooks clarified that frustration for me. So that's why I've made this suggestion.
[[User:Sbioggio|Sbioggio]] ([[User talk:Sbioggio|discuss]] • [[Special:Contributions/Sbioggio|contribs]]) 03:29, 1 April 2015 (UTC)
: In what way does our pre-reader category, as described here, mismatch what you want? --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 11:04, 4 April 2015 (UTC)
7jb4y8o4x15hfhiuvuk05g6nqajpx00
Template talk:Non-free use rationale
11
149544
4640073
3598729
2026-06-13T12:41:15Z
ShakespeareFan00
46022
4640073
wikitext
text/x-wiki
I have commented out the |must use parameter since it seems redundant to |rationale. I think the remaining parameters provide an adequate rationale when filled in, but we can rename |must use if something is missing. '''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 17:06, 15 February 2008 (UTC)
85fasafr8xlldt5cnva5j7jdiqp3xei
Template talk:Lastedit
11
151882
4640066
1139634
2026-06-13T12:35:39Z
ShakespeareFan00
46022
4640066
wikitext
text/x-wiki
Typo in the template: editted should be edited (one t). [[Special:Contributions/207.233.32.18|207.233.32.18]] ([[User talk:207.233.32.18|talk]]) 04:28, 12 March 2008 (UTC)
:[[Image:Yes check.svg|15px]] '''Fixed''' '''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 15:01, 15 March 2008 (UTC)
5mifdisr9j6reih4qon6q5dk2kcdcx8
Wikibooks:Requests for deletion/Living With a Narcissist
4
153200
4640096
2634528
2026-06-13T13:06:55Z
ShakespeareFan00
46022
4640096
wikitext
text/x-wiki
== [[Living With a Narcissist]] ==
{| cellspacing="5" cellpadding="5" style="border: 1px red solid; background: #ffffcc; width: 95%; margin: auto; color: #000000;"
| style="width: 40px; text-align: center;" | [[Image:Stop hand nuvola.svg|30px]]
| Closed as '''keep''' '''– [[User:Mike.lifeguard|<font color="Indigo">Mike.lifeguard</font>]]''' | <sup>[[User talk:Mike.lifeguard|<font color="Indigo">talk</font>]]</sup> 01:35, 23 March 2008 (UTC)
|-
| colspan="2" style="border-top: 1px red dashed;" |
The section "A light-hearted introduction" is completely inappropriate, regardless of a 'disclaimer' about the intent of the section. Mental illnesses are serious diseases. One does not make jokes about people with chronic illnesses such as diabetes or physical handicaps to help understand the condition. Jokes about a mental illness are offensive. <small><span class="autosigned">—Preceding [[w:Wikipedia:Signatures|unsigned]] comment added by [[User:Ilovemyyukon|Ilovemyyukon]] ([[User talk:Ilovemyyukon|discuss]] • [[Special:Contributions/Ilovemyyukon|contribs]]) </span></small>12:05, 13 March 2008 (UTC)
:[[Image:Symbol keep vote.svg|15px]] '''Keep''' and cleanup. The jokes need to go, and some structure is badly needed (including a rename). A text on narcissism is perfectly fine, and there is some good content that can be molded into the beginnings of a textbook. '''– [[User:Mike.lifeguard|<font color="Indigo">Mike.lifeguard</font>]]''' | <sup>[[User talk:Mike.lifeguard|<font color="Indigo">talk</font>]]</sup> 17:41, 13 March 2008 (UTC)
:[[Image:Symbol keep vote.svg|15px]] '''Keep''' and tag it for cleanup and/or as a NPOV problem. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 23:09, 13 March 2008 (UTC)
:{{keep}} - I think it actually helps frame the characteristics of narcissists rather well. But maybe that's because I see the humour in it, having lived with a couple... [[User:Webaware|Webaware]] <sup>[[User_talk:Webaware|talk]]</sup> 23:29, 13 March 2008 (UTC)
:{{comment}} This isn't the first time that this book has been nominated for VfD, and (if I remember correctly because I can't find the entry in the archives right now) it was nominated for the same reasons. Judging from the history, I don't think that this book is going to change significantly unless somebody here takes a personal interest in it. --'''Whiteknight''' ([[User:Whiteknight|Page]]) ([[User talk:Whiteknight|Talk]]) 23:31, 13 March 2008 (UTC)
|}
{{closed|reason=Move to Wikiversity where its POV and humorous style may be considered an appropriate teaching style. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 12:44, 22 April 2014 (UTC)}}
<onlyinclude>
[[Living With a Narcissist]] has a POV and it's unlikely that it can become neutral. However, it looks like a good addition to Wikiversity. Therefore, I suggest a '''transwiki to WV'''. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~tparis/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 11:58, 4 January 2013 (UTC)
:{{support}} Why not? --[[User:Xania|ЗAНИA]] [[Image:Flag_of_Estonia.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 12:08, 4 January 2013 (UTC)
:{{support}} I tagged it with the POV issue. I also think that it has a very limited chance of ever being turned into something that could be stated as a textbook (as we define them on Wikibooks).
:I disagreed with some users on its talk page, just because something is funny it doesn't make morally defensible, like laughing at someone accidentally slipping on a banana peel...
:Its a collection of anecdotal remarks, some funny but all largely excludent to those that may be targeted (or feel to be targeted) by the observations. I see it as an attack weapon more than a constructive or informative text, and certainly not as a textbook. I even attempted to re-frame the content in a more positive way and call attention to the danger it may represent if improperly referenced or taken too seriously. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 03:31, 5 January 2013 (UTC)
:{{support}} It certainly doesn't belong here.--[[User:Abramsky|Abramsky]] ([[User talk:Abramsky|discuss]] • [[Special:Contributions/Abramsky|contribs]]) 19:58, 8 April 2013 (UTC)
This is the most spot-on, accurate description on this topic that I have found anywhere. Keep it. It's important. And the jokes. Dark humour helps us survive these dark hearts... <small><span class="autosigned">—Preceding [[w:Wikipedia:Signatures|unsigned]] comment added by [[User:Nikiwikidooda|Nikiwikidooda]] ([[User talk:Nikiwikidooda|discuss]] • [[Special:Contributions/Nikiwikidooda|contribs]]) 20:27, 21 June 2013</span></small><!-- Template:Unsigned -->
:It is not in the scope of Wikibooks - the proposal is to move it to Wikiversity, not to delete it. [[User:QuiteUnusual|QuiteUnusual]] ([[User talk:QuiteUnusual|discuss]] • [[Special:Contributions/QuiteUnusual|contribs]]) 12:59, 13 August 2013 (UTC)
:Please - this book is so important for many people in western society. If it is badly written then I beg people to improve it, not to delete a self-help tool which many many people need. [[User:Mendelivia]] 6:53, 20 September 2013
{{keep}} THIS, IT MAYBE A BIT UNPROFESSIONAL WITH WRITERS ATTEMPT TO BRING HUMOR TO A MENTAL HEALTH ISSUE BUT ON SOME LEVEL THIS IS ARTICLE IS NECESSARY. PIECE IS WRITTEN PRETTY WELL, OBVIOUSLY WRITER IS FAIRLY WELL EDUCATED, ALTHOUGH, NO REFERENCE TO PROFESSIONAL MEDICAL CAREER. WRITER DOES APPEAR TO HAVE HANDS ON EXPERIENCE WITH DSM-5 DIAGNOSIS. KEEP THIS ARTICLE WHERE ITS CURRENTLY LOCATED.----SINCELY--A DAY IN THE LIFE :-/ <small><span class="autosigned">—Preceding [[w:Wikipedia:Signatures|unsigned]] comment added by [[User:67.170.146.234|67.170.146.234]] ([[User talk:67.170.146.234|discuss]] • [[Special:Contributions/67.170.146.234|contribs]]) 07:10, 10 October 2013</span></small><!-- Template:Unsigned -->
{{keep}} The book has useful content. We need more information about mental illness, and while the narrative may not be as serious as some (most?) other books, does each book necessarily need to be serious? [[User:Hackbinary|Hackbinary]] ([[User talk:Hackbinary|discuss]] • [[Special:Contributions/Hackbinary|contribs]]) 16:52, 12 October 2013 (UTC)
{{comment}} I sympathise with the perspective of the authors, and see how the book can be useful. Nonetheless, I share Panic's unease. It is all too easy to dehumanise people affected by mental disorders, especially when they become obnoxious. Furthermore, in spite of the warnings at the beginning the approach induces lay readers to diagnosing others too casually. The latter issue might be alleviated with more careful wording; note, however, that the title already begins to set the tone. Adding references would also help. The authors mention having read books on narcissism; assuming they are reliable sources, it would be good to mention them. --[[User:Duplode|Duplode]] ([[User talk:Duplode|discuss]] • [[Special:Contributions/Duplode|contribs]]) 09:53, 26 November 2013 (UTC)
</onlyinclude>
{{end closed}}
ce9kozasniexrlyne7i3in7vl5mxq05
Template talk:Dutch Empire
11
159652
4640067
1198578
2026-06-13T12:36:10Z
ShakespeareFan00
46022
4640067
wikitext
text/x-wiki
Once this template is un-substed, you might consider ''not'' using red. Red links normally mean the page doesn't exist, so it is rather jarring to see all these red links at the bottom of every page! '''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 15:52, 31 May 2008 (UTC)
dv3p62b5voejm951gku4yzu84259ucm
Wikibooks:Requests for deletion/Future
4
160863
4640123
4581915
2026-06-13T15:27:42Z
ShakespeareFan00
46022
4640123
wikitext
text/x-wiki
{{talkarchive}}
== Future ==
{| cellspacing="5" cellpadding="5" style="border: 1px red solid; background: #ffffcc; width: 95%; margin: auto; color: #000000;"
| style="width: 40px; text-align: center;" | [[Image:Stop hand nuvola.svg|30px]]
| '''Closed''' is we we can say I think - with no VfD survived but possibly not for the same reasons all around --[[User:Herbythyme|<font color="green">Herby</font>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 08:17, 30 November 2006 (UTC)
|-
| colspan="2" style="border-top: 1px red dashed;" |
SBJohnny has added a vfd tag on the Future book. It's very new--started just yesterday--and already has lots of entries. These articles are all lengthy, but not overly long; they have links and references where appropriate; they don't have much bias (except for the Matriarchy page); they discuss an important topic that is growing in importance; some of the pages are conceptual about futurology, others about various common predictions, and others are archetypal scenarios. I would like to know the reason for the proposed deletion, and whether everyone else agrees on its being deleted. Thank you. --[[User:Yunzhong Hou|Yunzhong Hou]] 17:17, 25 November 2006 (UTC)
:See below :). The sheer volume of contributions over the past couple days (even with references) makes it prety clear that this wasn't written on wikibooks, but is either a database dump from the author's own material (thus original research), or copied without attribution from another wiki or website. --[[User:SBJohnny|<font color="green">'''SB_Johnny'''</font>]] | <sup>[[User talk:SBJohnny|<font color="green">talk</font>]]</sup> 17:21, 25 November 2006 (UTC)
== [[Future]] ==
While there is indeed a science and field of futurology, this book is not a textbook about the subject, but rather a group of hypotheses and results, with little or no material that addresses the mechanics of futurology. Most chapters should simply be deleted, some of the material about method could be cleaned up and kept.
I'm also concerned about the copyright status. The main author is apparently a practicing futurologist, so it may just be his/her own material, but at least some was apparently copied from wikipedia (unattributed), and possibly from future.wikia and futureswiki (also without attribution). --[[User:SBJohnny|<font color="green">'''SB_Johnny'''</font>]] | <sup>[[User talk:SBJohnny|<font color="green">talk</font>]]</sup> 17:17, 25 November 2006 (UTC)
: '''Too soon''' I remember the Author just 12 hours ago asking whether or not this book would be allowed here. VFDs require at least a week before they are even requested. I would suggest talking it over with the author and working with him so that the book falls into policy in the mean time. I think as per deletion policy, this VfD should be closed. --[[User:Dragontamer|Dragontamer]] 17:21, 25 November 2006 (UTC)
::Not in this case, I think. There's no way he had time to write all this in 12 hours, so it's gotta be copied from somewhere. Copyvio is a criteria for speedy deletion. --[[User:SBJohnny|<font color="green">'''SB_Johnny'''</font>]] | <sup>[[User talk:SBJohnny|<font color="green">talk</font>]]</sup> 17:23, 25 November 2006 (UTC)
Oh okay, well then I'll just go ahead and add the attributions. That'll be easy... wikipedia and future wikia are both free-content (and I think the futureswiki is also free content, since it's a wiki, if I did have a page based on that place, which I don't think I did). Therefore, it's not anyone's own material. Some of it is mine, which I release to the public domain. --[[User:Yunzhong Hou|Yunzhong Hou]] 17:28, 25 November 2006 (UTC)
: Yo, Yunzhong Hou, please sign your comments when you leave them :-p. It is quite easy, just do <nowiki>--~~~~</nowiki> and it will sign automatically. Anyway, future wiki is GFDL. So it should be fine on wikibooks as well. --[[User:Dragontamer|Dragontamer]] 17:26, 25 November 2006 (UTC)
I'd also put in that I agree I need to rewrite [[Future/Human Mind Project]] and [[Future/Matriarchy]]. Any other suggestions? --[[User:Yunzhong Hou|Yunzhong Hou]] 17:28, 25 November 2006 (UTC)
:(edit conflict) If it's your own stuff, then no problem copyright-wise. If it's from another GFDL source, it needs to be attributed (GFDL is not the same thing as public domain)... I'll leave you instructions on your talk page.
:Keep in mind that posting your own work here doesn't make it public domain either: if it's used somewhere else, the enduser is likewise required to attribute the work to you... what you're releasing is control over the end user's choices. --[[User:SBJohnny|<font color="green">'''SB_Johnny'''</font>]] | <sup>[[User talk:SBJohnny|<font color="green">talk</font>]]</sup> 17:32, 25 November 2006 (UTC)
*<s>'''Keep''' - It's too soon unless we have an obvious copyright violation. I thought we should wait about 7 days before nominating for deletion votes? It's also possible that he has all of the content on his computer and is copying it over to Wiki - that's what I usually do. [[User:Xania|Xania]] 17:43, 25 November 2006 (UTC)</s>
*'''Comments''' I would like the page I drew the editors attention to on their talk page look at by them - the links are excessive. I would also like to know why Wikibooks is the recipient of this body of work? I'll consider my vote. --[[User:Herbythyme|<font color="green">Herby</font>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 18:25, 25 November 2006 (UTC)
:Well in that case you can always delete the extra links. I'm planning to compile a book about the future, and wikibooks is suited to that goal as no other wikia is. Also note that if you don't like certain parts of the whole, you can just delete them, rather than the entire book. --[[User:Yunzhong Hou|Yunzhong Hou]] 18:31, 25 November 2006 (UTC)
:: Though, it really is your job to keep the book in policy. I should add though, this is looking more like a macropedia instead of a book on the subject. One goal of wikibooks is to eventually make a printed book on the subject, so keep that in mind as you make the book. It is still early, so I'm sure you can make it so. --[[User:Dragontamer|Dragontamer]] 18:40, 25 November 2006 (UTC)
*'''Comment''' This book while new and needing time to made suitable for Wikibooks, probably needs someone who knows something about Futurlogy to keep an eye on it, to make sure it doesn't drift astray. In addition to original research, I'm wondering if there might be a possible associated issue with it discussing what may happen in way that might not be suitable for Wikibooks. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[Image:Yin yang.svg|12px]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 18:55, 25 November 2006 (UTC)
**He-he... edit conflicts have funny results sometimes. I actually know a great deal about the subject :). --[[User:SBJohnny|<font color="green">'''SB_Johnny'''</font>]] | <sup>[[User talk:SBJohnny|<font color="green">talk</font>]]</sup> 18:59, 25 November 2006 (UTC)
(edit conflict)
::I guess my point is that wikibooks really isn't appropriate for this book as it stands now. Continuing to add similar materials isn't going to be a productive use of your time, and will in the end only end up requiring administrative time spent deleting later. Ask yourself of each chapter:
::*Is it fiction? (I.e., discussing an event that never happened, and might never happen)? If so, fiction is not permitted.
::*Is it verifiable? If not, it's not permitted.
::Again, there's nothing wrong with having a book about futurology. A discussion of how it employs [[w:Psychohistory]], addresses [[w:Teleology]] or [[w:Free will]], and other information about ''how to '''practice''' futurology'' (either professionally or otherwise) would be totally appropriate, and an interesting read. But that's not what you're doing: most of what you're contributing here are scenarios, without any discussion of the forces bringing about the scenarios... in essence, these are "stubs" for science fiction stories.
::I brought this to vfd rather than tagging them with {{tl|copyvio}} (thank you for adding the citations, by the way!) and {{tl|delete}} because it was quite clear that the tags would be contested, since you clearly feel that they are appropriate. But these chapters really ''aren't'' appropriate, and I rather suspect our hands will be tied on this issue. Before adding more material of this nature, I strongly urge you to bring it up on [http://mail.wikipedia.org/mailman/listinfo/textbook-l textbook-l], which is where we discuss things with the wikimedia foundation. Fiction is simply not permitted on wikibooks, and the wikibooks community has absolutely no say on that matter.
::I don't mean to be harsh, and this has nothing to do with the level of respect/esteem/etc. I hold for your work or the field of fututology in general (actually, I spent a few years studying the possibility of teleology in transcendental phenomenology in grad school), it's just that there's no way this material can be kept here, and it's best to nip in the bud. --[[User:SBJohnny|<font color="green">'''SB_Johnny'''</font>]] | <sup>[[User talk:SBJohnny|<font color="green">talk</font>]]</sup> 18:57, 25 November 2006 (UTC)
:::*'''Further comment''' I do consider this can be voted on as, though it has only been here 24 hours, the body of work must have been under construction much longer than this. What we are getting is a cut and paste (and hoping to avoid edit conflicts <g>) --[[User:Herbythyme|<font color="green">Herby</font>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 19:03, 25 November 2006 (UTC)
::::Just to clarify for darklama: Predicting the future can be done in one of 4 ways (or a combination thereof):
::::# Through statistical analysis of empirical trends ([[w:Moore's law]] is a famous example)
::::# Using techniques developed through [[w:Psychohistory]] (not well known to most people, though similar techniques are applied in interrogation, sales, reverse psychology, etc.... this field essentially just analyzes how humans react to certain stimuli).
::::# Through conjecture and narrative (this is science fiction, which is often quite instructive, but not appropriate on wikibooks)
::::# Through revelation (when God/etc. tells someone what will happen: annotations of revelation (or science fiction, for that matter) would be OK on wikibooks, but if someone wrote a wikibooks on what God revealed to him, we'd probably not want to keep that here.)
::::This book is an example of #3: conjecture. Nothing wrong with it ''per se'', but a wikibook about this method would need to describe '''''how conjectures are made''''', rather than just offering conjectures. --[[User:SBJohnny|<font color="green">'''SB_Johnny'''</font>]] | <sup>[[User talk:SBJohnny|<font color="green">talk</font>]]</sup> 19:50, 25 November 2006 (UTC)
::::: Just offers conjectures was basically what I was thinking about. Was thinking about how in certain forms as you described, it may not be appropriate for Wikibooks and in other forms may be fine. I suspected if Futurlogy were to be acceptable here that it would require careful scrutiny to ensure it remains firmly inside the policies of Wikibooks, which would require both the willingness and patience of the community and those providing contents for the book. I suspected also it might be walking a fine line between acceptable and unacceptable for inclusion here. I kind of wonder what the motivation is behind having it here anyways if it already has a home on [http://future.wikia.com http://future.wikia.com] as [[User:Yunzhong Hou|Yunzhong Hou]] said. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[Image:Yin yang.svg|12px]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 21:05, 25 November 2006 (UTC)
*<s> '''Further Comment''' - I've just been reading part of this book, particularly the parts about the EU, and I'm quite fascinated. Great work. It's not fiction but speculation and speculation is the only possible way to talk about the future. [[User:Xania|Xania]] 22:00, 25 November 2006 (UTC)</s>
**I agree... some of it's very interesting, but that's not the issue. Wikibooks is not for sci-fi. --[[User:SBJohnny|<font color="green">'''SB_Johnny'''</font>]] | <sup>[[User talk:SBJohnny|<font color="green">talk</font>]]</sup> 22:25, 25 November 2006 (UTC)
Well, Future Wikia isn't getting much attention, and it's best for a small community rather than a book, and there aren't enough people to make it into a thriving community. As for the conjecture part, sure, I'll be adding '''justifications''' for how individual conjectures are made, and there already is a page for how they are made in general: [[Future/Prediction Methods]]. I'm going to trim down on the scenarios some time. --[[User:Yunzhong Hou|Yunzhong Hou]] 22:35, 25 November 2006 (UTC)
**I don't think it's sci-fic. It's speculating about the future and it's based on truth. However, I've now taken back my 'keep' vote as I don't see any need in duplicating information on two sites. [[User:Xania|Xania]] 22:39, 25 November 2006 (UTC)
::: I'm neutral towards forks, if a person fels like he wants to spend lots of time making a fork, there is probably a reason. As long as they keep up with the project and it doesn't turn into a stub, then I'm fine. --[[User:Dragontamer|Dragontamer]] 03:05, 26 November 2006 (UTC)
::::'''Comments''' I gave it a quick look over. The scenarios are definitely sci-fi. They're written as if they have happened or are happening and they are clearly fictional in nature. That said, there seems to be significant content regarding the science side. I really wanted to say science-ish side because I'm just kind of skeptical about calling much of it science, but I'm more of a hard nosed evidence based science person and predictions of the future, to me, are generally a bit of a joke. As an example, I can pull out old 50's Popular Mechanics with the stories about how by the 70s there would be a helicopter in every garage (you don't have to be a genius to see how disasterous that would have been had it come true).
::::But honestly, the book, except for the scenarios aspect, appears to be largely grounded in science and predictions based on trends and educated and informed opinions. As for the scenarios, I'm not even thinking there's anything wrong with them, in the context that they're in. They're one section of a book that has a number of other sections, among them, Biology, Politics, Engineering, Informatics, Social, Prediction Methods, Concepts, Uncertainty. I don't think there's anything wrong with a book that says, "okay, here are all these ideas, and here's an example of how it can all be put together." Even if it's fiction, it's an example of putting the science of futurology into a context to communicate it.
::::Is this a book I would want to read or that I would put any faith into its predictive power? Me personally? No. But do I think it should be deleted? No, not really. Since it was all moved over in a big chunk and we haven't seen how it has developped, it's far too soon to say how the author(s) intend to extend it. It definitely appears to have possibilities as a textbook on futurology (and believe me, I even went to the dictionary because I didn't believe it was a real word, and it is and this book seems to fall right in line with the the definition of the word). So based on that, I'm leaning pretty heavily towards keep unless I see it go completely the way of sci-fi. -- [[User:Pdavis68|Pete]] 03:12, 26 November 2006 (UTC)
::<s>'''Delete'''</s> My understanding is that the inventive speculation contained in this book is not allowed by Wikibooks guidelines. It is fictional in nature, and even if it wasn't it would be own research and it lacks NPOV. I have not seen the author acknowledge that the content as it stands is in violation of policy, so it seems unlikely that it will be fixed. --[[User:Xixtas|xixtas]] 04:18, 26 November 2006 (UTC)
:::'''More Comments''' Xixtas, I have to disagree. Look at the [[Future/Prediction_Methods|Prediction Methods]] page, and in particular [[Future/Prediction_Methods#Delphi_Survey_Method|Delphi Survey Methods]] which specifies that a panel of "experts" are queried. Now, I'd want to know more specifically what "experts" means, but I suspect the intention is that experts in a particular field are surveyed about their beliefs on trends in their particular area of expertise. The NPOV policy specifically states, "Consequently, modules should be written from a neutral point of view, which means that modules should represent differing views on a subject fairly..."
:::I'm kind of surprised I'm here defending this book, but the fact is, I think it's no less scientific than stock market predictions and they sell that as a science too. It's predicting trends based on present data and past behavior and that's pretty much what this book is trying to do, except in a larger scope. At least that's my take on it from what I've read of it. I admit the scenario stuff is a bit out there, but as I said before, in the context of being examples of putting together the different components of the subject, I consider it legitimate. Perhaps if they were written in a less story-telling way and more as a practical: "If X and Y happened, then it's conceivable that Z could happen. And if Z happens, blah, blah blah..."
:::I don't buy into any of it. But at the same time, I feel that technically, it falls within the scope of the wikibook guidelines. It might skirt the edges a bit, but I don't think there's anything about it that's a clear violation in intention or in fact. -- [[User:Pdavis68|Pete]] 05:42, 26 November 2006 (UTC)
::::'''Comment''' So we would consider a book that discussed how to pick stocks and then went on to extensively predict specific stock futures to be a book we'd keep? While such a book has academic value, the actual act of picking the stocks makes it unsuitable for Wikibooks in my view. The content being discussed here goes way beyond an illustration of a methodology. --[[User:Xixtas|xixtas]] 14:25, 26 November 2006 (UTC)
::::: Well, no. But in this case, the author is still here, and we can ask him to take those parts out and/or modify those parts. It is still only day 2 anyway, and I'm sure he wants to just copy/paste everything over before he starts working on some parts. If this becomes an eternal stub as is, we can delete it. But it is still WAY too early to think about that kind of thing. It isn't even old enough to have a real VfD according to policy. Aka, it shouldn't even be here. (though admittingly, the original guy put it up because of a possible copyvio, in which case it would bypass the 7 day waiting period)--[[User:Dragontamer|Dragontamer]] 02:46, 27 November 2006 (UTC)
*'''Propose close''' -- [[User:Yunzhong Hou|Yunzhong Hou]] has both added attributions and tagged some of the more "fictiony" parts for speedy delete (now deleted)... let's see where it goes. --[[User:SBJohnny|<font color="green">'''SB_Johnny'''</font>]] | <sup>[[User talk:SBJohnny|<font color="green">talk</font>]]</sup> 15:29, 26 November 2006 (UTC)
*'''Comment''' --- ''"The public school systems around the world propagate their rather liberal agenda to people ages 4-22. They attempt to teach their children that their parents are "wrong" and that the government is questionable. Spiritualism is stripped from the young open-minded students and is treated like an "extracirrcular hobby." The propaganda is subtle in Kindergarden and becomes increasingly overt until the students reach the twelfth grade. Teachers of the public school system constantly push their oppressed students into college or university, although some students rather live on welfare or have a blue collar job than graduate from a post-secondary institution."'' This book is filled with this kind of stuff. This sample and the book as a whole lacks NPOV, is fiction, and includes original research. --[[User:Xixtas|xixtas]] 20:56, 26 November 2006 (UTC)
*'''Close''' -- I agree the discussion should be closed for now because of the seven day waiting period. --[[User:Xixtas|xixtas]] 03:31, 27 November 2006 (UTC)
*Votes for '''Close''' with exceptions -- The exception is that this book doesn't get a "VfD survived" tag, as the whole VfD is null and void anyway as it is against policy. --[[User:Dragontamer|Dragontamer]] 05:50, 27 November 2006 (UTC)
::'''Comment''' - I support close with the stipulated exception. --[[User:Xixtas|xixtas]] 00:57, 30 November 2006 (UTC)
*
|}
== [[Future]]'s third section ==
{{closed|reason='''Kept''' No consensus --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 12:17, 22 June 2011 (UTC)}}
The predictions may violate [[WB:OR]] and [[WB:NPOV]]. I think it belongs to Wikiversity. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 14:47, 25 January 2011 (UTC)
:Greater clarity will be required beyond a generic statement with [[w:weasel word|weasel word]]s. Please elaborate. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 22:12, 7 February 2011 (UTC)
::An example is [[Future/War]]. It first introduces the current political and military situation, but is perfectly fine; however, it then [[Future/War#The Path of Things to Come|proceeds]] to the deduction of the miliary future, which is OR. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 08:40, 8 February 2011 (UTC)
:::I have only seen the page you indicated and another one focused on China, regarding factual data I don't see any major errors and speculation or inference is a bit different from OR (or what we normally define as OR), that is the declaration of personal or fringe ideas as scientific facts. In fields like politics, economics and sociology we should permit editors to add and build (without anyone exercising editorial control) some inferences and speculations if clearly indicated as such, much like we support when dealing with book annotations that have the same value...
:::So far I don't see any problem that needs to be addressed outside of that specific book community. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 07:28, 6 March 2011 (UTC)
{{end closed}}
8yk3r03kvs0t4y97fb2knhex3po9vgd
Talk:C++ Programming/STL
1
168075
4640174
2497970
2026-06-13T16:04:23Z
ShakespeareFan00
46022
4640174
wikitext
text/x-wiki
Note that the use of for_each which relies on a stateful functor is wrong, see http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/lwg-active.html#92 -- [[User:James Dennett|James Dennett]] ([[User talk:James Dennett|talk]]) 07:19, 4 September 2008 (UTC)
: Nothing is wrong here. According to the 25.1.1/3 std::for_each applies functor "exactly last - first times. -- [[Special:Contributions/95.220.2.63|95.220.2.63]] ([[User talk:95.220.2.63|talk]]) 06:57, 19 August 2010 (UTC)
:: And if you are not still sure, please refer to boost.accumulators framework. It is based on stateful functors applied with std::for_each. -- [[Special:Contributions/95.220.2.63|95.220.2.63]] ([[User talk:95.220.2.63|talk]]) 06:59, 19 August 2010 (UTC)
Material on smart pointers is arguably misplaced, as they don't come from the STL. -- [[User:James Dennett|James Dennett]] ([[User talk:James Dennett|talk]]) 07:05, 16 October 2008 (UTC)
"Vector is known to be slow when using the MSVC compiler due to the SECURE_SCL flag" Does anyone have a citation for this? [[Special:Contributions/129.59.129.167|129.59.129.167]] ([[User talk:129.59.129.167|talk]]) 15:40, 29 December 2010 (UTC)
: [http://msdn.microsoft.com/en-us/library/aa985965.aspx Checked Iterators at MSDN] describes what SECURE_SCL does. [http://msdn.microsoft.com/en-us/library/aa985982.aspx Debug Iterator Support at MSDN] describes what happens a bit more. Reading those two pages I can see that the SECURE_SCL flag causes extra checks to be done and I can see how those extra checks could cause Vector and other iterators to be slower compared to not using it. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</font>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 16:01, 29 December 2010 (UTC)
==== STL?? ====
Just a note though, the term 'STL' is discouraged, as it is highly ambiguous. Are you referring to the entire C++ Standard Library? If so, say "Standard Library". Are you referring to the SGI STL? Are you referrring to the parts of the Standard Library based on the SGI STL? Are you referring to the Containers Library inside the Standard Library? Are you referring to a specific vendor's implementation of the entire Standard Library (e.g. libstdc++, libcxx, msvcrt.dll, ...) the parts of the Standard Library based on the SGI STL, or just the Containers Library?
:Where did you got that idea ? (That STL referencing is discouraged) Is it simply your belief ?
:I agree that it may be confusing (and IIRC I already had a discussion on this subject some time ago). I can agree with that but it is an historic artifact and as such it is not open to redaction (we can reduce the visibility or notoriety) but in this case it permits a clear distinction in regards to the learning the language, and it is a necessity for those that learned the language before the adaptation of the SGI STL into the standard, use alternative implementations or need to maintain ancient code.
:The definition we use is the same as referenced in the Wikipeia article STL that I believe was linked to in the text [[wikipedia:Standard Template Library]]. I will try to look into what is stated but I remember putting a clear effort into making it understandable to readers. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 01:40, 7 March 2013 (UTC)
88fwrev6hmguugbcbqpry3r5g6wn90k
4640175
4640174
2026-06-13T16:04:41Z
ShakespeareFan00
46022
4640175
wikitext
text/x-wiki
Note that the use of for_each which relies on a stateful functor is wrong, see http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/lwg-active.html#92 -- [[User:James Dennett|James Dennett]] ([[User talk:James Dennett|talk]]) 07:19, 4 September 2008 (UTC)
: Nothing is wrong here. According to the 25.1.1/3 std::for_each applies functor "exactly last - first times. -- [[Special:Contributions/95.220.2.63|95.220.2.63]] ([[User talk:95.220.2.63|talk]]) 06:57, 19 August 2010 (UTC)
:: And if you are not still sure, please refer to boost.accumulators framework. It is based on stateful functors applied with std::for_each. -- [[Special:Contributions/95.220.2.63|95.220.2.63]] ([[User talk:95.220.2.63|talk]]) 06:59, 19 August 2010 (UTC)
Material on smart pointers is arguably misplaced, as they don't come from the STL. -- [[User:James Dennett|James Dennett]] ([[User talk:James Dennett|talk]]) 07:05, 16 October 2008 (UTC)
"Vector is known to be slow when using the MSVC compiler due to the SECURE_SCL flag" Does anyone have a citation for this? [[Special:Contributions/129.59.129.167|129.59.129.167]] ([[User talk:129.59.129.167|talk]]) 15:40, 29 December 2010 (UTC)
: [http://msdn.microsoft.com/en-us/library/aa985965.aspx Checked Iterators at MSDN] describes what SECURE_SCL does. [http://msdn.microsoft.com/en-us/library/aa985982.aspx Debug Iterator Support at MSDN] describes what happens a bit more. Reading those two pages I can see that the SECURE_SCL flag causes extra checks to be done and I can see how those extra checks could cause Vector and other iterators to be slower compared to not using it. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 16:01, 29 December 2010 (UTC)
==== STL?? ====
Just a note though, the term 'STL' is discouraged, as it is highly ambiguous. Are you referring to the entire C++ Standard Library? If so, say "Standard Library". Are you referring to the SGI STL? Are you referrring to the parts of the Standard Library based on the SGI STL? Are you referring to the Containers Library inside the Standard Library? Are you referring to a specific vendor's implementation of the entire Standard Library (e.g. libstdc++, libcxx, msvcrt.dll, ...) the parts of the Standard Library based on the SGI STL, or just the Containers Library?
:Where did you got that idea ? (That STL referencing is discouraged) Is it simply your belief ?
:I agree that it may be confusing (and IIRC I already had a discussion on this subject some time ago). I can agree with that but it is an historic artifact and as such it is not open to redaction (we can reduce the visibility or notoriety) but in this case it permits a clear distinction in regards to the learning the language, and it is a necessity for those that learned the language before the adaptation of the SGI STL into the standard, use alternative implementations or need to maintain ancient code.
:The definition we use is the same as referenced in the Wikipeia article STL that I believe was linked to in the text [[wikipedia:Standard Template Library]]. I will try to look into what is stated but I remember putting a clear effort into making it understandable to readers. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 01:40, 7 March 2013 (UTC)
lu6gep9b6vkaj6jz8ad6es1jnh72xnx
Template talk:To do
11
168736
4640061
3921736
2026-06-13T12:30:11Z
ShakespeareFan00
46022
4640061
wikitext
text/x-wiki
=Documentation=
Creates a yellow notice and enters the page into the TODO category.
Parameters:
* #1 - the note text
* todonote - the note text
* example - values: yes, no; meaning: ?
See also {{tlx|Editor note}}
=Discussion=
== Suggestion to upgrade the TODO-List==
The following code allows to create specific todo-lists for user and/or for books. The optional parameters are used for names of the books and/or name of the user.
;for example
*<nowiki>{{TODO|this code have to be checked by enabled administrators|Mjchael|TODO}}</nowiki>
;or
*<nowiki>{{TODO|Check Chords for these Song|Mjchael|Songbook}}</nowiki>
<pre style="white-space: pre-wrap;">
{{clear}}<div class="noprint" style="background-color:LemonChiffon; border:#800000 solid 1px; margin-right: 5%; margin-left: 5%; text-align: left; padding:3px; -moz-border-radius:10px;">
[[Image:Qsicon_inArbeit.png|32px|left]]
;TODO:{{{1}}}
[[category:TODO]] [[category:TODO/{{{2}}}]]{{#if: {{{3|}}}| [[category:TODO/{{{3}}}]]|}}{{#if: {{{4|}}}| [[category:TODO/{{{4}}}]]|}}{{#if: {{{5|}}}| [[category:TODO/{{{5}}}]]|}}{{#if: {{{6|}}}| [[category:TODO/{{{6}}}]]|}}{{#if: {{{7|}}}| [[category:TODO/{{{7}}}]]|}}{{#if: {{{8|}}}| [[category:TODO/{{{8}}}]]|}}{{#if: {{{9|}}}| [[category:TODO/{{{9}}}]]|}}{{#if: {{{10|}}}| [[category:TODO/{{{10}}}]]|}}{{#if: {{{11|}}}| [[category:TODO/{{{11}}}]]|}}{{#if: {{{12|}}}| [[category:TODO/{{{12}}}]]|}}{{#if: {{{13|}}}| [[category:TODO/{{{13}}}]]|}}{{#if: {{{14|}}}| [[category:TODO/{{{14}}}]]|}}{{#if: {{{15|}}}| [[category:TODO/{{{15}}}]]|}}{{#if: {{{16|}}}| [[category:TODO/{{{16}}}]]|}}</div>{{clear}}
<noinclude>
This template is intended to serve a TODO list for projects and user. More information about the todo-list can be found on [[:category:TODO]].
[[category:Template for Projects|TODO]]
</noinclude>
</pre>
It will be supplemented by following template
;todolink
;example
* Todo-List for <nowiki>{{TODOlink|Username}}</nowiki>
;resulting:
* TODO-List for <u><span style="color:blue>Username</span></u>
* TODO-List for <nowiki>{{TODOlink|Username|my projects}}</nowiki>
;resulting:
* TODO-List for <u><span style="color:blue>my projects</span></u>
;Code
<pre>
[[:category:TODO/{{{1}}}|{{{2|{{{1}}}}}}]]
</pre>
These two templates (programmed by me) serve their purpose in the German Wikibooks. Greeting --[[User:Mjchael|Mjchael]] ([[User talk:Mjchael|talk]]) 00:15, 13 August 2009 (UTC)
:It seems an improvement on what I was attempting to do as it seems to permit to list all the todos of a particular book.
:But if I'm understanding correctly it also implies having a special category where all the books todos will be displayed ?
:What are you proposing (if anything) ?
:a) Dropping the existing template would require correcting all the already existing calls it has. I'm not offering to do that myself...
:The two templates if paired will include changes/additions to the categories (the categories probably have to be tweaked, ask info about it to [[User:Adrignola]] he has been doing heavy restructuring to the categories it would be a crime to break his work in some way. Creating a todo subcategory inside the book's category would be ideal).
:b) It could all be phased out, the case of your template is not the same (I don't know if there is one using that name) but over time it could all be moved to your implementation, and also permit to detect any issues, I think there are some other construct being used with the template probably source code highlights or even translations...
:Anyway I don't have any objection to any of the solutions (if the action also includes fixing anything that is broken in the process). --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 01:58, 13 August 2009 (UTC)
::This is the complete code of my template. This enables you to get everything out of it. The cathegorie "TODO" should be shown. But the rest can be hidden. On each new TODO-List should be affixed:
<pre>
__HIDDENCAT__
[[category:TODO|!]]
</pre>
::The own user-todo-lists and the books-todo-lists can be found by the category "TODO" and on each page where the "todolink"-tamplate is placed. Thus no side will be garbaged with categories. But each book and any user would have an own todo-list. And these todo-lists administer themselves independently. There will be no reason to surch for any todo-list of a book or an user. Just use the template with the user-name (first letter upper-cased!) or the book-name, and any outer user will find them. Only with very long names of books you should think about a shortened title. compare: [http://de.wikibooks.org/wiki/Kategorie:Todo http://de.wikibooks.org/wiki/Kategorie:Todo] --[[User:Mjchael|Mjchael]] ([[User talk:Mjchael|talk]]) 14:03, 13 August 2009 (UTC)
::I'm adding the missing Parameters to each "TODO". Additionally I'll delete the unnessesary todonote-Parameter because it is equal to <nowiki>{{{1}}}</nowiki>. I guess that I need still a few hours. The existing records aren't further affected by the new programming. The added categories are subcategories of TODO. So it wouldn't break sb.'s preserves. [[User:Adrignola]] will be asked, whether something is to rethink. --[[User:Mjchael|Mjchael]] ([[User talk:Mjchael|talk]]) 17:39, 13 August 2009 (UTC)
:::I don't have a problem with subcategories of [[:Category:TODO]] if you want to have them. I fixed the template code to have an if statement for the second parameter. The pages using the template shouldn't be put into an unspecified category if they don't have a second parameter. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 17:52, 13 August 2009 (UTC)
ca9x98st55a096pvpp4zo3r99tmhaln
Talk:Editing Wikitext/Preformatted Text
1
173203
4640192
3228829
2026-06-13T16:16:57Z
ShakespeareFan00
46022
4640192
wikitext
text/x-wiki
Added colored panels - white for ''resulting'' print and ivory for what to ''type''.
Uses template ''block''. Armchair, 11-10-08.
== Missing space and the difference from pre ==
This page is missing the use of space as a way to preformat text and the difference between it and pre:
{| width="100%"
| pre
|
| space
|-
| width="45%" |
<pre>
'''The time has come'''
''the walrus said to''
speak of many things...
[[Editing Wikitext/Preformatted Text]]
</pre>
| style="text-align:center; width:10%;" | VS
| width="45%" |
'''The time has come'''
''the walrus said to''
speak of many things...
[[Editing Wikitext/Preformatted Text]]
|}
Space preformats like pre, but wiki markup continues to work in it. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 13:39, 14 December 2010 (UTC)
:Helpful, thanks. A white background should also be possible but this doesn't work. Another attribute? ... [[User:PeterEasthope|PeterEasthope]] ([[User talk:PeterEasthope|discuss]] • [[Special:Contributions/PeterEasthope|contribs]]) 15:04, 12 June 2017 (UTC)<br>
{| style="background-color: white"
|
'''The time has come'''
''the walrus said to''
speak of many things...
[[Editing Wikitext/Preformatted Text]]
|}
e2zs19mn1dhrbhqbt803wwt0xt5tpzi
Talk:Guide to Unix/BSD/OpenBSD/As a Desktop
1
174646
4640173
4198296
2026-06-13T16:03:15Z
ShakespeareFan00
46022
4640173
wikitext
text/x-wiki
{{maintained|[[User:CFeyecare]]}}
Feel free to write suggestions on how to make this a better article. I would also like to encourage people to edit and redistribute this article freely.--[[User:CFeyecare|<font face="Kristen ITC" size="3.5" color="crimson">''''' CFeyecare '''''</font>]]<span style="color:black"><sup>'''''[[User talk:CFeyecare| Talk!]]'''''</sup></span>[[User:CFeyecare/templates/signature-tracker| ]] 18:18, 31 October 2008 (UTC)
==Todo==
*<s>Post screenshots</s>
*<s>Confirm my memory and the instructions for installing GDM.</s>
*<s>Put installation modifications instructions into a better format.</s>
*<s>Configuring x.org (if your monitor or your graphics card does not work with the default settings).</s>
*Talk about Xorg (and xdm) on different processors.
*Explain how to access the KDE session from GDM.
== Update it ==
Hello,
The only wrong parts this tutorial or guide its based on a Old version of OpenBSD.
Now the version of OpenBSD its 5.1.
Thanks,
Keep helping people that me.
Kind Regards,
Eldes Varassi
==Outdated infomation==
Just a heads up, as of October 2022, most of the packages mentioned are no longer maintained/provided, making this guide useless for most users. I would suggest users to use the following site instead of the wiki: https://sohcahtoa.org.uk/openbsd.html as that worked for me at least when running OpenBSD 7.2 .
[[Special:Contributions/49.2.205.18|49.2.205.18]] ([[User talk:49.2.205.18|discuss]]) 08:02, 30 October 2022 (UTC)
23e552ub8jbya2gq5z218gbsuqiieln
Template talk:Uncited
11
179356
4640062
4415603
2026-06-13T12:30:43Z
ShakespeareFan00
46022
4640062
wikitext
text/x-wiki
This template has been copied from Wikipedia and presumes that the Wiki (in our case, Wikibooks) has the same Fact and Reference checking project and same citation guide pages as Wikipedia. We don't. Until we do I've created WB redirects to the WP pages so that at least the editor can get some help.... [[User:QuiteUnusual|<span style="color:#E66C2C">'''Unusual? Quite'''</span>]] <sup>[[User talk:QuiteUnusual|<span style="color:#306754">TalkQu</span>]]</sup> 11:25, 27 December 2008 (UTC)
ql8jqdubkiwmxjh1ujm20dfz4zn3tlx
Template talk:Listen
11
179630
4640059
1377112
2026-06-13T12:28:52Z
ShakespeareFan00
46022
4640059
wikitext
text/x-wiki
== new version with inline player==
There appears to be quite some interest in integrating an inline audio player in this template (or actually copying the current implementation from Wikipedia). However, a lot of the pages currently using this template make specific references to the old implementation. Therefore, I suggest that
# we discuss here whether we should just integrated an inline player or whether we should copy the implementation from Wikipedia (I'm in favor of the latter)
# we make sure that all Wikibooks pages referencing {{tl|Listen}} are either updated to the new design or the template {{tl|Listen}} is replaced by the template {{tl|Listen old version}}
--[[User:Martin Kraus|Martin Kraus]] ([[User talk:Martin Kraus|talk]]) 14:52, 30 December 2008 (UTC)
I think the best approach might be to optionally allow the integration of an inline audio player, while using the current default of not doing so. So pages that use the listen template continue to work as expected, and people who want an integrated audio player can have one. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 19:43, 30 December 2008 (UTC)
:That's what I suggested when derbeth changed the definition some weeks ago. But copying the definition from Wikipedia has the advantage that the new template is very flexible (supporting multiple files etc.) and we could also use the documentation and we would be consistent with Wikipedia (which is a good idea for the more complex templates). There are actually not a lot of pages at Wikibooks using {{tl|Listen}}, thus, it wouldn't be a big problem to replace all occurences of {{tl|Listen}} by {{tl|Listen old version}}. That would also give a hint to the authors of those pages that a new version is available. --[[User:Martin Kraus|Martin Kraus]] ([[User talk:Martin Kraus|talk]]) 19:53, 30 December 2008 (UTC)
I reverted to the Wikipedia implementation and adapted the wikibooks pages that use {{tl|Listen}}. --[[User:Martin Kraus|Martin Kraus]] ([[User talk:Martin Kraus|talk]]) 19:06, 11 January 2009 (UTC)
p3g9px1iqk7jkth1mun55gl3jy7f31v
Template talk:Qr-em
11
185822
4640074
3453896
2026-06-13T12:41:48Z
ShakespeareFan00
46022
4640074
wikitext
text/x-wiki
== Basic Writing Wikibook ==
The Basic Writing Wikibook is currently being revised. Version 2.0 will have about one-third more information, thus the need for new pages that may seem sparse at first, but will be added to as the spring semester 2009 progresses. <small><span class="autosigned">—Preceding [[w:Wikipedia:Signatures|unsigned]] comment added by [[User:Llcadle|Llcadle]] ([[User talk:Llcadle|discuss]] • [[Special:Contributions/Llcadle|contribs]]) 11:11, 2009 February 13</span></small>
:This template isn't part of the Basic Writing book. This template is a general project template. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 17:55, 13 February 2009 (UTC)
== Change text ==
This template is more widely used than just for apparent tests, so it's confusing that that's what the text says. [[User:Liam987|<span style="color:white;border:1px solid;background:#0055A4;font-variant:small-caps;text-shadow:0 5px 8px #850000">Liam987</span>]] [[User talk:Liam987|talk]] 00:28, 6 April 2015 (UTC)
:It's widely used, so I don't want to change it without consensus. [[User:Liam987|<span style="color:white;border:1px solid;background:#0055A4;font-variant:small-caps;text-shadow:0 5px 8px #850000">Liam987</span>]] [[User talk:Liam987|talk]] 00:28, 6 April 2015 (UTC)
== [[:Category:Candidates for speedy deletion]] has not been refreshed for weeks ==
This conditional category is supposed to be filled by the pages containing this template exactly seven days after the inclusion. However the server cache let them out of it during at least several weeks (last example: ''[[Life, Love and Sex]]'' wasn't visible in the category after 16 days, even if the category appeared on the page).
That's why I've decided to launch my bot to process to null edits on the linked pages every night. [[User:JackPotte|JackPotte]] ([[User talk:JackPotte|discuss]] • [[Special:Contributions/JackPotte|contribs]]) 20:44, 25 August 2018 (UTC)
if4ujdcv5bhuj9i9f71gr53778hh91s
Template talk:Navlist/Doc
11
187393
4640060
2950880
2026-06-13T12:29:36Z
ShakespeareFan00
46022
4640060
wikitext
text/x-wiki
== Tasks ==
Some things I plan to do to bring this family up to snuff:
*Adjust the help page so it serves as a user's guide as well as a programmer's manual.
*Add some top-navbox style options:
**Font size (normal or small; this might extend to the bottom navbox, not sure one way or 'tother).
**Arrow type (<big>←</big> <big>→</big> would probably be the default).
**Alternative form that sits in the upper right corner, instead of spanning left-to-right.
*Right-hand links on bottom navbox, with anchors by module name.
*External links as an additional navlist entry type.
*Client template to generate print version of the book.
--[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 12:44, 20 February 2009 (UTC)
: I tried to add support for named colors like background=black. Apparently the first approach didn't work, so instead of using &nbsp; I've tried another approach which seems to be working. I also seemed to have missed a few places where I needed to switch around #'s and I think I found them all this time. What were you having trouble with? Are you still having trouble? --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 02:31, 21 February 2009 (UTC)
:: As far as I can see your nother approach works. (I tested it with a named color, too.) --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 03:18, 21 February 2009 (UTC)
:: In answer to your first question, the earlier approach with nbsp broke everything that actually used the color returned by Navlist/Map/Background or Navlist/Map/Border; I first noticed that from one of the Conlang pages, but once I knew what to look for it was observable from test case D on Navlist/Top. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 03:38, 21 February 2009 (UTC)
== TOC as column? ==
Every Wikibook page consists of (minimal) two columns: the first one at the leftmost edge for the Wikibook-navigation like 'Main Page', 'Help', 'Browse wiki', ... and a second one for the content of the page. I'm using the term 'column' not in the sense of CSS 'column-count' but in the sense of HTML tables, as 'column-count' leads to floating text between the columns depending on window size whereas table columns have a fixed layout like the mentioned Wikibook pages.
What I'm looking for is a template to create an additional column between the leftmost wikibook column and the page content. Or, to say it the other way round: a template to divide the content page into two colums. This additional column should contain the TOC of the book - not only at the main page but also on every page, where this template is included. And the TOC should be expandable like a directory-tree so that chapters, sub-chapters, sub-sub-chapters, ... can be visualised easily.
As far as I have understood, this request is not met by the template Navlist? --[[User:Kelti|Kelti]] ([[User talk:Kelti|discuss]] • [[Special:Contributions/Kelti|contribs]]) 18:55, 28 April 2015 (UTC)
:: {{ping|Kelti}} Much of the content on the front page of [[Conlang]] is divided into two columns. Is that somewhat similar to what you want? --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 01:39, 29 April 2015 (UTC)
:: So far: yes. There are two columns as I do expect. But I miss the possibility to fold and unfold subtrees - as it is the case with directories of a file explorer. --[[User:Kelti|Kelti]] ([[User talk:Kelti|discuss]] • [[Special:Contributions/Kelti|contribs]]) 11:24, 29 April 2015 (UTC)
::: Yes, that would be nice. Afaik it's not provided by the wiki software, so would require some javascript and would be tricky to do. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 13:15, 29 April 2015 (UTC)
nsuqbzbtmuaml8du5qx6ajdxlbk3ifk
Talk:C++ Programming/Exception Handling
1
198918
4640176
2141508
2026-06-13T16:05:29Z
ShakespeareFan00
46022
4640176
wikitext
text/x-wiki
== Throw Declarations ==
A nice future enhancement to this section would be to discuss throw declarations in function signatures: what they mean,
how to use them, and disadvantages of using them. [[User:Jlenthe|Jlenthe]] ([[User talk:Jlenthe|talk]]) 13:26, 14 June 2009 (UTC)
== Unhandled exceptions ==
"Unhandled exceptions on the other hand will result in a function termination and the stack will be unwound '''(allocated objects will have destructors called)''' [...]"
This is not true (at least for g++).
<pre>
#include <iostream>
class Test
{
public:
Test() { std::cerr << "ctor called" << std::endl; std::cerr.flush(); }
~Test() { std::cerr << "dtor called" << std::endl; std::cerr.flush(); }
void aaargh() { throw "aaargh!"; }
};
int
main(int argc, char **argv)
{
Test t;
t.aaargh();
return 0;
}
</pre>
results in following output:
<pre>
$ g++ test.c
$ ./a.out
ctor called
terminate called after throwing an instance of 'char const*'
Aborted
$ g++ --version
g++ (Debian 4.3.2-1.1) 4.3.2
</pre>
Obviously the destructor is '''not''' called.
It seems as if the elements on the stack only get cleanly deallocated iff there is a try-catch-block:
<pre>
int
main(int argc, char **argv)
{
try
{
Test t;
t.aaargh();
}
catch(...)
{
throw;
}
return 0;
}
</pre>
results in following output:
<pre>
$ g++ test.c
$ ./a.out
ctor called
dtor called
terminate called after throwing an instance of 'char const*'
Aborted
</pre>
: The ISO rules are a bit more complicated than what is written here. If an exception goes completely uncaught even in the main() function, the program is terminated. Whether the stack is unwound and destructors called before termination in that situation is implementation defined. The results you see is within the ISO rules. Unwinding of <tt>t</tt> happens and the destructor called in the second example because the uncaught exception in the aaargh() function is caught in the main() function. Also <tt>t</tt> is constructed within the try block and before the try block jumps to the catch <tt>t</tt> is destroyed if I've understood the ISO standard correctly. You might get different results if you print a message before ''throw'' in the catch handler depending on whether t is constructed before or in the try block as well:
: int main() { Test t; try { t.aaargh(); } catch(...) { std:cerr << "caught exception" << std::endl; std::cerr.flush(); } }
: int main() { try { Test t; t.aaargh(); } catch(...) { std:cerr << "caught exception" << std::endl; std::cerr.flush(); } }
: --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 14:34, 1 September 2010 (UTC)
== empty throw ==
There was a comment in the original text which says "An empty throw can only exist in a catch block"
This is Not true . You can also put empty throw in try block. But be careful !
For example this empty throw is not catch-able hence useless
<pre>int main()
{
try{
throw ;
}catch(...){
cout << "What do you think you are doing ?? " ;
}
return 0 ;
}</pre>
<pre>bash>> g++ exceptionClasses.cpp
bash>> ./a.out
terminate called without an active exception
Abort</pre>
One usage would be to re-use empty throw based function to catch some other function's exception and forward e.g. extending above example
<pre>void mymain(){
try{
throw ;
}catch(...){
cout << " What do you think you are doing ?? " ;
}
}
int main(){
try {
throw "May be this makes sense !" ;
}catch(const char * str){
cout << str << endl ;
mymain() ;
}
return 0 ;
}
</pre>
<pre>bash>>./a.out
May be this makes sense !
What do you think you are doing ??</pre>
<small>—The preceding [[w:Wikipedia:Sign your posts on talk pages|unsigned]] comment was added by [[User:Manish baphna|Manish baphna]] ([[User talk:Manish baphna|talk]] • [[Special:Contributions/Manish baphna|contribs]]) .</small>
: You are partially correct. The standard does not forbid an empty throw from being placed anywhere. According to the standard an empty throw has the effect of throwing the most recently caught exception that hasn't finished being processed. I believe this is seen in your second example. In the mymain() function I believe the throw results in "May be this makes sense !" being rethrown and caught because that was in the middle of a catch that hadn't finished being processed. However the standard also says the program is to be terminated if there is no active exception currently being caught, which is what is seen in the first example. The only reason the throw isn't caught is because the program is terminated due to there being no active exceptions. This could be interpreted to mean that an empty throw can exist outside of any try-catch block too, but doing so results in program termination, just as the first example did: <code>int main() { throw; return 0; }</code>. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 12:08, 22 October 2010 (UTC)
== Java references ==
C++ is not Java. It shouldn't be compared to Java. There are nearly countless OOP languages out there (vm'd and natively compiled) that C++ ''could'' be compared to, but it's not. Let's not start. That's a slippery slope of, "Oh, let's teach [Insert language here] developers how to program in C++ by comparison." I went ahead and removed references.
[[User:Prime|Prime]] ([[User talk:Prime|discuss]] • [[Special:Contributions/Prime|contribs]])
:We have a section for that sort of comparisons that will always crop up. Can you check out Java section of the book and see if what you removed here is correctly demonstrated there ? Thanks. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 04:06, 5 June 2011 (UTC)
== Throwing objects: catch by value ==
"But now, the catch handler that catches the exception, does it by value, meaning that a copy constructor is called. '''This can cause the program to crash if the exception caught was a bad_alloc caused by insufficient memory.'''"
Are you sure about this? Catching the exception by value means that the copy is created on the stack, not on the heap. IIRC, only <code>new</code> can throw <code>bad_alloc</code>. [[User:Danilo.Piazzalunga|Danilo.Piazzalunga]] ([[User talk:Danilo.Piazzalunga|discuss]] • [[Special:Contributions/Danilo.Piazzalunga|contribs]]) 19:18, 14 July 2011 (UTC)
8g7h7vmpz5m6dbj5fdeqhd5dg77ic8y
User talk:Thenub314/Archive 1
3
201967
4640125
4625147
2026-06-13T15:28:34Z
ShakespeareFan00
46022
4640125
wikitext
text/x-wiki
{{talkarchive}}
== welcome ==
Welcome, Thenub314!
{| style="background:white; border:1px solid #abd5f5;; padding:0px; border-spacing:0px; color: #000000;"
! style="background:#d0e5f5; color: #000000;" | [[Wikibooks:Welcome|Getting started]] with Wikibooks
|-
| style="padding:5px;" |
* Wikibooks is a collection of open-source textbooks. Find out [[WB:WIW|what this means]].
* To sign your name (on discussion pages), use four tildes, like this: ~~~~
* Learn how to [[Using Wikibooks|use Wikibooks]] and learn more about the community.
* [[WB:CCO|Explore]], [[Wikibooks:Be bold|be bold]], and have fun!
|}
Come introduce yourself in the [[Wikibooks:Reading room/General|general reading room]] or your project in the [[Wikibooks:Reading room/Projects|project reading room]]. If you have any questions, you can ask in the [[Wikibooks:Reading room/Assistance|assistance reading room]] or contact me personally.
Thank you for your work on the [[Real analysis]] and other wikibooks.
--[[User:DavidCary|DavidCary]] ([[User talk:DavidCary|talk]]) 02:36, 13 February 2009 (UTC)
== SVG on Commons ==
Hi Thenub314,
Thanks for your [http://en.wikibooks.org/w/index.php?title=User_talk:W3asal&curid=169700&diff=1408432&oldid=1408330#Calculus comment] on [[User talk:W3asal]]. In case you weren't aware of either [[commons:|Commons]] or SVG graphics, I just wanted to point you to these great resources. Uploading files to Commons makes them available across all Wikimedia projects and SVG just kicks ass for mathematics related graphics. Gnuplot supports SVG output and [http://www.inkscape.org Inkscape] is a free vector graphics editor with which you can create great graphics. --[[User:Swift|Swift]] ([[User talk:Swift|talk]]) 09:06, 13 February 2009 (UTC)
: Hi, thanks, I wasn't aware of commons but I noticed it was mentioned in the general reading room recently (under the heading of common mistakes) and found myself wondering about what it was. I wish I could produce the graphics in SVG. I have trouble doing what I want with inkscape (my linux distro has a bug) and I can't get it to do anything in 3d. Gnuplot might be an option, but I didn't find the nice plotting commands I needed. In short I will definitely use SVG when I can, but in my rather limited experience making graphics something always prevents me. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 10:52, 13 February 2009 (UTC)
:: Hmmm ... what are your problems with Inkscape? I'm running version 0.46 and it's pretty stable. A couple of years ago, it kept crashing on me, though.
:: Inkscape doesn't really do 3D as such. Just vector graphcis made up of simple shapes (ellipses, polygons), splines and such. --[[User:Swift|Swift]] ([[User talk:Swift|talk]]) 03:36, 15 February 2009 (UTC)
::: Well, inkscape won't render LaTeX on my system. But I think this is mostly a problem with my linux distro. Possibly it could be a licensing issue, inkscape rely's on pstoedit to convert latex fromula's from ps to svg. But at least one of the plugins to pstoedit that coverts to svg is not open source, simply shareware. Anyways I have been playing around with it trying to get to know it. So far it seems very similar to Xfig with a more modern interface, most of (but not quite all of) the features, but many new features. Hopefully building various things from source myself I can get it to give me nice pretty LaTeX'ed labels for my diagrams. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 12:05, 15 February 2009 (UTC)
== Re:Categorizing ==
Hello Thenum314, how are you? I don't know how familiar you are with MediaWiki. Categorizes are list pages maintained by the software. So [[:Category:Calculation]] automatically contains a list of all books in that category. It also has a place where you can write some basic information about that category. Notice that the list of pages still exists whether we've written a description page about it or not. So the link can be red but the list still exists (click on the link above to see for yourself that this is true if you want). A subject page is just like a normal wiki page, and we can include anything there that we want. The [[User:Whiteknight/Simple Subject|standard template]] that I've been using automatically includes books from the category page links, in addition to some formatting fancyness.
I'm very glad for any and all help. We have at least 3,000 books here on Wikibooks, and through the course of this project I'm probably going to have to edit every one of them. I don't pretend that I'm doing it all perfectly, but I am making things a little better and more managable then they were before I started. My goal is to (a) find a way to make things better, and (b) find a method to make things better ''quickly''. The need for quickness is part of the reason why my work is a little imprecise sometimes.
If you're interested in helping, here are some things you can do:
# Move books from major topics like [[Subject:Mathematics]] to subtopics like [[Subject:Calculation]] or [[Subject:General Mathematics]], etc.
# Edit the book pages to remove old templates like {{tlx|shelf}}, and remove bare [[Category:]] markers. Category names should be used with the {{tlx|Subject}} template only. So you could change "{{tlx|Subject|Mathematics}}" to "{{tlx|Subject|General Mathematics}}", or whatever subtopic is more appropriate.
# Take a quick look at the book and add any [[User:Whiteknight/Template Cheatsheet|cleanup templates]] to the top that reflect the current condition of the book.
# Move to the next book.
It's a quick process, and it really gives you the opportunity to take a look at a lot of books that you would have ignored otherwise. It's a good opportunity to see what kinds of books we have in our collection here! Good luck, and let me know if you need anything else! --'''Whiteknight''' ([[User:Whiteknight|Page]]) ([[User talk:Whiteknight|Talk]]) 20:08, 17 March 2009 (UTC)
: OK I get the rough idea and I will do some stuff on the mathematics. If I do well, or feel like I get the hang of it, I will branch out from there. I will probably recategorize a few things, but I get a bit particular about my own subject area.
: But I am really quite serious about "calling a spade a spade". It seems to me we should really make the links at the bottom of the page say "Categories" instead of "Subjects". Or (even better) make the links to the actual subject pages appear, but from my understanding there is some technical difficulties there. How do I go about really engaging the admins in a discussion about this? Where is the right place to start? Thanks for you help.
:[[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 09:00, 18 March 2009 (UTC)
== Re:Sentence Casing ==
I'll hold off on any renaming/recategorizing for the moment. For the sake of consistency, all the subjects need to have the same casing, and I'm under the impression that it's supposed to be sentence casing. Maybe someone who has a "bot" could automatically fix the categories.
Let me know if anything changes. [[User:NipplesMeCool|NipplesMeCool]] ([[User talk:NipplesMeCool|talk]]) 01:46, 21 March 2009 (UTC)
== Re: Random Stuff ==
I created a subject [[Subject:Mathematical Reasoning]] that currently holds the [[Logic]] book. If you like that, good, otherwise feel free to redo-that as [[Subject:Mathematical Logic]] if that's better. As for the [[Mathematical Logic]] book, I haven't touched that book since 2006. It was created by separating a lot of un-related topics from the [[Algebra]] book, which (if you can believe it) used to be is much worse condition then it is now. You are welcome to do anything to [[Mathematical Logic]], including merging it into [[Logic]], updating/expanding it, or even marking it for deletion entirely. Anything that you think is best is what's going to happen. Let me know if you need any help with it. --'''Whiteknight''' ([[User:Whiteknight|Page]]) ([[User talk:Whiteknight|Talk]]) 15:56, 26 March 2009 (UTC)
== [[Introduction to Mathematical Physics]] ==
Having this book in [[:Category:Mathematical physics]] already places it in [[:Category:Physics]] and [[:Category:Applied mathematics]] because Mathematical physics is already a member of both of those. If every book in Mathematical physics were put in both of those, there would be no point to having a subcategory of them in order to keep subjects from becoming too large. I would like to request that you not overcategorize the book, which defeats the purpose of specific subjects. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 22:40, 10 June 2009 (UTC)
: Hi Adrignola, thanks for leaving the comment. I have restored the classification, it doesn't seem inappropriate to me to direct the reader not only to the most specific topic under which this book is, but also to slightly more general topics that are relevant. I admit I did not realized that mathematical physics was categorized under applied mathematics. As a mathematician this strikes me as a bit of a mistake in terms of what these terms usually mean. (For example the AMS subject classifications list doesn't place Physics under applied mathematics.) I certainly don't feel I have over categorized, as you point out I didn't even change which categories the book appears in. The links are helpful, as well as the placing in the subject page. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 09:35, 11 June 2009 (UTC)
== University level mathematics ==
I took books out of that category because Darklama wanted them categorized by subject matter. He felt you couldn't accurately decide when a mathematics course might be taken. You're working against what was being done to the books. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 11:53, 12 June 2009 (UTC)
:: I think it is appropriate to try to give readers an idea of the level of a book. If the categorization isn't perfect lets discuss specific books. I had no idea people had taken books out of this category, I maintain it would have been a mistake to do so. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 11:57, 12 June 2009 (UTC)
::: The following was the discussion on my [[User_talk:Adrignola/Archives/2009#University_level_mathematics.2C_a_better_way.3F|archived talk page]]. Maybe you and Darklama should have at this; mathematics isn't my area of expertise. I'd just like us all on the same page. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 12:10, 12 June 2009 (UTC)
:::: Any math can be taught at the university level anywhere/somewhere in the world. There isn't an exact definition of what "university level" is. [[Wikibooks:Reading Levels]] and Prerequisites give a better idea of what level books are at. A person who dropped out of school or never went can attend a university to learn even basic math like addition, subtraction, multiplication, division. Every book qualities as university level. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 13:24, 12 June 2009 (UTC)
::: Sure, you can take any course at any point in your life. But most universities have a fairly standard curriculum which helps make this a little clearer. Also, books are written differently for different audiences. A "College algebra" book is distinct from an "High School Algebra" book not especially because of what material is there but because of how it is written. In the same way that the wikijunior book about Geometry is really about Euclidean Geometry (an advanced topic) but clearly written for children. I don't think there is any real difficulty in making the distinction. And it was a positive aspect of the Mathematics bookshelf page I hope to implement on the Mathematics subject page. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 13:35, 12 June 2009 (UTC)
:::: The "standard" curriculum taught at one university may be nothing like what is taught at another university. Even how books are written can vary from university to university. Each university often has a different audience its trying to appeal to. In some countries there might not even be a distinction made between a university and a college. I think there is difficulty in making a distinction because it won't make sense in some parts of the world. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 13:43, 12 June 2009 (UTC)
::::: To this see my comment about graduate schools below. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 14:20, 12 June 2009 (UTC)
:: I am a bit frustrated with Darklama about this. I didn't create this subject, but I did like it. He and I discussed it in the reading room (and from previous interactions he might have realized I was a person who cared about the mathematics here) and I have previously done a non-trivial amount of work categorizing, before I got distracted by the Linear Algebra book (which I came across while categorizing and decided it needed immediate attention.) I have been an active editor who went away on holiday for only about a month. If he wanted to discuss getting rid of it, it would have been polite to invite me in on the discussion, since I had been doing work (and planned to continue work). --[[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 13:21, 12 June 2009 (UTC)
::: Your contributions to Linear Algebra are appreciated. The categorization of books in Mathematics is based on Wikipedia's categorization and not my own opinions of where they should be. Had you not been on holiday at the time I was working on them and had I been made aware of your expertise in the area, I could have taken any input you had into account. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 13:54, 12 June 2009 (UTC)
:::: Thanks. Let me be clear that I am not (nor was I at any point) frustrated with you. You and I had not had a chance to meet, and you've clearly been doing a lot of hard work. I think in a month you've made more edits here then I have in the several years I have been here. Keep up the good work, it is really appreciated by all parties.
:: In any case, if there is a better way no work has been done to implement it. I read the discussion on your page, but it didn't make clear to me what the other alternatives were, or give me any clear reason why this is not a good thing. I am willing to do this work, I am enough of an expert to make the judgment call on which books belong where. I admit there are grey area's, but there will always be grey area's when categorizing. (For example, I don't think the books [[Algorithms]] or [[Data Structures]] contain mathematics but they are categorized under mathematics so other people clearly felt otherwise.) It is not a reason not do it, and as far as I can tell Darklama's argument is that it is too much of a grey area to have these categories. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 13:21, 12 June 2009 (UTC)
::: To be fair, [[:Category:Algorithms and data structures]] is under discrete mathematics and computer science, so those two books would be pertaining to the computer science side. If all the books are related to computer science, then we should probably put [[:Category:Algorithms and data structures]] only under computer science. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 13:54, 12 June 2009 (UTC)
:::: I understand, I only ment there are inevitably things that get mis-categorized. In this case the trouble with moving the whole category of "Algorithms and data structures" is that it contains Numerical methods, which is appropriately under. The subject has a whole also has more mathematical parts to it, but from my first glance it just isn't in those two books. So there is no clear fix in my mind. Those two books seem to be categorized as they should be, which places them under mathematics, which they are not. It seems to me to be kind of a catch 22. And these type of things will always happen, it is not a reason for trying not to create useful categories. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 14:17, 12 June 2009 (UTC)
::: People could urge indefinitely on whether certain books qualify as university level. Are you saying you are also enough of an expert to make the judgment call as it applies everywhere in the world as well? I don't think you can say that with obsolete certainty. You might as well put all the math books in the university level category now because that's the only way to make it work for every country in the world. I'm frustrated with people who think this can realistically work without explaining how it can possibly work. Its not about gray areas, there is nothing to go by that wouldn't require changing later when people insist that more books be placed in it or taken out of it because a book covers or doesn't cover something that is taught at the university level where they live. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 13:35, 12 June 2009 (UTC)
:::: Graduate schools must decided if they on how to accept credits from all over the world, acceptance to respected graduate school has similar requirements in most countries, things are not that different that you can't make a reasonable categorization. Your could argue much more about Reading levels then about when one would typically encounter some branch of mathematics. If you feel there is a problem, be specific, which country, which book. I have taught at multiple levels in two countries now, and have discussed education a fair bit with people from around the world, and I must say I really don't see a problem here. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 13:49, 12 June 2009 (UTC)
:::: The subjects covered by Abstract algebra, Algebraic Geometry, Linear Algebra, Linear Algebra with Differential Equations, and Statistics begin being taught in middle school or junior high here. That is more specific then I think is necessary. I don't think which country is relevant, because this project isn't restricted to a specific country. Categories should make sense everywhere that English is spoken. I don't think there is any way for this type of category to be neutral. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 14:09, 12 June 2009 (UTC)
::::: I disagree, I think such a category can be made and it is common practice to categorize books this way. I have taught some of these subjects to middle school students. The books we have are not the books to do it with. I am not saying we make a black/white decision based on subject. If I were go follow your advice should I remove statements from books that claim they are university or college level? (For an example see the first sentence of [[Formal Logic]]). Are these authors not being neutral? [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 14:39, 12 June 2009 (UTC)
:::::: I think such statements need to be removed from books that aren't targeting an audience from a specific school or country. Some books do say there audience is for a specific country or school though. Those authors aren't be neutral if they aren't writing for an audience from a specific school or country. Formal Logic doesn't seem to be targeting a specific school or country from just a brief look so I would say that needs to go. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 15:14, 12 June 2009 (UTC)
::::::: What about [[Geometry for elementary school]]? By this logic it would seem a complete misnomer that needs to be retitled. Nothing I have read in this book makes it specific to a country, yet in the country I am living in there are no elementary schools. Similar arguments could be made about title of [[High School Mathematics Extensions]].
::::::: You said above that describing the prerequisites is a better way to describe the level of a book. Here are some things to think about. First: how do you describe the prerequisites in a fashion that doesn't implicitly depend on which country your from? Algebra II may be a prerequisite, but courses called Algebra II do not exist everywhere. What about Calculus, depending on where your from then saying Calculus is a prerequisite may more may not imply your expected to know: sequences and series, envelopes, comfort with mathematical proofs, comfort with δ-ε arguments, etc. Not to mention prerequisites don't necessarily give much away about the level of the course. What are the prerequisites for group theory? The prerequisites for Geometry for elementary school and Euclid's Elements would have to be the same but the books are at vastly different levels.
::::::: What about Wikijunior? To use your argument above: A person may drop out of school and only later try in life decide to make use of the wikijunior books. So perhaps wikijunior should be renamed. On the other hand any subject listed here has probably been taught to the age group we have listed as juniors here, so why move these books into wikijunior? [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 08:49, 13 June 2009 (UTC)
:::::::: A book's scope and audience define what to cover. If covering addition, subtraction, multiplication, division, etc. is outside an Algebra book's scope then a book that covers basic math could be a prerequisite for people who don't know basic math yet. In this way the dependency is on what skills or prior knowledge that is assumed to be needed, and not on the country. Multiple books on the same subject can coexist. One book can depend on readers having prior knowledge, another book could cover everything you need to know with no prerequisites, and yet another book could have different prerequisites from the first book. Prerequisites should make sense for the specific book and books should strive to be specific about what is is you need to know, so its clear why a specific Calculus book is a prerequisite for example. A book for a specific school or country's curriculum should have more specific prerequisites then a book intended for a more general audience.
::::::::: I think I am missing your point in the above paragraph. The first few sentences seem to explain what a prerequisite is, which wasn't really necessary. I agree that books should strive to be specific about what you need to know. My point was that is just as difficult do describe what the prerequisites are in some neutral manner as it is to place the book into a category describing its level in some neutral manner. I fully understand (and encourage) multiple books on the same subject. I never meant to imply otherwise. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 18:55, 13 June 2009 (UTC)
:::::::::: You asked "How do you describe the prerequisites in a fashion that doesn't implicitly depend on which country your from?" Prerequisites aren't dependent on what country your from unless the scope and audience is for a specific country. By being specific about what people need to know, books with a general audience can avoid making assumptions that are country specific. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 20:57, 13 June 2009 (UTC)
::::::::::: I think you missed my point here. Sure the prerequisites are well defined, but the problem is how to <i>describe</i> them. It is not reasonable to list every fact from algebra you'd like to use in a calculus book. Very few editors could list the level to which you should have reached in each major cirriculum (if that concept even makes sense.) Without requiring the reader to be familiar with the subject matter of some specific book, it is difficult do describe exactly what you mean. This being so, you're likely to run into descriptions that don't quite work across cultures. We should all strive to make these books as multicultural as possible, but there are realistic limits you run into. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 09:35, 15 June 2009 (UTC)
:::::::: Adults can read Wikijunior books too if they aren't familiar with a subject. Just because a book is aimed at children doesn't mean adults can't read it. I admit I don't particularly like the idea of making a distinction between children's books and adult books either, or assuming that a person must be in a certain age group to benefit from books. I see Wikijunior as more of a means to keep an eye on books aimed at children, and not as being of benefit to only children. I think the distinction between Wikijunior and other books is the intended reading level, rather then any prerequisites. Wikijunior could also be useful for people who learned English as a second language, because of the intended reading level.
::::::::: I never meant to say adults couldn't read wikijunior books. Shame on me, I was being a bit sarcastic, which never comes through well on print. I think wikijunior is a great project with many more benefits then just keeping an eye on the books aimed at children. I think the distinction runs deeper than reading levels or their would be more confusion about what is a wikijunior book and what is a simplified english book. (By the way, are simplified english books a separate project? When I go over to look at them, for example I no longer have a userpage at simple.wikibooks.org)
:::::::::: I think the reason the two aren't confused is because Simple English imposes certain restrictions on what words can be used (in theory at least), while books aimed at children can have varying degrees in vocabulary and more complex words can be used if explained. Simple English is a separate project, but books written in Simple English seem to be fine here too, because there was some objections awhile ago to deleting a book copied there. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 20:57, 13 June 2009 (UTC)
:::::::: The Introductory chapter of Geometry for elementary school mentions its aimed at parents in teaching there children, which sounds like a good candidate to be moved to the Wikijunior namespace to me. High School Mathematics Extensions says its aimed at 14 to 18 year olds yet at the same time says its intended to be for anyone with at least 9 or 10 years of formal education. I think its scope is not well defined and needs to be clarified. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 16:34, 13 June 2009 (UTC)
::::::::: Both books have issues in my opinion I was just hoping to find out how you felt specifically about the Titles. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 18:55, 13 June 2009 (UTC)
:::::::::: The specific examples you used have other issues to consider first. In general I think a lot of book could do with more descriptive titles that better reflect there scope and audience. I would probably suggest renaming <tt>Geometry for elementary school</tt> to <tt>Introduction To Geometry</tt> if it weren't for the audience seeming to be for children. <tt>High School Mathematics Extensions</tt> could probably have its scope resolved rather quickly, and renaming it to <tt>Introduction To Mathematics Extensions</tt> would probably help. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 20:57, 13 June 2009 (UTC)
::::::::::: I think your perhaps a bit too harsh on the use of school level in the title and text of books. At the end this should be the decision of the books authors. For <tt>High School Mathematics Extensions</tt>, the title of the book is supposed to indicate that the topics of the book are extensions to a high school mathematics curriculum. The difficulty with trying to rename a book like this is that something is necessarily lost in the translation. <tt>Introduction to Matheamtics Extensions</tt> for example couldn't work. There isn't a subject called "Mathematics extensions". I don't mean to criticize your title, I understand your making the point it should be changed. I am just offering the counter point that it would be difficult to do so without changing the philosophy of what the book is about. For better or worse, at least in mathematics, describing the content with terms like "A-Level", "Elementary school", "College" is both natural and common. The examples I choose were all Featured books, but in honesty this occurs in <b>many</b> of the math texts here.
:::::::::::: The name doesn't immediately clue you in on what its about. Extensions to what math? High School doesn't tell you what math is covered. I'm harsh on titles because I think most dead-tree books are more descriptive in there names which does a better job of giving a person browsing a bookstore what the book is about. Books on Wikibooks should do the same. I don't have a problem with "A-level" though "GCE Advanced Level" would be more descriptive. With that name at least you know what curriculum a book relates to. If a book isn't related to a specific curriculum why even bother to mention Elementary, College, or University at all? The talk page suggestions there have been criticisms about the book because of its lack of focus. I think the lack of focus is caused by a lack of a clear title and scope. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 14:50, 14 June 2009 (UTC)
::::::::::::: Now, wait a minute. My understanding was that A-levels are not universal, they differ by the country offering them, which seems to be supported by the Wikipedia article about them. So you really don't know which particular curriculum the authors are referring to. Plenty of books printed by traditional printing presses (I am guessing this is what you mean by dead-tree) have titles just as vague. For example Princeton Review publishes "High school review N" where N is some number in the series. I'll stop there but one could make a rather long list. The truth is that most of the math books here suffer from a problem with focus. In fact many are little more then a table of contents. While the book suffers from a lack of focus, it is because it is trying to be something interesting and different. Instead of aiming to be a standard text on some subject, it wants to add new additional projects to interest students. Which projects you take and how you make them fit together is something that would be very unclear from the outset. To be honest, I wouldn't have thought a book with that sort of agenda could do as well as it has here. Since these books aren't tied to any curriculum the reason for saying A-level, college, elementary, etc. is to give the person some idea of what they are getting into when the pick up (or click) on the book. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 22:31, 14 June 2009 (UTC)
:::::::::::::: I wasn't trying to imply A-levels are universal, I assumed it was because I don't know much about it. Which I think just reiterates the problem. People could end up contributing unrelated stuff because the title is misleading and the focus makes assumptions like I just did. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 01:06, 15 June 2009 (UTC)
::::::::::::::: Sure, this is a problem, but I feel that it is more or less unavoidable. Any project with multiple contributors will interpret its mission in different ways, contribute things that do not make sense to other editors etc. I don't take this to mean the books are mis-titled, it would be nice if there were a nice introduction to explain. In three of four words it is not possible to give a well defined description of contents of the book, you either say nothing, or try to say something which is necessarily leaves room for this type of confusion. (that is in my opinion of course) [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 09:35, 15 June 2009 (UTC)
Let's take a step back. When I look at the Mathematics bookshelf page, books are categorized in some way by level. I feel this is very beneficial to readers. It seems that by using categories it should be possible to automate these lists a bit. I care more about this then using the word university. Are we arguing over terminology? Do think it is possible for books to be sorted into categories in such a way that all the books in the category are at the same level of sophistication? (Beware of my meaning here, I do not mean sophistication solely in terms of subject matter and its prerequisites but something more generally that includes these together with how the book is written.) I would be happy to be flexible as long as it leads to my general goal. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 18:55, 13 June 2009 (UTC)
: I guess you could say I argue against the terminology used because of concerns I have tried to explain. I guess we were both arguing about different things, since the terminology is not what is important to you. I think there are many ways book can be categorized. Some ways are probably better then others for various reasons. What do you mean by sophistication? What part(s) of how a book is written are you trying to identify? I can't think of what you could be talking about. There are many characteristics that make up a book and that can be used to identify books. If I understood what you were trying to achieve or what your general goal is, I could probably suggest solutions.
: [[Wikibooks:Reading Levels]] use to describe reading levels in terms of high school, college, university level, etc. until someone else (not me) pointed out the problem with that approach. A solution was found that worked with there goals. So another question that you might wish to consider is how does your goals differ from the goals of the reading levels? --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 20:57, 13 June 2009 (UTC)
:: By the description of the reading levels seem mostly the use of the language. This is one important factor in how advanced a mathematical book is, but far from the only consideration. On some fundamental level I have very similar goals. To categorize books by approximate level of difficulty. So I suppose to my mind there are several factors that effect the level of a mathematical text, including: How the material is structured, level of difficulty of the exercises, amount of background knowledge learn this subject, the reading level, the nature of the proofs included...
:: My ultimate goal would be to build a subject page that helped people find a level of book that is right for them for those people who did not come here looking for something specific (or in the case we have several books on the same subject at different levels). Using the categories where books are sorted into approximate levels of difficulty should make it should be possible to create automated lists that are easier to maintain than the bookshelf page. For the other categories I will try to be a bit more creative about titles. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 13:24, 14 June 2009 (UTC)
::: How do you determine the level of difficulty of a book when how difficult a subject is depends on the person? A person with no background knowledge may still be able to pickup and learn the subject. I've been down that road before with the idea of having "Beginner", "Intermediate" and "Advanced" categories, but people can disagree with how easy or difficult a book is. Addition, Subtraction, Multiplication, and Division can be hard for someone just learning to count. So should a basic math book be considered "advanced"? The level of difficulty depends on an individuals own background, education, intelligence and other personal factors. Are there any external factors that could be used so it doesn't depend on a person? Are there perhaps any international standards for identifying level of difficulty that could be used? --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 14:50, 14 June 2009 (UTC)
:::: To begin with, think of this more as comparing the books to each other, not attempting to define how difficult every reader would find the book. I agree an individual may find a particular subject easy or hard depending on any number of factors. If a reader struggles and Arithmetic because they are just learning to count, that is natural, but they are struggling with mathematics that is at a "Beginner"'s level. So to answer your question, of course a basic math book should not be considered advanced.
:::: To answer your first question, the level of the book could be determined by reading (some selection of) the book. What I am suggesting is no more or less subjective then determining a reading level. In that case there is no definitive list of what is jargon, no clear way to decide if the reliance on jargon is heavy, moderate. The external factors would include the ones mentioned above, which I was not trying to be comprehensive, nor have I given much detail. So for example, questions about <i>structure</i>: Does the book present formal proofs? Are examples used to motivate theorems, or are the given afterwards etc.? <i>Difficulty of exercises</i>: Do the exercises require ideas not already present in the text? Do they require you to work in very abstract or concrete settings? etc. <i>Amount of background knowledge necessary</i> I hope we agree it is clear by what I mean by this, which is already part of reading levels.
:::: <i>Reading level</i> is the reading level. <i>Nature of proofs</i> do the proofs follow algebraicly? Do they require other theorems? Are they "rigorous"? etc.
:::: Turning to another question. No, to my knowledge there is no internationally recognized (nor even local) pre-defined measure of difficulty for mathematics tests. But, there is not such a measure for Reading levels, simplified english, books appropriate for "juniors". In fact there is not even an internationally (or locally) accepted definition of mathematics. (See the first sentence of [[w:Definitions of mathematics|Definitions of mathematics]] which I had no hand in writting.) Or definition of the mathematical term "range". Sadly there is no IEEE in mathematics that sets forth reasonable (or at least somewhat consistent) international standards (As mentioned above even GCE A-level's are not as international as one would hope. They are not even used in this part of the UK) For any of these things it is a human endeavor how to categorize anything, and subject to some interpretation. But I do think it is a worth while. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 22:31, 14 June 2009 (UTC)
::::: I meant pre-defined measure of difficulty in general rather then specifically for math tests. I kind of doubted there would be anything as specific as to apply to math only. I only asked about an international standard because I thought if one existed it could make things easier. How would you describe each level of difficulty? I realize that some level of interpretation is necessary. I think keeping assumptions to a minimum and clearly identify what is up to interpretation can help avoid confusion, and problems with "[[w:Categorization#Miscategorization|Miscategorization]]". --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 01:06, 15 June 2009 (UTC)
:::::: You and I are in complete agreement that clearly written descriptions of each category would be very good. Roughly speaking my decisions in categorizing "University level mathematics books" would have been consistent with
::::::# A course at a level beyond IB course. (I choose IB here because it at least claims to be international, but this is well approximated by AP or A-Level if you perfer). I stick with the wording of "Level" here because some calculus courses may be beyond IB while others may not depending on how they treat limits, δ-ε arguments, etc. If you think this is nonsensical wording, I could simply define the complement, not include a book if the topics covered are are subsumed in the IB cirriculum.
::::::# The aims of the author explicitly state the book is aimed at a university audience, and not include the book of the author's claims the book is specifically for some other audience.
:::::: I admit only the second point was explicit in my mind before this conversation. Instead I relied on my previous experience to make the decisions. But if I had to write a description it would start here, and work on improving it from there. You suspect you may feel the second point is a bit artificial and likely to lead to problems. And you may be correct, in such cases most likely the book would need to be improved to meet its goals, or its goals would need to be adjusted. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 09:35, 15 June 2009 (UTC)
::::::: Yes I do think the second point is a bit too artificial. Wikibooks also doesn't do courses per-say, that is what Wikiversity is for. Maybe "Books at a level that continue where International Baccalaureate's curriculum ends. These books are often aimed at a college, university, higher education, continuing education or life long learning audience." That might be more inclusive yet possibly too verbose. Using difficulty levels with IB as a bases could possibly work. I wonder if "often aimed at an audience that has completed any mandatory school years." would work to keep it simple. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 12:50, 15 June 2009 (UTC)
:::::::: I do not think that description is too verbose, it seems very good to me. I don't see how the second criteria has anything to do with courses. A book may be describe its intended audience with terms like "University" or "High school" without the book being used in any course. For example, let's look at the AMS publications: Graduate Studies in Mathematics, AMS Pure and Applied Undergraduate Texts, Student Mathematical Library, etc. Similar types of descriptions are used by Springer-Verlag and London Mathematical society, as well as many other publishers. The authors/publishers of these books describe their intended audience, even though many of these books are rarely (if ever) used to give a course. This type of description is simply part of this industry. I would strongly suggest we keep, explicitly or implicitly, the second criteria and where there is a problem we correct the book. Because that is where the problem really lies. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 13:27, 15 June 2009 (UTC)
::::::::: If my first description is good enough for you then I guess we can move on to what to name the category. The first criteria does mention courses though, which is what I was referring to. I think its fine if a book intends to be used for a course, but the category shouldn't imply that books are used for a course. Implying that books have to relate to a course would suggest some books don't belong even if they could fit that level of difficulty. I don't see any advantages in that. I think the second criteria would still be there if we used my first description. The criteria is just expanded to avoid differences in school systems and I think is more multicultural. Do you disagree? --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 15:51, 15 June 2009 (UTC)
:::::::::: Ah! mentioning courses was my mistake. Your correct, it was not appropriate, I was being careless about what I typed. I am also fine with leaving the description as your first description, which leaves rather implicit the second criteria. So, yes, we have a description for the current category, and we should move onto a name. Given that University typically comes after IB, and the term University is more multicultural then college I am fine with the current name. I suspect you'd like to change it, and I am happy to entertain ideas. Beyond something generic like the terms for reading levels I am not sure I have any good ideas. Perhaps it would help to decide how many categories would be necessary. I suspect 4-5 would be the right number. There should also be a category for Popular Mathematics books. For example, books like [[Fermat's last theorem]] and [[Famous theorems of mathematics]], which do not instruct but simply describe results to a general audience. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 17:40, 15 June 2009 (UTC)
Yes I would like to change the name. That is why I got involved in this discussion after all. Just 2 categories seem needed based on what's been discussed so far. 1 category for books that cover subjects that go beyond IB, and one for books that don't go beyond what the IB covers. What would the 4-5 categories consist of? What would the differences be? I suspect knowing what else you want to differentiate would be of more help then trying to take a stab in the dark at how many categories are needed. What do you mean by "Popular Mathematics"? There is already [[:Category:Mathematical theorems]] in which those two books are apart of. There should be subject categories for each branch of mathematics as books that cover each branch exist. There are already several such subject categories listed under [[:Category:Mathematics]]. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 18:17, 15 June 2009 (UTC)
: Recall my goal was to recreate something like the bookshelf that listed books by level, but in an automated way taking care of categories. The ideas I had before starting this were something like one for very basic level mathematics (for things like arithmetic) and another for something more elementary level mathematics (for things like algebra, graphing, inequalities, basic counting/probability) something for more intermediate topics (trigonometry, conic sections, calculus, introductory probability/statistics, etc). And possibly one level for books which are clearly at a professional level (discussing this point would be academic, as no such books currently exist here). To give some idea of what this might look like I have made a quick mock up of what these lists might look like [[user:thenub314/sandbox|here]] (this is not a finished product but just for illustrative purposes.) The idea would be to augment the current subject page. Anyways those were my grandiose plans at some point, I suppose it is a bit more up in the air at the moment. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 19:41, 15 June 2009 (UTC)
:: The bookshelf seems to consist of only two "levels", an Introductory level and a Higher Education level. Books are then classified into yet other groups. These other groups exist as categories already and are independent of the level stuff. Your example seems to do mostly the same as the bookshelf, but defines some things which were identified on the bookshelf as introductory as being higher education instead. Looking back I see math levels was introduced 3 years ago to the bookshelf, and the levels along with what books belong to what levels have changed over that time. There seems to be a lack of consensus on what levels to use or even what approach to use. There doesn't seem to have ever been a discussion on using levels at all on the talk page, but rather people voicing there views and how their approach is the best at different times. Maybe this should be brought up in the reading room where it can get more exposure, and to encourage more discussion and involvement in what to do? The community may decide its best to do away with levels, or they might brain storm and come up with solutions neither of us have thought of. Doing so might help clear the air at least. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 12:41, 19 June 2009 (UTC)
::: Algebra is further split. And several subjects that I mention are listed as their own subject (Calculus for example is now categorized as Mathematical analysis, and trigonometry is/was in geometry.) Which works well, but also has the effect of separating out these subjects, which I could not do with the categories that currently exist. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 13:48, 19 June 2009 (UTC)
: I am not fond of the category [[:Category:Mathematical theorems]]. Somehow it works nicely at the time it was created, but I think the scope should be somewhat broader. Where would one file books on "What is mathematics?" or things like Hardy's "A mathematician's apology." The common thread these books have is that they are written for a general audience, and they are not intended to instruct one to do mathematics. While these books are about mathematical theorems, I don't think it is best to put them in a category whose scope is Mathematical theorems. Such a category has two problems, the first is that all mathematics books beyond a certain level are about Mathematical theorems, so why not put everything in there. I also happen to feel it is a bit too narrowly defined. I think we could do better. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 09:46, 16 June 2009 (UTC)
:: "What is mathematics?" would probably go directly in [[:Category:Mathematics]] right now. Hardy's "A mathematician's apology" doesn't sound like it would be a book within Wikibooks' scope to me, but I don't know what its about and I'm just guessing based on the title. Math books should be categorized according to there specific subject. If there isn't a specific subject there might be other ways to categorize it. The same was done with the bookshelf. Right now I think the mathematical theorems category makes since. In the future if there are a lot more books dealing with theorems a better way might present itself. I think the intent is for the category to be used for books specifically intended to explain theorems, rather then for books that happen to include theorems and explain the theorems a little bit as part of a broader subject coverage. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 12:41, 19 June 2009 (UTC)
::: Indeed, just as books on software that runs on Windows should not be filed in [[:Category:Microsoft Windows]]. Only books on Windows itself should be there, just as books that are on theorems rather than involving theorems should be in [[:Category:Mathematical theorems]]. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 13:51, 19 June 2009 (UTC)
::: Touche. "A mathematicians apology" is not quite under the scope of this project. Perhaps the real problem is that the scope of this project is textbooks, and it is not immediately clear which of the books in this category could suitably be called a textbook. I generally still feel three books are not qualitatively the same, and would be better under a more general category, but I am willing to let it go for the moment. As per your comment I left a note in the general reading room. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 13:48, 19 June 2009 (UTC)
== [[DSST Fundamentals of College Algebra]] ==
I removed {{tlx|delete}} from that page because nearly all the books in [[:Category:DANTES Subject Standardized Tests]] are of the same nature. I believe they were placeholders, with the original author wanting people to expand on them. It is a legitimate curriculum, like Advanced Placement or International Baccalaureate. It's just that most of the books are stubs (and probably not intended as spam). -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 15:12, 20 June 2009 (UTC)
: Thanks for the heads up, I won't put it back :). I didn't notice we had so many books on this series of exams, where all there was was two links to site offering an 80 dollar exam (standardized or not) it is easy to mistake for spam. Thanks for the catch. Let's hope someone fills in some detail there someday. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 18:42, 20 June 2009 (UTC)
== Merging ==
Technically pages should be marked with {{tlx|now merged|destination page}} to indicate that a history merge is needed and to indicate which page must be the target of such a history merge. Just to let you know. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 12:29, 14 July 2009 (UTC)
:Thanks, these sense in which it is a merge is slim at best, but I will make sure to use that in the future. I wanted to get your opinion about something, take a look at these [http://en.wikibooks.org/w/index.php?title=Special%3APrefixIndex&prefix=MT&namespace=10 templates] and tell me what you think. It seems as if they are a portion of the book in the [[Measure Theory]] template space, which seems like an abuse somehow. Certainly it is not helpful for newbie editors. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 12:37, 14 July 2009 (UTC)
::The book's authors came up with a Wikipedia-style template in a template in a template system. I've substituted templates to break it down. Templates work better for formatting and those did indeed contain content. New templates could be created if you so desire for formatting. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 13:18, 14 July 2009 (UTC)
:::No, I think that is fine for the moment. If I ever get ambitions and finish the books I am working on maybe, but I will burn that bridge when I come to it. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 13:21, 14 July 2009 (UTC)
I'm glad you are spotting orphaned /Contents pages. In my "youth" here at Wikiboooks I merged a few contents pages into the main page for easier navigation and did not label them for a history merge. Oops. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 13:26, 14 July 2009 (UTC)
: :) Always glad to help.[[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 14:21, 14 July 2009 (UTC)
== Margalit ==
Name's familiar, but can't place him. Sorry. I suspected not having a user page might have had sth to do with my not getting autopromoted, which is one reason why I made it, but it wasn't on the list of qualifications. --[[User:Warshall|Warshall]] ([[User talk:Warshall|talk]]) 13:57, 15 July 2009 (UTC)
== Stubs ==
Please remember to check stubs that don't appear to be part of another book to see what links to them. Sometimes people don't make links correctly and they create them at the root instead of as a subpage. This stems from [[Isaiah]], but it's good to keep in mind in general. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 12:40, 16 July 2009 (UTC)
:Nice catch, thanks. I had checked the user contribs for the page's one editor, and he only edited that one page, but for some reason didn't also think to check what links here. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 12:43, 16 July 2009 (UTC)
== Fourier transform tables thank you ==
[[User_talk:DavidCary#Table_of_Fourier_transforms]]: Yes, please do improve our Fourier transform tables. Thank you. --[[User:DavidCary|DavidCary]] ([[User talk:DavidCary|talk]]) 15:00, 21 July 2009 (UTC)
== Nomination? ==
I have a desire to nominate you for administrative privileges. I have gotten the distinct feeling from your requests for book renaming, page deletion, and editing of protected pages over the past months that we've been working on cleaning up that you are being held back from your full potential to assist. We have pretty much the same goals but due to my edits being more prolific in the past, I believe your contributions went overlooked, despite you joining prior to my arrival and your significant contributions to mathematics books. What are your feelings on this? -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 16:09, 2 August 2009 (UTC)
: I would be honored. :) [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 16:15, 2 August 2009 (UTC)
:: Please note your acceptance of a nomination at [[Wikibooks:Requests for permissions]]. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 16:35, 2 August 2009 (UTC)
== Syntax of title ==
"Initialization double de Microsoft Windows" means in French "Dual Booting '''OF''' Microsoft Windows" which in this case means booted windows - real boot on real hardware.
"Microsoft Windows de initialization double" means in French "Microsoft Windows '''OF''' dual booting" which in this case means creating windowed boot - emulated boot on emulated hardware.
In English syntax along with meaning is inverted when used without '''OF''' as follows:
Microsoft Windows Dual Booting - real boot on real hardware.
Dual Booting Microsoft Windows - emulated boot on emulated hardware.
Because of this, [[Microsoft Windows Dual Booting]] title in English is more correct. [[User:㍐|㍐]] ([[User talk:㍐|talk]]) 15:04, 4 August 2009 (UTC)
: A few comments. I fail to see what French has to do with this, I am a native English speaker who is not infulenced by the choice of word order in French. Why do you feel French is important here? Secondly as titles in English, I would say that "Dual Booting Mircosoft Windows" is more correct. Notice that this book is discussing a real boot on real hardware. To draw an analogy, one could write an article "Cooking Fish" the it is more common to place verb before the noun, as opposed to "Fish Cooking". There are clear cases where either would be acceptable (such as "Coffee Drinking" and "Drinking Coffee" for an article giving advice about java). Over all I think the choice of this word order is common and in this specific subject, see for example [http://www.pcmag.com/article2/0,2817,2109434,00.asp] or [http://apcmag.com/how_to_dual_boot_vista_and_xp_with_vista_installed_first__the_stepbystep_guide.htm].
:For what is worth the phrase "Dual Booting of Microsoft Windows" is grammatically incorrect in English because it is missing the article "The". [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 15:25, 4 August 2009 (UTC)
== [[C++ Programming]] ==
Thanks for all the work you are putting into the book.
I'm sorry to tell that I probably messed up your changes into the Enumerative data types (enum) page (due to a merge of content), please take a look [[C++ Programming/Variables/enum]] and see if you agree with how things now stand.
I attempted to check the diffs and detected some minor issues, but as I don't know how proficient you are with the C++ language I don't know if the changes were intentional. I call your attention that named constants (you removed "constant") refers to the identifier to the constant value. In the example enum a { z }; the a is the enum and the named constant is z (equal to a constant of value 0)...<br>
Keep on going (from your edits you are mostly going top to bottom), a major issue of restructuring and consistent display is on the language comparisons pages, I have been procrastinating dealing with those for ages... --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 04:33, 7 August 2009 (UTC)
:In which edit did I remove "constant"? I have checked my contributions but just not finding that edit. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 09:20, 7 August 2009 (UTC)
:: I reread it and decided I wanted to expand on what was written there, so I gave it a shot. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 14:32, 7 August 2009 (UTC)
== [[Writing]] query tag ==
Avoid using the query tag if the content of the page has any meaning / or can be easily expanded. It can be even be used elsewhere if abandoned. Depending on how busy or thorough the acting admin is, this query can lead to a unwanted deletion of useful content.
In this particular case, it seems to be abandoned (since you got no reply to the query, but you also placed it too quickly, some of the contributors have a skittish nature). In this particular case I would try to find a location that could use the content and substitute the query by a merge tag. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 07:31, 7 August 2009 (UTC)
:To which query tag are you referring? The one I added <s>today</s> yesterday? [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 07:43, 7 August 2009 (UTC)
::16 July 2009, it seems. Check the history page... --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 07:58, 7 August 2009 (UTC)
::PS: The book is named Writing (it is on the heading) sorry if that confused you, "Writing query tag" :) --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 08:10, 7 August 2009 (UTC)
I see. In this case, it looks to me like a test. Thanks for the info. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 09:14, 7 August 2009 (UTC)
== Welcome to the team, admin! ==
Thanks for agreeing to help with [[WB:ADMIN|project maintenance]]. There are several scripts you may be interested in using to make common administrative tasks easier. All can be enabled on the ''Gadgets'' tab of ''[[Special:Preferences|my preferences]]'':
*[[User:Mike.lifeguard/TW|Twinkle Speedy]]
*Range and wildcard contributions
*Modify rollback
*AJAX patrolling
*Clean delete reasons
*Autodelete links
As well, you may wish to join us in [[WB:IRC|IRC]] at [[irc:wikibooks|#wikibooks]] for work and play, or on the [[WB:ML|mailing list]] [[mail:textbook-l|textbook-l]]. If you need help with the tools, feel free to leave a message on my talk page.
'''— [[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 23:18, 11 August 2009 (UTC)
== scope and code ==
I noticed that you moved scope out of the code path (scope has no real meaning outside of the code concept), the idea was to have the path navigation scheme work for users. I had already streamlined the first chapter and am in a mid process to do it on the second chapter (there is also a undo of a similar nature still needed on the library section, not urgent and still bares some redirects but fixing them would be premature since pages are still in flux). What is your vision ? (the ultimate objective was to make any extraneous navigation schemes unneeded) --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 20:29, 13 August 2009 (UTC)
: I was using the TOC as a guide as to where to move pages, so the directory structure reflected the structure shown in the TOC. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 21:41, 13 August 2009 (UTC)
::As I said in a prev. talk the structure is still in change (except the first chapter), even then there are some introductory parts that were removed and recently where requested again in the content discussion area.
::No big trouble, or a need to revert it. But see [[C++ Programming/Code/API/Win32]] or better yet from chapter 1 [[C++ Programming/Programming Languages/Comparisons/D]] on how beneficial it is for navigation. It provides a kick way to backtrack to relevant sections, without a need to do heavy maintenance... --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 23:11, 13 August 2009 (UTC)
::If you are continuing to go down in the structure, remember what I said about the library section it should be inside the compiler path (it was moved "recently", it has a lower priority and needs the original pages deleted to restore the structure ). As I understand you are streamlining the TOC1 but take in consideration that most of the criticism it has suffered or the claim made had probably other motivations (to my knowledge only one of the content contributors expressed a view for restructuring of the book that implied a reorganization of the TOC, further discussions lead to what is now on [[Understanding C++]], with a more restricted scope and audience and few content contributions if any.
::The C++ Programming book has the wider audience of all C++ books, it needs more than average verbosity on toc (the plus side is that it still is a lot better that the [[Ada Programming]] (a featured book). --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 23:30, 13 August 2009 (UTC)
== My notices ==
Ah sorry about posting on your user page. I meant to leave it on your talk page. If you check my contribs you'll notice that's what I did for all the other people I contacted. [[User:Moby-Dick4000|Moby-Dick4000]] ([[User talk:Moby-Dick4000|talk]]) 15:27, 30 August 2009 (UTC)
== Greetings! ==
Glad to see you're still around! -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 12:29, 13 April 2010 (UTC)
: I am glad to be back. The hunt for a job was nearly unsuccessful, but I have staved off disaster for one more year anyways. So I figured with my employment settled, it was time to get back to work and chip in on "holding down the fort". How have you been? [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 12:49, 13 April 2010 (UTC)
::Still attending school, so "the hunt" for me has not yet come around yet. I recently finished merging the editions of [[Foundations of Education and Instructional Assessment]] and [[Social and Cultural Foundations of American Education]], and cleaned up the latter to give it the consistent formatting deserving of a featured book. I'll try to get to the former eventually, but I like to change things up every so often and vary my activities. In doing so, I was pleased to discover a wealth of books at <nowiki>http://www.ck12.org</nowiki>. I was disappointed that I wouldn't be able to flesh out the FHSST books when our licensing changed and the site (probably defunct) did not respond to my requests to switch to dual licensing with Creative Commons. This new site I found is all CC-BY-SA, and has reviewed books in chemistry, calculus, trigonometry, geology, biology, life science, earth science, and more. Once brought in, they will be wonderful additions to Wikibooks. Ironically, the founder of Wikipedia is [http://www.marketwire.com/press-release/Jimmy-Wales-Joins-Advisory-Board-of-CK-12-Foundation-1019293.htm on their advisory board]. Hope he hasn't given up on Wikibooks. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 13:28, 13 April 2010 (UTC)
::: Well he would be one a good one to give advice on open content I suppose. Though I always had the impression that Jimbo was never so active over here. Wasn't he was one of the early people to be de-admined? But it looks like a good resource. It is too bad about FHSST, thought I am not so suprised. There seem to be a lot of these programs that get started and fold up. Reforming K-12 education in the US is big business, and thus gets lots of people trying to get a piece of the pie. Often with the result is that millions (maybe I am off by an order of magnitude) gets spent but little tangible evidence ever appears in class rooms.
::: Sorry, I am starting to rant. I have dabbled in education stuff briefly here and there and the experience has made me a bit skeptical of new projects I hear about. But I hope they do well, textbook prices really do need to fall. Publishing shouldn't be such big business. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 13:43, 13 April 2010 (UTC)
::I was glancing at some of the math ck-12 books. Do you have access to anything other then the PDF's? Converting from PDF to wiki might be time consuming, it could be quickened a bit if you have access to the TeX code that generated the PDF's. And if you do have access to the TeX code, then I might have some tools written to help you convert that I developed trying to straighten out the [[Linear Algebra]] book. Also I am kind of curious about the plan of attack, in case I get bored and try to help out.[[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 14:23, 15 April 2010 (UTC)
:::Sorry, I only have the PDFs. They're better than the "FlexBook" interface on their site, though. The PDFs are nicely bookmarked, however, and there's no limitations on copying and pasting. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 20:26, 15 April 2010 (UTC)
== Subjects ==
Check out [[:Category:Books by completion status]], {{tl|Status}}, and [[User:Adrignola/Sandbox]] and its use of [[User:Adrignola/Sandbox/Template]]. These allow for display of a book's status, which was a main concern of people about moving to subjects fully. Additionally, the template I have there can be used on the subject pages, avoiding substitution and easing mass revision of the subject pages' appearance. I'm thinking the use of the colors you see in the logo at the top-left might be nice. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 20:29, 15 April 2010 (UTC)
:This is excellent! I like the visual a lot. I wish it were possible to have an image dynamically displayed, but in all fairness phrases like "Partially developed" and "Nearing Completion" are much more accurate description then a 25% or 75% logo. It is also quite nice that one only needs to update the book and it will change where it displays on the subject page. I think I would still one day like to taylor the layout of mathematics subject page, but in order to do something I would like it would be nice to have categories for various levels of books, but I halted that project after it drew so much criticism.
:In the mean time I would love to incorporate this into the existing subject pages. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 09:01, 16 April 2010 (UTC)
::I do plan to incorporate this in, very soon; as in, as soon as I have a chance. I have a feeling [[User:TakuyaMurata|TakuyaMurata]] will keep adding a link to the deprecated mathematics bookshelf on [[Subject:Mathematics]] if we don't classify the rest of the mathematics books by level and create subjects for those categories. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 12:30, 16 April 2010 (UTC)
::Also, I added a status icon for books with {{tl|Status}}. Take a look at [[Real Analysis]] for example. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 14:24, 16 April 2010 (UTC)
::: I took a look at real analysis, I like the idea but I can't say I like the icon placement :). (See [[:Image:Icon placement.png]] to see how it displays on my browser.) The place I really wanted it to appear would be on the subject page, but it doesn't currently seem feasible to do this dynamically with existing tools. But I think having one on the books main page might also be nice. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 15:29, 16 April 2010 (UTC)
::::If you hold Shift and hit the reload button you'll get the updated version of Monobook.css with the placement information added to it. That is indeed how it appeared before I modified it. I also adjusted the placement for when Vector becomes the default theme. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 16:34, 16 April 2010 (UTC)
== Edit collision :) [[Research Methods/Measurement, Reliability, Validity]] ==
Was going to tag it for deletion but decided to provide some content... --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 09:12, 16 April 2010 (UTC)
:Excellent. Content is always better ;), I just wasn't the one to add any. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 09:14, 16 April 2010 (UTC)
== Thanks for the assistance ==
I just wanted to say thanks for the tip you left on my talk page re the stuff I've been inputting on Wikibooks. The assistance you and others like you give plays a huge part towards achieving consistency and quality on wiki sites. There's a lot to learn and I, for one, really appreciate what you do. (Please feel free to delete this once you've read it.) --[[User:Gmasterman|gdm]] ([[User talk:Gmasterman|talk]]) 20:52, 17 April 2010 (UTC)
:I am glad to help. I have always enjoyed the cooperative aspects of wiki-editing the most enjoyable. Its not much fun when you just tooling around on some page and you have no interaction with anyone about it. I think I will leave your comments here though. Sometimes look back a positive comment some has left is a good cure when your in some heated discussion somewhere else. It will be archived automatically at some point. Have fun! [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 20:14, 18 April 2010 (UTC)
== Thanks for the work you have put into it ==
Thank you for the help clarifying the issue about the validity of that change. I've gone trough the conversations and did only do a strikeout on part of a phrase, indicating I was in error.<br>
I've checked previous discussions I had regarding the time limitation and I've found that I mention the time limit but do not make an issue out of it, it never becomes relevant to a conclusion, and I never did act on my erroneous view of the facts (reversals or removals of the tag because of "unlawful" time limit), I think I made a stronger mention of it in some RfD but also without consequence (as I said in the thread).<br>
I hope my statement resolves that small divergence we had on policy/facts. In any case the rational behind my opposition to the short time limit and on how the copyvio has been used (regarding other Wikimedia content) is still valid from my point of view. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 01:45, 27 April 2010 (UTC)
: Glad I could claify. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 13:04, 30 April 2010 (UTC)
== [[Pictures of Julia and Mandelbrot sets]] ==
I haven't the foggiest idea of what category to put this into under mathematics. I'm hoping you can help there. It also could be that it ought to be part of another book, say [[Fractals]]. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 02:34, 7 May 2010 (UTC)
: LOL. I am not sure I would really call it mathematics :). The point of the book is how to make a fractal look pretty... by its own description it doesn't want to really intend to cover the mathematics of fractals, nor does it intend to discuss the computer science of making a program that draws fractals. It indents to discuss just enough of each to then get into how you make the picture look nice.
:That being said, we shall place it in mathematical analysis, and suggest a merge with [[Fractals]], and hopefully the editors there aren't opposed to some discussion of aesthetics as a digression in their book. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 08:23, 7 May 2010 (UTC)
:Reply 2: It seems to be a copy of [[w:Images of Julia and Mandelbrot sets]]. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 08:25, 7 May 2010 (UTC)
:Reply 3: I very nearly made a mess of things importing its history. But I think it is okay now, and I took a moment to fix the image links. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 10:52, 7 May 2010 (UTC)
::Thanks for taking the time to do so. History merges are even more powerful than a deletion; deletions can be easily reversed but merges can't. I guess I expected a more technical analysis out of the book than the contributor is intending. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 12:25, 7 May 2010 (UTC)
== Future plans ==
I remember [[Calculus]] being one of the books you were thinking of down the line of working on. Was [[Algebra]] the other? I mentioned a preference for Calculus due to the greater difficulty of the material, but now that I look at [[Algebra]], [[Algebra I - A Verbose Approach]], and [[Intermediate Algebra]], and the merge tags and lack of structure, I think my preference would be the other way now. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 14:14, 14 May 2010 (UTC)
:I have been going back and forth a bit with myself. But I think I will head your wisdom here and start work on the algebra books, and continue work on real analysis (that is what I have been teaching, so it makes sense to use a little momentum from that). I am teach 3 sections of calculus next year, so maybe then would be a good time to think about that book. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 14:19, 14 May 2010 (UTC)
::Certainly continue work on real analysis until you're satisfied with it. The algebra books will still be around. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 14:36, 14 May 2010 (UTC)
== Congratulations ==
[[File:Party hat (fun).png|left]] I wish you and your new daughter well. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 19:03, 18 May 2010 (UTC)
:Thank you! [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 22:05, 18 May 2010 (UTC)
Just noticed this as well. Congratulations and best wishes to you and your family! --[[User:Swift|Swift]] ([[User talk:Swift|talk]]) 11:43, 21 May 2010 (UTC)
:Thanks! [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 14:11, 21 May 2010 (UTC)
== About nowrap ==
Hi, just to drop you a note that while RC patrolling, I saw that you have been trying to use the <nowiki>{{</nowiki>[[Template:Nowrap|nowrap]]<nowiki>}}</nowiki> template to display equations. I looked at the documentation and have tried to fix it. I think that is what you want, but in case I'm wrong, feel free to roll it back. Thanks, [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 13:15, 24 May 2010 (UTC)
:Thanks, I was meaning to go and read the docs if any. A bit annoying that it can't handle = or |, there really should be a way to specify a template with a fixed number of arguments, that could then ignore these characters as they came up later. Thanks! [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 13:43, 24 May 2010 (UTC)
== Geometry for elementary school ==
Could you do an illustration that can illustrate all the points mentioned in [[Geometry_for_Elementary_School/Angles#Angles]]? Thanks! '''[[User:Kayau|<span style="color:navy"> Kayau </span>]]''' ''[[User talk:Kayau|David Copperfield]]'' [[Special:Contributions/Kayau|<span style="color:red">MOBY DICK</span>]] <small> [[:w:User:Kayau/guestbook|the great gatsby]] </small> 05:52, 25 April 2010 (UTC)
: Well there are two basic ways to display equations, one is to use HTML, which actually has a lot of math symbols already defined in it. This is what the page currently does, so if you want an ∠ you can just highlight, copy and paste it (or use a list) it can also be displayed by typing "&" followed by "ang;" like this: ∠. There are some examples of how to do this already on the page, but if you were looking for some other symbols I could help you find them.
:I assume you want to see examples of how it is done in latex? So for example we could change ∠AOB + ∠BOC + ∠COA = 180° (∠s at a pt.) to <math>\angle AOB + \angle BOC + \angle COA = 180^\circ (\angle s</math> at a pt. <math>)\,</math> .... or maybe <math>\angle AOB + \angle BOC + \angle COA = 180^\circ (\angle s \text{ at a pt.})</math>.
: It is the difficulty of handling the interplay of math and text that is the reason there two ways to do it. The HTML way looks more seemless, but it is much more limited in what it can do. The scripts that generate latex don't try to match the size of the current font very well, nor do they worry about the vertical alignment of math symbols. That is why in one of the two ways I do it, the parentheses don't quite match up the way they should. So before I add formula's to the page, it might help to decide what style we want to use. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 15:14, 26 April 2010 (UTC)
: PS I will work on the diagram soon. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 15:15, 26 April 2010 (UTC)
::Hm... I'm afriad I don't quite understand what is meant by 'the parentheses don't quite match up', (in fact in Hong Kong we call the parentheses 'round brackets'), but the second one sure looks better than the first one. By the way, thanks for the diagram but could you please name the points P, Q and R? That way I can include that in the text. Thanks again, '''[[User:Kayau|<span style="color:navy"> Kayau </span>]]''' ''[[User talk:Kayau|David Copperfield]]'' [[Special:Contributions/Kayau|<span style="color:red">MOBY DICK</span>]] <small> [[:w:User:Kayau/guestbook|the great gatsby]] </small> 13:16, 27 April 2010 (UTC)
::: If you look very closely at <math>\angle AOB + \angle BOC + \angle COA = 180^\circ (\angle s</math> at a pt. <math>)\,</math> then the second round bracket is slightly lower then the first, at least on my display. So it appears to be dipping below the baseline of the text. It is a minor annoyance at best. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 13:20, 27 April 2010 (UTC)
::::Nothing's happening on my browser. :) I'll try using that method to make the equation look better. '''[[User:Kayau|<span style="color:navy"> Kayau </span>]]''' ''[[User talk:Kayau|David Copperfield]]'' [[Special:Contributions/Kayau|<span style="color:red">MOBY DICK</span>]] <small> [[:w:User:Kayau/guestbook|the great gatsby]] </small> 12:20, 30 April 2010 (UTC)
::::Also, how do you align the equal signs? You might also want to take a look at the developing [[Geometry for Elementary School/Plane shapes]], for inaccuracies. '''[[User:Kayau|<span style="color:navy"> Kayau </span>]]''' ''[[User talk:Kayau|David Copperfield]]'' [[Special:Contributions/Kayau|<span style="color:red">MOBY DICK</span>]] <small> [[:w:User:Kayau/guestbook|the great gatsby]] </small> 12:24, 30 April 2010 (UTC)
::::: You can use one of LaTeX equation alignment commands as long as it can be used in math mode. Such as
::::::<math>\begin{align}a_1&=x\\
a_2&=y
\end{align}</math>
::::: The & character in the math align environment tells it which point in the equation should be vertically aligned with each other, the \\ tells it where to break the line. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 13:04, 30 April 2010 (UTC)
::::::Wow, thanks - that's a lot to learn. Also, thanks for your comments about the plane figures. I think BrE is better as it's more 'standard', and about 'base' and 'height' I haven't heard of any other usage, so I guess it's better to stick to the one taught in Hong Kong. (It's the same way for books from UK that I've read, but then England alone has gazillions of dialects.) Thanks again for your help. '''[[User:Kayau|<span style="color:navy"> Kayau </span>]]''' ''[[User talk:Kayau|David Copperfield]]'' [[Special:Contributions/Kayau|<span style="color:red">MOBY DICK</span>]] <small> [[:w:User:Kayau/guestbook|the great gatsby]] </small> 12:27, 1 May 2010 (UTC)
{{outdent|::::::}} Well, you should make it British English, if that is how your comfortable writing. It is better choose one in my opinion and be consistent through out the whole book. I will caution that I have not yet carefully read the book to see how it has been written thus far. Though after a few quick glances it seems to prefer spellings like center instead of centre. What ever you do just be consistent, even if it means change the rest of the book.
I think you mis-understand me as far as base and height are concerned. The question is how do you define the word base, is the the side of the triangle or is it the length of the side. You often see formulas like <math>Area=\frac{1}{2}(Base\cdot Height)</math>, which if you define the base as the actual side, then your a bit incorrect. You really mean to multiply the "length of the base" in the formula. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 14:40, 1 May 2010 (UTC)
:Thanks for your explanation on base and height. While I appreciate your efforts on the proof of irrationality and have copy-edited it, I'm afraid I must insist that it is too diffucult for the elementary/primary level, especially the proof. It will take quite a while for a kid to understand, and I dare say even grown-ups that aren't so into Maths like you might need some time to comprehend it. Finally, could you please draw a diagram for the last section of [[Geometry for Elementary School/Congruence]]? Thanks a lot! [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 14:22, 2 May 2010 (UTC)
::I see, maybe I could add a chapter about measurements, so that clears things up. About the labelling vertices, I think you mean the order, so that triangle ABC being congruent to triangle DEF does not mean it's also congruent to FED. The text was originally there (I cut-and-pasted it from SSS) and our teacher also thinks it matters. If I misunderstood, though, sorry about that. :) [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 11:09, 4 May 2010 (UTC)
::: About the copying and pasting: Just make sure to put a link on the discussion page, otherwise it is a copyright violation.
::: About congruence: I took a quick look through the library, it seems the exact definition varies from book to book (which I expected). Some books are careful to make sure their definitions are set up so that if <math>\Delta ABC\cong \Delta DEF</math>, then <math>\Delta ABC\cong \Delta FED</math> (Such as "Euclidean and Non-Euclidean Geometries: Development and History" by Greenberg), and for other books are worried about the order (Such as "Geometry: ancient and modern" By John R. Silvester). It depends a bit on what they want to do.
::: Basically there is a choice to be made about which definition is the correct one to take. Much like the choice between british english and american english, it is just a choice, but it is a choice that affects the rest of the book. From a mathematical perspective I think it would be better if it did not matter in which order you write the labels of the vertices. In my opinion the triangles <math>\Delta ABC</math> and <math>\Delta ACB</math> represent the ''same'' set of points in the plane, and so must be congruent, and this is how the words tend to get used further on in ones mathematical career.
::: As far as writing a section on measuring angles, that is up to you, though you should also add some "tools" to that section of the book, as angles cannot be measured by a rule and compass alone. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 15:15, 4 May 2010 (UTC)
::::OK, I will link. (In Wikipedia it doesn't matter. :( Wikibooks people seem to be more serious about this copyright thing. I mean, who gives a monkey when you're just moving something over in the same book?) About congruence, I think as this book is for kids, minding the order of the vertices should be a good practice, (and I must say, I've done enough corrections just because I followed the wrong order. In fact my teacher requires everyone to follow the alphabetical order for the first triangle.) Anyway, that's enough off-topic stuff in brackets, so about the angles. I was thinking that I could open a new module about measuring (NOT constructions like the current module), and include the use of the protractor, ruler for measurement, tape measure, balance, etc. I might include units as well. (I think I'll use the metric system. Most coutnries now use the metric system, unlike you Americans. :P) [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 09:44, 5 May 2010 (UTC)
::::: Well I am going to start with an off topic remark. I think that your teacher efforts are perhaps misguided. It certainly helps students to learn to write there work in an orderly way, so I don't mind making students revise what is seen as messy work, but by making mathematical issues out of things that are not really part of the mathematics involved is not a good thing for students.
::::: I think measuring angles is not a bad topic to include. I don't personally see measuring length as part of geometry. I would generally advise against a long discussion about units, as this is really more of a physics topic. In mathematics we generally avoid any particular choice of units (note that radians are a "unit-less quantity"). But be careful, the metric system breaks its own ideology about breaking things into tenths. Particularly with angle measure and also the international community has more or less abandoned the original metric angle measure. (As a side comment lots of countries that "use the metric system" only sort of half use it. For example, here in the UK, beer is sold in pints, milk is sold in pints and gallons as well as litres, road signs are in miles per hour, people speak of their weight in stones, and many people still speak of temps in Fahrenheit. Just because the government adopts it doesn't exactly means it has filtered through to the people.) [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 10:56, 6 May 2010 (UTC)
:::::: Thanks for your help so far. For your information, I have reorganised the book as I have proposed in [[WB:RR/G]], and I hope you think it's a good change, as it will take a lot of time to undo all that. [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 13:46, 6 May 2010 (UTC)
:::::: Also, although it may be very annoying of me to ask so, could you add some diagrams for [[Geometry for Elementary School/Similarity]]? Thanks a lot! [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 13:47, 6 May 2010 (UTC)
::::::: It is not annoying at all. I will be glad to help you out. Even if we occasionally disagree on specifics, I am just glad to see another editor around. It may take me a few days before I have the free time, as I seem to be getting involved in lots of discussions. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 15:03, 6 May 2010 (UTC)
::::::::How can I display a apostrophe when I'm using \text{}? I'm trying to add one after Euler and before the s in [[Geometry for Elementary School/Solids]]. Thanks, [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 12:16, 13 May 2010 (UTC)
{{outdent|::::::::}} Welcome to your first bug regaurding the way mediawiki handles TeX. There are many. In this case you can use a similar command to <tt>\text{}</tt> called <tt>\textrm{}</tt>. Unfortunately <tt>\textrm{}</tt> does something slightly different then <tt>\text</tt>, which in practice means you need to put a backslash before any spaces in the phrase. Yes, the mediawiki developers are aware of the problem, but it is about the lowest possible priority. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 12:27, 13 May 2010 (UTC)
:Gee, thanks. [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 12:58, 13 May 2010 (UTC)
::Um, if you have time, could you rewrite [[Geometry for Elementary School/Constructing a triangle]]? It's not a rush, but I think the process is too tough for kids. I think it should use the normal way of doing it, with a ruler, a pair of compasses (for drawing arcs not circles), and a protractor. Thanks, [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 09:46, 18 May 2010 (UTC)
:: Also, do you know what I did wrong at [[:File:Adjacent angles question.svg]]? I'm only a beginner at inkscape; I started using it two days ago so that I can try to draw my own pictures. Thanks, [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 10:21, 18 May 2010 (UTC)
::: I identified one of the two problems. For some reason the font was listed as Arial, but I don't think this is a allowable option in svg, so I redid the letters. Interestingly inkscape could display the letters but gave a warning at the terminal "** (inkscape:5164): WARNING **: Family name Arial does not have an entry in the font lister." (Not sure why, maybe some copyright reasons...) There were also elements that were creating black squares, not sure why I couldn't see them in inkscape. Since svg files are human readable I just manually edited the file to delete them with a text editor. I think with the number of things at the moment, it will be a very long wait to wait for me to rewrite anything. I also don't know what the "normal method" is, so I am not sure what I might say. But if some miracle happens and I start getting lots of stuff done I will take a look at it. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 09:06, 19 May 2010 (UTC)
:Hi, I just wanted to drop you a note that [[Talk:Geometry for Elementary School/A proof of irrationality|somebody has expressed their concern about the proof of irrationality]]. You may want to take a look at that, since you rewrote that module. Thanks, [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 09:52, 26 May 2010 (UTC)
::I saw, I will leave a comment there, thanks for the heads up. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 14:33, 26 May 2010 (UTC)
== Navigation ==
Hi!!
What do you think of using an <nowiki>{{#ifeq:{{SUBPAGENAME}}|Print||<code of the current template>}}</nowiki> at [[Template:Navigation]]? This way, it would not be necessary to make edits like [http://en.wikibooks.org/w/index.php?title=Linear_Algebra/Solving_Linear_Systems&diff=next&oldid=1799641 this] on other chapters. [[:pt:User:Helder.wiki|Helder]]16:49, 27 May 2010 (UTC)
:It is not a bad idea. Unfortunately I am excluding some other material with the <nowiki><noinclude></nowiki>'s that I have been adding, so after a little thought I have decided to keep following the course that I was on. For example if you look at the example above you'll notice the references are also not included. My idea is that for a print version it is not natural the references appear on the middle of some page where a section ends. Instead I was going to collect the references in the bibliography page, and put that page at the end of the print version. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 18:28, 1 June 2010 (UTC)
== Calculus editors ==
Thanks for the response. At the moment, I'm focusing on the "Applications of Integration" chapter, specifically the "Volume" section, but as I am sure you know, most of the text needs major work. You should feel free to proofread my work so far (only "Volume" at this point), add your own examples, change the current examples, or work on a completely different subsection.
If there's anything I can do for you, don't hesitate to contact me.
[[User:W3asal|W3asal]] ([[User talk:W3asal|talk]]) 13:28, 28 January 2009 (UTC)
== Import ==
I have a TUSC password and can export files to Commons from Wikipedia/Wikibooks with CommonsHelper. I've been doing that for many files at Wikibooks so far. Your request is fulfilled. – [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 13:05, 22 June 2010 (UTC)
:I also had a TUSC password from when I was cleaning up [[Pictures of Julia and Mandelbrot sets]], but forgot the password. I was trying to help out with the long list of importing, but took a break when I got very frustrated. Every import I attempted had to fail an average of 4 times before it would be successful. When I finally hit a page that was greater then 10 times I decided it was time to work on something else. I tried talking about it to someone in IRC, but the general response I got was an uninterested "Yeah, the tool sucks". But I will try to do my bit with that list of 200 pages, as my patience allows.
::What I've noticed is that it's not truly failing after you get the technical error screen. It's like it works in the background to bring in the revisions but won't show it up in the log until it finishes. Sometimes it does time out but it's still bringing in revisions each time and it takes multiple goes like what you mentioned above to bring it all in. Additionally, it sometimes goes through after I attempt to bring in a single revision, with "### revisions imported" showing up in the page history at the same time as my single revision import. Don't feel obligated to work on that list, though. I'm not even sure if the user will be showing up again. Of course the people in IRC are most often Wikipedians at heart and rarely would they need to ''import'' to Wikipedia; it's usually the other way around and they just don't care about the other projects. – [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 13:27, 22 June 2010 (UTC)
::: That is a good point if a depressing one. I think I will keep working on [[Algebra]] (what a mess!) for a while, if i see some new edits in the book maybe I will renew my efforts. I know what you mean about wikipedia. I started there and here almost simultaneously. I avoided editing here much because I was helping someone to write a book on Real Analysis and didn't want my boss to think there was any conflict of interests. At some point much later I tried to convince people that wikipedia shouldn't prove mathematical theorems. That is not very encyclopedic, and that wikibooks was really much more suited to that. Unfortunately I met exactly this attitude at wikipedia. Even more recently when I tried to get the people at the math project interested in some collaboration, I think I got a response from 2 or 3 people, one of the being [[User:TakuyaMurata|Taku]].
== [[Supersymmetry]] ==
Do you think you can give it a home? The wretched module, tired and lonely, in a corner of Wikibooks where no soul has dared to enter, for such a place belongs to the magical realm of mathematics... [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 06:25, 26 June 2010 (UTC)
:I really did look around for a good place for this module, but one doesn't exist yet. It is not even entirely clear if it should be considered mathematics or physics. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 20:06, 6 July 2010 (UTC)
== Non-Standard Calculus ==
<small>(Copied from the RfD for KinderCalculus)</small> In the exercises section 1.5 of Keisler's work Elementary Calculus, the calculation of limits (the foundation of the derivative) is given mostly as exercises in algebraic manipulation of the new number rather than delta-epsilon arguments. (ok, 2 new classes of numbers infinity & infinitesimal, much like the equivalent class of 1/2 is treated as the number 1/2). I am very interested in discussing Non-Standard Calculus with you -- is this discussion the appropriate venue? 67.181.48.20 (talk) 10:31, 28 June 2010 (UTC)
:Indeed but your comparing apples and oranges a bit. Often in "standard" but non-rigorus calculus courses problems are also often solved in an algebraic way. The point of delta's and epsilon's is to expose the students to how things are proved to increase the depth of their understanding as to what is going on. In non-standard analysis if you want to see if students really understand the theoretical underpinnings there you need to see if they can correctly use the transfer principle. I am personally of the opinion this is a more difficult and nuanced idea then the delta and epsilon definition of a limit. Which none of the problems in section 1.5 is really doing. Effectively all that is happed is the difficulties of the foundations are moved elsewhere.
: My comment about adding one number is because need to add many many infinitesimal numbers. Indeed it is not immediately clear if the infinitesimal numbers have a larger cardinality than the reals or not. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 12:24, 28 June 2010 (UTC)
True, that the difficulty is moved to a model theoretic understanding of the transfer principle. But the transfer principle is intuitive and already abound in today's curriculum so I think it's ok to move the theoretics to a more familiar place. Consider how a student might understand that square root of 4 = 2, that being 2*2=4. In normal high school he will also understand that square root of 2 exists and accepts it willingly, without ever being able to construct it (usually the thought of Cauchy sequences or Dedekind cuts do not come into their minds). I am willing to bet that they accept root 2 by an intuitive feel for the Transfer Principle, eg. that they are comfortable with root 4, so root 2 should be ok by analogy.
I will concede that I over reached when I say we add "one number". Yes, there are an infinite amount of infinitesimals, but most of the time a non-standard calculus student would treat them all in the similar way, eg. standard(epsilon) = 0 = standard(epsilon*delta). Just like there are infinite amounts of representations for 1/2 in that equivalence class, but colloquially, we see 1/2 as one number when we use an element of it to operate on. My guess was that Kayau would accept a little hand-waving. Yes, I over reached, but not by much in my opinion.
Thanks for the stimulating thoughts :-) [[User:Numiri|Numiri]] ([[User talk:Numiri|talk]]) 06:34, 29 June 2010 (UTC)
: I am less then convinced that the transfer principle is so intuitive, at least it wasn't for me as an undergraduate. It is fine for the types of problems when you just need to introduce a infinitesimal number and do some algebra, but problems like showing the Dirichlet function (1 on the rationals, 0 on the irrationals) is discontinuous require some more subtle understanding of what is going on. You somehow need to see that infinitesimal numbers are categorized into rational and irrational numbers in the same way real numbers are. You can no longer treat every infinitesimal number as the same. Not to mention I feel like if you don't think about it deeply you lose a solid sense of what a rational and irrational number is. Granted I probably wouldn't ask first year students to prove this themselves, but it is a typical classroom example discussed after continuity, at least at the college level.
:: The transfer principle is intuitive in the sense that as human beings (children too), we tend to naturally extrapolate our knowledge (eg. theorems) towards larger models without too many questions. For example, if an antibiotic is effective against one strain, when we want to fight off another strain, the first thing we try is that same antibiotic. Similarly, if we've seen examples of square roots of 4, 9, 16, 25, 36, ..., children (and most non-mathematicians) don't question too hard the existence of square roots in the larger model of all integers, rationals, and reals. Children just assume it exists in that the monotonic progression. I don't mean its proof is intuitive, which is what I think you were referring too when you mention undergraduate education. [[User:Numiri|Numiri]] ([[User talk:Numiri|talk]]) 19:25, 30 June 2010 (UTC)
:A similar issue also arises with the definition of limit of a sequence where you have to look at the value of your sequence at every hyper-integer. The "integer" is really crucial to the definition. It is easy to construct a sequence that if you evaluate at the wrong infinite quantity you can draw a false conclusion. So I feel in this book you have to stop treating all non-standard numbers in the same way at some point.
: (<small>The rest of this is no longer related to what you said above, or things you've said anywhere else. Just my thoughts about some of the things I have read about the subject, which I thought you might find interesting.</small>) I am also less convinced undergraduate non-standard calculus classes serve students as well going forward. The whole mantra of delta epsilon proofs "how close do you want to get, I will tell you how close you need to be" in my experience fits in very well in numerical analysis and applied problems where it is understanding what epsilon is that is important (and historically the development of delta epsilon methods and ideas of approximation are related). For the students going into pure mathematics I suspect it would make the transition to the standard approach a bit more difficult.
: On the other hand, I think Keisler's approach is probably quite good at getting teaching people to solve calculus problems. Indeed, there are a few papers in the monthly (or maybe it was math magazine) that suggested courses based on this method worked quite well in this respect. That makes a lot of sense to me, the techniques in this book capitalizes on students algebraic manipulation skills which are a lot stronger then their conceptual understanding as they are entering a freshman calculus course.
:: Indeed, I think you might be referring to the work of Kathleen Sullivan in American Mathematical Monthly, vol 83 #5, May 1976, entitled "the teaching of elementary calculus using the nonstandard analysis approach". My hunch is that her results will be magnified even more in children. [[User:Numiri|Numiri]] ([[User talk:Numiri|talk]]) 19:25, 30 June 2010 (UTC)
: Over all I think both sides over stress the Pro's and con's of a non-standard approach. It would be revisionist history to say that NSA is what Newton and Leibniz were doing, or to say it wasn't what they were doing. Some argue that the modern notion of limit was already present in the work of Newton ("Newton and the Notion of Limit" by B. Pourciau in Historia Mathematica vol 28, no 1 (2001)). But the truth of the matter was that the founders of calculus were not being rigorous by modern standards by either the standard or non-standard point of view. Bishop Berkeley just simply had a good point. They effectively got lucky that the didn't run into deeper problems. Robinson's work explains why it is they didn't get into trouble, but it wasn't really making their methods rigorous. If your interested in rigorously understand what is going on using NSA, it is fairly difficult because you need a somewhat sophisticated understanding of mathematical logic. I think the typical placement of this material is "later on" in an undergrad cirriculum, which seems to me to be the right place. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 09:46, 29 June 2010 (UTC)
:: I too agree with Bishop Berkeley's assessment. [[User:Numiri|Numiri]] ([[User talk:Numiri|talk]]) 19:25, 30 June 2010 (UTC)
== Thanks for the Invitation to the Wikiproject Here ==
Thanks for the invitation to [[Wikibooks:WikiProject_Mathematics]] on my user talk page. I'm glad to join in. My own teaching level is the primary school (strictly prealgebra) level, but I'm glad to help however I can with any of the books. -- [[User:WeijiBaikeBianji|WeijiBaikeBianji]] ([[User talk:WeijiBaikeBianji|talk]]) 23:43, 8 July 2010 (UTC)
:Contributions at every level are welcome! There are several books attempting to cover pre-algebra topics, but many (in my opinion) are not really well written yet. So, Welcome![[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 08:40, 11 July 2010 (UTC)
== formulas within shapes ==
Hi, often I want to indicate substitution of a formula for a variable. In this case, the variable is written as a shape such as square, heart, triangle, upside-down triangle.
<pre>
_ 2
Instead of writing |_| = x + 1
I'd like to write
_______
| 2 |
| x + 1 |
-------
</pre>
Is there a way of writing a formula inside a shape such as a rectangle, heart, etc.? Thanks for your help. [[User:Numiri|Numiri]] ([[User talk:Numiri|talk]]) 18:12, 10 July 2010 (UTC)
:Rectangles are easy, latex has a prebuilt command for this called <code>\fbox</code>. Other shapes require more work, but are possible. But because the software only allows some parts of latex it is necessary to generate the pictures offline and upload them, then include them in your document.
:I made a quick example of what such a think might look:
::[[File:Expression in heart.svg|50px]]
: I used program called [http://www.inkscape.org/ inkscape] with an extension called [http://pav.iki.fi/software/textext/ TeXTexT] to create a heart and an x<sup>2</sup> + 1 in latex separately then dragged the x<sup>2</sup> + 1 inside the heart and resized. This would probably take less than 5mins per expression once you get the hang of it. We can talk more about how this could be done if your interested.
:You might consider joining [[WB:WikiProject Mathematics]] if your sticking around to develop the book here. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 10:59, 11 July 2010 (UTC)
== Stress ==
You should switch to the 3D version of the Wikistress meter. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 23:40, 9 July 2010 (UTC)
:I did notice it when I was looking at wikistress meters. But the gamer in my always felt the world was too in love with 3D and that many of the best games were effectively 2D. But then again I am one of the few owners of a [http://www.bbspot.com/News/2003/02/ati_ascii.html ATI Radeon 9500 ASC], so maybe my sense of anesthetics is a bit unusual. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 11:33, 11 July 2010 (UTC)
:: ASCII art stress meter: [==+++]
:: --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 13:19, 11 July 2010 (UTC)
== Reply to Panic ==
Calling vandalism is a bit too harsh Thenub314, nothing was destroyed and people can improve on what is there. I refrained of doing any <u>reshuffling</u> and complied with the non objected proposals for merge (the claim that I increased complexity is also unfounded), even Xerol clearly noted that some content was usable so I simply removed the need to put the process of salvage in the hands on the general community to the people that really are interested in working on it. Since Xerol RfD did spur interest in the content something constructive may result (I also did contact the Wikibooians working on the books and the original merge tagger). It was not a blind copy but also nothing more than a merge of related content. In any case it's best to discuss what to salvage that what to delete, it also may create a chance for you to add to it.
I think that it would be more constructive to do what you see as needed changes in place of making hash judgments. I'll gladly appreciate any help you can provide in improving it. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 20:52, 11 July 2010 (UTC)
:I gladly made the changes I thought would improve the book. I think my assessment of almost vandalism is not overly harsh. Besides since your usually particularly harsh with newbies I thought you could take it (I mean, really, most recipe books do ask you to boil pasta in a large amount of water relative to the amount of pasta!)
: My point of adding it was to let you know you created more work then if you had just left the book alone. You took some modules that were half way decent (at least correct and readable) and made a mess of them. Someone should point this out to you so you can try better next time. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 10:37, 12 July 2010 (UTC)
:: One of the things that rubbed me in a bad way, was not your attack to the action but doing it on those terms in Xerol talkpage, so I do appreciate you moving the discussion here.
:: Thenub314, the merge was not objected to and I conformed to it. In my action I did not reduce your freedom to improve the work, I didn't work against your objections so I don't understand what point are you attempting to make, we are talking about 3 freaking pages and at most 70 lines of text, so to me coming from you this attempt to create a situation to demonstrate that I acted in bad intentions seems extremely of bad taste.
:: If you still think that then I ask you that you let it go and express my sincere apologies for increasing your stress level. I could have accepted an opposition from Xerol or even Pi Zero but be clear that I think that the time you are spending in the subject and the way you chose to express it seems, well, strange, if you have any issue with me please be clear and lets deal with it, I also have issues with some of your edits but had no reason to step on you toes or call any special attention to them, I accept people are different and differently motivated, and welcome diversity of thinking, unless unrecoverable damage is made why create waves.
:: Thanks again for showing that level of interest for my edits but do realize that it can become uncomfortable especially if you seem inclined to see a misdeed in any insignificant thing.
:: If you do know how to cook pasta (that is not hard science) you do know that [http://curiouscook.com/cook/other_writings_detail.php?id=44 you should really avoid using large amounts of water, it is wasteful of water and energy and even salt and other condiments] (I like to put garlic in the water or a few drops of olive oil if it is not to be immediately served, as to avoid it to getting all stinky due to the starch). The amount of waters does not depend exclusively on the amount of pasta but also in the recipient and the level of attention you can dedicate to it but the fact is that generally you can do it with very few water indeed. But my correction didn't press for a quantity I just removed the claim that it needed a "large amount of water" (since it is incorrect).
:: Do you have any other issue regarding my edits you need to be cleared ? --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 18:24, 12 July 2010 (UTC)
::: I haven't read this very far yet, but I apologize for leaving it on Xerol's talk page. I wanted to put it somewhere in a discussion with the book but the discussion was split between many places. I will be careful not to do that in the future. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 18:59, 12 July 2010 (UTC)
:::Yes it maybe 70 lines of text, but if I took 70 lines of text out of [[Understanding C++]] (not a cool listed as cool to you.) and moved them into [[More C++ Idioms]] (definitely cool to you) in such a way that ignored the content in the target I imagine you'd be a bit annoyed with me. The fact is, I would have opposed both the merge (if I had known it was suggested) and the deletion, but it is no longer possible for me to do so. I really would have liked something different to happen and it burns me that I (and any of the community not watching the RfD page) was both short circuited out of the discussion. The history merge was completely destructive, so your work can't be undone. The worst part (to me) was that one of the very few math books that are actually readable got left in a completely decoherent state. Three pages and 70 lines of text might not seem much, but it is quite frustrating.
::: I don't take a particular interest in your edits, but for some reason I don't remember [[User:Moby-Dick4000]]'s page is on my watch list. Probably from my comment there back in 2009. And I just thought it was funny that you claim I was being harsh as you were being equally harsh to a newbie who was only giving out the standard advise. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 20:59, 12 July 2010 (UTC)
::::Something tells me I'm in disfavor with Thenub at the moment. In my defense, I've history merged pages for Panic in the past and he had always done the merges properly before. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 22:07, 12 July 2010 (UTC)
:::::We seem to be starting to presume the worst, we shouldn't, as we all commit mistakes or interpret and act differently presented with similar situations. We that are the most active will always step on each-others foots from time to time, but we should presume that all are working toward the same goal, any conflict can be easily addressed without jumping to wrong conclusion and attempt to ambush others in bad judgment calls. In this regard even if I presume that between me and Adrignola there is a good level of understanding, at times my actions could also be badly understood for instance, on that editor's flag, even if that was not the issue. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 22:25, 12 July 2010 (UTC)
::::I don't particularly care about [[Understanding C++]] beyond the point that it preserves the intention and the scope defined by Darklama, since no work has been done there (and I don't expect it to) I see no real purpose on that stub beyond providing a outlet that enabled Darklama to realize his stricter view on the subject, and as a way to avoid the conflict arisen from the attempt to reshape the other work.
::::Merging that in [[More C++ Idioms]] would be extremely improbable, I presume Sutambe would object to the merge proposal and as I have all C+ work in my watch list, I would object to it (mostly because of difference in scopes), this makes the examples in relation to my merge as oranges to apples.
::::The history merges can't indeed be unmade but the content can easily be traced and restored, and I note that you deleted most of what was merged, even if in my merge I found no evident duplication of content (of the 70 lines only the example seems to have survived). As for taking the removal of the RfD as an attempt from my part to negate you the chance to take action, that would imply that I could foresee your actions, I have no such power in fact just to avoid similar issues you should look on the pending merges (even do some of them if you like) as I have in the past, had Xerol made the merges himself it seems you wouldn't even know, in any case my action falls in a BeBold (a bit different from your own action in the pasta subject), as Pi Zero stated any objection would result in an undo, that can still happen if you so require.
::::As for the post of [[User:Moby-Dick4000]], it seems you have overlooked why I posted a reply there, and I reserve any taking of offense or rudeness to be reserved only to [[User:Moby-Dick4000]] as it was meant as a constructive critic to his edit not yours. I also note that in his reply there doesn't seem to indication that he took it beyond what was intended. As a result again I see your interference as unproductive at best, regarding the way you chose to go about it. You could have asked me (in place of reversing my edit) and require me to provide a better context for my comment or changes if you felt them out of place.
::::It may all not be your intention but since I have had several bad experiences in the project, I take such dramatic actions as a way of artificially create a situation of conflict, and now I will be clear and sorry if it aggravates you but you must see it from my side.
::::Was I a less experienced Wikibookians and without understanding that we should expect good faith on the actions of others, I would take you action on Xerol talk page as an attempt to denigrate me and indirectly cause trouble to Adrignola, since he acted on my merge request, in fact all this talk has an implication of a political motivated intervention that has not any redeeming quality of granting others the same regard that is granted you or working to make the project a calmer and more productive place. Just the contrary, this, fallowed by your heavy-handedness on reverting my edit would indicate an inclination to escalate the issue since the normal response would be for me to revert your reversal. Over the time I have gained experience in this type of tactics as they were indeed applied several times to me, I was even blocked under similar claim of harshness to newvcomers, so even if I do expect and trust other to act in good faith I also like to be clear and, even to my fault, direct, I'm not claiming that these are your intentions just that they can be perceived as such, if you don't moderate you reactions to how others act they become out of place and will generate negative consequences to other or to yourself and that is not what we should aim for.
::::In me you will always find consistency and the capability to change, compromise and admit to errors, a fearless will to guarantee that all have equal treatment on the project and even if at times I have some difficulty in expressing myself in a less direct way, that can admittedly be seen as other as confrontational, my intention is only to reduce doubleness and misunderstanding and I will never carry a grudge beyond a specific discussion. I will always be a supporter for minority views on Wikibooks, even if I oppose them. I thought that after our long talks on my talk page you had already understood this, that is why it is extremely demoralizing for me having you interpret my actions as vandalism or assuming that I had an intention to be unfair to others. Think about all this and all the previous talks we had so far on the project and lets put this behind us, next time please assume my good intentions. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 22:15, 12 July 2010 (UTC)
{{outdent|::::}} I unliterary apologize for all of my edits discussed above. I did not mean to offend. I had only meant to tell you where you had not done a good job, and what I thought were the problems with the job you did. I have failed to do this in any constructive way.
'''I apologize for accidently implying your edits were vandalism'''. I only meant to comment on the my perceived quality of the output, as '''I know your an active member of the community who acts in good faith'''. As I try to say to newbie's who misinterpret edits, the only reason any of us show up here is to improve the project, and it is a mentality I keep in mind.
'''I apologize for reverting your edit in the cookbook.''' I really did not expect this to cause offense, my wikiediting was shaped in a BRD (be bold, revert, discuss) environment, and I ''believe in'' reverting first asking questions later. As recent evidence of this I would point to my reverting darklama's retitling of [[Drugs:Fact and Fiction]] and my most recent edit at [http://en.wikibooks.org/w/index.php?title=Algebra%2FReal_Numbers&action=historysubmit&diff=1884988&oldid=1884668 Algebra/Real Numbers]. '''I only point it out to give evidence that my behavior was not aimed at you personally''', but just my own personality defect. I also did not see the storm in the tea cup, I thought saying to someone "you've done a bad job" was acceptable if you gave reasons, and '''I can see my word choice ended up being divisive and confrontatial, and for this bad choice I also apologize.''' I will give you a wide birth and give discussion rooms a break, since I seem to only be causing trouble where ever I go. (<small>The bolded parts I wanted to really come across as my point.</small>) [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 08:20, 13 July 2010 (UTC)
:I thought hard about the validity of continue on the issue but couldn't leave it in a point that you see yourself as always causing trouble, if I was inclined to think the same about my own participation in the project I truly feel that things would be worst for all. I welcome divergent views and see them not a disturbance but as a way to foster mutual understanding and broaden views. We the active minority can claim the expectation of representing others that chose to remain silent or are just unaware of what transpires.
:For my part I don't need an apology, just the understanding that timing, location, words and the sequence of events have to be taken in consideration when ones takes a position. One has to be able to have some empathy for other's positions, and unless facing real damage to his work, integrity and core aspirations be able to provide a leeway for others to operate, even if it requires swallowing some frogs on minor issues where raising an issue would cause more trouble or have a low probability of being interpreted as intended, therefore unproductive. We can all fall victims of judgment errors of this type, it is the capability to admit those errors and being able to clear misunderstandings that separates good outcomes from bad, like the saying goes "hell is full of good intentions", what counts is the final outcome.
:Since we are being clear I confess that at times you take actions, or attempt to make points that would require more thought behind it and an understanding that it can be seen as imposing your view point on others even as creating unbalances on the NPOV we should attempt to protect. I and others have attempted to provide you a leeway in this regard but don't interpret that as uninterest on the actions. I speak on some of the deletionist practices you have engaged to forcefully advance your view points, that I respect and see as well intentioned but at the same time problematic, examples are the Suicide book and the Drugs issues, I expressly don't agree with some of the changes but actively decided to let you act unopposed on this situations because your overall works has been beneficial, necessary and well intentioned and escalating the issue would not lead to an outcome that justified the attrition.
:I consider the issue closed and do recognize I started the chain reaction that led to this unfortunate and unforeseen sequence of events.
:I hope to continue to count on your strong capability to defend your core beliefs, sad will be the day that we all come to agree in all things. Just keep in mind the timing, location, words and context and the return value of taking a position. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 20:38, 13 July 2010 (UTC)
== [[How To Do Nothing]] ==
Would you object on changing the closing of the RfD from Delete to Transwiki (It's a judgment call even if we go by the cold numbers).
As I say there on the discussion a Transwiki is a deletion with an indication that it may be useful elsewhere, since the action requires administrative intervention and all requests administrative actions can be or not satisfied, the transwiki vote even if not acted upon can later on be a guide for undeletion. A not acted upon transwiki (even if it is a minority of the opinions) isn't overruled by majority opinion for deletion (as traswiki is a deletion) or even keep (since a Work can be copied elsewhere also). It all depends on the re-usability value of the content under discussion and the positions expressed. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 21:27, 13 July 2010 (UTC)
:I have temporarily undeleted it for you, once your done transwiki'ing let me know the new location and I will delete the page and replace it with a soft redirect to its new home. It might be wiser to RfU in the future, on the off hand the closing admin is suddenly not around for some reason. I was supposed to be out of town today, but luck intervened that I was around to act on this in a timely manor. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 13:17, 14 July 2010 (UTC)
::I can't transwiki, the page is protected so I can't tag it for traswiki and you forgot to change the closing to transwiki, the last action was the most important one, as it classifies the content even if deleted, or refused at the destination, as of some value, in accordance to the RfD discussion. IIRC transwikis to Wikiversity are made by Darklama. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 17:00, 14 July 2010 (UTC)
::: Transwiki's at wikiversity are handled by putting in a request at [[v:Import]]. Just a section and put the line
:::[[b:How To Do Nothing]] -> [[Transwiki:How To Do Nothing]]
:::Tagging the page here is for the purposes of discussing the transwiki before it happens. In this case I felt it was already discussed. Any custodian over there can transwiki a book, not just Darklama. The most recent two done for me were done by someone else. I will add an appropriate comment at RfU soon. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 17:12, 14 July 2010 (UTC)
:::: That is a Wikiversity import (functionally the same) but not equal. To abbreviate this discussion that is again becoming longer than necessary, what point on my request for tagging it for transwiki aren't you getting or are disagreeing with.
::::A - Opinions if counted by number in the discussion of the RfD are split in numbers, as I stated if based on that it would be a judgment call, and I expect the basis of your closing.
::::B - The argumentation of that RfD clearly was inclined to an outcome of transwiki, so I'm in fact tactfully objecting to your interpretation and the closing as deletion.
::::C - Transwiki and Deletion are mostly the same, but traswiki marks the content even after deletion as potential useful (not trash).
::::D - Import is not the same as tagging something as traswiki (by point C), on the above post you are attempting to state something that is the same as stating that pushing and pulling is the same thing.
::::Do you disagree with any of the above points in a way that validates the time we are now spending on the subject. By moving the process to a RfU you are not addressing my request and are complicating the subject (formalizing you seemingly compliance to my request grants the chance of an objection, in this situation it would be a mess). Based on the content of the RfD discussion, again, I had no expectation that you would cause difficulties, the point of my request is not the transwiki in itself but how the discussion is archived. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 17:52, 14 July 2010 (UTC)
:::::I think I understand your import and transwiki issue so I'm now making a proposal that probably also addresses your concern there. See [[Wikibooks:Reading room/Proposals#Proposal to change the icon and definition of "tranwiki" at the RfDs|here]]. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 19:20, 14 July 2010 (UTC)
:::::: I disagree at least with C and perhaps others if I thought about it longer. I respect that you disagree with my closure. In this respect I saw undeleteing the material as a compromise. I only made a note at RfU because I had already closed the matter as delete, and anyone following the conversation deserves the ability to object to any of my actions, including undeleting it. At [[v:Import]] you and I are more or less the same, I don't believe the custodians check my permissions over here when I request an import. Nor do I always explain that the import is the result of an RfD. I simply request an import. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 20:50, 14 July 2010 (UTC)
::::::: I have now explained point C on the discussion, since you aren't willing to comply to my request regarding [[How To Do Nothing]] I as result remove it as a way to centralize the discussion in a single place. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 04:00, 15 July 2010 (UTC)
{{outdent|:::::::}} So am I to understand your done doing what ever you intended to do with the page and it may safely be deleted? [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 10:07, 15 July 2010 (UTC)
:Yes, since you refused to change the closing as transwiki, my request (and I don't see as productive to tackle the issue further only with you, hence the proposal), for my part I'm not requiring further action from you. But by your expressed view point on formalism you should comply with the RfU since no one seems to have objected as I would like for Wikiversity to accept it, but that is not under my control. As I'm not an active participant on that project, requesting the import is not practical for me. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 10:26, 15 July 2010 (UTC)
== Tip ==
If you edit [[MediaWiki:Sitenotice]], you also want to increase the count on [[MediaWiki:Sitenotice id]] by one. This makes it so that if people have hidden the site notice previously, the new message appears for them by forcing it to be shown again until they hide it once more. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 12:10, 15 July 2010 (UTC)
== How to do nothing ==
Hi, respecting the import to Wikiversity, I'm not sure if to do it, because it doesn't belongs much to Wikiversity's scope. Dunno what to do here. [[User:Diego Grez|Diego Grez]] ([[User talk:Diego Grez|talk]]) 16:27, 19 July 2010 (UTC)
: That was sort of my feeling when I originally deleted the book. If it doesn't fall under your scope simply mark it as not done, and we will decide what to do with it from there. In fact we have been discussing ways to involve WV (and other projects) more when we suggest a transwiki. Since our community has a limited understanding of the scope of other communities the feeling is transwikis should be discussions and not just automatic copies.
:So to summerize, mark it as not done and we wikibookians will decide where to go from there. [[User:Thenub314|<span style="color: #CC2200 ;">Thenub314</span>]] ([[User talk:Thenub314|<span style="color: #CC2200 ;">talk</span>]]) 16:34, 19 July 2010 (UTC)
:: OK, marked as [http://en.wikiversity.org/w/index.php?title=Wikiversity%3AImport&action=historysubmit&diff=585196&oldid=583959 not done]. Cheers! [[User:Diego Grez|Diego Grez]] ([[User talk:Diego Grez|talk]]) 19:06, 19 July 2010 (UTC)
== [[Wikibooks:WikiProject Mathematics]] ==
Thanks for the invitation, and I will join immediately. Be aware, though, that the reason I am here is to brush up on my own math (I'm in high school), and thus may not have the knowledge or the ability to contribute on all issues. I'll expand as much as I can, however, and I thank you for the invitation. It is good to know that there is a community backing math writers at this website, even if it is a small one. --[[User:Freiberg|Freiberg]] ([[User talk:Freiberg|talk]]) 02:38, 19 August 2010 (UTC)
:That is excellent. There are books on every level, so there will be plenty to contribute to and learn from. Have fun! [[User:Thenub314|<span style="color: #CC2200 ;">Thenub314</span>]] ([[User talk:Thenub314|<span style="color: #CC2200 ;">talk</span>]]) 02:57, 19 August 2010 (UTC)
== CheckUser ==
Hello Thenub314,
Per community consensus and meta request I have activated on your account the checkuser bit. Please remember to follow [[m:CheckUser policy|the CheckUser policy]] and the [[wmf:Privacy policy|privacy policy]].
There's a closed mailing list for checkuser discussion etc, [[mail:checkuser-l|checkuser-l]]; which you can access (subscription instructions are on that page) and an some IRC channels ([[irc:wikimedia-checkuser|#wikimedia-checkuser]] and [[irc:wikimedia-privacy|#wikimedia-privacy]]) that you can access too if you use IRC (ask for an invite on [[irc:wikimedia-stewards|#wikimedia-stewards]]).
Should you have any questions feel free to ask me, or another steward on meta. We will try to help.
Best regards, --[[User:Dferg|Dferg]] ([[User talk:Dferg|talk]]) 17:00, 21 August 2010 (UTC)
:Congratulations. --[[User:Abd|Abd]] ([[User talk:Abd|talk]]) 19:44, 21 August 2010 (UTC)
== [[Wikibooks:WikiProject Mathematics]] ==
Thanks for the invitation. I've joined the project. I want to make the Trigonometry book into a useful textbook - one that can be used in conjunction with the Khan Academy videos. In its current state it would be hard for someone new to trig to learn from it. I love what Sal is doing on his site with video and on-line exercises, and I am helping there, but at the same time a text is essential. A good book is way more efficient for fast learners.
[[User:JamesCrook|JamesCrook]] ([[User talk:JamesCrook|talk]]) 16:03, 12 October 2010 (UTC)
@Thenub314: Please could you look over my plan [[User:JamesCrook/Trigonometry_Plan]] and amend it or add comments on the talk page?
[[User:JamesCrook|JamesCrook]] ([[User talk:JamesCrook|talk]]) 11:24, 14 October 2010 (UTC)
== Grammar ==
Had to undo your undo. "Your" is possessive, while "you're" is a contraction of "you are". So "remembering that ''you're'' dreaming" represents "remembering that ''you are'' dreaming". – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 22:45, 18 September 2010 (UTC)
:That was actually an interesting one. In fact, using the contraction there isn't great writing for a book, I'd spell it out. So I have.
:(If it were "your,' the initial clause of the sentence would be missing a verb. What is the subject of the verb "will"? With "you are," it is "remembering." With "your,' it is "dreaming." But that leaves "remembering" dangling, so we'd wonder if it was supposed to be "Remember...." This kind of misinterpretation happens when we read, also, which is why it is often best to spell out "you're." It makes it a bit easier to read.) --[[User:Abd|Abd]] ([[User talk:Abd|talk]]) 23:33, 18 September 2010 (UTC)
:: Fair enough. While my grammar is atrocious it was not a misunderstanding of your/you're that was the problem. I think it was that I misread "Remembering" as Remember, and the sentence was trying to describe some property of an individual lucid dream. So my brain had interpreted "Remember that your dreaming will become easier as you continue to lucid dream" to mean that "Remember that your dreaming will become easier (more restful) as you continue to lucid dream (refering to the individual dream)". Abd's improvement to the sentence works well, though there is still the possible ambiguity as to whether or not "continue to lucid dream" means your continuing with an individual dream or continuing with the practice of lucid dreaming. Clearly it is the practice of lucid dreaming that is meant here. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 01:05, 19 September 2010 (UTC)
::: Lucid dream will not be easier as more restful. It means easier to archive. Haven't you never had the experience ? It is amazing...
::: «"continue to lucid dream" means your continuing with an individual dream or continuing with the practice of lucid dreaming» in the context of lucid dreams it is both, as you attempt to control your dreams you will improve your recall so you will be able to count more dreams even if not all are lucid dreams. Increasing the number of dreams will increase your chances to hold control over some of them... --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 07:36, 19 September 2010 (UTC)
:::: I did experiment with lucid dreaming 20 years or so ago. For what it is worth, I found it more restful, but perhaps my personal experience just differed from the norm. I am content to leave the sentence as it is, if no one else finds any ambiguity with the phrase "continue to lucid dream", which is why I didn't go ahead a change it. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 17:10, 19 September 2010 (UTC)
== Methods Manual for Salt Lake Studies ==
Thanks for undoing the vandalism
[[User:Peri Coleman|Peri Coleman]] ([[User talk:Peri Coleman|talk]]) 06:23, 20 October 2010 (UTC)
:Glad to help. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 06:38, 20 October 2010 (UTC)
== Crat RFP ==
I have posted another question for you at your crat RFP. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 13:40, 8 October 2010 (UTC)
:Thanks for the heads up! [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 22:32, 8 October 2010 (UTC)
:Your nomination was successful. Congratulations. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 16:38, 12 October 2010 (UTC)
::Cool. Expect questions until I am not so green. :) [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 16:41, 12 October 2010 (UTC)
Congratulations. I went there just now to see if it was still open, I had seen some of your good work elsewhere and had decided to change my mind. So I was pleased to see the result. Good luck. --[[User:Abd|Abd]] ([[User talk:Abd|talk]]) 14:15, 15 October 2010 (UTC)
By the way, [http://en.wikibooks.org/w/index.php?title=Wikibooks%3ARequests_for_permissions&action=historysubmit&diff=1944887&oldid=1944733 this] was an excellent answer. I was amazed to find on Wikipedia how many admins there were who would -- and did -- deny the importance of recusal policy, and it was tolerated. --[[User:Abd|Abd]] ([[User talk:Abd|talk]]) 14:20, 15 October 2010 (UTC)
:thanks
== For your information ==
[[Talk:World War II/Strategic Bombing in Europe#What do you mean by "non authorative reference (i.e., a self published work)"?|What do you mean by "non authorative reference (i.e., a self published work)"?]]
Please use the above page for your answer. Also please let me know if you would prefer not to be informed that there is a new entry on that page asking for your cooperation.
Sincerely,
Virgilio A. P. Machado
[[User:Vapmachado|Vapmachado]] ([[User talk:Vapmachado|talk]]) 03:50, 21 October 2010 (UTC)
== Possible merger ==
[[Solving Integrals by Trigonometric substitution]] has been marked for possible merger to [[Calculus/Integration techniques/Trigonometric Substitution]] for some time. Comments on both talk pages show agreement with it. I'd do it if I could, but the knowledge required is not in my area of expertise. I was wondering if you'd be up to it, assuming it's possible? – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 13:46, 25 October 2010 (UTC)
: I would be glad to. I am in the middle of writing, giving and grading some midterm exams, but starting next mid next week I will set my sights on getting those pages merged. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 01:17, 26 October 2010 (UTC)
:[[Image:Yes_check.svg|15px| ]] '''Done''' [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 21:03, 26 October 2010 (UTC)
::Thanks! – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 21:13, 26 October 2010 (UTC)
== [[Mathematics Handbook]] ==
This book was recently created by a long-time anonymous editor. I added it to the general mathematics subject category. This is the same editor who created the [[Arithmetics]] book that you had nominated for deletion, so it may be worthwhile to make sure it doesn't fall into the same problems. It seems to want to try to cover elementary arithmetic, algebra, and calculus in one book. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 18:10, 1 November 2010 (UTC)
:Thanks for the heads up, I will take a look. Did I ever mention I hate grading? Midterms are no fun for anyone.... [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 05:47, 2 November 2010 (UTC)
== Mathematics subjects ==
JamesCrook is trying to categorize all the books in the generic [[Subject:Mathematics]] into more specific subjects so that the page can use {{tl|root subject}} to showcase featured books in the same way as [[Subject:Humanities]]. Along that line, [[Subject:Category theory]] and [[Subject:Mathematical collections]] were created. You and he would best be able to determine what to keep/change/get rid of ([[Subject:Topology]] has a single book, for instance) and discussion is occurring at [[Subject talk:Mathematics]]. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 20:05, 5 November 2010 (UTC)
:Thanks![[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 03:30, 9 November 2010 (UTC)
== CK-12 ==
Well, now I see why my request to Jimbo Wales to ask the CK-12 Foundation to return to the commercial use allowed license from their current noncommercial license so that we could use their future content here failed to produce a result. They have their own [http://authors.ck12.org/wiki wiki]. My versions, however, from their PDFs that were available before they decided to change licenses at [[CK-12 Books]] will have much better formatting, navigational templates, and use images hosted at Commons with clearly indicated licensing. Guess Wikibooks, where anyone can edit and where someone might actually have to charge for the cost of printed books (like PediaPress does) is too open for them. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 00:19, 12 November 2010 (UTC)
: I am curious, do you know if Jimbo actually made the request? The cynical side of me would say probably not. But the even more cynical side of me wonders if they got wind of your attempts to wikify their books and thought "Hey, a wiki is a neat idea." I think I lack a side which isn't cynical. Their choice of a more restrictive license is a shame. They are shooting themselves in the foot. I am of the opinion that any attempt to get a major school district to adopt one of their "flex" books is only possible if there is a commercial side of the business. School districts feel like commercial entities have more accountability. This is slightly unrelated, but when I was in Chicago I heard through the grape vine that the public schools rejected adopting a math book recommended to them by the experts because the most recent edition wasn't recent enough. They felt more comfortable going a book that didn't do as great a job with the content, but had been published in the last year. I think they were afraid that if no one saw the need to print a new version within the last five years perhaps the book wasn't doing very well, and could potentially go out of print, thus causing them to go through new textbook selection early (which I am sure is expensive for a large school system). Thus it was a bit better to go with the flavor of the day. Well at least we still have the pdf's to work from.
::The thought that they had created a wiki to spite us occurred to me too, but I see page histories going back to 2009. You can see on those pages that they went back later and changed the license (works to prove I'm not crazy or lying). I can't be sure that Jimbo actually ''did'' make the request. I had also sent them an email wanting them to provide permission via OTRS just to keep me in the crystal clear but no response. However, the PDFs at Commons show the CC-BY-SA logo (they went back and regenerated them with the NC one later on). Isn't it great that once you release content under a license you can't retract it? Now that status tagging is done I'm really plowing through the transcribing and I enjoy it much more too. Hopefully those books and others I can find from http://cnx.org will attract readers who may become editors. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 05:08, 12 November 2010 (UTC)
== Closed-ness of CK-12 wiki ==
The closed-ness of the CK-12 wiki bothers me more than the NC license. My perspective:
* Teachers who put a lot of work into writing want the CV credit of being in a closed editing group that is ''perceived as being professional''.
* Teachers looking for free books are worried at the prospect of a book that might not follow their local syllabus really really closely.
* Teachers worry about vandalism and inaccurate information.
I see these as being the motivations behind closed-ness, i.e. all coming 'from Teachers' rather than 'from CK-12'. We can tackle each of these, but it needs to be a 'bootstrap' as we need many more editors for our strongest arguments to hold water. [[User:JamesCrook|JamesCrook]] ([[User talk:JamesCrook|talk]]) 11:28, 12 November 2010 (UTC)
:Regarding the first, this kind of thing should be more for altruistic purposes and not a selfish furthering of one's own standing. I have listed authors that contributed to the books where they were originally listed, so they will still get credit here. On the second, it's hard to have books that can be used nationally or even worldwide fulfill that. Instructors are free to skip around or add material. With [[Special:Collection]], they can even reorder the pages however they like for saving/printing/book ordering. On the third, every page I create in these books is using [[Help:Revision review|flagged revisions]] that indicates whether any changes have been made from the approved version, allowing anyone here to check for vandalism. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 15:37, 12 November 2010 (UTC)
== Our versions of CK-12 content ==
About hosting a copy of High School Trigonometry here - I am sure teachers will worry that the copy hosted here may have been 'damaged' relative to the CK-12 hosted version - in spite of seeing better images, formatting and navigation. To counter that we need more reasons for them to use our copy. I would aim to add links to (well regarded and popular) Khan Academy videos, so that they have more reasons to prefer our copy. Then, gradually, we might get editors here. [[User:JamesCrook|JamesCrook]] ([[User talk:JamesCrook|talk]]) 11:28, 12 November 2010 (UTC)
:I'm getting close to finishing the earth science book transcription, but once I start on the high school trigonometry book, feel free to see about integrating those. I'd never heard of a Khan Academy, so I can see the benefits of hosting the material here will already bear fruit. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 15:39, 12 November 2010 (UTC)
== Issues with [[WB:WIW]] ==
You were asking me about controversies surrounding Wikibooks: What is Wikibooks.
By far and away the most controversial change to that page simply must be this edit by none other than Jimbo Wales himself: http://en.wikibooks.org/w/index.php?title=Wikibooks%3AWhat_is_Wikibooks&action=historysubmit&diff=281147&oldid=265973
He never explained himself on this point, and it is still to this day something I never really appreciated, nor did he ever clarify what he was thinking about. Wikibooks had been around for several years (not days) prior to this "change" and it was only later on when other kinds of content was being culled in a wholesale fashion from Wikibooks that this particular "philosophy" get invoked. Note here in particular what the policy read previously and that it certainly was not changed based upon community consensus but by pure fiat... fiat by somebody who really didn't have the authority at the time to make those changes either.
Textbooks have been a focus for Wikibooks, and on that aspect I'll agree, but for that to be the exclusive domain of this project was never intended nor something supported by Karl Wick, the real founder of Wikibooks.
I still support the general notion that Wikibooks ought to be for almost any sort of book that you would find in the nonfiction section of a library that is collaboratively written and available under terms of the GFDL (now CC-by-SA) licensing scheme and compatible licenses.
I find it very interesting that the sins of the past are starting to come to the surface again. I certainly feel that the great video game guide purge in particular was something that ended up taking considerable wind out of Wikibooks and made this into a much, much weaker project than it would have been had they been allowed to remain. I also think there was most certainly a conflict of interest on the part of Jimmy Wales as he personally has benefited fiscally from the decision to ban such guides on Wikibooks. Futhermore, any such efforts to bring those users back is a lost cause, as they are gone never to return so far as what might have been.
I worked long and hard to promote Wikibooks, and during my tenure as admin Wikibooks saw some tremendous growth. I was warning then that the core group of Wikibooks admins and editors shouldn't be taking that growth for granted. Unfortunately, that growth isn't happening any more. Oh, there seems to be a steady creation of content but it appears to be saturated in terms of recruiting new contributors to the project... about as many people are leaving as are coming into writing on Wikibooks now. This is also a problem on Wikipedia BTW.
Here's to the future of Wikibooks. It will be around for awhile longer, and my hope is that sometime sooner or later something is going to click where the power of Wikibooks and projects like it will be apparent to people outside of the Wikimedia projects. I certainly don't think the WMF appreciates the concept at all, nor is really supporting Wikibooks to emerge into its full potential. I got seriously burned out earlier, which is why I've taken an extended wikibreak, but I do intend to come back. There are a couple of Wikibook ideas that I have a scratch to itch, and most likely it will be in that capacity that I'm going to return to being a regular Wikibooks contributor. --[[User:Robert Horning|Rob Horning]] ([[User talk:Robert Horning|talk]]) 21:54, 13 November 2010 (UTC)
== Feedback ==
It takes much longer to do the transcription for the [[High School Trigonometry]] book because of the need to use {{tag|math}} and because of the many figures. I've found a program that does graphs of equations in SVG format as long as you don't need to change the scale of the axes. For others I've found that the raster to vector conversion of Inkscape works well enough for producing SVG images. I have the first page done at [[High School Trigonometry/Basic Functions]]. If anything pops out at you, let me know so I can adjust as I work on the remainder. Regarding aesthetics, I centered images in [[High School Earth Science]] and I continued that so far in Trigonometry by centering figures and equations in the main text. I left-aligned in the example boxes, though. Let me know if you think it should all be left-aligned. Hope you're done with mid-terms soon! – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 00:17, 20 November 2010 (UTC)
·
:Looks great! I have noticed your using HTML for "inline" math expressions. That is my preferred way of doing it but it can sometimes can get to be a pain with some expressions, but looks so much nicer when possible. But really, I couldn't have done better. Forgive the length of time it took me to reply but things are getting busy for me in real life lately. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 02:36, 23 November 2010 (UTC)
::I appreciate you taking the time. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 13:40, 23 November 2010 (UTC)
::: Well also let me offer what little help I can. I would be glad to aid in your cause anyway I can, if you think of something that it would be useful for me to do (rather slowly as I am busy :) ) Just say the word and I will be glad to chip in. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 16:01, 23 November 2010 (UTC)
I'm curious about some formatting thoughts. If I'm writing about a function and using inline math expressions, should I italicize the f or not? As in f(''x'') or ''f''(''x''). Also, should I use × or • for multiplication? – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 01:34, 16 December 2010 (UTC)
: I will take another look and see if I can give my thoughts. On the two questions brought up above I would tend to avoid using × for multiplication, I prefere · (or •). The reason is pedagogical over use of the × symbol in problems involving the variable ''x'' tends to make students confused, not of what is written in the book, but of their own work written on paper. Too many times I have seen ''y'' × ''x'' become a ''yx''<sup>2</sup>, so once past algebra I tend to prefer a dot for representing multiplication.
: The question about how to represent <math>f(x)\,</math> as an inline expression is apt. There is not really a great answer, the standard wisdom from wikipedia is to use a ''ƒ''(''x''), I tend to like the look of this, but it is a pain to type. Italicizing it as ''f''(''x'') is the next best bet. Generally of course for any function given a special name (such as: sin, cos, e, ln, log, etc.) are not italicized in TeX so they are not italicized in inline HTML.
: For other purposes I thought it might be nice to create an {{tlx|im}} (inline math) and {{tlx|dm}} (display math) templates, mostly for the convince of people attempting to make pdf versions. In some users userspace there is a program for converting a wikibook into LaTeX, and for math books it would be handy to give this program a clue about whether <nowiki><math>...</math></nowiki> should become <tt>$...$</tt> or <tt>$$...$$</tt>. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 18:00, 16 December 2010 (UTC)
: Also it occurs to me that sometimes HTML simply cannot render (by any way that I know of) some math. A standard example that comes to my mind is the summation signs, where you want to put the indices. The symbol ∑<sub>n=1</sub><sup>10</sup> just doesn't space the indices correctly. The corresponding LaTeX expression <math>\sum_{n=1}^{10}</math> is huge, at times like this it is handy to know you can force LaTeX to display the symbol as if it was meant to be inline by using \textstyle (the opposite of \displaystyle), in this example the expression becomes <math>\textstyle \sum_{n=1}^{10}</math> which is a bit smaller and disturbs the line spacing less, making the paragraph cleaner and easier to read (IMO). Also textstyle for fractions has an abbreviation. You may simply type \tfrac. Here are some examples: <math>\frac{\sin(x)}{x}</math>, <math>\tfrac{\sin(x)}{x}</math>, <math>\textstyle \frac{\sin(x)}{x}</math>. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 18:28, 16 December 2010 (UTC)
::Thanks for the advice. [[Wikibooks:Manual of Style#Mathematics]] wasn't too helpful. I suppose while I'm going through the text I should also use a minus (−) from the toolbar instead of being lazy and using a hyphen (-). Reading [[Wikipedia:Manual of Style (mathematics)]] I see they have [[w:Template:Math]] which will prevent line breaks and make the font serif. I'll have to update [[Template:Math]]. That same page also does recommend · as an alternative to ×, so I'll use that version of the dot. I actually just noticed that under the toolbar's special characters tab, under symbols, there is the ƒ character available. Had you not mentioned the HTML entity I wouldn't have thought to even look in the toolbar. However, I notice there's been [[w:Wikipedia_talk:WikiProject_Statistics#.C6.92_or_f|debate]] over ''f'' and ƒ at Wikipedia. Looks like they prefer ''f''. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 18:51, 16 December 2010 (UTC)
::: I think for us the most important issue is that an individual book be consistent. Unfortunately there is no very good way to handle inline math, except possibly a better handling of the way the software handles math. But there is very little interest/ability in this direction among the developers it seems. The only other issue that may be worth thinking about is how to handle spacing/line breaks around math symbols. So the standard wisdom used to be (when I was active over at WP, and it seems things have changed a bit) was that on either side of symbols like +, −, ·, = should be   for two reasons. First you want a little space for reading (Ex: ''x'' + ''y'' vs. ''x''+''y'') and two it keeps from a line break from occurring at an awkward point in an expression. Personally I find that   provides too much space and I like a thinner space that comes with something like &thinsp, but at some point the effort of manually doing the typesetting comes into play, for example achive what I want I might have to type: <nowiki>{{nowrap|1=''x''&thinsp+&thinsp''y''}}</nowiki> (with a few semicolons in the right place), that is almost as bad as MathML in terms of difficulty to type by hand. I personally try to add a bit of space around "binary operators" but alternate between whether I think it is easier to explicitly type out nbsp's or simply but a <nowiki>{{nowrap|1= }}</nowiki> and use regular spaces. Usually thinsp only occurs if I am feeling obsessive compulsive. For what it is worth, I usually also italicize ƒ still renders best. (That is ''ƒ'' vs. ƒ). [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 22:39, 16 December 2010 (UTC)
== Navigational schemes ==
In regard to the C++ Programming book historically we've had IIRC 3 navigational schemes implemented, the last one was removed by Darklama because the user that created it stopped maintaining it.
There is also the evolution of the Wikibooks project in the meantime, with the "/" naming style convention navigation has become intrinsic to the project (with the required automation) this also addresses the issue that not all content on the book is linear, there are parts of it where a static use of a navigational scheme will not work/make sense as the user navigates across sections, in any case the sheer difficulty on maintaining and updating it consistently makes it unfeasible. Any issue in backtracking is now perfectly well addressed by the back function of a browser and browser caches. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 12:46, 6 December 2010 (UTC)
:So you mean that there will you never intend to have a scheme for getting from one page to the next page? [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 13:32, 6 December 2010 (UTC)
::That is the function of the toc, the navigational aid provided by the "/" convention, book category and the links already embedded on the content. That and the normal faculties provided by the browser seem to suffice and remove the burden to create and maintain ad-hoc solutions.
::In general, not that it matters, as a user I must confess I don't use or particularly like most the template navigational solutions provided on Wikibooks project (I find them useful on the project name-space). I even find the space they occupy on screen detrimental to the use of the books content. Probably why the "/" convention was created since the "flat" structure didn't provide for easy navigability (all under the same level on a book's namespace). --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 13:49, 6 December 2010 (UTC)
== Two column proofs ==
Hi, I'm wondering if there's a template for two-column proofs? Thanks [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 14:36, 25 February 2011 (UTC)
: Hi Kayau. Forgive the delay in reply I was on something of a wikibreak. I have not seen one, but it does sound like a good idea. But maybe we should check to see if WV/WP etc have one we can import. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 05:39, 6 March 2011 (UTC)
::Thanks. :) Neither projects seem to have one... Maybe one could be created here. The template could consist of two columns, one marked statements, the other reasons. Maybe there could be references in the template, enabled by #switch. <nowiki>{{tcp|s1=AD//BC|r1=intsupp}}</nowiki> could yield the statement AD//BC and the reason int. ∠s supp. Hm... [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 15:26, 9 March 2011 (UTC)
== Thanks for the encouragement ==
Hi Thenub314,
I don't want to clutter your talk page, so feel free to delete this message once you've read it. I just wanted to say thanks for the encouragement and ask that you please not hesitate to correct or criticize my edits if you notice I've made an error or don't like my edit for any other reason. You won't scare me away :) [[User:Greenbreen|Greenbreen]] ([[User talk:Greenbreen|discuss]] • [[Special:Contributions/Greenbreen|contribs]]) 18:37, 18 April 2011 (UTC)
== [[Wikibooks:Reading room/Assistance#right place for a book with lots of screenshots?]] ==
Hi! I'm trying to help out someone in IRC who wants to bring a project to Wikibooks. Xe needs to know if there would be problems for hosting images, specifically screenshots of the software the project would be addressing. Apparently these images would not be allowed on Commons? Xe opened a discussion in the reading room. Would it be possible for someone familiar with WB's policies to respond? - [[User:Amgine|Amgine]] ([[User talk:Amgine|discuss]] • [[Special:Contributions/Amgine|contribs]]) 21:58, 10 May 2011 (UTC)
: Sure it would. I responded, we do allow screen shots software if a book needs it and if a fair use rationale is given, I left him a note with letting him no that there. Thanks for bringing the question to my attention! [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 22:43, 10 May 2011 (UTC)
== Thanks ==
Thought I had linked it properly. Maybe you can look into the request for importer priv?? I think there is way too much importing to expect anyone else to do it!07:03, 19 May 2011 (UTC)
{{Talkback|Geofferybard}}
== Thanks for the welcome. ==
Thank you for the welcome on my user page here. I've been visiting to look at some of the existing books on primary mathematics, and I hope to revise those (or add news ones) from time to time. -- [[User:WeijiBaikeBianji|WeijiBaikeBianji]] ([[User talk:WeijiBaikeBianji|discuss]] • [[Special:Contributions/WeijiBaikeBianji|contribs]]) 21:01, 20 May 2011 (UTC)
:Your welcome. Hope you have fun editing and let me know if you need any help. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 01:39, 21 May 2011 (UTC)
== "Former featured book" template ==
Since you checked [http://en.wikibooks.org/w/index.php?title=Rhetoric_and_Composition&diff=1932841&oldid=1889144 this edit] by an IP, I wanted to ask you if you would have any objection to the "Former Featured Book" template being re-added there or placed anywhere else that it applies. I'm not sure why it would be discouraging. [[User:Belteshazzar|Belteshazzar]] ([[User talk:Belteshazzar|discuss]] • [[Special:Contributions/Belteshazzar|contribs]]) 13:55, 3 June 2011 (UTC)
: Perhaps we should be consistently putting that template on the book's main talk page? That's what's been done with [[Quenya]]. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 14:12, 3 June 2011 (UTC)
:: No objects, I checked it to level "minimal", which my understanding means "this is not vandalism" and little more. I have no particular feelings about the edit, but the talk page does seem a better place to me. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 14:46, 3 June 2011 (UTC)
:::I would think that placing that template on the main page is a way to let outside readers know that they can help to improve the book, since they may be unaware of that ability. Most such readers would not see it if it were on the talk page. [[User:Belteshazzar|Belteshazzar]] ([[User talk:Belteshazzar|discuss]] • [[Special:Contributions/Belteshazzar|contribs]]) 17:40, 3 June 2011 (UTC)
::: It is your call, on the page is ok as well. I have no strong opinions, just make sure to be patient if the IP editor returns and takes it down again. New editors sometimes get a bit upset when they encounter their first disagreement. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 23:02, 3 June 2011 (UTC)
:::: Since the IP found the message discouraging, I [http://en.wikibooks.org/w/index.php?title=Template:Former_featured_book&curid=143772&diff=2115848&oldid=1898030 tweaked the template] a bit. [[User:Belteshazzar|Belteshazzar]] ([[User talk:Belteshazzar|discuss]] • [[Special:Contributions/Belteshazzar|contribs]]) 23:22, 3 June 2011 (UTC)
== Linear Algebra ==
Hi!
I've seen that you contributed with major edits to the wikibook linear algebra. It's quite good! Thank you for your efforts!
Yet, I think that I have spotted two flaws that I'd like to draw your attention to. I've posted them on the discussion pages:
[[Talk:Linear_Algebra/Strings]], [[Talk:Linear Algebra/General = Particular + Homogeneous]] and [[Talk:Linear Algebra/Eigenvalues and Eigenvectors]].
I'd be very grateful if you could take a look at my short remarks. [[User:Wisapi|Wisapi]] ([[User talk:Wisapi|discuss]] • [[Special:Contributions/Wisapi|contribs]]) 17:59, 3 August 2011 (UTC)
== Hello? Anybody home? ==
Thenub, you've been missed. There is discussion of your probationary custodianship on Wikiversity, at [http://en.wikiversity.org/wiki/Wikiversity:Candidates_for_Custodianship/Thenub314#Restarting_Mentorship_Period]. I hope you are well and able to respond. Thanks. --[[User:Abd|Abd]] ([[User talk:Abd|discuss]] • [[Special:Contributions/Abd|contribs]]) 19:07, 27 August 2011 (UTC)
:Thanks for the ping. I left a comment. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 18:15, 30 August 2011 (UTC)
== WCI 2011 : Accelerating Wikibooks : Would like to discuss! ==
Hello!
I will be delivering a Talk at the Wikimedia Conference India 2011 on the topic of "Accelerating Wikibooks".
Over the next few days, I aim to make the proposal more and more wholesome and relevant. I'd like to discuss with you about the proposal and hope you can recommend me a few names on Wikibooks with whom I can discuss this.
I'd be very happy if you could discuss the proposal at [[User:Thewinster/Accelerating_Wikibooks]]
--[[User:Thewinster|Thewinster]] ([[User talk:Thewinster|discuss]] • [[Special:Contributions/Thewinster|contribs]]) 08:20, 26 September 2011 (UTC)
=== Summary of the proposal ===
This is not a summary of the final talk, only a tentative guideline.
* Create Roadmaps for a book
* Define Learning Outcomes
* Annotate and Discuss new content available from around the web.
* Minor tweaks and fixes which concentrate on crowdsourcing.
* Identifying Small Contribution that advance a book and designing good UIs and triggers according to B.J. Fogg's Behavior Change Model, 8 Step Design Process. The paper can be found here at [http://www.bjfogg.com/design_files/page8_1.pdf Persuasive Design : Eight Step Process by B. J. Fogg]
== '''Algebra''' -- re: Your note to me 6 July 2010 ==
Sorry I've been off line for sometime. The mixtures of writing styles 2nd & 3rd persons, verb-noun agreement is disconcerting--I don't have the strength to reconcile that & am mostly leaving that to the pedagogues. Go ahead and merge merge merge. This book's information is all-over in a more haphazard than organized treatment & full of blatant material errors, which I will look for, & omissions, which I may realize. I'm also perusing the format on mobile devices & via 7val. This is my primmer for real algebra (more advanced) and other higher maths. Help me to maintain an 'intermediate' scope or presented basics first. [[User:Mouselb|Mouselb]] ([[User talk:Mouselb|discuss]] • [[Special:Contributions/Mouselb|contribs]]) 12:22, 8 October 2011 (UTC)
== Thank you ==
For the note about the "\sen" function. [[User:Magister Mathematicae|Magister Mathematicae]] ([[User talk:Magister Mathematicae|discuss]] • [[Special:Contributions/Magister Mathematicae|contribs]]) 21:17, 17 October 2011 (UTC)
: My pleasure. I am doing my best to improve texvc to the extent possible, and there is no good way to let people know about the change except to tell them. If there are other internationalization issues please let me know. I would be happy to do more. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 23:41, 17 October 2011 (UTC)
== [[Vim]] ==
Thanks for picking up on my Query tagging of this article. I had no idea whether it was real or nonsense.--[[User:Xania|ЗAНИA]] [[Image:Flag_of_Italy.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 20:38, 27 October 2011 (UTC)
:No problem. This is exactly what Query's are for. :) With the first sentence I almost thought it was nonsense even knowing what vim was. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 00:29, 28 October 2011 (UTC)
== [[Cannibalism]] ==
Just thought I'd point out that [[Cannibalism]] survived a vote for a deletion a while back. --[[User:Jomegat|Jomegat]] ([[User talk:Jomegat|discuss]] • [[Special:Contributions/Jomegat|contribs]]) 02:13, 28 October 2011 (UTC)
: I had noticed. If you think it is better to bring it up for Rfd, I will do so. But looking closely at the case back then, everyone simply agreed that it couldn't stay as it was and changed it. The problem is that since the changes there hasn't been any contributors to the book beyond relatively minor categorization/spelling/etc. But it looks like Panic is planning to merge it into another book, so it is a non-issue at this point I suppose. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 02:24, 28 October 2011 (UTC)
== Outdoors survival ==
A discussion request is implied on the tag of a merge (and in this case was initiated on the source), so these tags shouldn't not be removed willy-nilly, like I changed your deletion request (since no further argumentation is necessary in that case, and opposition to the merge is still possible). --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 02:31, 28 October 2011 (UTC)
: Feel free to revert me if I made a mistake, or you feel strongly that they should be merged. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 02:35, 28 October 2011 (UTC)
(edit collision)
My change of the deletion request was commented (I clearly didn't agree with the proposal on its own value), but my change was not a dismissal of your position, it just superseded it in a away that extraneous dialog was not necessary. A direct opposition to the deletion request would have been turning it into a VfD, but the content present is a stub so I agree that there was no major need for the preservation of that project in a stand alone form. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 02:40, 28 October 2011 (UTC)
With the merge request I was responding to the conversation taking place at the source project and agreeing that the stub was replicating already existing and more advanced projects. In any case I would like to know why you objected to the merge request --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 02:40, 28 October 2011 (UTC)
: Well the subject of outdoor survival is a strictly more general thing then the subject of "When it hits the fan", and so their scope and audience is rather different. It makes sense to study outdoor survival if you intend to spend lots time in the woods (say hiking the whole Appalachian trail) but your not particularly concerned about difficult survival situations. As I understand when it hit the fan it discusses (local) apocalyptic situations which one intends to survive. I would agree that understanding that some understanding of surviving outdoors may help in some of these situations, and not in others. To give an example of potentially different audiences, boy scouts are more likely to be interested in outdoor survival to meet the requirements of a badge, but be less interested in When it hits the fan. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 02:57, 28 October 2011 (UTC)
::If you still see a point in preventing the merge please move the above post (and delete this one) to the "Outdoor survival" talkpage. I do agree with you in very general terms but the outdoors survival is a incomplete and abandoned stub, that has valid content that I felt could be used on the other project that I was attempting to lift out of the ground (it was also a stub). In regards to readers preferences I can't really tell what would interest more a boy scout, but unless our childhood was extremely different I would contest that view :) (Remember also that there is a wikibook expressly dedicated to all things related to boy scout badges) --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 03:17, 28 October 2011 (UTC)
::: :), left a comment on that talk page. I might suggest you correct the merge templates to point to the correct discussion place, currently they point to the discussion page of When it hits the fan, so if anyone clicks discuss they will miss our comments. <small>It is always safe to assume I had a very different childhood!</small>[[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 03:22, 28 October 2011 (UTC)
== Forcing PNG ==
Has there been a change made to the extension and the interaction with user preferences such that <tt>\,</tt> will effectively force a formula to render as PNG rather than requiring <tt>\,\!</tt> ? {{unsigned|Adrignola}}
: The way the program works it decides that \, is a difficult but not impossible to render in html. So with the user preference "HTML if possible or else PNG" the expression <math>x\,x</math> should render as HTML. Certain commands, such as, \! always force png regardless of what other commands are around them (I suppose there is no html entity for a negative space?). More and more, I have noticed people adding \,\! at the end of the formula because the help document makes it sound like the combination is necessary. Granted it never said that combination was ''necessary'' bit it did recommend it. That particular combination is nice in that it can be placed anywhere, but I thought it would be simpler to say place \! at the end or the beginning. It saves people typing and makes the wikicode slightly more readable. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 18:48, 28 October 2011 (UTC)
PS the combination \!\, also could be placed anywhere and not change final png. This effectively just moves the "cursor" backward and forward, but never prints anything to the image. I felt the whole discussion of canceling out gave the wrong impression of how TeX (and texvc) were doing their job. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 18:52, 28 October 2011 (UTC)
PPS \operatorname also doesn't need \, after it anymore. I fixed that at meta, but it is on my todo list here. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 18:55, 28 October 2011 (UTC)
:The additional information provided here is helpful. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 17:52, 29 October 2011 (UTC)
== The Ljapunov Exponent ==
Hi. I see that you have changed spelling from Ljapunov to Lyapunov in [[Fractals/Iterations_in_the_complex_plane/Mandelbrot_set|this article]]. The resons for Ljapunov :
* this spelling was copied from original article
* there is explanation in wikipedia : "Aleksandr Mikhailovich Lyapunov (Russian: Алекса́ндр Миха́йлович Ляпуно́в; June 6 [O.S. May 25] 1857 – November 3, 1918) was a Russian mathematician, mechanician and physicist. His surname is sometimes romanized as Ljapunov, Liapunov or Ljapunow."
I agree that Lyapunov is more common. Thx and regards. --[[User:Adam majewski|Adam majewski]] ([[User talk:Adam majewski|discuss]] • [[Special:Contributions/Adam majewski|contribs]]) 07:33, 10 November 2011 (UTC)
:Interesting, I never new that. Oh well, I'll try to be more helpful next time ;). [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 07:47, 10 November 2011 (UTC)
== Abstract Algebra ==
Unfortunately I was moving and merging it while you were updating the title page to remove the merge template! I've shifted the older version and added a "to do" flag. I don't think anything has been lost by doing the merge of the front page but I'll check all the subpages just in case. [[User:QuiteUnusual|<span style="color:#E66C2C">'''QU'''</span>]] <sup>[[User talk:QuiteUnusual|<span style="color:#306754">TalkQu</span>]]</sup> 21:54, 11 April 2012 (UTC)
:Yeah, it is not big deal. I was mainly trying to keep the link to the old page, as well as the sub-TOC which I thought Arydye001 might have wanted. But he hasn't been active on that page in a while so: no harm, no foul. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 21:58, 11 April 2012 (UTC)
::It's possible to revert the merge without too much effort. Worst case I'll do that. [[User:QuiteUnusual|<span style="color:#E66C2C">'''QU'''</span>]] <sup>[[User talk:QuiteUnusual|<span style="color:#306754">TalkQu</span>]]</sup> 21:59, 11 April 2012 (UTC)
:: First and foremost, it is not worth the effort to undo it. Now, on a technical point to make sure I am not behind the times: Is it possible to undo a merge? I thought this involved going through all the edits and trying to separate them out which I admit is possible but usually pretty painful. As there been any improvements to the software? [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 22:02, 11 April 2012 (UTC)
:::No improvements, no... just takes patience! [[User:QuiteUnusual|<span style="color:#E66C2C">'''QU'''</span>]] <sup>[[User talk:QuiteUnusual|<span style="color:#306754">TalkQu</span>]]</sup> 22:38, 11 April 2012 (UTC)
== Thanks for the welcome ==
Hi Thenub,<br />
Thanks for welcoming me here and over at Wikiversity. I don't expect to contribute more than incidentally, but it was very nice to be met at the door like that.<br />
Cheers,<br />
[[User:Sietse|Sietse]] ([[User talk:Sietse|discuss]] • [[Special:Contributions/Sietse|contribs]]) 19:24, 13 April 2012 (UTC)
: I am always happy to see people developing the math resources. All contributions, big and little are welcome. I look forward to working with you, if only in passing. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 22:59, 13 April 2012 (UTC)
== Reverted your reversal ==
I do not normally do this but I reverted your reversion of my alteration to the C++ Programming cover page. I did that because your action was without cause or even in relation to the discussion invoked in it on that page talk nor remotely supported by common practice, logic or Wikibook's policy. I do not see any reason for ever reverting me unless I made a grave mistake or taken any action that could be construed as a violation of policy or common sense since I am available daily to address any issues that may arise. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 21:51, 14 April 2012 (UTC)
:Thanks for the heads up, I replied at the talk page. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 23:18, 14 April 2012 (UTC)
== What age are you ? ==
No I do not need to know, just that you think about it. Remember what I said once before ? You are doing it again, not funny nor productive. There is no long term greater good served by this short terms shenanigans.<br>
Chose you battles well but be ready to support and have legs to defend your points if you want to realistically be taken seriously. "Me too" argumentation is only working to create the feeling that the point should be taken further, rallying support for issues that have no merit removes any merit to those that act to support them. The last comment couldn't be more demonstrative of if not bad faith of a very misinformed view of reality, further promoting the continuation of the hallucinatory rampage that user was engaged. What end game do you perceive as being the goal off continuing in this path ? What will be gained ?<br>
One thing you already had managed is that I've moved contributing content to that book at my lowest priority. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 07:15, 15 April 2012 (UTC)
: I am old enough to understand that the "act your age" bit is simply patronizing to adults and generally not helpful. I have long complained that the C++ Programming book was too complicated to edit easily, and this has discouraged some editors from working on it (if no one else I can certainly say this is true of me). I felt I had said a bit more than "Me too", and pointed out this was a KISS situation.
: I am not playing any sort of game. If we managed to come to an agreement about the books structure, then we could hopefully improve it. I understand you see nothing to be gained here, but I do.
: Stressing you out to the point of changing your priorities is certainly not my goal. I don't see how I would have done so in such a short amount of time. I only took one active edit to restore the title (and perhaps I shouldn't have) beyond that I have simply expressed my opinions on the talk page and tried to understand yours. In fact I started to rewrite one page last night and stopped to avoid adding more fuel to the conflict. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 21:06, 15 April 2012 (UTC)
:::Act your age means is a call for you to came to your senses. This is not about the C++ Programming as no valid point is recognized in the arguments made so far, this seems to me more to be about a bruised ego and difficulty with dealing with opposition, it may even be a seeking of recognition or attention of some sort, but one thing is and never was is about the C++ Programming. This continued dodging and scramble to create unseen danger and announce unrealized misfortune is taxing on my patience to deal with such infantilities. If you or others have good arguments then use them properly, do not go out of your way to cause unnecessary and pointless havoc and spend endless time reaching nowhere...
:::It continues to boggle my mind that some people simply seem incapable of dealing without rancor to any proper expression of opposition. I did and do oppose most of your changes done in the drugs work and was deeply annoyed by you censure of part of what I added to suicide work and you can continue to count on me to point every action that I see as unjustified or improper. I'm vocal and will continue to be. But that does not dictate that I must at every chance, blindly and without proper cause, side with those that oppose your views, criticize your every action or be a nuisances to you. Is it much to expect the same from others.
:::When you last engaged me on the C+ Programming book you acted in behalf of a user that was being extremely unpleasant, even irrational. He started on my talk page and moved into that work. You first action was to side with him (even if to your credit admitting later that it was in error).
:::I will not repeat the argumentation I provided on that discussion but will gladly address any counter argument you have regarding the validity of the original opposition, the proper way to handle reversal disputes, that issues have a terminus date (it could be disputed if 7 days suffice, but hopping that a discussion from last year is still pending resolution can only be a joke). What you presented so far has no credibility by normal practice or validity in future implementation, including a reformat of the work, if is not only unrealistic but impossible to do maintaining any type of order in the book.
:::The fact is that all things being equal your interest on the C++ Programming project should not be much different than the interest I have for the Ordinary Differential Equations or Real Analysis project, but it seems that all things are not equal... --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 22:20, 15 April 2012 (UTC)
:::: This is perciesely about C++ Programming. While you may believe this is fundamentally about something else as far as my motivations go you are incorrect.
:::: To be frank your the only person introducing rancor into this disagreement. Let's list the words/phrases with a negative connotation in this thread: "shenanigans", "bad faith", "misinformed view of reality", "hallucinatory rampage", "patronizing" (by me), "infantilities", "rancor", "blindly and without proper cause". And that is just this thread!
:::: I am not looking to side with people who disagree with you specifically. I just came back from a long wikibreak, and noticed the discussion on Adrignola's talk page. I read the discussion page to see what was happening and I comment on threads where I thought my input could be useful. I understand we have disagreed about books in the past, and with both the books you mention you have also made edits I disagree with that stand to this day. Compromising is part of what it takes to get along.
:::: I'll admit I no longer remember which user your referring to, nor the specific situation. But if I have a redeeming quality it is that I will admit I am wrong in the case I am wrong.
:::: I will keep arguments about the actual book at its discussion page, and discussions about my behaviour here. Your welcome to edit Ordinary Differential Equations or Real Analysis. I believe my edits to C++ predate any serious disagreements we have had. The fact of the matter is that I occasionally enjoy programming and I have picked up some hodge podge knowledge about it along the way, and so I have an interest in this subject. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 04:19, 16 April 2012 (UTC)
::::: Don't give me crap, take this last bout. You did go out of your way to give support about an esthetical change to a work that I have not only been contribution but have by a large part created. The point under discussion is about a freaking alteration that today is in several book (I myself have made the same change in many other books, most of those books communities kept these changes).
::::: In fact we I had previously had a discussion about the same esthetical fixture that upon you telling me that it caused problems got immediately removed by myself and since it was used in other works immediately corrected.
::::: But you saw merit in this user particular protest. Coming in support of an argument that was at least 7 days old to revert a change (not reversion) that had at most a similitude with was claimed (but was not the same implementation) in fact it was an equal implementation that had been in the work for years before. Be real man... --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 17:46, 16 April 2012 (UTC)
::::: I have to say I feel like I have been duped. I was feeling rather guilty about causing you to "[move] contributing content to that book at my lowest priority". I went to look over the damage I have caused... and excluding edits you mark as minor, vandalism reverting, and rejecting changes by others I have to say it looks like you have made a handful of edits since Jan 1st. What ever lowered the book on your priority list, it seems to have happened a while ago. Not sure why you felt the need to make me feel guilty about it, but you were successful, for a while. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 16:39, 16 April 2012 (UTC)
:::::: My intention is not to guilt you but to shame you, my fellow co-author in that book. Regarding these types of unproductive shenanigans. To make you think in the goals you attempt to pursue and the impact of your actions.
:::::: You know perfectly well that this is not the first time you engage and are called out due to this empty argumentation. In any case lets concentrate in debating the so important aesthetics of the C++ Programming title lettering on that talk page...
:::::: The amazing thing is that I still contribute at all and give a crap about the future of the Wikibooks project. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 17:46, 16 April 2012 (UTC)
::::::: I have done nothing to be ashamed of, and the premise by which you intend to manipulate my feelings on this point doesn't really hold much water.
::::::: As far as the debating the aesthetics of the text size, I said let's keep it your way didn't I? The fact I reverted you was more procedural then any claim of importance. As I said I wanted to give the discussion time to build a consensus. As far as text size goes, I stated what I felt was better and said, since you seemed to feel strongly that we should stick with ''your'' most recent version, and give time for the conversation to continue. Yes I said I didn't share your views about status quo, but what of it, I didn't try to say we should change it again based I that fact. I basically just said "Fine, we can stick with it, but I don't personally like it." How is this something to be ashamed of? [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 20:00, 16 April 2012 (UTC)
:::::::: Thenub314 I do not have the intention to manipulate anyone's feelings. You asked me what I meant and I answered you. That I was calling you to reassess your behavior, not only on the present but in general when you argue a point or unnecessarily intervene.
:::::::: You claim that you felt guilty, but at most my intention was to point you that you should feel bad (but not particularly guilty). Shame is a feeling arising from the taking consciousness or exposure of unworthy, indecent, dishonorable, improper, ridiculous conduct or circumstances, etc.
:::::::: To what I've pointed that your involvement in Dan's case was unworthy, the reversal improper and the continue debate ridiculous. That you silence in Darklama's intervention (in your behalf or Dan's, I really can't find any justification for his action) is at best a continuation of a dishonorable trend that you and me are perfectly aware that did not start in this specific situation. Even your recent move from the support from ones Dan's diatribe to another, is a continuation of this indecent behavior, that ultimately we are all aware that nothing useful with result from it...
:::::::: To that I point out that I may (and have) object to some of your changes and positions but unlike you select the goals that I feel are important and never came into any situation a simple "me too" argumentation. I must have a point to defend or something to add or I intentionally will remain silent.
:::::::: Take for instance the argument we add on the drugs alterations even if I felt the changes unnecessary I understood you motivations and decided that no better good would be archived by the continuation of the debate or attempt to block you. The same with the removal of content and small changes I strongly opposed on the Suicide book, there I felt that the actions were negative and specifically due to your own beliefs and point of view on the subject and suffered by being seen by me as persecutory (since I was doing the previous edits). Even so I did not act or go beyond expressing my distaste. I do not pursue you on your activity on the project or go out of my way to comment on it. Take for instance how you came to claim co-authorship on the C++ Programming or the recent example regarding th discussion about merging works, completely out of proportion, more to make a point of presence than be ultimately constructive...
:::::::: As for the text size thread yes you did agree with me. But that is not the point why I'm spending this time talking to you. I do not care that you agree or not but that you ponder the motivations and possible consequences of your actions. In that subject specifically and in the future.
:::::::: In the text size and your reversal I would appreciate that you to make it clear to Darklama (and others that I know are reading the thread) not that you agreed with me in keeping the alteration. But more importantly that my reversal of your reversal was not contested. Your silence speaks as loud as your first intervention. It promotes actions from others that may not be as well meaning or agreeable.
:::::::: I did-do not take offense in your reversal and always welcome a constructive criticism. I just find it strange that I'm particularly singled out for all the attention, especially dealing with minutia, and things that in general are not unique in my contributions. When we all could be spending the time doing better things... --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 21:22, 16 April 2012 (UTC)
:::::::: PS: I'm only spending this time in the subject because we have a long history in attempting to mutually understand each other. I do not particularly claim malice on your part only that you at times fail to measure consequences and the worthiness in pursuing a point. This is not the first time I call your attention to this. I do not know if you are the same outside of the project, but as a rule of thumb being more ponderous in regards with the positions one takes will only bring benefits. Take it or leave it, my critique is well intentioned and done constructively. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 21:29, 16 April 2012 (UTC)
::::::::: Ok, I haven't a lot of time, so this is in no specific order. First, regardless of how you phrase it, the implication that I was the one to lead to lower C++ Programming on your priority list doesn't hold much water. It seems this happened long before this discussion.
::::::::: Second your giving Darklama too little credit. He noticed what he felt was an edit war and protected the page. A fairly common reaction across most projects. I don't think he was acting here out of any personal vendetta.
::::::::: Third, I tend to read discussions and comment if I have something to say. Unlike you that might be a simply "I agree". But I didn't jump from one diatribe to an other, I happened to notice another thread the summarized something I had felt for a while, so I said so.
::::::::: Fourth, and most importantly you seem to feel I am following you about and specifically oppose you without thought or reason. This is most certainly not the case. I have an interest in this book, and I expressed my opinion. Yes, I added myself to a the co-author list of C++ Programming because I worked hard to think of a good pedagogical example about enumerated types for that book. I feel most books here shouldn't bother with an author page, but if the other book contributors feel there should be one, then I am going to add my name to it. Yes, we disagreed about what the best strategy for History Merges. In general I think they are misleading at best and harmful at worst and should only be preformed with the greatest of care. Because trying to undo them is a pain! On this point I speak from personal experience. I recently decided not to undo one that was done inappropriately (IMO) because of the work. So if a acceptable alternative exists that avoids a History Merge, you'll probably see me advocate for it.
::::::::: The real issue seems to be you cannot fathom anyone holding such points of view so the only alternative is they are being difficult. But my edits really have nothing to do with you. And for what it is worth I will probably give you as of a berth as possible going forward from here.
::::::::: But your posts make it sound as if Dan, Darklama, myself, and perhaps others, have it out for you in one way or another. I can not speak for anyone else, but that really is not the case here. Dan, reading his page, seems frustrated with how you collaborate. Darklama is enacting what he feels are best practices, but I really don't think it is personal in his case either. My silence was simply because if I came across two editors behaving as you and I were, I might have protected the page as well.
::::::::: For your sake I will leave a comment about the title which was previously an issues I was done with. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 06:55, 18 April 2012 (UTC)
:::::::::: The issue with C++ Programming has been running longer than the time you have on the project. The degree of my contributions, especially to that work have indeed decreases. No one better than I can state that fact and it is merely logical...
:::::::::: I was giving Darklama too little credit, now I'm giving him all the credit what I stated regarding his intervention has not changed, and the way your where silent and now justify his action speaks volumes. But to you I still attribute it to inexperience, while Darklama is clearly directed and to a point badly intentioned, I was freaking speaking to him regarding another issue when he took the action. So don't give me crap Thenub314 lets call a spade a spade.
:::::::::: It was abusive, unreasonable therefore with bad intention (and a repetition of something he has done several times in the past, I'm hoping he will email Dan's into the broil so things get even more "productive").
:::::::::: You action in itself (or any divergence in the past we may had) have been resolved by dialog, I do not particularly mind and we both have been able to compromise, even on this last issue but what I've noted and stated above continues valid (it may probably be that we have similar tastes regarding the arguments or the projects we tackle ). In regards to history merging we are in full accord regarding the problem, just not on methodology of approach (as seen).
:::::::::: Thanks for comment you left. Sadly it continues not to be exact to the fact that we were not in dispute when Darklama acted (but that is reflected on the thread, the issue is that people tend not to read all the posts). That is what I wished you had made clear. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 07:47, 18 April 2012 (UTC)
I agree with Thenub314, you seem to allow your imagination to run wild when you have difficulty fathoming or accepting explanations and points of views expressed. I'm no actor, and there are no directors or script writers telling me how to perform or what my motivations are.
Comments such as "we were not in dispute" suggest you [[Wikibooks:No personal attacks|focus on the who and not on the what]]. There is a content dispute present at C++ Programming, even if the dispute is about aesthetics as you believe it to be. I have no idea whether you consider aesthetic disputes important, or of little or no value. About 5 people seem to consider the issue important enough to have boldly made a change to address it. Of the 5 people who boldly made a change to address it, 3 seem to care enough to comment on it when you reverted them. Of the 3 who commented, 1 seems to be frustrated enough with how you collaborate to have left a post on their user discussion page. You seem to be frustrated by people's concerns over aesthetics. I think the edit war is also a source of frustration for both you because you see the edits as aesthetic in nature, and for the other parties because of how you address their concerns. I can admit even my edit protection is a source of frustration, but I think it is a necessary one, unless people are prepared to accept edits they don't like while discussion is going on to keep the peace and collaboration going. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 15:14, 18 April 2012 (UTC)
:Darklama. Go read all the previous persons talk pages. Note that all issues have been addressed and that any dispute I had with Thenub314 had ended. More you perfectly know that simply by talking to me any reversion would be immediately stopped, in fact your protection of the page did not address any conflict past, none was occurring and the only pending change request was of Dan's. More, the fact that the page still remains protected and is not restores to a) Previous to Dan's alteration (objected by my, and if you wish under dialog even if after 7 days to me the issue is closed) b) to the consensual balance found by myself and Thenub314.
:It is still unclear after the last 2 reversion have been proven as non-conflictual, the page still remains protected on non-agreed version. A version that was imposed by Dan's by reversals (a rerun of long past events).
:This in any case should be addressed on the books page so not to split the conversation. I and Thenub314 are not discussing here the esthetics of the page title, that we already had come to an understanding nor even you locking of the page.
:What you fail to understand and always did. Is that civility obliges an order to changes (any order, not specifically this). That even administrators fall to the obligation to fallow common practice and not inventing new solutions without reaching a consensus. That is, on any dispute to be impartial and fair the status quo is protected, this does not prevent in any way that a discussion be conduced but in a discussion as irrelevant as is it green or red that two parties can't agree and there is not external benefit (no argument supplants the other) the color that should be kept is what existed before the change. There is no turn around this simple logic.
:If anyone, it would be Dan's place to revert me not you (or call attention that he continued to not like my compromise). The fact that you acted is also clearly implicative, beyond the methodology. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 16:36, 18 April 2012 (UTC)
:: Whose discussion page are you suggesting I read? Thenub314's? Thenub314's comments here and there seem somewhat inconsistent. I was never certain whether Thenub314 had any issues with the title to begin with or not. The only thing that is certain is Thenub314 did in fact edit the book's main page to restore Dan's change to the title. Dan's? No signs you commented there. Dan mentioned Ruakh's opposition. Ruakh's? Ruakh seemed to have explained the problem to your satisfaction, and you wrote, "I will try to find out if something can be done". I had in fact read around before taking any action, and of course I might have still missed something, but go read stuff remarks aren't helpful when what should be read isn't specified.
:: We've have many discussions already about what you or I fail to understand and I think we haven't achieved anything from it. You reverted Dan twice, and Dan reverted you once. You told Dan previously that it wasn't his place to force his views on others. Suggesting now that it would be Dan's place to revert you or to call attention that he continued to not like the compromise isn't logical. I don't understand what you are trying to implicate. Shaming and gult trips don't work on me, if that is where you are attempting to go with that. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 18:22, 18 April 2012 (UTC)
::: Where did I shame you ? I call the facts as I see them. When I say you action was uncalled and abusive I'm not shaming I'm pointing my view on events, and explain my reasons. I do not need to shame you because I fully understand that you have none and continue to see this type of issues productive and in the best interests of that book and of Wikibooks, something that to me they clearly aren't.
::: In any case this is not the proper forum to address the situation of the page or others than Thenub314. And I do not have any issue with Thenub314 besides his incurious actions that seem to be convergent. That is what I called his attention to. To me the issue is closed in the hope that next time he considers not only the context but the results as relevant, not only with me but especially if it in any way involves me. But that is between him and me.
::: I will reply to the rest on the page's talk since it is to it that it concerns... --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 19:52, 18 April 2012 (UTC)
== Fermat's last theorem ==
Recently, an IP [http://en.wikibooks.org/w/index.php?title=Famous_Theorems_of_Mathematics/Fermat%27s_last_theorem&diff=prev&oldid=2477472 added] a proof of the theorem, which I [http://en.wikibooks.org/w/index.php?title=Famous_Theorems_of_Mathematics/Fermat%27s_last_theorem&diff=next&oldid=2477472 formatted]. Just now, another IP has [[User_talk:Kayau#FLT|notified]] me that it is in fact nonsense. The organisation hosting the proof looks like a reliable source, though. Is it real? Thanks [[User:Kayau|Kayau]] <small>([[User talk:Kayau|talk]] · [[Special:Contributions/Kayau|contribs]]) </small> 22:26, 16 January 2013 (UTC)
: Sorry to reply 3 weeks later. Yes this article is very fishy, I started to read it to see if I could point to obvious flaws in the proof and was stopped immediately by the grammar and lack of complete sentences. If this is indeed a peer reviewed journal as it claims to be, its editorial staff is not up to snuff. In addition it is a bit odd to publish a result in mathematics in an engineering journal where the standards of rigor are fairly different. Overall, I suggest we take it out. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 21:03, 7 February 2013 (UTC)
:: Thanks. Let's keep the status quo, then. [[User:Kayau|Kayau]] <small>([[User talk:Kayau|talk]] · [[Special:Contributions/Kayau|contribs]]) </small> 15:04, 8 February 2013 (UTC)
== [[m:Special:MyLanguage/Single User Login finalisation announcement|Forced user renames coming soon for SUL]] ==
<div class="mw-content-ltr">
Hi, sorry for writing in English. I'm writing to ask you, as a bureaucrat of this wiki, to [//meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-Single+User+Login+finalisation+announcement%2FPersonal+announcement&filter=&action=page translate and review the notification] that will be sent to all users, also on this wiki, who will be forced to change their user name on May 27 and will probably need your help with renames.
You may also want to help with the pages [[m:Rename practices]] and [[m:Global rename policy]].
Thank you, [[m:User:Nemo_bis|Nemo]] 13:03, 3 May 2013 (UTC)
</div>
<!-- EdwardsBot 0441 -->
: Sorry Nemo, I was on an extended wikibreak I am just returning from now. Hopefully QU or someone else was on top of this in a timely mannar. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 13:01, 16 August 2013 (UTC)
::Hasn't happened yet for various reasons but it will soon. When it does, local bureaucrats won't be able to do renames anymore. [[User:QuiteUnusual|QuiteUnusual]] ([[User talk:QuiteUnusual|discuss]] • [[Special:Contributions/QuiteUnusual|contribs]]) 15:43, 16 August 2013 (UTC)
::: That is good to know, not sure how I feel about it yet. Was there some problem with local 'crats doing renames? [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 21:30, 30 August 2013 (UTC)
::::Not at all, it is related to a different issue. The WMF wants a single unified account across all projects. Shortly they will be forcibly renaming accounts where there is a conflict (i.e., a name is used by different real people on different projects) using a series of rules to see who "wins" each name. Once that is done, renames can only occur for the whole global account so they will be performed by Stewards centrally. Stewards will still be able to access the local rename interface in case they need to sort out problems with the initial forced rename process. [[User:QuiteUnusual|QuiteUnusual]] ([[User talk:QuiteUnusual|discuss]] • [[Special:Contributions/QuiteUnusual|contribs]]) 18:44, 1 September 2013 (UTC)
== Interview for our Master Thesis? ==
Hi Thenub314,
We are two students doing our M.Sc. thesis about motivational factors to contribute with Open Educational Content and we need people to interview. We were wondering if you would like to help us? The interview won't take long and we can do it over Skype. Interested? Please send me an e-mail me at ottve507@student.liu.se or leave us a reply here.
We would be really happy if you choose help us!
Regards
Otto
: Dear Otto
: I certainly don't mind being interviewed. Who is the second student? I only see one email address/name?
:[[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 17:38, 17 April 2014 (UTC)
:: Thank you [[User:Thenub314|Thenub]]
:: The second student's name is Fredrik Skagerwall. Would you mind sending us an email? Either to his email fresk661@student.liu.se or to mine ottve507@student.liu.se
:: Regards
:: Otto Velander [[User:OXp1845|OXp1845]] ([[User talk:OXp1845|discuss]] • [[Special:Contributions/OXp1845|contribs]]) 09:17, 28 April 2014 (UTC)
::: Emailed. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 14:42, 28 April 2014 (UTC)
:::: Perfect! [[User:OXp1845|OXp1845]] ([[User talk:OXp1845|discuss]] • [[Special:Contributions/OXp1845|contribs]]) 15:42, 28 April 2014 (UTC)
== An important message about renaming users ==
<div class="mw-content-ltr">
Dear Thenub314,
I am cross-posting this message to many places to make sure everyone who is a Wikimedia Foundation project bureaucrat receives a copy. If you are a bureaucrat on more than one wiki, you will receive this message on each wiki where you are a bureaucrat.
As you may have seen, work to perform the Wikimedia cluster-wide [[mw:SUL finalisation|single-user login finalisation]] (SUL finalisation) is taking place. This may potentially effect your work as a local bureaucrat, so please read this message carefully.
Why is this happening? As currently stated at [[m:Global rename policy|the global rename policy]], a global account is a name linked to a single user across all Wikimedia wikis, with local accounts unified into a global collection. Previously, the only way to rename a unified user was to individually rename every local account. This was an extremely difficult and time-consuming task, both for stewards and for the users who had to initiate discussions with local bureaucrats (who perform local renames to date) on every wiki with available bureaucrats. The process took a very long time, since it's difficult to coordinate crosswiki renames among the projects and bureaucrats involved in individual projects.
The SUL finalisation will be taking place in stages, and one of the first stages will be to turn off Special:RenameUser locally. This needs to be done as soon as possible, on advice and input from Stewards and engineers for the project, so that no more accounts that are unified globally are broken by a local rename to usurp the global account name. Once this is done, the process of global name unification can begin. The date that has been chosen to turn off local renaming and shift over to entirely global renaming is 15 September 2014, or three weeks time from now. In place of local renames is a new tool, hosted on Meta, that allows for global renames on all wikis where the name is not registered will be deployed.
Your help is greatly needed during this process and going forward in the future if, as a bureaucrat, renaming users is something that you do or have an interest in participating in. The Wikimedia Stewards have set up, and are in charge of, a new community usergroup on Meta in order to share knowledge and work together on renaming accounts globally, called [[m:Global renamers|Global renamers]]. Stewards are in the process of creating documentation to help global renamers to get used to and learn more about global accounts and tools and Meta in general as well as the application format. As transparency is a valuable thing in our movement, the Stewards would like to have at least a brief public application period. If you are an experienced renamer as a local bureaucrat, the process of becoming a part of this group could take as little as 24 hours to complete. You, as a bureaucrat, should be able to apply for the global renamer right on Meta by the [[m:SRGP|requests for global permissions]] page on 1 September, a week from now.
In the meantime please update your local page where users request renames to reflect this move to global renaming, and if there is a rename request and the user has edited more than one wiki with the name, please send them to [[:m:SRUC|the request page for a global rename]].
Stewards greatly appreciate the trust local communities have in you and want to make this transition as easy as possible so that the two groups can start working together to ensure everyone has a unique login identity across Wikimedia projects. Completing this project will allow for long-desired universal tools like a global watchlist, global notifications and many, many more features to make work easier.
If you have any questions, comments or concerns about the SUL finalisation, read over the [[m:SUL|Help:Unified login]] page on Meta and leave a note on the talk page there, or on the talk page for [[m:Talk:Global renamers|global renamers]]. You can also contact me on [[m:User talk:Keegan (WMF)|my talk page on meta]] if you would like. I'm working as a bridge between Wikimedia Foundation Engineering and Product Development, Wikimedia Stewards, and you to assure that SUL finalisation goes as smoothly as possible; this is a community-driven process and I encourage you to work with the Stewards for our communities.
Thank you for your time.
-- [[m:User:Keegan (WMF)|Keegan (WMF)]] [[m:User talk:Keegan (WMF)|talk]] 18:24, 25 August 2014 (UTC)
<small>--This message was sent using [[m:MassMessage|MassMessage]]. Was there an error? [[m:Talk:MassMessage|Report it!]]</small>
</div>
<!-- Message sent by User:Keegan (WMF)@metawiki using the list at http://meta.wikimedia.org/w/index.php?title=User:Keegan_(WMF)/MassMessage/Crats&oldid=9637985 -->
== [[m:Special:MyLanguage/Access to nonpublic information policy/MassMessages/Initial notice to volunteers|Please sign new Wikimedia confidentiality agreement for nonpublic information by 15 December]] ==
''This is a message from the [[m:Special:MyLanguage/Wikimedia Foundation|Wikimedia Foundation]]. [[m:Special:MyLanguage/Access to nonpublic information policy/MassMessages/Initial notice to volunteers|Translations]] are available.''
[[File:Wikimedia Foundation logo - vertical (2012-2016).svg|right|150px]]
As you may know, the Wikimedia Foundation Board of Trustees approved a new [[m:Special:MyLanguage/Access to nonpublic information policy|"Access to nonpublic information policy"]] on 25 April 2014 after a community consultation. The former policy has remained in place until the new policy could be implemented. That implementation work is now being done, and we are beginning the transition to the new policy.
An important part of that transition is helping volunteers like you sign the [[m:Special:MyLanguage/Confidentiality agreement for nonpublic information|required confidentiality agreement]]. All Wikimedia volunteers with access to nonpublic information are required to sign this new agreement, and we have prepared some documentation to help you do so.
The Wikimedia Foundation is requiring that anyone with access to nonpublic information sign the new confidentiality agreement by 15 December 2015 (OTRS users have until 22 December 2015) to retain their access. You are receiving this email because you have access to nonpublic information and are required to sign the confidentiality agreement under the new policy.
Signing the confidentiality agreement for nonpublic information is conducted and tracked using Legalpad on Phabricator. The general confidentiality agreement is now ready, and the OTRS agreement will be ready after 22 September 2015. We have prepared a guide on Meta-Wiki to help you create your Phabricator account and sign the new agreement: [[m:Special:MyLanguage/Confidentiality agreement for nonpublic information/How to sign|Confidentiality agreement for nonpublic information/How to sign]]
If you have any questions or experience any problems while signing the new agreement, please [[m:Talk:Confidentiality agreement for nonpublic information/How to sign|visit this talk page]] or email me (gvarnum{{@}}wikimedia.org). Again, please sign this confidentiality agreement by 15 December 2015 (OTRS users have until 22 December 2015) to retain your access to nonpublic information. If you do not wish to retain this access, please let me know and we will forward your request to the appropriate individuals.
Thank you,<br />
Gregory Varnum ([[m:User:GVarnum-WMF|User:GVarnum-WMF]]), Wikimedia Foundation
''Posted by the [[m:Special:MyLanguage/User:MediaWiki message delivery|MediaWiki message delivery]] 23:33, 15 September 2015 (UTC) • [[m:Special:MyLanguage/Access to nonpublic information policy/MassMessages/Initial notice to volunteers|Translate]] • [[m:Talk:Confidentiality agreement for nonpublic information/How to sign|Get help]]''
<!-- Message sent by User:GVarnum-WMF@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Access_to_nonpublic_information_policy/Functionaries&oldid=13643599 -->
== [[m:Access to nonpublic information policy/MassMessages/Follow-up notice to volunteers|Reminder: Please sign new Wikimedia confidentiality agreement for nonpublic information by 15 December]] ==
''This is a message from the [[m:Wikimedia Foundation|Wikimedia Foundation]]. [[m:Access to nonpublic information policy/MassMessages/Follow-up notice to volunteers|Translations]] are available.''
[[File:Wikimedia Foundation logo - vertical (2012-2016).svg|right|150px]]
I wanted to follow-up on an message I sent you in September regarding the need for you to sign a [[m:Confidentiality agreement for nonpublic information|confidentiality agreement]] by 15 December 2015 (OTRS users have until 31 December 2015) in order to maintain your access from Wikimedia to nonpublic information.
As you may know, the Wikimedia Foundation Board of Trustees approved a new [[m:Access to nonpublic information policy|"Access to nonpublic information policy"]] on 25 April 2014 after a community consultation. The former policy has remained in place until the new policy could be implemented. That implementation work is now being done, and we are transitioning to the new policy.
An important part of that transition is helping volunteers like you sign the [[m:Confidentiality agreement for nonpublic information|required confidentiality agreement]]. All Wikimedia volunteers with access to nonpublic information are required to sign this new agreement, and we have prepared some documentation to help you do so.
The Wikimedia Foundation is requiring that anyone with access to nonpublic information sign the new confidentiality agreement by 15 December 2015 (OTRS users have until 31 December 2015) to retain their access. You are receiving this message because you have access to nonpublic information and are required to sign the confidentiality agreement under the new policy. If you do not sign the new confidentiality agreement by 15 December 2015, you will lose your access to nonpublic information.
Signing the confidentiality agreement for nonpublic information is conducted and tracked using Legalpad on Phabricator. We have prepared a guide on Meta-Wiki to help you create your Phabricator account and sign the new agreement: [[m:Confidentiality agreement for nonpublic information/How to sign|Confidentiality agreement for nonpublic information/How to sign]]
If you have any questions or experience any problems while signing the new agreement, please [[m:Talk:Confidentiality agreement for nonpublic information/How to sign|visit this talk page]] or email me (gvarnum{{@}}wikimedia.org). Again, please sign this confidentiality agreement by 15 December 2015 (OTRS users have until 31 December 2015) to retain your access to nonpublic information. If you do not wish to retain this access, please let me know and we will forward your request to the appropriate individuals.
Thank you,<br />
Gregory Varnum ([[m:User:GVarnum-WMF|User:GVarnum-WMF]]), Wikimedia Foundation
''Posted by the [[m:User:MediaWiki message delivery|MediaWiki message delivery]] 08:11, 16 October 2015 (UTC) • [[m:Access to nonpublic information policy/MassMessages/Follow-up notice to volunteers|Translate]] • [[m:Talk:Confidentiality agreement for nonpublic information/How to sign|Get help]]''
<!-- Message sent by User:GVarnum-WMF@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Access_to_nonpublic_information_policy/Functionaries&oldid=14140563 -->
== [[m:Access to nonpublic information policy/MassMessages/Follow-up notice to volunteers|Reminder: Please sign new Wikimedia confidentiality agreement for nonpublic information by 15 December]] ==
''This is a message from the [[m:Wikimedia Foundation|Wikimedia Foundation]]. [[m:Access to nonpublic information policy/MassMessages/Follow-up notice to volunteers|Translations]] are available.''
[[File:Wikimedia Foundation logo - vertical (2012-2016).svg|right|150px]]
I wanted to follow-up on an message I sent you in September regarding the need for you to sign a [[m:Confidentiality agreement for nonpublic information|confidentiality agreement]] by 15 December 2015 (OTRS users have until 31 December 2015) in order to maintain your access from Wikimedia to nonpublic information.
As you may know, the Wikimedia Foundation Board of Trustees approved a new [[m:Access to nonpublic information policy|"Access to nonpublic information policy"]] on 25 April 2014 after a community consultation. The former policy has remained in place until the new policy could be implemented. That implementation work is now being done, and we are transitioning to the new policy.
An important part of that transition is helping volunteers like you sign the [[m:Confidentiality agreement for nonpublic information|required confidentiality agreement]]. All Wikimedia volunteers with access to nonpublic information are required to sign this new agreement, and we have prepared some documentation to help you do so.
The Wikimedia Foundation is requiring that anyone with access to nonpublic information sign the new confidentiality agreement by 15 December 2015 (OTRS users have until 31 December 2015) to retain their access. You are receiving this message because you have access to nonpublic information and are required to sign the confidentiality agreement under the new policy. If you do not sign the new confidentiality agreement by 15 December 2015, you will lose your access to nonpublic information.
Signing the confidentiality agreement for nonpublic information is conducted and tracked using Legalpad on Phabricator. We have prepared a guide on Meta-Wiki to help you create your Phabricator account and sign the new agreement: [[m:Confidentiality agreement for nonpublic information/How to sign|Confidentiality agreement for nonpublic information/How to sign]]
If you have any questions or experience any problems while signing the new agreement, please [[m:Talk:Confidentiality agreement for nonpublic information/How to sign|visit this talk page]] or email me (gvarnum{{@}}wikimedia.org). Again, please sign this confidentiality agreement by 15 December 2015 (OTRS users have until 31 December 2015) to retain your access to nonpublic information. If you do not wish to retain this access, please let me know and we will forward your request to the appropriate individuals.
Thank you,<br />
Gregory Varnum ([[m:User:GVarnum-WMF|User:GVarnum-WMF]]), Wikimedia Foundation
''Posted by the [[m:User:MediaWiki message delivery|MediaWiki message delivery]] 20:17, 16 November 2015 (UTC) • [[m:Access to nonpublic information policy/MassMessages/Follow-up notice to volunteers|Translate]] • [[m:Talk:Confidentiality agreement for nonpublic information/How to sign|Get help]]''
<!-- Message sent by User:GVarnum-WMF@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Access_to_nonpublic_information_policy/Functionaries&oldid=14654579 -->
== [[m:Access to nonpublic information policy/MassMessages/Follow-up notice to volunteers|URGENT: Please sign new Wikimedia confidentiality agreement for nonpublic information by 15 December]] ==
''This is a message from the [[m:Wikimedia Foundation|Wikimedia Foundation]]. [[m:Access to nonpublic information policy/MassMessages/Follow-up notice to volunteers|Translations]] are available.''
[[File:Wikimedia Foundation logo - vertical (2012-2016).svg|right|150px]]
I wanted to follow-up on an message I sent you in September regarding the need for you to sign a [[m:Confidentiality agreement for nonpublic information|confidentiality agreement]] by 15 December 2015 (OTRS users have until 31 December 2015) in order to maintain your access from Wikimedia to nonpublic information.
As you may know, the Wikimedia Foundation Board of Trustees approved a new [[m:Access to nonpublic information policy|"Access to nonpublic information policy"]] on 25 April 2014 after a community consultation. The former policy has remained in place until the new policy could be implemented. That implementation work is now being done, and we are transitioning to the new policy.
An important part of that transition is helping volunteers like you sign the [[m:Confidentiality agreement for nonpublic information|required confidentiality agreement]]. All Wikimedia volunteers with access to nonpublic information are required to sign this new agreement, and we have prepared some documentation to help you do so.
The Wikimedia Foundation is requiring that anyone with access to nonpublic information sign the new confidentiality agreement by 15 December 2015 (OTRS users have until 31 December 2015) to retain their access. You are receiving this message because you have access to nonpublic information and are required to sign the confidentiality agreement under the new policy. If you do not sign the new confidentiality agreement by 15 December 2015, you will lose your access to nonpublic information.
Signing the confidentiality agreement for nonpublic information is conducted and tracked using Legalpad on Phabricator. We have prepared a guide on Meta-Wiki to help you create your Phabricator account and sign the new agreement: [[m:Confidentiality agreement for nonpublic information/How to sign|Confidentiality agreement for nonpublic information/How to sign]]
If you have any questions or experience any problems while signing the new agreement, please [[m:Talk:Confidentiality agreement for nonpublic information/How to sign|visit this talk page]] or email me (gvarnum{{@}}wikimedia.org). Again, please sign this confidentiality agreement by 15 December 2015 (OTRS users have until 31 December 2015) to retain your access to nonpublic information. If you do not wish to retain this access, please let me know and we will forward your request to the appropriate individuals.
Thank you,<br />
Gregory Varnum ([[m:User:GVarnum-WMF|User:GVarnum-WMF]]), Wikimedia Foundation
''Posted by the [[m:User:MediaWiki message delivery|MediaWiki message delivery]] 22:12, 1 December 2015 (UTC) • [[m:Access to nonpublic information policy/MassMessages/Follow-up notice to volunteers|Translate]] • [[m:Talk:Confidentiality agreement for nonpublic information/How to sign|Get help]]''
<!-- Message sent by User:GVarnum-WMF@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Access_to_nonpublic_information_policy/Functionaries&oldid=14887430 -->
== [[m:Access to nonpublic information policy/MassMessages/Follow-up notice to volunteers|URGENT: Please sign new Wikimedia confidentiality agreement for nonpublic information by 15 December]] ==
<div lang="en" dir="ltr" class="mw-content-ltr">
''This is a message from the [[m:Wikimedia Foundation|Wikimedia Foundation]]. [[m:Access to nonpublic information policy/MassMessages/Follow-up notice to volunteers|Translations]] are available.''
[[File:Wikimedia Foundation logo - vertical (2012-2016).svg|right|150px]]
I wanted to follow-up on an message I sent you in September regarding the need for you to sign a [[m:Confidentiality agreement for nonpublic information|confidentiality agreement]] by 15 December 2015 (OTRS users have until 31 December 2015) in order to maintain your access from Wikimedia to nonpublic information.
As you may know, the Wikimedia Foundation Board of Trustees approved a new [[m:Access to nonpublic information policy|"Access to nonpublic information policy"]] on 25 April 2014 after a community consultation. The former policy has remained in place until the new policy could be implemented. That implementation work is now being done, and we are transitioning to the new policy.
An important part of that transition is helping volunteers like you sign the [[m:Confidentiality agreement for nonpublic information|required confidentiality agreement]]. All Wikimedia volunteers with access to nonpublic information are required to sign this new agreement, and we have prepared some documentation to help you do so.
The Wikimedia Foundation is requiring that anyone with access to nonpublic information sign the new confidentiality agreement by 15 December 2015 (OTRS users have until 31 December 2015) to retain their access. You are receiving this message because you have access to nonpublic information and are required to sign the confidentiality agreement under the new policy. If you do not sign the new confidentiality agreement by 15 December 2015, you will lose your access to nonpublic information.
Signing the confidentiality agreement for nonpublic information is conducted and tracked using Legalpad on Phabricator. We have prepared a guide on Meta-Wiki to help you create your Phabricator account and sign the new agreement: [[m:Confidentiality agreement for nonpublic information/How to sign|Confidentiality agreement for nonpublic information/How to sign]]
If you have any questions or experience any problems while signing the new agreement, please [[m:Talk:Confidentiality agreement for nonpublic information/How to sign|visit this talk page]] or email me (gvarnum{{@}}wikimedia.org). Again, please sign this confidentiality agreement by 15 December 2015 (OTRS users have until 31 December 2015) to retain your access to nonpublic information. If you do not wish to retain this access, please let me know and we will forward your request to the appropriate individuals.
Thank you,<br />
Gregory Varnum ([[m:User:GVarnum-WMF|User:GVarnum-WMF]]), Wikimedia Foundation
''Posted by the [[m:User:MediaWiki message delivery|MediaWiki message delivery]], 17:28, 9 December 2015 (UTC) • [[m:Access to nonpublic information policy/MassMessages/Follow-up notice to volunteers|{{int:please-translate}}]] • [[m:Talk:Confidentiality agreement for nonpublic information/How to sign|Get help]]''
</div>
<!-- Message sent by User:GVarnum-WMF@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Access_to_nonpublic_information_policy/Functionaries&oldid=15038626 -->
== [[m:Access to nonpublic information policy/MassMessages/Follow-up notice to volunteers|URGENT: Please sign new Wikimedia confidentiality agreement for nonpublic information by {{formatnum:15}} {{int:December}}]] ==
<div lang="en" dir="ltr" class="mw-content-ltr">
''This is a message from the [[m:Wikimedia Foundation|Wikimedia Foundation]]. [[m:Access to nonpublic information policy/MassMessages/Follow-up notice to volunteers|Translations]] are available.''
[[File:Wikimedia Foundation logo - vertical (2012-2016).svg|right|150px]]
I wanted to follow-up on an message I sent you in September regarding the need for you to sign a [[m:Confidentiality agreement for nonpublic information|confidentiality agreement]] by {{formatnum:15}} {{int:December}} 2015 (OTRS users have until {{formatnum:31}} {{int:December}} 2015) in order to maintain your access from Wikimedia to nonpublic information.
As you may know, the Wikimedia Foundation Board of Trustees approved a new [[m:Access to nonpublic information policy|"Access to nonpublic information policy"]] on 25 April 2014 after a community consultation. The former policy has remained in place until the new policy could be implemented. That implementation work is now being done, and we are transitioning to the new policy.
An important part of that transition is helping volunteers like you sign the [[m:Confidentiality agreement for nonpublic information|required confidentiality agreement]]. All Wikimedia volunteers with access to nonpublic information are required to sign this new agreement, and we have prepared some documentation to help you do so.
The Wikimedia Foundation is requiring that anyone with access to nonpublic information sign the new confidentiality agreement by {{formatnum:15}} {{int:December}} 2015 (OTRS users have until {{formatnum:31}} {{int:December}} 2015) to retain their access. You are receiving this message because you have access to nonpublic information and are required to sign the confidentiality agreement under the new policy. If you do not sign the new confidentiality agreement by {{formatnum:15}} {{int:December}} 2015, you will lose your access to nonpublic information.
Signing the confidentiality agreement for nonpublic information is conducted and tracked using Legalpad on Phabricator. We have prepared a guide on Meta-Wiki to help you create your Phabricator account and sign the new agreement: [[m:Confidentiality agreement for nonpublic information/How to sign|Confidentiality agreement for nonpublic information/How to sign]]
If you have any questions or experience any problems while signing the new agreement, please [[m:Talk:Confidentiality agreement for nonpublic information/How to sign|visit this talk page]] or email me (gvarnum[[File:At_sign.svg|17px|@|link=]]wikimedia.org). Again, please sign this confidentiality agreement by {{formatnum:15}} {{int:December}} 2015 (OTRS users have until {{formatnum:31}} {{int:December}} 2015) to retain your access to nonpublic information. If you do not wish to retain this access, please let me know and we will forward your request to the appropriate individuals.
''If you wish to stop receiving these notices, you may remove yourself from [[m:Global message delivery/Access to nonpublic information policy/Functionaries|this list]]. '''Please note''' that doing so will '''not''' prevent you from losing related user rights after the {{formatnum:15}} {{int:December}} 2015 deadline.''
Thank you,<br />
Gregory Varnum ([[m:User:GVarnum-WMF|User:GVarnum-WMF]]), Wikimedia Foundation
''Posted by the [[m:User:MediaWiki message delivery|MediaWiki message delivery]], 18:34, 10 December 2015 (UTC) • [[m:Access to nonpublic information policy/MassMessages/Follow-up notice to volunteers|{{int:please-translate}}]] • [[m:Talk:Confidentiality agreement for nonpublic information/How to sign|{{int:help}}]]''
</div>
<!-- Message sent by User:GVarnum-WMF@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Access_to_nonpublic_information_policy/Functionaries&oldid=15065572 -->
== [[m:Access to nonpublic information policy/MassMessages/Follow-up notice to volunteers|URGENT: Please sign new Wikimedia confidentiality agreement for nonpublic information by {{formatnum:15}} December]] ==
<div lang="en" dir="ltr" class="mw-content-ltr">
''This is a message from the [[m:Wikimedia Foundation|Wikimedia Foundation]]. [[m:Access to nonpublic information policy/MassMessages/Follow-up notice to volunteers|Translations]] are available.''
[[File:Wikimedia Foundation logo - vertical (2012-2016).svg|right|150px]]
I wanted to follow-up on an message I sent you in September regarding the need for you to sign a [[m:Confidentiality agreement for nonpublic information|confidentiality agreement]] by {{formatnum:15}} {{int:December}} {{formatnum:2015|NOSEP}} (OTRS users have until {{formatnum:31}} {{int:December}} {{formatnum:2015|NOSEP}}) in order to maintain your access from Wikimedia to nonpublic information.
As you may know, the Wikimedia Foundation Board of Trustees approved a new [[m:Access to nonpublic information policy|"Access to nonpublic information policy"]] on {{formatnum:25}} {{int:April}} {{formatnum:2014|NOSEP}} after a community consultation. The former policy has remained in place until the new policy could be implemented. That implementation work is now being done, and we are transitioning to the new policy.
An important part of that transition is helping volunteers like you sign the [[m:Confidentiality agreement for nonpublic information|required confidentiality agreement]]. All Wikimedia volunteers with access to nonpublic information are required to sign this new agreement, and we have prepared some documentation to help you do so.
The Wikimedia Foundation is requiring that anyone with access to nonpublic information sign the new confidentiality agreement by {{formatnum:15}} {{int:December}} {{formatnum:2015|NOSEP}} (OTRS users have until {{formatnum:31}} {{int:December}} {{formatnum:2015|NOSEP}}) to retain their access. You are receiving this message because you have access to nonpublic information and are required to sign the confidentiality agreement under the new policy. If you do not sign the new confidentiality agreement by {{formatnum:15}} {{int:December}} {{formatnum:2015|NOSEP}}, you will lose your access to nonpublic information.
Signing the confidentiality agreement for nonpublic information is conducted and tracked using Legalpad on Phabricator. We have prepared a guide on Meta-Wiki to help you create your Phabricator account and sign the new agreement: [[m:Confidentiality agreement for nonpublic information/How to sign|Confidentiality agreement for nonpublic information/How to sign]]
If you have any questions or experience any problems while signing the new agreement, please [[m:Talk:Confidentiality agreement for nonpublic information/How to sign|visit this talk page]] or email me (gvarnum[[File:At_sign.svg|17px|@|link=]]wikimedia.org). Again, please sign this confidentiality agreement by {{formatnum:15}} {{int:December}} {{formatnum:2015|NOSEP}} (OTRS users have until {{formatnum:31}} {{int:December}} {{formatnum:2015|NOSEP}}) to retain your access to nonpublic information. If you do not wish to retain this access, please let me know and we will forward your request to the appropriate individuals.
''If you wish to stop receiving these notices, you may remove yourself from [[m:Global message delivery/Access to nonpublic information policy/Functionaries|this list]]. '''Please note''' that doing so will '''not''' prevent you from losing related user rights after the {{formatnum:15}} {{int:December}} {{formatnum:2015|NOSEP}} deadline.''
Thank you,<br />
Gregory Varnum ([[m:User:GVarnum-WMF|User:GVarnum-WMF]]), Wikimedia Foundation
''Posted by the [[m:User:MediaWiki message delivery|MediaWiki message delivery]], 02:31, 12 December 2015 (UTC) • [[m:Access to nonpublic information policy/MassMessages/Follow-up notice to volunteers|{{int:please-translate}}]] • [[m:Talk:Confidentiality agreement for nonpublic information/How to sign|{{int:help}}]]''
</div>
<!-- Message sent by User:GVarnum-WMF@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Access_to_nonpublic_information_policy/Functionaries&oldid=15086355 -->
== [[m:Access to nonpublic information policy/MassMessages/Follow-up notice to volunteers|URGENT: Please sign new Wikimedia confidentiality agreement for nonpublic information by {{formatnum:15}} December]] ==
<div lang="en" dir="ltr" class="mw-content-ltr">
''This is a message from the [[m:Wikimedia Foundation|Wikimedia Foundation]]. [[m:Access to nonpublic information policy/MassMessages/Follow-up notice to volunteers|Translations]] are available.''
[[File:Wikimedia Foundation logo - vertical (2012-2016).svg|right|150px]]
I wanted to follow-up on an message I sent you in September regarding the need for you to sign a [[m:Confidentiality agreement for nonpublic information|confidentiality agreement]] by {{formatnum:15}} {{int:December}} {{formatnum:2015|NOSEP}} (OTRS users have until {{formatnum:31}} {{int:December}} {{formatnum:2015|NOSEP}}) in order to maintain your access from Wikimedia to nonpublic information.
As you may know, the Wikimedia Foundation Board of Trustees approved a new [[m:Access to nonpublic information policy|"Access to nonpublic information policy"]] on {{formatnum:25}} {{int:April}} {{formatnum:2014|NOSEP}} after a community consultation. The former policy has remained in place until the new policy could be implemented. That implementation work is now being done, and we are transitioning to the new policy.
An important part of that transition is helping volunteers like you sign the [[m:Confidentiality agreement for nonpublic information|required confidentiality agreement]]. All Wikimedia volunteers with access to nonpublic information are required to sign this new agreement, and we have prepared some documentation to help you do so.
The Wikimedia Foundation is requiring that anyone with access to nonpublic information sign the new confidentiality agreement by {{formatnum:15}} {{int:December}} {{formatnum:2015|NOSEP}} (OTRS users have until {{formatnum:31}} {{int:December}} {{formatnum:2015|NOSEP}}) to retain their access. You are receiving this message because you have access to nonpublic information and are required to sign the confidentiality agreement under the new policy. If you do not sign the new confidentiality agreement by {{formatnum:15}} {{int:December}} {{formatnum:2015|NOSEP}}, you will lose your access to nonpublic information.
Signing the confidentiality agreement for nonpublic information is conducted and tracked using Legalpad on Phabricator. We have prepared a guide on Meta-Wiki to help you create your Phabricator account and sign the new agreement: [[m:Confidentiality agreement for nonpublic information/How to sign|Confidentiality agreement for nonpublic information/How to sign]]
If you have any questions or experience any problems while signing the new agreement, please [[m:Talk:Confidentiality agreement for nonpublic information/How to sign|visit this talk page]] or email me (gvarnum[[File:At_sign.svg|17px|@|link=]]wikimedia.org). Again, please sign this confidentiality agreement by {{formatnum:15}} {{int:December}} {{formatnum:2015|NOSEP}} (OTRS users have until {{formatnum:31}} {{int:December}} {{formatnum:2015|NOSEP}}) to retain your access to nonpublic information. If you do not wish to retain this access, please let me know and we will forward your request to the appropriate individuals.
''If you wish to stop receiving these notices, you may remove yourself from [[m:Global message delivery/Access to nonpublic information policy/Functionaries|this list]]. '''Please note''' that doing so will '''not''' prevent you from losing related user rights after the {{formatnum:15}} {{int:December}} {{formatnum:2015|NOSEP}} deadline.''
Thank you,<br />
Gregory Varnum ([[m:User:GVarnum-WMF|User:GVarnum-WMF]]), Wikimedia Foundation
''Posted by the [[m:User:MediaWiki message delivery|MediaWiki message delivery]], 06:43, 13 December 2015 (UTC) • [[m:Access to nonpublic information policy/MassMessages/Follow-up notice to volunteers|{{int:please-translate}}]] • [[m:Talk:Confidentiality agreement for nonpublic information/How to sign|{{int:help}}]]''
</div>
<!-- Message sent by User:GVarnum-WMF@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Access_to_nonpublic_information_policy/Functionaries&oldid=15105890 -->
1ktow9og101s5a9kj5bs64ejd7875ft
User:Kayau
2
203898
4640147
2984825
2026-06-13T15:38:34Z
ShakespeareFan00
46022
4640147
wikitext
text/x-wiki
<center>
[[File:Flag_of_the_People%27s_Republic_of_China.svg|500px]]
[[File:Flag of Hong Kong.svg|350px]]
</center>
{{userboxtop}}
{{user language|yue|N}}
{{user language|zh|N}}
{{user language|en|3}}
{{user language|fr|2}}
{{userboxbreak}}
{{userboxbottom}}
Hi! I'm Kayau. I've been here for some years. I used to be Wikibooks' annoying-12-year-old-in-residence, but I've since become the project's annoying-17-year-old-in-residence.
I used to be active on other projects, most significantly the English Wikipedia and Wikinews, and the Chinese Wikibooks. However, these days, enwb is the project which I call my home.
== Wikibookian ==
* [[Wikijunior:Ancient Civilizations]]
* [[English Grammar Worksheets]]
* [[Geometry for Elementary School]]
In Wikipedia, I'm often at the [[WP:MOTD]], but I obviously do more than motto-writing. :P
Stuff I created:
* Some stuff in [[Geometry for Elementary School]]
* [[Template:Elements]]
* [[Chinese Stories]] (whole book)
* [[WJ:Particles]] (whole book)
* [[WJ:The Book of Estimation]]
* [[History of Hong Kong]]
===current plans===
Honestly, I know I have a habit of starting books and not finishing them. The stuff I've started and not finished will be finished... ''one day''.
Until then, my current plans are [[WJ:Programming for Kids]], [[Linguistics]], [[Government and Binding Theory]] and the not-yet-created [[Phonetics]].
I think I'll revive [[Intro to C++]] too.
===Books I hope I can eventually work on (another way of saying 'courses I intend to take in university') ===
Create:
*[[Grammatical Description]]
*[[Lexical Functional Grammar]]
*[[Minimalist Programme]]
*[[Morphology]]
*[[Phonology]]
*[[Optimality Theory]]
*[[Experimental Phonetics]]
*[[Psycholinguistics]]
*[[Neurolinguistics]]
*[[Language Acquisition]]
*[[Semantics]]
Improve:
*[[Artificial Intelligence]]
*[[Programming Languages]]
*[[Operating Systems]]
*[[Discrete Mathematics]]
*[[Cantonese]] (my native language, so shouldn't be hard)
*[[Classical Chinese]] (there are errors on the main page -_-)
My wish is to contribute to Wikibooks and help myself consolidate what I've learnt simultaneously. Every time I finish a course, I'll have finished a book (although I may start in summer early, as you can see). For example, I'll finish my first linguistics course by the end of the year, so I'll have finished [[Linguistics]] by then. I hope each book I complete will eventually be featured!
=== Books I'm Reading ===
* [[Calculus]]
* [[Formal Logic]]
* [[Linear Algebra]]
* [[LaTeX]]
Books I plan to read:
== Note archives ==
'''Note to everyone''': My signature has been changed to [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 04:19, 2 May 2010 (UTC)<br/>
'''Yet another note to everyone''': I will be a bit more active starting from tomorrow because I have just finished [[w:Manufacturing in Hong Kong]].<br/>
'''Another note to everyone''': if you see an IP that starts with 113 in the RC page, it's probably me forgetting to log in. [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 04:46, 16 May 2010 (UTC)
'''Note''': I will be inactive here for the rest of the year starting from tomorrow, HKT. Please use me zhwb talk page or email if you have to contact me. I will log on to enwn (maybe even zhwn, but there isn't too much to read there) also, so don't be surprised to see me commenting on news. For details please visit my enwp userpage. Thanks.
[[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 06:03, 31 August 2010 (UTC)
'''Note:''' This is impossible. I can't stay away. I'll still contribute though less actively from now on. Until December. To contact me, you can use this page though it's not guaranteed that I'll reply asap. [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 14:32, 16 September 2010 (UTC)
'''Note''': My 'interest' is shifting to studying right now, but I'll still log on at large and irregular intervals.[[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|talk]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 14:10, 12 November 2010 (UTC)
Um, hi. I'm back-ish. I'm not going to participate actively or patrol recent changes any more, and the old books I've half-finished that have been gathering dust, well, those I'll also leave untouched for the moment. I'm currently writing 'books' for HKDSE geography. To be honest, there will be little to distinguish them from personal notes, except for more organisation and exam-oriented features like past paper references. Alright. [[HKDSE Geography]], here I go. [[User:Kayau|Kayau]] <small>([[User talk:Kayau|talk]] · [[Special:Contributions/Kayau|contribs]]) </small> 10:43, 24 May 2014 (UTC)
==Laughter is the best medicine==
More funny stuff at my enwp userpage.
*[http://en.wikibooks.org/w/index.php?title=QEMU/Installing_QEMU&diff=prev&oldid=1903783 nice edit summary.]
*[http://en.wikibooks.org/w/index.php?title=Version_Control&curid=178480&diff=2474741&oldid=2474650 totally love these] [[w:WP:SILLIWILI|sillywilis]]!
*Not really funny but [http://en.wikibooks.org/w/index.php?title=Java_Programming/Event_Handling&curid=227036&diff=2480131&oldid=2464751 this edit] and [http://en.wikibooks.org/w/index.php?title=Introduction_to_ActionScript_2.0/Event_Handling&curid=284546&diff=2480132&oldid=2480125 this edit] were consecutive. It's a small world!
==sandbox==
*Pui to: 健康, 冀洲, 孟津, 長江下游,交廣, ? (在屯門見,?印度(原籍?), 西域-->china, back by sea
http://www.hongkongsunday.com/?p=63 - unreliable source with historical inaccuracies, but has info i might find on other sites
* _alpha is an integer from 0 to 100 that indicates the transparency of the MovieClip. 100 is the most transparent, while 0 is the least transparent.
{{/New main page/Featured template/Template:Picture select L|noborder=yes|width=256px
|1=[[File:Kayau's feet.jpg|300px|center|Example]]
Caption 1
|2=[[File:Kayau's feet.jpg|300px|center|Example]]
Caption 2
}}
e42u8byxvt7injxcpvdrq0u0z3p7cek
User talk:Kayau
3
203906
4640149
4534084
2026-06-13T15:39:10Z
ShakespeareFan00
46022
4640149
wikitext
text/x-wiki
{{archives}}
== Splitting Computer Programming/Hello world ==
I was just wondering why you thought [[Computer Programming/Hello world|Computer Programming/Hello world]] should be split, or how. [[User:Ubigcow|Ubigcow]] ([[User talk:Ubigcow|discuss]] • [[Special:Contributions/Ubigcow|contribs]]) 03:01, 25 December 2011 (UTC)
:Sorry for the late reply. I think it shuld be split alphabetically into [[Computer Programming/Hello world|Computer Programming/Hello world (A-H]], [[Computer Programming/Hello world|Computer Programming/Hello world (I-N)]], and so on. The page is very long and may take a long time to load on slower computers and browsers. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~tparis/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 10:05, 4 January 2013 (UTC)
You know what kayau you are right [[User:Wikivuyo|Wikivuyo]] ([[User talk:Wikivuyo|discuss]] • [[Special:Contributions/Wikivuyo|contribs]]) 19:44, 13 April 2022 (UTC)
== Page Tag ==
Please remember to tag the pages when opening a discussion for deletion (transwiki included). Done that for you now in relation to Living With a Narcissist. I have also informed the most relevant editor to the work. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 03:43, 5 January 2013 (UTC)
:Sorry panic. I haven't been here for a long time so I kind of forgot. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~tparis/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 04:08, 5 January 2013 (UTC)
==FLT==
Please note that [http://www.ijetae.com/files/Volume2Issue12/IJETAE_1212_14.pdf] is a pseudomathematical garbage which is certainly not "a proof" of Fermat's Last Theorem. I would advise you deleting this link. [[Special:Contributions/92.23.202.71|92.23.202.71]] ([[User talk:92.23.202.71|discuss]]) 18:07, 16 January 2013 (UTC)
:Thanks for notifying me. I've reverted the edit for now. Since I'm clueless about this advanced maths stuff, though, I'll ask thenub to make sure. [[User:Kayau|Kayau]] <small>([[User talk:Kayau|talk]] · [[Special:Contributions/Kayau|contribs]]) </small> 22:23, 16 January 2013 (UTC)
== Hi ==
How do what I know each textbook is open content and which one is not?[[User:Trongphu|Trongphu]] ([[User talk:Trongphu|discuss]] • [[Special:Contributions/Trongphu|contribs]]) 17:18, 21 January 2013 (UTC)
:Do you mean textbooks on Wikibooks? All books on WB are licensed under CC-BY-SA, which means they are open content. ;) [[User:Kayau|Kayau]] <small>([[User talk:Kayau|talk]] · [[Special:Contributions/Kayau|contribs]]) </small> 08:40, 22 January 2013 (UTC)
Wow that is great [[User:Wikivuyo|Wikivuyo]] ([[User talk:Wikivuyo|discuss]] • [[Special:Contributions/Wikivuyo|contribs]]) 19:47, 13 April 2022 (UTC)
== Replied. ==
Sorry I have been away for a bit, but I have replied at my talk page. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 21:04, 7 February 2013 (UTC)
Sure [[User:Wikivuyo|Wikivuyo]] ([[User talk:Wikivuyo|discuss]] • [[Special:Contributions/Wikivuyo|contribs]]) 19:46, 13 April 2022 (UTC)
== Nudge, nudge... ==
Just to pass to you the necessity to not refer to book-pages as articles as to clearly differentiate our project from others...<br>
I know it was only a edit comment and has no "real" significance, this is just a reminder that by educating contributors (about the distinction) we can empower Wikibooks. No need to reply. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 09:52, 5 May 2015 (UTC)
:Ah, sorry. I do know the importance of the distinction; it just escaped me at that moment. I'll be more cautious. [[User:Kayau|Kayau]] <small>([[User talk:Kayau|talk]] · [[Special:Contributions/Kayau|contribs]]) </small> 06:54, 6 May 2015 (UTC)
What do you mean by that 🤨🤨🤨🤨???? [[User:Wikivuyo|Wikivuyo]] ([[User talk:Wikivuyo|discuss]] • [[Special:Contributions/Wikivuyo|contribs]]) 19:45, 13 April 2022 (UTC)
== Governent and binding theory? ==
Several years ago, somebody put a big section on government and binding theory into the [[Conlang]] wikibook; it was far too big, and written in a style altogether wrong for a book on conlanging — taking the attitude that this is how language is, whereas conlanging is in no small part about thinking outside the box on what language might be (and having fun in the process). We've been wondering what we could do with that material so it doesn't go to waste. Of interest? --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 20:52, 24 June 2015 (UTC)
: I have actually looked at the section before. I was discouraged from using its contents after I saw the second chapter because there was a major error in it: It mixed phrase structure grammar into GB theory. In GB theory, the last two rewrite rules, the X-bar rules, are the only phrase structure rules needed (see [[Government and Binding_Theory/X-bar Theory#Phrase structure rules get the boot]]). (The reason is that post-standard theory Chomskyian grammar aims to generalise a set of rules for all phrases, rather than having individual phrase-specific rules.) I found it very problematic that they put in rules for AP, CP, TP, etc! This grave error was reflected in later trees, which did not follow X-bar theory at all, and they're JPEGs and not SVGs, so I can't reuse most of the contents, unfortunately. With that said, a lot of the content in [[Conlang/Advanced/Grammar/Government/Structural relationships]] ''can'' be reused, and perhaps [[Conlang/Advanced/Grammar/Government/Binding theory]] as well, though I'll have to redraw all the diagrams. Thanks for the heads up :) [[User:Kayau|Kayau]] <small>([[User talk:Kayau|talk]] · [[Special:Contributions/Kayau|contribs]]) </small> 01:37, 25 June 2015 (UTC)
== Kayau ==
I want to know more about kayau he/she is very interesting. [[User:Wikivuyo|Wikivuyo]] ([[User talk:Wikivuyo|discuss]] • [[Special:Contributions/Wikivuyo|contribs]]) 19:50, 13 April 2022 (UTC)
== 00905538065387 ==
Turkish flag not russian or chine flag
mt2gh6w4mq8uviawtzpq0e98zye7nd9
The Linux Kernel/sb bread
0
213717
4640291
4491875
2026-06-14T09:58:17Z
Conan
3188
sb bread: mark for deletion: obsolete redirect
4640291
wikitext
text/x-wiki
{{delete|obsolete redirect to Storage, function no longer notable}}
a8c4xtmd90dr3b4n0f3f53325rbpao9
The Linux Kernel/bread
0
213718
4640289
4491874
2026-06-14T09:58:15Z
Conan
3188
bread: mark for deletion: obsolete redirect
4640289
wikitext
text/x-wiki
{{delete|obsolete redirect to Storage, function no longer notable}}
a8c4xtmd90dr3b4n0f3f53325rbpao9
The Linux Kernel/get blk
0
214071
4640290
4491435
2026-06-14T09:58:16Z
Conan
3188
get blk: mark for deletion: obsolete redirect
4640290
wikitext
text/x-wiki
{{delete|obsolete redirect to Storage, function no longer notable}}
a8c4xtmd90dr3b4n0f3f53325rbpao9
User talk:JohnMarcelo
3
215145
4640126
4594554
2026-06-13T15:28:58Z
ShakespeareFan00
46022
4640126
wikitext
text/x-wiki
== Welcome! ==
<div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, JohnMarcelo!</div>
<div style="width:55%; float:left; margin: .2em; border:1px solid #15304f; background-color:#f4eed7;">
<div style="border-bottom:1px solid #15304f; background-color:#15304f; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#f4eed7;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div>
<div style="border-bottom:1px solid #15304f; padding:0.4em 1em 0.3em 1em;">
'''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>
You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing and ''[[WB:AGF|assume good faith]]'' about the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[Wikibooks:Reading room/General|introduce yourself]] to everyone, and let us know what [[Wikibooks:Reading room/Projects|interests you]].
If you're coming here from other Wikimedia projects, you should read [[Help:Wikibooks for Wikimedians|our primer for Wikimedians]] to get quickly up-to-speed.
</div>
<div style="border-bottom:1px solid #15304f; background-color:#2a62a1; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#e9deaf;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div>
<div style="padding:0.4em 1em 0.3em 1em;">
* See the '''Wikibooks [[Help:Contents|help pages]]''' for common issues, or read [[Using Wikibooks]] for a more user-friendly introduction to the project.
* Remember, every edit is saved, so if you make mistakes, you can [[Wikibooks:Reverting|revert]] to an earlier version if needed.
* Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]].
* You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]].
</div>
</div>
<div style="width:43%; float:left; margin: .2em; border:1px solid #15304f; background-color:#f4eed7;">
<div style="border-bottom:1px solid #15304f; background-color:#5f96d3; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#15304f;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div>
<div style="border-bottom:1px solid #15304f; padding:0.4em 1em 0.3em 1em;">
* Please fill in [[:w:Help:Edit summary|the edit summary]] and [[Help:Show preview|preview]] your edits before saving.
* Sign your name on [[Help:Talk page|discussion pages]] by typing ~~~~
* User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''!
</div>
<div style="border-bottom:1px solid #15304f; background-color:#5f96d3; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#15304f;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div>
<div style="border-bottom:1px solid #15304f; padding:0.4em 1em 0.3em 1em;">
* '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>.
* Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]).
* To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page.
* If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:RFD|RFD]] archives if applicable. You can request undeletion at [[WB:RFU]], or ask the administrator who deleted the page.
</div>
<div style="background-color:#transparent; padding:0.2em 0.5em 0.2em 0.5em;">Thanks, --[[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 01:35, 20 November 2009 (UTC)</div>
</div>
<div style="clear: both; text-align:right; font-size:smaller">(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</div>
== January 2011 ==
We welcome and appreciate [[Special:Contributions/JohnMarcelo|your contributions]], but some of your recent actions differ from the way things are normally done at Wikibooks. [[Using Wikibooks]] can be helpful in learning more about conventions. One of the core policies of Wikibooks is that books should always be written from a [[Wikibooks:Neutral point of view|neutral point of view]]. Please remember to observe this important core policy. Thank you. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 01:59, 15 January 2011 (UTC)
== [[Tagalog/Bahay Kubo]] ==
We recently received a complaint from a copyright holder regarding the English translation of the lyrics you posted on this page. Please remember to only use text from public domain or freely licensed sources and only with proper attribution. [[User:VernoWhitney|VernoWhitney]] ([[User talk:VernoWhitney|discuss]] • [[Special:Contributions/VernoWhitney|contribs]]) 17:30, 16 January 2013 (UTC)
d7fyeluzcx896atsoq6t0kvasxxzrpq
User:Tommy Kronkvist
2
222668
4640295
4639768
2026-06-14T11:06:24Z
Tommy Kronkvist
107268
User statistics.
4640295
wikitext
text/x-wiki
<div style="margin: 0 0 1em 0;">{{userpage}}</div>
{{Userboxtop|toptext=Babel:}}
{{user language|sv|N}}{{user language|en|4}}{{user language|de|2}}{{user language|la|1}}
{{userboxbreak|toptext=WikiProjects:}}
{{User Chess}}
{{Userboxbottom}}
[[File:Sorbus torminalis Trunk and canopy.jpg|thumb|200px|left]]<br />
Most of my wiki contributions are made to [[:species:Main Page|Wikispecies]] where I'm an administrator, bureaucrat and interface admin,<small><sup>[https://species.wikimedia.org/w/index.php?title=Special:ListUsers&limit=1&username=Tommy_Kronkvist (verify)]</sup></small> as administrator and interface ditto at the Swedish version of [[wikivoyage:sv:Huvudsida|Wikivoyage]]<small><sup>(<span class="plainlinks">[https://sv.wikivoyage.org/w/index.php?title=Special:ListUsers&limit=1&username=Tommy_Kronkvist verify]</span>)</sup></small> and to the Swedish Wikimedia Chapter [[WMSE:|Wikimedia Sverige]], where I'm also an admin.<small><sup>(<span class="plainlinks">[https://se.wikimedia.org/w/index.php?title=Special:Användare&limit=1&username=Tommy_Kronkvist verify]</span>)</sup></small>
I've made a total of [[:meta:Special:CentralAuth/Tommy_Kronkvist|393,300 edits]] to 153 different Wikimedia sister projects, since August 2008 when I first registered my user account. (Data per June 14, 2026.)
Swedish is my mother tongue – even though I was born in Finland – but I feel fairly comfortable speaking and writing English and some German as well. Odd as it may seem, unfortunately I can't speak any Finnish.
My family name consists of two parts: ''kron'' – a short form of the Swedish word ''krona'' meaning 'crown', as in coronation crown or tree crown – and ''kvist'', meaning 'bough' or 'twig'. Hence the name ''Kronkvist'' refers to a twig in the canopy of a forest. I'm the fourth generation of Kronkvist's. Before that our family name was ''Mattus'', dating back from at least 1637. I've lived all over Sweden (for example in Stockholm and in the Gothenburg area) but nowadays reside in Uppsala, the fourth biggest city and former capital of Sweden.
pff4i5fq8nsgnxewki0pmsv6je1rtvf
The Linux Kernel/System
0
226981
4640217
4632259
2026-06-13T17:19:36Z
Conan
3188
add brief descriptions to source file references
4640217
wikitext
text/x-wiki
<noinclude>{{DISPLAYTITLE:System functionality}}</noinclude>
{| style="float: right; text-align: center; border-spacing: 0; margin: auto;" cellpadding="5pc"
! bgcolor="#edf" |system
|-
| bgcolor="#cdf" |[[#System interfaces|system interfaces]]
|-
| bgcolor=#abe |[[#Virtualization|virtualization]]
|-
| bgcolor="#aad" |[[#Driver Model|Driver Model]]
|- style=""
| bgcolor="#99c" |[[../Modules|modules]]
|-
| bgcolor="#88a" |[[#Peripheral buses|buses]], [[The Linux Kernel/PCI|PCI]]
|-
| bgcolor="#889" |[[#Hardware interfaces|hardware interfaces]], [[#Booting and halting|[re]booting]]
|}
The System functionality is named after system calls and sysfs.
It differs from other kernel functionalities.
Its subsystems are not tightly coupled across layers but instead provide infrastructure to other parts of the kernel.
For example, the System Calls subsystem offers a common interface layer for all functionalities exposed to user space.
== System interfaces ==
There are several mechanisms available in Linux for user space system interfaces.
One of the most common mechanisms is through {{w|system call}}s, which are functions that allow user space applications to request services from the kernel, such as opening files, creating processes, and accessing system resources.
Another mechanism for user space communication is through {{w|service file}}s, which are special files that represent physical or virtual devices, such as storage devices, network interfaces, and various peripheral devices.
User space applications can communicate with these devices by reading from and writing to their corresponding device files.
In summary, Linux kernel provides several mechanisms for user space communication, including system calls, device files, {{w|procfs}}, {{w|sysfs}}, and devtmpfs.
These mechanisms enable user space applications to communicate with the kernel and access system resources in a safe and controlled manner.
⚲ APIs:
: kernel space API for user space
:: {{The Linux Kernel/include|uapi}}
:: {{The Linux Kernel/source|arch/x86/include/uapi}} – x86 user-space API headers
:: {{The Linux Kernel/man|2|ioctl}}
:: [[#System calls|System calls]]
:: [[#Device files|Device files]]
: user space API for kernel space
:: {{The Linux Kernel/include|linux/uaccess.h}}:
:: {{The Linux Kernel/id|copy_to_user}}
:: {{The Linux Kernel/id|copy_from_user}}
📖 References
: {{The Linux Kernel/doc|User-space API guides|userspace-api}}
: {{w|User space}}
: {{w|Linux kernel interfaces}}
: [http://safari.oreilly.com/0596005652/understandlk-CHP-11 ULK3 Chapter 11. Signals]
===System calls===
System calls are the fundamental interface between user space applications and the Linux kernel.
They provide a way for programs to request services from the operating system, such as opening a file, allocating memory, or creating a new process.
In the Linux kernel, system calls are implemented as functions that can be invoked by user space programs using a software interrupt mechanism.
The Linux kernel provides hundreds of system calls, each with its own unique functionality.
These system calls are organized into categories such as process management, file management, network communication, and memory management.
User space applications can use these system calls to interact with the kernel and access the underlying system resources.
⚲ API
: [[../Syscalls|Table of syscalls]]
: {{The Linux Kernel/man|2|syscalls}}
⚙️ Internals
: {{The Linux Kernel/include|linux/syscalls.h}}
: {{The Linux Kernel/id|syscall_init}} installs {{The Linux Kernel/id|entry_SYSCALL_64}}
: {{The Linux Kernel/man|2|syscall}} ↪
:: {{The Linux Kernel/id|entry_SYSCALL_64}} ↯ call hierarchy:
::: {{The Linux Kernel/id|do_syscall_64}}
:::: {{The Linux Kernel/id|sys_call_table}}
📖 References
: {{w|System call}}
: [http://man7.org/linux/man-pages/dir_section_2.html Directory of system calls, man section 2]
: Anatomy of a system call, [https://lwn.net/Articles/604287/ part 1] and [https://lwn.net/Articles/604515/ part 2]
: {{The Linux Kernel/ltp|kernel|syscalls}}
💾 ''Historical''
: [http://safari.oreilly.com/0596005652/understandlk-CHP-10 ULK3 Chapter 10. System Calls]
=== Device files ===
Classic UNIX devices are [[../Human_interfaces#Char_devices|Char devices]] used as byte streams with {{The Linux Kernel/man|2|ioctl}}.
⚲ API
ls /dev
cat /proc/devices
cat /proc/misc
Examples: {{The Linux Kernel/id|misc_fops}} {{The Linux Kernel/id|usb_fops}} {{The Linux Kernel/id|memory_fops}}
: {{The Linux Kernel/doc|Allocated devices|admin-guide/devices.html}}
: {{The Linux Kernel/source|drivers/char}} – miscellaneous byte stream devices
: [https://www.oreilly.com/library/view/understanding-the-linux/0596005652/ch13.html Chapter 13. I/O Architecture and Device Drivers]
==== hiddev ====
⚠️ Warning: confusion. hiddev isn't real [[../Human_interfaces#HID|human interface device]]! It reuses USBHID infrastructure. hiddev is used for example for monitor controls and Uninterruptible Power Supplies.
This module supports these devices separately using a separate event interface on /dev/usb/hiddevX (char 180:96 to 180:111) (⚙️ {{The Linux Kernel/id|HIDDEV_MINOR_BASE}})
⚲ API
: {{The Linux Kernel/include|uapi/linux/hiddev.h}}
: {{The Linux Kernel/id|HID_CONNECT_HIDDEV}}
⚙️ Internals
: [https://elixir.bootlin.com/linux/latest/K/ident/CONFIG_USB_HIDDEV CONFIG_USB_HIDDEV]
: {{The Linux Kernel/include|linux/hiddev.h}}
: {{The Linux Kernel/id|hiddev_event}}
: {{The Linux Kernel/source|drivers/hid/usbhid/hiddev.c}}, {{The Linux Kernel/id|hiddev_fops}}
📖 References
: {{The Linux Kernel/doc|HIDDEV - Care and feeding of your Human Interface Devices|hid/hiddev.html}}
📖 References
: {{w|Device file}}
===Administration===
🔧 TODO
📖 References
: {{The Linux Kernel/man|7|netlink}}
:{{The Linux Kernel/doc|The Linux kernel user’s and administrator’s guide|admin-guide}}
==== procfs ====
The ''proc filesystem'' (''procfs'') is a special filesystem that presents information about processes and other system information in a hierarchical file-like structure, providing a more convenient and standardized method for dynamically accessing process data held in the kernel than traditional tracing methods or direct access to kernel memory.
Typically, it is mapped to a mount point named <code>/proc</code> at boot time.
The proc file system acts as an interface to internal data structures in the kernel.
It can be used to obtain information about the system and to change certain kernel parameters at runtime.
<code>/proc</code> includes a directory for each running process —including kernel threads— in directories named <code>/proc/PID</code>, where <code>PID</code> is the process number. Each directory contains information about one process, including the command that originally started the process (<code>/proc/PID/cmdline</code>), the names and values of its environment variables (<code>/proc/PID/environ</code>), a symlink to its working directory (<code>/proc/PID/cwd</code>), another symlink to the original executable file —if it still exists— (<code>/proc/PID/exe</code>), a couple of directories with symlinks to each open file descriptor (<code>/proc/PID/fd</code>) and the status —position, flags, ...— of each of them (<code>/proc/PID/fdinfo</code>), information about mapped files and blocks like heap and stack (<code>/proc/PID/maps</code>), a binary image representing the process's virtual memory (<code>/proc/PID/mem</code>), a symlink to the root path as seen by the process (<code>/proc/PID/root</code>), a directory containing hard links to any child process or thread (<code>/proc/PID/task</code>), basic information about a process including its run state and memory usage (<code>/proc/PID/status</code>) and much more.
📖 References
: {{w|procfs}}
: {{The Linux Kernel/man|5|procfs}}
: {{The Linux Kernel/man|7|namespaces}}
: {{The Linux Kernel/man|7|capabilities}}
: {{The Linux Kernel/include|linux/proc_fs.h}}
: {{The Linux Kernel/source|fs/proc}} – procfs implementation
==== sysfs ====
sysfs is a pseudo-file system that exports information about various kernel subsystems, hardware devices, and associated device drivers from the kernel's device model to user space through virtual files.
In addition to providing information about various devices and kernel subsystems, exported virtual files are also used for their configuring.
Sysfs is designed to export the information present in the device tree, which would then no longer clutter up procfs.
Sysfs is mounted under the <code>/sys</code> mount point.
⚲ API
:{{The Linux Kernel/include|linux/sysfs.h}}
📖 References
: {{w|sysfs}}
: {{The Linux Kernel/man|5|sysfs}}
: {{The Linux Kernel/doc|sysfs - filesystem for exporting kernel objects|filesystems/sysfs.html}}
: {{The Linux Kernel/source|fs/sysfs}} – sysfs implementation
==== devtmpfs ====
devtmpfs is a hybrid {{w|User space and kernel space|kernel/user space}} approach of a device filesystem to provide nodes before udev runs for the first time.
📖 References
: {{w|Device file}}
: {{The Linux Kernel/source|drivers/base/devtmpfs.c}} – kernel-maintained tmpfs /dev
== Virtualization ==
🔧 TODO
See {{w|Kernel-based Virtual Machine}}
📖 References
: {{The Linux Kernel/doc|Virtualization Support|virt/}}
📚 Further reading
: https://deepwiki.com/torvalds/linux/3-virtualization
=== Containerization ===
{{w|OS-level virtualization|Containerization}} is a powerful technology that has revolutionized the way software applications are developed, deployed, and run.
At its core, containerization provides an isolated environment for running applications, where the application has all the necessary dependencies and can be easily moved from one environment to another without worrying about any compatibility issues.
Containerization technology has its roots in the {{w|chroot}} command, which was introduced in the Unix operating system in the 1979.
Chroot provided a way to change the root directory of a process, effectively creating a new isolated environment with its own file system hierarchy.
However, this early implementation of containerization had limited functionality, and it was difficult to manage and control the various processes running within the container.
In the early 2000s, the Linux kernel introduced {{w|Linux namespaces|namespaces}} and {{w|cgroups|control groups}} to provide a more robust and scalable containerization solution.
'''Namespaces''' allow processes to have their own isolated view of the system, including the file system, network, and process ID space, while '''control groups''' provide fine-grained control over the resources allocated to each container, such as CPU, memory, and I/O.
Using these kernel features, containerization platforms such as {{w|Docker (software)|Docker}} and {{w|Kubernetes}} have emerged as popular solutions for building and deploying containerized applications at scale.
Containerization has become an essential tool for modern software development, allowing developers to easily package applications and deploy them in a consistent and predictable manner across different environments.
==== Resources usage and limits ====
⚲ API
: {{The Linux Kernel/man|2|chroot}} – change root directory
: {{The Linux Kernel/man|2|sysinfo}} – return system information
: {{The Linux Kernel/man|2|getrusage}} – get resource usage
: get/set resource limits:
:: {{The Linux Kernel/man|2|getrlimit}}
:: {{The Linux Kernel/man|2|setrlimit}}
:: {{The Linux Kernel/man|2|prlimit64}}
📖 References
: {{w|chroot}}
==== Namespaces ====
{{w|Linux namespaces}} provide the way to to isolate and virtualize different aspects of the operating system.
Namespaces allow multiple instances of an application to run in isolation from each other, without interfering with the host system or other instances.
🔧 TODO
⚲ API
: /proc/self/ns
: {{The Linux Kernel/man|8|lsns}}, {{The Linux Kernel/man|2|ioctl_ns}} ↪ {{The Linux Kernel/id|ns_ioctl}}
: {{The Linux Kernel/man|1|unshare}}, {{The Linux Kernel/man|2|unshare}}
: {{The Linux Kernel/man|1|nsenter}}, {{The Linux Kernel/man|2|setns}}
: {{The Linux Kernel/man|2|clone3}} ↪ {{The Linux Kernel/id|clone_args}}
: {{The Linux Kernel/include|linux/ns_common.h}}
: {{The Linux Kernel/include|linux/proc_ns.h}}
: namespaces definition
:: {{The Linux Kernel/id|uts_namespace}}
:: {{The Linux Kernel/id|ipc_namespace}}
:: {{The Linux Kernel/id|mnt_namespace}}
:: {{The Linux Kernel/id|pid_namespace}}
:: {{The Linux Kernel/include|net/net_namespace.h}} - struct net
:: {{The Linux Kernel/id|user_namespace}}
:: {{The Linux Kernel/id|time_namespace}}
:: {{The Linux Kernel/id|cgroup_namespace}}
⚙️ Internals
: {{The Linux Kernel/id|init_nsproxy}} - struct of namespaces
: {{The Linux Kernel/source|kernel/nsproxy.c}} – namespace proxy management
: {{The Linux Kernel/source|fs/namespace.c}} – mount namespace
: {{The Linux Kernel/source|fs/proc/namespaces.c}} – /proc namespace entries
: {{The Linux Kernel/source|net/core/net_namespace.c}} – network namespace
: {{The Linux Kernel/source|kernel/time/namespace.c}} – time namespace
: {{The Linux Kernel/source|kernel/user_namespace.c}} – user namespace
: {{The Linux Kernel/source|kernel/pid_namespace.c}} – PID namespace
: {{The Linux Kernel/source|kernel/utsname.c}} – UTS namespace
: {{The Linux Kernel/source|kernel/cgroup/namespace.c}} – cgroup namespace
: {{The Linux Kernel/source|ipc/namespace.c}} – IPC namespace
📖 References
: {{The Linux Kernel/man|7|namespaces}}
: {{The Linux Kernel/man|7|uts_namespaces}}
: {{The Linux Kernel/man|7|ipc_namespaces}}
: {{The Linux Kernel/man|7|mount_namespace}}
: {{The Linux Kernel/man|7|pid_namespaces}}
: {{The Linux Kernel/man|7|network_namespaces}}
: {{The Linux Kernel/man|7|user_namespaces}}
: {{The Linux Kernel/man|7|time_namespaces}}
: {{The Linux Kernel/man|7|cgroup_namespaces}}
=== Control groups ===
{{w|cgroups}} are used to limit and control the resource usage of groups of processes. They allow administrators to set limits on CPU usage, memory usage, disk I/O, network bandwidth, and other resources, which can be useful for managing system performance and preventing resource contention.
There are two versions of cgroups.
Unlike v1, cgroup v2 has only a single process hierarchy and discriminates between processes, not threads.
Here are some of the key differences between cgroups v1 and v2:
{| class="wikitable"
|+
!
!cgroups v1
!cgroups v2
|-
|Hierarchy
|each subsystem had its own hierarchy, which could lead to complexity and confusion
|unified hierarchy, which simplifies management and enables better resource allocation
|-
|Controllers
|has several subsystems that are controlled by separate controllers, each with its own set of configuration files and parameters
|controllers are consolidated into a single "cgroup2" controller, which provides a unified interface for managing resources
|-
|Resource distribution
|distributes resources among groups of processes based on proportional sharing, which can lead to unpredictable results
|resources are distributed based on a "weighted fair queuing" algorithm, which provides better predictability and fairness
|}
Cgroups v2 is not backward compatible with cgroups v1, which means that migrating from v1 to v2 can be challenging and requires careful planning.
🔧 TODO
⚲ API
: {{The Linux Kernel/include|linux/cgroup.h}}
: {{The Linux Kernel/include|linux/cgroup-defs.h}}
:: {{The Linux Kernel/id|css_set}} – holds set of reference-counted pointers to {{The Linux Kernel/id|cgroup_subsys_state}} objects
:: {{The Linux Kernel/id|cgroup_subsys}}
: {{The Linux Kernel/include|linux/cgroup_subsys.h}} – list of cgroup subsystems
⚙️ Internals
: {{The Linux Kernel/id|cg_list}} – list of {{The Linux Kernel/id|css_set}} in task_struct
: {{The Linux Kernel/source|kernel/cgroup}} – cgroup core
: {{The Linux Kernel/id|cgroup_init}}
: {{The Linux Kernel/id|cgroup2_fs_type}}
: {{The Linux Kernel/source|tools/testing/selftests/cgroup}} – cgroup self-tests
📖 References
: [[The_Linux_Kernel/System/CGroup_v2|Control Groups v2]]
: {{The Linux Kernel/doc|Control Groups v1|admin-guide/cgroup-v1/}}
: {{The Linux Kernel/man|1|systemd-cgtop}}
: {{The Linux Kernel/man|5|systemd.slice}} – slice unit configuration
: {{The Linux Kernel/man|7|cgroups}}
: {{The Linux Kernel/man|7|cgroup_namespaces}}
: {{The Linux Kernel/doc|CFS Bandwidth Control for cgroups|scheduler/sched-bwc.html}}
: {{The Linux Kernel/doc|Real-Time group scheduling|scheduler/sched-rt-group.html}}
: [https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/latest/html/managing_monitoring_and_updating_the_kernel/setting-limits-for-applications_managing-monitoring-and-updating-the-kernel Understanding control groups, RHEL]
📚 Further reading
: https://github.com/containers
: [https://github.com/mk-fg/fgtk#cgrc cgrc tool]
💾 Historical
: https://github.com/mk-fg/cgroup-tools for cgrpup v1
== Driver Model ==
The Linux driver model (or Device Model, or just DM) is a framework that provides a consistent and standardized way for device drivers to interface with the kernel.
It defines a set of rules, interfaces, and data structures that enable device drivers to communicate with the kernel and perform various operations, such as managing resources, livecycle and more.
DM core structure consists of DM classes, DM buses, DM drivers and DM devices.
=== kobject ===
In the Linux kernel, a {{The Linux Kernel/id|kobject}} is a fundamental data structure used to represent kernel objects and provide a standardized interface for interacting with them.
A kobject is a generic object that can represent any type of kernel object, including devices, files, modules, and more.
The kobject data structure contains several fields that describe the object, such as its name, type, parent, and operations.
Each kobject has a unique name within its parent object, and the parent-child relationships form a hierarchy of kobjects.
Kobjects are managed by the kernel's sysfs file system, which provides a virtual file system that exposes kernel objects as files and directories in the user space.
Each kobject is associated with a sysfs directory, which contains files and attributes that can be read or written to interact with the kernel object.
⚲ Infrastructure API
: {{The Linux Kernel/include|linux/kobject.h}}
: {{The Linux Kernel/id|kobject}}
: {{The Linux Kernel/doc|Kernel objects manipulation|driver-api/basics.html#kernel-objects-manipulation}}
: 🔧 TODO
=== Classes ===
A class is a higher-level view of a device that abstracts out low-level implementation details.
Drivers may see a NVME storage or a SATA storage, but, at the class level, they are all simply {{The Linux Kernel/id|block_class}} devices.
Classes allow user space to work with devices based on what they do, rather than how they are connected or how they work.
General DM classes structure match {{w|composite pattern}}.
⚲ API
: ls /sys/class/
: {{The Linux Kernel/id|class_register}} registers {{The Linux Kernel/id|class}}
: {{The Linux Kernel/include|linux/device/class.h}}
👁 Examples: {{The Linux Kernel/id|input_class}}, {{The Linux Kernel/id|block_class}} {{The Linux Kernel/id|net_class}}
=== Buses ===
A {{w|peripheral bus}} is a channel between the processor and one or more peripheral devices.
A DM bus is {{w|Proxy pattern|proxy}} for a peripheral bus.
General DM buses structure match {{w|composite pattern}}.
For the purposes of the device model, all devices are connected via a bus, even if it is an internal, virtual, {{The Linux Kernel/id|platform_bus_type}}.
Buses can plug into each other.
A USB controller is usually a PCI device, for example.
The device model represents the actual connections between buses and the devices they control.
A bus is represented by the {{The Linux Kernel/id|bus_type}} structure.
It contains the name, the default attributes, the bus' methods, PM operations, and the driver core's private data.
⚲ API
: ls /sys/bus/
: {{The Linux Kernel/id|bus_register}} registers {{The Linux Kernel/id|bus_type}}
: {{The Linux Kernel/include|linux/device/bus.h}}
👁 Examples: {{The Linux Kernel/id|usb_bus_type}}, {{The Linux Kernel/id|hid_bus_type}}, {{The Linux Kernel/id|pci_bus_type}}, {{The Linux Kernel/id|scsi_bus_type}}, {{The Linux Kernel/id|platform_bus_type}}
: [[#Peripheral_buses|Peripheral buses]]
=== Drivers ===
⚲ API
: ls /sys/bus/:/drivers/
: {{The Linux Kernel/id|module_driver}} - simple common driver initializer, 👁 for example used in {{The Linux Kernel/id|module_pci_driver}}
: {{The Linux Kernel/id|driver_register}} registers {{The Linux Kernel/id|device_driver}} - basic device driver structure, one per all device instances.
: {{The Linux Kernel/include|linux/device/driver.h}}
👁 Examples: {{The Linux Kernel/id|hid_generic}} {{The Linux Kernel/id|usb_register_device_driver}}
'''Platform drivers'''
: {{The Linux Kernel/id|module_platform_driver}} registers {{The Linux Kernel/id|platform_driver}} (platform wrapper of {{The Linux Kernel/id|device_driver}}) with {{The Linux Kernel/id|platform_bus_type}}
: {{The Linux Kernel/include|linux/platform_device.h}}
👁 Examples: {{The Linux Kernel/id|gpio_mouse_device_driver}}
=== Devices ===
⚲ API
: ls /sys/devices/
: {{The Linux Kernel/id|device_register}} registers {{The Linux Kernel/id|device}} - the basic device structure, per each device instance
: {{The Linux Kernel/include|linux/device.h}} – {{The Linux Kernel/doc|Device drivers infrastructure|driver-api/infrastructure.html}}
: {{The Linux Kernel/include|linux/dev_printk.h}}
: {{The Linux Kernel/doc|Device Resource Management|driver-api/basics.html#device-resource-management}}, devres, devm ...
👁 Examples: {{The Linux Kernel/id|platform_bus}} mousedev_create
'''Platform devices'''
: {{The Linux Kernel/id|platform_device}} - platform wrapper of {{The Linux Kernel/doc|struct <big>device</big> - the basic device structure|driver-api/infrastructure.html#c.device}}, contains resources associated with the devie
: it is can be created dynamically automatically by {{The Linux Kernel/id|platform_device_register_simple}} or {{The Linux Kernel/id|platform_device_alloc}}. Or registered with {{The Linux Kernel/id|platform_device_register}}.
: {{The Linux Kernel/id|platform_device_unregister}} - releases device and associated resources
👁 Examples: {{The Linux Kernel/id|add_pcspkr}}
⚲ API 🔧 TODO
: platform_device_info platform_device_id platform_device_register_full platform_device_add
: platform_device_add_data platform_device_register_data platform_device_add_resources
: attribute_group dev_pm_ops
<hr>
⚙️ Internals
: {{The Linux Kernel/include|linux/dev_printk.h}}
: {{The Linux Kernel/source|lib/kobject.c}} – kobject library
: {{The Linux Kernel/source|drivers/base/platform.c}} – platform bus for legacy devices
: {{The Linux Kernel/source|drivers/base/core.c}} – driver model core
📖 References
: {{The Linux Kernel/doc|Device drivers infrastructure|driver-api/infrastructure.html}}
: {{The Linux Kernel/doc|Everything you never wanted to know about kobjects, ksets, and ktypes|core-api/kobject.html}}
: {{The Linux Kernel/doc|Driver Model|driver-api/driver-model}}
:: {{The Linux Kernel/doc|The Linux Kernel Device Model|driver-api/driver-model/overview.html}}
:: {{The Linux Kernel/doc|Platform Devices and Drivers|driver-api/driver-model/platform.html}}
: [https://linux-kernel-labs.github.io/refs/heads/master/labs/device_model.html Linux Device Model, by linux-kernel-labs]
{{:The Linux Kernel/Modules}}
== {{w|Peripheral bus}}es ==
Peripheral buses are the communication channels used to connect various peripheral devices to a computer system.
These buses are used to transfer data between the peripheral devices and the system's processor or memory.
In the Linux kernel, peripheral buses are implemented as drivers that enable communication between the operating system and the hardware.
Peripheral buses in the Linux kernel include USB, PCI, SPI, I2C, and more.
Each of these buses has its own unique characteristics, and the Linux kernel provides support for a wide range of peripheral devices.
The PCI (Peripheral Component Interconnect) bus is used to connect internal hardware devices in a computer system.
It is commonly used to connect graphics cards, network cards, and other expansion cards.
The Linux kernel provides a PCI bus driver that enables communication between the operating system and the devices connected to the bus.
The USB (Universal Serial Bus) is one of the most commonly used peripheral buses in modern computer systems.
It allows devices to be hot-swapped and supports high-speed data transfer rates.
🔧 TODO: device enumeration
⚲ API
: Shell interface: ls /proc/bus/ /sys/bus/
See also [[#Buses|Buses of Driver Model]]
See [[../Human_interfaces#Input_devices|'''Input: keyboard, mouse etc''']]
'''PCI'''
⚲ Shell API
: lspci -vv
: column -t /proc/bus/pci/devices
Main article: [[The_Linux_Kernel/PCI|PCI]]
'''USB'''
⚲ Shell API
: lsusb -v
: ls /sys/bus/usb/
: cat /proc/bus/usb/devices
⚙️ Internals
: {{The Linux Kernel/source|drivers/usb}} – USB subsystem
📖 References
: {{The Linux Kernel/doc|USB|usb}}
: [http://lwn.net/images/pdf/LDD3/ch13.pdf LDD3:USB Drivers]
'''Other buses'''
: {{The Linux Kernel/source|drivers/bus}} – bus driver implementations
'''Buses for 🤖 embedded devices:'''
: {{The Linux Kernel/include|linux/gpio/driver.h}} {{The Linux Kernel/include|linux/gpio.h}} {{The Linux Kernel/source|drivers/gpio}} {{The Linux Kernel/source|tools/gpio}}
: {{The Linux Kernel/source|drivers/i2c}} – I2C bus framework, https://i2c.wiki.kernel.org
'''SPI'''
⚲ API
: {{The Linux Kernel/include|linux/spi/spi.h}}
: {{The Linux Kernel/source|tools/spi}} – SPI user-space tools
⚙️ Internals
: {{The Linux Kernel/source|drivers/spi}} – SPI bus framework
: {{The Linux Kernel/id|spi_register_controller}}
: {{The Linux Kernel/id|spi_controller_list}}🚧
📖 References
: {{The Linux Kernel/doc|SPI|spi}}
==Hardware interfaces==
Hardware interfaces are basic part of any operating, enabling communication between the processor and other HW components of a computer system: memory, peripheral devices and buses, various controllers.
[[../Processing#Interrupts|Interrupts]]
===I/O ports and registers===
I/O ports and registers are electronic components in computer systems that enable communication between CPU and other electronic controllers and devices.
⚲ API
{{The Linux Kernel/include|asm-generic/io.h}} — generic I/O port emulation.
: {{The Linux Kernel/id|ioport_map}}
: {{The Linux Kernel/id|ioread32}} / {{The Linux Kernel/id|iowrite32}} ...
: {{The Linux Kernel/id|readl}}/ {{The Linux Kernel/id|writel}} ...
: The {in,out}[bwl] macros are for emulating x86-style PCI/ISA IO space:
: {{The Linux Kernel/id|inl}}/ {{The Linux Kernel/id|outl}} ...
{{The Linux Kernel/include|linux/ioport.h}} — definitions of routines for detecting, reserving and allocating system resources.
: {{The Linux Kernel/id|request_mem_region}}
{{The Linux Kernel/source|arch/x86/include/asm/io.h}} – x86 I/O port and MMIO access
Functions for memory mapped registers:
{{The Linux Kernel/id|ioremap}} ...
==== regmap ====
The regmap subsystem provides a standardized abstraction layer for register access in device drivers.
It simplifies interactions with hardware registers across various bus types,
such as I2C, SPI, and MMIO, by offering a consistent API.
⚲ API
{{The Linux Kernel/include|linux/regmap.h}} — register map access API
: the most frequently used functions:
: {{The Linux Kernel/id|regmap_update_bits}}
: {{The Linux Kernel/id|regmap_write}}
: {{The Linux Kernel/id|regmap_read}}
: {{The Linux Kernel/id|regmap_reg_range}}
: {{The Linux Kernel/id|regmap_bulk_read}}
: {{The Linux Kernel/id|devm_regmap_init_i2c}}
: {{The Linux Kernel/id|regmap_set_bits}}
: {{The Linux Kernel/id|regmap_field_write}}
: {{The Linux Kernel/id|regmap_bulk_write}}
: {{The Linux Kernel/id|regmap_clear_bits}}
: {{The Linux Kernel/id|regmap_write_bits}}
: {{The Linux Kernel/id|regmap_config}}
: {{The Linux Kernel/id|regmap_read_poll_timeout}}
: {{The Linux Kernel/id|devm_regmap_init_mmio}}
⚙️ Internals
{{The Linux Kernel/source|drivers/base/regmap}} – register map abstraction layer
===Hardware Device Drivers===
Keywords: firmware, hotplug, clock, mux, pin
⚙️ Internals
: {{The Linux Kernel/source|drivers/acpi}} – ACPI drivers
: {{The Linux Kernel/source|drivers/base}} – driver model core
: {{The Linux Kernel/source|drivers/sdio}} – {{w|Secure Digital#SDIO cards|Secure Digital Input Output}}
: {{The Linux Kernel/source|drivers/virtio}} – virtio guest drivers
: {{The Linux Kernel/source|drivers/hwmon}} – hardware monitoring
: {{The Linux Kernel/source|drivers/thermal}} – thermal management
: {{The Linux Kernel/source|drivers/pinctrl}} – pin control and multiplexing
: {{The Linux Kernel/source|drivers/clk}} – clock framework
📖 References
: {{The Linux Kernel/doc|Pin control subsystem|driver-api/pin-control.html}}
: {{The Linux Kernel/doc|Linux Hardware Monitoring|hwmon}}
: {{The Linux Kernel/doc|Firmware guide|firmware-guide}}
: {{The Linux Kernel/doc|Devicetree|devicetree}}
: https://hwmon.wiki.kernel.org/
: [http://lwn.net/images/pdf/LDD3/ch14.pdf LDD3:The Linux Device Model]
: http://www.tldp.org/LDP/tlk/dd/drivers.html
: http://www.xml.com/ldd/chapter/book/
: http://examples.oreilly.com/linuxdrive2/
=== Booting and halting ===
==== Kernel booting ====
This is loaded in two stages - in the first stage the kernel (as a compressed image file) is loaded into memory and decompressed, and a few fundamental functions such as essential hardware and basic memory management (memory paging) are set up.
Control is then switched one final time to the main kernel start process calling {{The Linux Kernel/id|start_kernel}}, which then performs the majority of system setup (interrupts, the rest of memory management, device and driver initialization, etc.) before spawning separately, the idle process and scheduler, and the init process (which is executed in user space).
'''Kernel loading stage'''
The kernel as loaded is typically an image file, compressed into either zImage or bzImage formats with zlib.
A routine at the head of it does a minimal amount of hardware setup, decompresses the image fully into high memory, and takes note of any RAM disk if configured.
It then executes kernel startup via startup_64 (for x86_64 architecture).
: {{The Linux Kernel/source|arch/x86/boot/compressed/vmlinux.lds.S}} - linker script defines entry {{The Linux Kernel/id|startup_64}} in
: {{The Linux Kernel/source|arch/x86/boot/compressed/head_64.S}} - assembly of extractor
: {{The Linux Kernel/id|extract_kernel}} - extractor in language C
:: prints
Decompressing Linux... done.
Booting the kernel.
'''Kernel startup stage'''
The startup function for the kernel (also called the swapper or process 0) establishes memory management (paging tables and memory paging), detects the type of CPU and any additional functionality such as floating point capabilities, and then switches to non-architecture specific Linux kernel functionality via a call to {{The Linux Kernel/id|start_kernel}}.
↯ Startup call hierarchy:
: {{The Linux Kernel/source|arch/x86/kernel/vmlinux.lds.S}} – linker script
: {{The Linux Kernel/source|arch/x86/kernel/head_64.S}} – assembly of uncompressed startup code
: {{The Linux Kernel/source|arch/x86/kernel/head64.c}} – platform depended startup:
:: {{The Linux Kernel/id|x86_64_start_kernel}}
:: {{The Linux Kernel/id|x86_64_start_reservations}}
: {{The Linux Kernel/source|init/main.c}} – main initialization code
:: {{The Linux Kernel/id|start_kernel}} 200 SLOC
::: {{The Linux Kernel/id|mm_init}}
:::: {{The Linux Kernel/id|mem_init}}
:::: {{The Linux Kernel/id|vmalloc_init}}
::: {{The Linux Kernel/id|sched_init}}
::: {{The Linux Kernel/id|rcu_init}} – {{w|Read-copy-update}}
::: {{The Linux Kernel/id|rest_init}}
:::: {{The Linux Kernel/id|kernel_init}} - deferred kernel thread #1
::::: {{The Linux Kernel/id|kernel_init_freeable}} This and following functions are defied with attribute {{The Linux Kernel/id|__init}}
:::::: {{The Linux Kernel/id|prepare_namespace}}
::::::: {{The Linux Kernel/id|initrd_load}}
::::::: {{The Linux Kernel/id|mount_root}}
::::: {{The Linux Kernel/id|run_init_process}} obviously runs the first process {{The Linux Kernel/man|1|init}}
:::: {{The Linux Kernel/id|kthreadd}} – deferred kernel thread #2
:::: {{The Linux Kernel/id|cpu_startup_entry}}
::::: {{The Linux Kernel/id|do_idle}}
{{The Linux Kernel/id|start_kernel}} executes a wide range of initialization functions. It sets up interrupt handling (IRQs), further configures memory, starts the {{The Linux Kernel/man|1|init}} process (the first user-space process), and then starts the idle task via {{The Linux Kernel/id|cpu_startup_entry}}. Notably, the kernel startup process also mounts the {{w|initial ramdisk}} (initrd) that was loaded previously as the temporary root file system during the boot phase. The initrd allows driver modules to be loaded directly from memory, without reliance upon other devices (e.g. a hard disk) and the drivers that are needed to access them (e.g. a SATA driver). This split of some drivers statically compiled into the kernel and other drivers loaded from initrd allows for a smaller kernel. The root file system is later switched via a call to {{The Linux Kernel/man|8|pivot_root}} / {{The Linux Kernel/man|2|pivot_root}} which unmounts the temporary root file system and replaces it with the use of the real one, once the latter is accessible. The memory used by the temporary root file system is then reclaimed.
⚙️ Internals
: {{The Linux Kernel/source|arch/x86/Kconfig.debug}} – x86 debugging Kconfig options
: {{The Linux Kernel/include|linux/smpboot.h}}
: {{The Linux Kernel/source|kernel/smpboot.c}} – common SMP CPU bringup/teardown
: {{The Linux Kernel/source|arch/x86/kernel/smpboot.c}} – x86 SMP booting
===== ... =====
📖 References
: Article about [[../Booting|booting of the kernel]]
: {{The Linux Kernel/doc|Initial RAM disk|admin-guide/initrd.html}}
: [https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt#:~:text=initcall_debug initcall_debug, boot argument]
: {{w|Linux startup process}}
: {{w|init}}
: [http://lwn.net/Articles/632528/ Linux (U)EFI boot process]
: {{The Linux Kernel/doc|The kernel’s command-line parameters|admin-guide/kernel-parameters.html}}
: {{The Linux Kernel/doc|The EFI Boot Stub|admin-guide/efi-stub.html}}
: {{The Linux Kernel/doc|Boot Configuration|admin-guide/bootconfig.html}}
: {{The Linux Kernel/doc|Boot time memory management|core-api/boot-time-mm.html}}
: [https://github.com/0xAX/linux-insides/blob/master/Booting/README.md Kernel booting process]
: [https://github.com/0xAX/linux-insides/blob/master/Initialization/README.md Kernel initialization process]
📚 Further reading
: {{The Linux Kernel/doc|Boot-time tracing|trace/boottime-trace.html}}
: {{w|E820}}
💾 ''Historical''
: http://tldp.org/HOWTO/Linux-i386-Boot-Code-HOWTO/
: http://www.tldp.org/LDP/lki/lki-1.html
: http://www.tldp.org/HOWTO/KernelAnalysis-HOWTO-4.html
==== Halting or rebooting ====
🔧 TODO
⚲ API
: {{The Linux Kernel/include|linux/reboot.h}}
: {{The Linux Kernel/include|linux/stop_machine.h}}
:: {{The Linux Kernel/id|print_stop_info}}
:: {{The Linux Kernel/id|stop_machine}}
::: {{The Linux Kernel/id|stop_core_cpuslocked}}
: {{The Linux Kernel/id|reboot_mode}}
: {{The Linux Kernel/id|sys_reboot}} calls
:: {{The Linux Kernel/id|machine_restart}} or
:: {{The Linux Kernel/id|machine_halt}} or
:: {{The Linux Kernel/id|machine_power_off}}
: {{The Linux Kernel/include|linux/reboot-mode.h}}
:: {{The Linux Kernel/id|reboot_mode_driver}}
::: {{The Linux Kernel/id|devm_reboot_mode_register}}
⚙️ Internals
: {{The Linux Kernel/source|kernel/reboot.c}} – reboot, halt and power-off
: {{The Linux Kernel/source|kernel/stop_machine.c}} – stop all CPUs for safe code patching
:: {{The Linux Kernel/id|cpu_stopper}}
:: {{The Linux Kernel/id|cpu_stop_init}}
::: {{The Linux Kernel/id|cpu_stopper_thread}} – "migration" tasks
: {{The Linux Kernel/source|arch/x86/kernel/reboot.c}} – x86 reboot methods
: [[../Softdog Driver/]]
==== Power management ====
Keyword: suspend, alarm, hibernation.
⚲ API
: /sys/power/
: /sys/kernel/debug/wakeup_sources
:: <big>⌨️</big> hands-on:
:: sudo awk '{gsub("^ ","?")} NR>1 {if ($6) {print $1}}' /sys/kernel/debug/wakeup_sources
: {{The Linux Kernel/include|linux/pm.h}}
:: {{The Linux Kernel/include|linux|dev_pm_ops}}
: {{The Linux Kernel/include|linux/pm_qos.h}}
: {{The Linux Kernel/include|linux/pm_clock.h}}
: {{The Linux Kernel/include|linux/pm_domain.h}}
: {{The Linux Kernel/include|linux/pm_wakeirq.h}}
: {{The Linux Kernel/include|linux/pm_wakeup.h}}
:: {{The Linux Kernel/id|wakeup_source}}
:: {{The Linux Kernel/id|wakeup_source_register}}
: {{The Linux Kernel/include|linux/suspend.h}}
:: {{The Linux Kernel/id|pm_suspend}} suspends the system
: Suspend and wakeup depend on
:: {{The Linux Kernel/man|2|timer_create}} and {{The Linux Kernel/man|2|timerfd_create}} with clock ids {{The Linux Kernel/id|CLOCK_REALTIME_ALARM}} or {{The Linux Kernel/id|CLOCK_BOOTTIME_ALARM}} will wake the system if it is suspended.
:: {{The Linux Kernel/man|2|epoll_ctl}} with flag {{The Linux Kernel/id|EPOLLWAKEUP}} blocks suspend
:: See also {{The Linux Kernel/man|7|capabilities}} {{The Linux Kernel/id|CAP_WAKE_ALARM}}, {{The Linux Kernel/id|CAP_BLOCK_SUSPEND}}
⚙️ Internals
: {{The Linux Kernel/id|CONFIG_PM}}
: {{The Linux Kernel/id|CONFIG_SUSPEND}}
: {{The Linux Kernel/source|kernel/power}} – suspend, hibernate and PM core
: {{The Linux Kernel/id|alarm_init}}
: {{The Linux Kernel/source|kernel/time/alarmtimer.c}} – alarm timer for wakeup events
: {{The Linux Kernel/source|drivers/base/power}}: {{The Linux Kernel/id|wakeup_sources}}
📖 References
: {{The Linux Kernel/doc|PM administration|admin-guide/pm}}
: {{The Linux Kernel/doc|CPU and Device PM|driver-api/pm}}
: {{The Linux Kernel/doc|Power Management|power}}
: {{The Linux Kernel/doc|sysfs power testing ABI|admin-guide/abi-testing.html#file-testing-sysfs-power}}
: https://lwn.net/Kernel/Index/#Power_management
: {{w|PowerTOP}}
: [https://linux.die.net/man/1/cpupower cpupower]
: [https://manpages.ubuntu.com/manpages/xenial/man8/tlp.8.html tlp] – apply laptop power management settings
: {{w|ACPI}} – Advanced Configuration and Power Interface
===== Runtime PM =====
Keywords: runtime power management, devices power management opportunistic suspend, autosuspend, autosleep.
⚲ API
: /sys/devices/.../power/:
:: async autosuspend_delay_ms control runtime_active_kids runtime_active_time runtime_enabled runtime_status runtime_suspended_time runtime_usage
: {{The Linux Kernel/include|linux/pm_runtime.h}}
:: {{The Linux Kernel/id|pm_runtime_mark_last_busy}}
:: {{The Linux Kernel/id|pm_runtime_enable}}
:: {{The Linux Kernel/id|pm_runtime_disable}}
:: {{The Linux Kernel/id|pm_runtime_get}} – asynchronous get
:: {{The Linux Kernel/id|pm_runtime_get_sync}}
:: {{The Linux Kernel/id|pm_runtime_resume_and_get}} – preferable synchronous get
:: {{The Linux Kernel/id|pm_runtime_put}}
:: {{The Linux Kernel/id|pm_runtime_put_noidle}} – just decrement usage counter
:: {{The Linux Kernel/id|pm_runtime_put_sync}}
:: {{The Linux Kernel/id|pm_runtime_put_autosuspend}}
: {{The Linux Kernel/id|SET_RUNTIME_PM_OPS}}
👁 Example: {{The Linux Kernel/id|ac97_pm}}
⚙️ Internals
: {{The Linux Kernel/id|CONFIG_PM_AUTOSLEEP}}
=== ... ===
📖 References
: {{The Linux Kernel/doc|Runtime Power Management Framework for I/O Devices|power/runtime_pm.html}}
: [https://wiki.linuxfoundation.org/realtime/documentation/howto/applications/cpuidle CPU idle power saving methods for real-time workloads]
: [https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-devices-power Sysfs devices PM API]
: [https://www.kernel.org/doc/Documentation/driver-api/usb/power-management.rst Power Management for USB]
: [https://lwn.net/Kernel/Index/#Power_management-Opportunistic_suspend Opportunistic suspend]
📚 Further reading
: https://deepwiki.com/torvalds/linux/5-hardware-drivers
== Building and Updating ==
: [[../Updating/]]
{{BookCat}}
exkmjpy2fq4d1gjnnu7uklfvzwb5t7e
4640239
4640217
2026-06-13T19:15:17Z
Conan
3188
fix typos, broken Interrupts link, spacing
4640239
wikitext
text/x-wiki
<noinclude>{{DISPLAYTITLE:System functionality}}</noinclude>
{| style="float: right; text-align: center; border-spacing: 0; margin: auto;" cellpadding="5pc"
! bgcolor="#edf" |system
|-
| bgcolor="#cdf" |[[#System interfaces|system interfaces]]
|-
| bgcolor=#abe |[[#Virtualization|virtualization]]
|-
| bgcolor="#aad" |[[#Driver Model|Driver Model]]
|- style=""
| bgcolor="#99c" |[[../Modules|modules]]
|-
| bgcolor="#88a" |[[#Peripheral buses|buses]], [[The Linux Kernel/PCI|PCI]]
|-
| bgcolor="#889" |[[#Hardware interfaces|hardware interfaces]], [[#Booting and halting|[re]booting]]
|}
The System functionality is named after system calls and sysfs.
It differs from other kernel functionalities.
Its subsystems are not tightly coupled across layers but instead provide infrastructure to other parts of the kernel.
For example, the System Calls subsystem offers a common interface layer for all functionalities exposed to user space.
== System interfaces ==
There are several mechanisms available in Linux for user space system interfaces.
One of the most common mechanisms is through {{w|system call}}s, which are functions that allow user space applications to request services from the kernel, such as opening files, creating processes, and accessing system resources.
Another mechanism for user space communication is through {{w|service file}}s, which are special files that represent physical or virtual devices, such as storage devices, network interfaces, and various peripheral devices.
User space applications can communicate with these devices by reading from and writing to their corresponding device files.
In summary, Linux kernel provides several mechanisms for user space communication, including system calls, device files, {{w|procfs}}, {{w|sysfs}}, and devtmpfs.
These mechanisms enable user space applications to communicate with the kernel and access system resources in a safe and controlled manner.
⚲ APIs:
: kernel space API for user space
:: {{The Linux Kernel/include|uapi}}
:: {{The Linux Kernel/source|arch/x86/include/uapi}} – x86 user-space API headers
:: {{The Linux Kernel/man|2|ioctl}}
:: [[#System calls|System calls]]
:: [[#Device files|Device files]]
: user space API for kernel space
:: {{The Linux Kernel/include|linux/uaccess.h}}:
:: {{The Linux Kernel/id|copy_to_user}}
:: {{The Linux Kernel/id|copy_from_user}}
📖 References
: {{The Linux Kernel/doc|User-space API guides|userspace-api}}
: {{w|User space}}
: {{w|Linux kernel interfaces}}
: [http://safari.oreilly.com/0596005652/understandlk-CHP-11 ULK3 Chapter 11. Signals]
===System calls===
System calls are the fundamental interface between user space applications and the Linux kernel.
They provide a way for programs to request services from the operating system, such as opening a file, allocating memory, or creating a new process.
In the Linux kernel, system calls are implemented as functions that can be invoked by user space programs using a software interrupt mechanism.
The Linux kernel provides hundreds of system calls, each with its own unique functionality.
These system calls are organized into categories such as process management, file management, network communication, and memory management.
User space applications can use these system calls to interact with the kernel and access the underlying system resources.
⚲ API
: [[../Syscalls|Table of syscalls]]
: {{The Linux Kernel/man|2|syscalls}}
⚙️ Internals
: {{The Linux Kernel/include|linux/syscalls.h}}
: {{The Linux Kernel/id|syscall_init}} installs {{The Linux Kernel/id|entry_SYSCALL_64}}
: {{The Linux Kernel/man|2|syscall}} ↪
:: {{The Linux Kernel/id|entry_SYSCALL_64}} ↯ call hierarchy:
::: {{The Linux Kernel/id|do_syscall_64}}
:::: {{The Linux Kernel/id|sys_call_table}}
📖 References
: {{w|System call}}
: [http://man7.org/linux/man-pages/dir_section_2.html Directory of system calls, man section 2]
: Anatomy of a system call, [https://lwn.net/Articles/604287/ part 1] and [https://lwn.net/Articles/604515/ part 2]
: {{The Linux Kernel/ltp|kernel|syscalls}}
💾 ''Historical''
: [http://safari.oreilly.com/0596005652/understandlk-CHP-10 ULK3 Chapter 10. System Calls]
=== Device files ===
Classic UNIX devices are [[../Human_interfaces#Char_devices|Char devices]] used as byte streams with {{The Linux Kernel/man|2|ioctl}}.
⚲ API
ls /dev
cat /proc/devices
cat /proc/misc
Examples: {{The Linux Kernel/id|misc_fops}} {{The Linux Kernel/id|usb_fops}} {{The Linux Kernel/id|memory_fops}}
: {{The Linux Kernel/doc|Allocated devices|admin-guide/devices.html}}
: {{The Linux Kernel/source|drivers/char}} – miscellaneous byte stream devices
: [https://www.oreilly.com/library/view/understanding-the-linux/0596005652/ch13.html Chapter 13. I/O Architecture and Device Drivers]
==== hiddev ====
⚠️ Warning: confusion. hiddev isn't real [[../Human_interfaces#HID|human interface device]]! It reuses USBHID infrastructure. hiddev is used for example for monitor controls and Uninterruptible Power Supplies.
This module supports these devices separately using a separate event interface on /dev/usb/hiddevX (char 180:96 to 180:111) (⚙️ {{The Linux Kernel/id|HIDDEV_MINOR_BASE}})
⚲ API
: {{The Linux Kernel/include|uapi/linux/hiddev.h}}
: {{The Linux Kernel/id|HID_CONNECT_HIDDEV}}
⚙️ Internals
: [https://elixir.bootlin.com/linux/latest/K/ident/CONFIG_USB_HIDDEV CONFIG_USB_HIDDEV]
: {{The Linux Kernel/include|linux/hiddev.h}}
: {{The Linux Kernel/id|hiddev_event}}
: {{The Linux Kernel/source|drivers/hid/usbhid/hiddev.c}}, {{The Linux Kernel/id|hiddev_fops}}
📖 References
: {{The Linux Kernel/doc|HIDDEV - Care and feeding of your Human Interface Devices|hid/hiddev.html}}
📖 References
: {{w|Device file}}
===Administration===
🔧 TODO
📖 References
: {{The Linux Kernel/man|7|netlink}}
: {{The Linux Kernel/doc|The Linux kernel user’s and administrator’s guide|admin-guide}}
==== procfs ====
The ''proc filesystem'' (''procfs'') is a special filesystem that presents information about processes and other system information in a hierarchical file-like structure, providing a more convenient and standardized method for dynamically accessing process data held in the kernel than traditional tracing methods or direct access to kernel memory.
Typically, it is mapped to a mount point named <code>/proc</code> at boot time.
The proc file system acts as an interface to internal data structures in the kernel.
It can be used to obtain information about the system and to change certain kernel parameters at runtime.
<code>/proc</code> includes a directory for each running process —including kernel threads— in directories named <code>/proc/PID</code>, where <code>PID</code> is the process number. Each directory contains information about one process, including the command that originally started the process (<code>/proc/PID/cmdline</code>), the names and values of its environment variables (<code>/proc/PID/environ</code>), a symlink to its working directory (<code>/proc/PID/cwd</code>), another symlink to the original executable file —if it still exists— (<code>/proc/PID/exe</code>), a couple of directories with symlinks to each open file descriptor (<code>/proc/PID/fd</code>) and the status —position, flags, ...— of each of them (<code>/proc/PID/fdinfo</code>), information about mapped files and blocks like heap and stack (<code>/proc/PID/maps</code>), a binary image representing the process's virtual memory (<code>/proc/PID/mem</code>), a symlink to the root path as seen by the process (<code>/proc/PID/root</code>), a directory containing hard links to any child process or thread (<code>/proc/PID/task</code>), basic information about a process including its run state and memory usage (<code>/proc/PID/status</code>) and much more.
📖 References
: {{w|procfs}}
: {{The Linux Kernel/man|5|procfs}}
: {{The Linux Kernel/man|7|namespaces}}
: {{The Linux Kernel/man|7|capabilities}}
: {{The Linux Kernel/include|linux/proc_fs.h}}
: {{The Linux Kernel/source|fs/proc}} – procfs implementation
==== sysfs ====
sysfs is a pseudo-file system that exports information about various kernel subsystems, hardware devices, and associated device drivers from the kernel's device model to user space through virtual files.
In addition to providing information about various devices and kernel subsystems, exported virtual files are also used for their configuring.
Sysfs is designed to export the information present in the device tree, which would then no longer clutter up procfs.
Sysfs is mounted under the <code>/sys</code> mount point.
⚲ API
: {{The Linux Kernel/include|linux/sysfs.h}}
📖 References
: {{w|sysfs}}
: {{The Linux Kernel/man|5|sysfs}}
: {{The Linux Kernel/doc|sysfs - filesystem for exporting kernel objects|filesystems/sysfs.html}}
: {{The Linux Kernel/source|fs/sysfs}} – sysfs implementation
==== devtmpfs ====
devtmpfs is a hybrid {{w|User space and kernel space|kernel/user space}} approach of a device filesystem to provide nodes before udev runs for the first time.
📖 References
: {{w|Device file}}
: {{The Linux Kernel/source|drivers/base/devtmpfs.c}} – kernel-maintained tmpfs /dev
== Virtualization ==
🔧 TODO
See {{w|Kernel-based Virtual Machine}}
📖 References
: {{The Linux Kernel/doc|Virtualization Support|virt/}}
📚 Further reading
: https://deepwiki.com/torvalds/linux/3-virtualization
=== Containerization ===
{{w|OS-level virtualization|Containerization}} is a powerful technology that has revolutionized the way software applications are developed, deployed, and run.
At its core, containerization provides an isolated environment for running applications, where the application has all the necessary dependencies and can be easily moved from one environment to another without worrying about any compatibility issues.
Containerization technology has its roots in the {{w|chroot}} command, which was introduced in the Unix operating system in the 1979.
Chroot provided a way to change the root directory of a process, effectively creating a new isolated environment with its own file system hierarchy.
However, this early implementation of containerization had limited functionality, and it was difficult to manage and control the various processes running within the container.
In the early 2000s, the Linux kernel introduced {{w|Linux namespaces|namespaces}} and {{w|cgroups|control groups}} to provide a more robust and scalable containerization solution.
'''Namespaces''' allow processes to have their own isolated view of the system, including the file system, network, and process ID space, while '''control groups''' provide fine-grained control over the resources allocated to each container, such as CPU, memory, and I/O.
Using these kernel features, containerization platforms such as {{w|Docker (software)|Docker}} and {{w|Kubernetes}} have emerged as popular solutions for building and deploying containerized applications at scale.
Containerization has become an essential tool for modern software development, allowing developers to easily package applications and deploy them in a consistent and predictable manner across different environments.
==== Resources usage and limits ====
⚲ API
: {{The Linux Kernel/man|2|chroot}} – change root directory
: {{The Linux Kernel/man|2|sysinfo}} – return system information
: {{The Linux Kernel/man|2|getrusage}} – get resource usage
: get/set resource limits:
:: {{The Linux Kernel/man|2|getrlimit}}
:: {{The Linux Kernel/man|2|setrlimit}}
:: {{The Linux Kernel/man|2|prlimit64}}
📖 References
: {{w|chroot}}
==== Namespaces ====
{{w|Linux namespaces}} provide the way to isolate and virtualize different aspects of the operating system.
Namespaces allow multiple instances of an application to run in isolation from each other, without interfering with the host system or other instances.
🔧 TODO
⚲ API
: /proc/self/ns
: {{The Linux Kernel/man|8|lsns}}, {{The Linux Kernel/man|2|ioctl_ns}} ↪ {{The Linux Kernel/id|ns_ioctl}}
: {{The Linux Kernel/man|1|unshare}}, {{The Linux Kernel/man|2|unshare}}
: {{The Linux Kernel/man|1|nsenter}}, {{The Linux Kernel/man|2|setns}}
: {{The Linux Kernel/man|2|clone3}} ↪ {{The Linux Kernel/id|clone_args}}
: {{The Linux Kernel/include|linux/ns_common.h}}
: {{The Linux Kernel/include|linux/proc_ns.h}}
: namespaces definition
:: {{The Linux Kernel/id|uts_namespace}}
:: {{The Linux Kernel/id|ipc_namespace}}
:: {{The Linux Kernel/id|mnt_namespace}}
:: {{The Linux Kernel/id|pid_namespace}}
:: {{The Linux Kernel/include|net/net_namespace.h}} - struct net
:: {{The Linux Kernel/id|user_namespace}}
:: {{The Linux Kernel/id|time_namespace}}
:: {{The Linux Kernel/id|cgroup_namespace}}
⚙️ Internals
: {{The Linux Kernel/id|init_nsproxy}} - struct of namespaces
: {{The Linux Kernel/source|kernel/nsproxy.c}} – namespace proxy management
: {{The Linux Kernel/source|fs/namespace.c}} – mount namespace
: {{The Linux Kernel/source|fs/proc/namespaces.c}} – /proc namespace entries
: {{The Linux Kernel/source|net/core/net_namespace.c}} – network namespace
: {{The Linux Kernel/source|kernel/time/namespace.c}} – time namespace
: {{The Linux Kernel/source|kernel/user_namespace.c}} – user namespace
: {{The Linux Kernel/source|kernel/pid_namespace.c}} – PID namespace
: {{The Linux Kernel/source|kernel/utsname.c}} – UTS namespace
: {{The Linux Kernel/source|kernel/cgroup/namespace.c}} – cgroup namespace
: {{The Linux Kernel/source|ipc/namespace.c}} – IPC namespace
📖 References
: {{The Linux Kernel/man|7|namespaces}}
: {{The Linux Kernel/man|7|uts_namespaces}}
: {{The Linux Kernel/man|7|ipc_namespaces}}
: {{The Linux Kernel/man|7|mount_namespace}}
: {{The Linux Kernel/man|7|pid_namespaces}}
: {{The Linux Kernel/man|7|network_namespaces}}
: {{The Linux Kernel/man|7|user_namespaces}}
: {{The Linux Kernel/man|7|time_namespaces}}
: {{The Linux Kernel/man|7|cgroup_namespaces}}
=== Control groups ===
{{w|cgroups}} are used to limit and control the resource usage of groups of processes. They allow administrators to set limits on CPU usage, memory usage, disk I/O, network bandwidth, and other resources, which can be useful for managing system performance and preventing resource contention.
There are two versions of cgroups.
Unlike v1, cgroup v2 has only a single process hierarchy and discriminates between processes, not threads.
Here are some of the key differences between cgroups v1 and v2:
{| class="wikitable"
|+
!
!cgroups v1
!cgroups v2
|-
|Hierarchy
|each subsystem had its own hierarchy, which could lead to complexity and confusion
|unified hierarchy, which simplifies management and enables better resource allocation
|-
|Controllers
|has several subsystems that are controlled by separate controllers, each with its own set of configuration files and parameters
|controllers are consolidated into a single "cgroup2" controller, which provides a unified interface for managing resources
|-
|Resource distribution
|distributes resources among groups of processes based on proportional sharing, which can lead to unpredictable results
|resources are distributed based on a "weighted fair queuing" algorithm, which provides better predictability and fairness
|}
Cgroups v2 is not backward compatible with cgroups v1, which means that migrating from v1 to v2 can be challenging and requires careful planning.
🔧 TODO
⚲ API
: {{The Linux Kernel/include|linux/cgroup.h}}
: {{The Linux Kernel/include|linux/cgroup-defs.h}}
:: {{The Linux Kernel/id|css_set}} – holds set of reference-counted pointers to {{The Linux Kernel/id|cgroup_subsys_state}} objects
:: {{The Linux Kernel/id|cgroup_subsys}}
: {{The Linux Kernel/include|linux/cgroup_subsys.h}} – list of cgroup subsystems
⚙️ Internals
: {{The Linux Kernel/id|cg_list}} – list of {{The Linux Kernel/id|css_set}} in task_struct
: {{The Linux Kernel/source|kernel/cgroup}} – cgroup core
: {{The Linux Kernel/id|cgroup_init}}
: {{The Linux Kernel/id|cgroup2_fs_type}}
: {{The Linux Kernel/source|tools/testing/selftests/cgroup}} – cgroup self-tests
📖 References
: [[The_Linux_Kernel/System/CGroup_v2|Control Groups v2]]
: {{The Linux Kernel/doc|Control Groups v1|admin-guide/cgroup-v1/}}
: {{The Linux Kernel/man|1|systemd-cgtop}}
: {{The Linux Kernel/man|5|systemd.slice}} – slice unit configuration
: {{The Linux Kernel/man|7|cgroups}}
: {{The Linux Kernel/man|7|cgroup_namespaces}}
: {{The Linux Kernel/doc|CFS Bandwidth Control for cgroups|scheduler/sched-bwc.html}}
: {{The Linux Kernel/doc|Real-Time group scheduling|scheduler/sched-rt-group.html}}
: [https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/latest/html/managing_monitoring_and_updating_the_kernel/setting-limits-for-applications_managing-monitoring-and-updating-the-kernel Understanding control groups, RHEL]
📚 Further reading
: https://github.com/containers
: [https://github.com/mk-fg/fgtk#cgrc cgrc tool]
💾 Historical
: https://github.com/mk-fg/cgroup-tools for cgroup v1
== Driver Model ==
The Linux driver model (or Device Model, or just DM) is a framework that provides a consistent and standardized way for device drivers to interface with the kernel.
It defines a set of rules, interfaces, and data structures that enable device drivers to communicate with the kernel and perform various operations, such as managing resources, lifecycle and more.
DM core structure consists of DM classes, DM buses, DM drivers and DM devices.
=== kobject ===
In the Linux kernel, a {{The Linux Kernel/id|kobject}} is a fundamental data structure used to represent kernel objects and provide a standardized interface for interacting with them.
A kobject is a generic object that can represent any type of kernel object, including devices, files, modules, and more.
The kobject data structure contains several fields that describe the object, such as its name, type, parent, and operations.
Each kobject has a unique name within its parent object, and the parent-child relationships form a hierarchy of kobjects.
Kobjects are managed by the kernel's sysfs file system, which provides a virtual file system that exposes kernel objects as files and directories in the user space.
Each kobject is associated with a sysfs directory, which contains files and attributes that can be read or written to interact with the kernel object.
⚲ Infrastructure API
: {{The Linux Kernel/include|linux/kobject.h}}
: {{The Linux Kernel/id|kobject}}
: {{The Linux Kernel/doc|Kernel objects manipulation|driver-api/basics.html#kernel-objects-manipulation}}
: 🔧 TODO
=== Classes ===
A class is a higher-level view of a device that abstracts out low-level implementation details.
Drivers may see a NVME storage or a SATA storage, but, at the class level, they are all simply {{The Linux Kernel/id|block_class}} devices.
Classes allow user space to work with devices based on what they do, rather than how they are connected or how they work.
General DM classes structure match {{w|composite pattern}}.
⚲ API
: ls /sys/class/
: {{The Linux Kernel/id|class_register}} registers {{The Linux Kernel/id|class}}
: {{The Linux Kernel/include|linux/device/class.h}}
👁 Examples: {{The Linux Kernel/id|input_class}}, {{The Linux Kernel/id|block_class}} {{The Linux Kernel/id|net_class}}
=== Buses ===
A {{w|peripheral bus}} is a channel between the processor and one or more peripheral devices.
A DM bus is {{w|Proxy pattern|proxy}} for a peripheral bus.
General DM buses structure match {{w|composite pattern}}.
For the purposes of the device model, all devices are connected via a bus, even if it is an internal, virtual, {{The Linux Kernel/id|platform_bus_type}}.
Buses can plug into each other.
A USB controller is usually a PCI device, for example.
The device model represents the actual connections between buses and the devices they control.
A bus is represented by the {{The Linux Kernel/id|bus_type}} structure.
It contains the name, the default attributes, the bus' methods, PM operations, and the driver core's private data.
⚲ API
: ls /sys/bus/
: {{The Linux Kernel/id|bus_register}} registers {{The Linux Kernel/id|bus_type}}
: {{The Linux Kernel/include|linux/device/bus.h}}
👁 Examples: {{The Linux Kernel/id|usb_bus_type}}, {{The Linux Kernel/id|hid_bus_type}}, {{The Linux Kernel/id|pci_bus_type}}, {{The Linux Kernel/id|scsi_bus_type}}, {{The Linux Kernel/id|platform_bus_type}}
: [[#Peripheral_buses|Peripheral buses]]
=== Drivers ===
⚲ API
: ls /sys/bus/:/drivers/
: {{The Linux Kernel/id|module_driver}} - simple common driver initializer, 👁 for example used in {{The Linux Kernel/id|module_pci_driver}}
: {{The Linux Kernel/id|driver_register}} registers {{The Linux Kernel/id|device_driver}} - basic device driver structure, one per all device instances.
: {{The Linux Kernel/include|linux/device/driver.h}}
👁 Examples: {{The Linux Kernel/id|hid_generic}} {{The Linux Kernel/id|usb_register_device_driver}}
'''Platform drivers'''
: {{The Linux Kernel/id|module_platform_driver}} registers {{The Linux Kernel/id|platform_driver}} (platform wrapper of {{The Linux Kernel/id|device_driver}}) with {{The Linux Kernel/id|platform_bus_type}}
: {{The Linux Kernel/include|linux/platform_device.h}}
👁 Examples: {{The Linux Kernel/id|gpio_mouse_device_driver}}
=== Devices ===
⚲ API
: ls /sys/devices/
: {{The Linux Kernel/id|device_register}} registers {{The Linux Kernel/id|device}} - the basic device structure, per each device instance
: {{The Linux Kernel/include|linux/device.h}} – {{The Linux Kernel/doc|Device drivers infrastructure|driver-api/infrastructure.html}}
: {{The Linux Kernel/include|linux/dev_printk.h}}
: {{The Linux Kernel/doc|Device Resource Management|driver-api/basics.html#device-resource-management}}, devres, devm ...
👁 Examples: {{The Linux Kernel/id|platform_bus}} mousedev_create
'''Platform devices'''
: {{The Linux Kernel/id|platform_device}} - platform wrapper of {{The Linux Kernel/doc|struct <big>device</big> - the basic device structure|driver-api/infrastructure.html#c.device}}, contains resources associated with the device
: it can be created dynamically by {{The Linux Kernel/id|platform_device_register_simple}} or {{The Linux Kernel/id|platform_device_alloc}}. Or registered with {{The Linux Kernel/id|platform_device_register}}.
: {{The Linux Kernel/id|platform_device_unregister}} - releases device and associated resources
👁 Examples: {{The Linux Kernel/id|add_pcspkr}}
⚲ API 🔧 TODO
: platform_device_info platform_device_id platform_device_register_full platform_device_add
: platform_device_add_data platform_device_register_data platform_device_add_resources
: attribute_group dev_pm_ops
<hr>
⚙️ Internals
: {{The Linux Kernel/include|linux/dev_printk.h}}
: {{The Linux Kernel/source|lib/kobject.c}} – kobject library
: {{The Linux Kernel/source|drivers/base/platform.c}} – platform bus for legacy devices
: {{The Linux Kernel/source|drivers/base/core.c}} – driver model core
📖 References
: {{The Linux Kernel/doc|Device drivers infrastructure|driver-api/infrastructure.html}}
: {{The Linux Kernel/doc|Everything you never wanted to know about kobjects, ksets, and ktypes|core-api/kobject.html}}
: {{The Linux Kernel/doc|Driver Model|driver-api/driver-model}}
:: {{The Linux Kernel/doc|The Linux Kernel Device Model|driver-api/driver-model/overview.html}}
:: {{The Linux Kernel/doc|Platform Devices and Drivers|driver-api/driver-model/platform.html}}
: [https://linux-kernel-labs.github.io/refs/heads/master/labs/device_model.html Linux Device Model, by linux-kernel-labs]
{{:The Linux Kernel/Modules}}
== {{w|Peripheral bus}}es ==
Peripheral buses are the communication channels used to connect various peripheral devices to a computer system.
These buses are used to transfer data between the peripheral devices and the system's processor or memory.
In the Linux kernel, peripheral buses are implemented as drivers that enable communication between the operating system and the hardware.
Peripheral buses in the Linux kernel include USB, PCI, SPI, I2C, and more.
Each of these buses has its own unique characteristics, and the Linux kernel provides support for a wide range of peripheral devices.
The PCI (Peripheral Component Interconnect) bus is used to connect internal hardware devices in a computer system.
It is commonly used to connect graphics cards, network cards, and other expansion cards.
The Linux kernel provides a PCI bus driver that enables communication between the operating system and the devices connected to the bus.
The USB (Universal Serial Bus) is one of the most commonly used peripheral buses in modern computer systems.
It allows devices to be hot-swapped and supports high-speed data transfer rates.
🔧 TODO: device enumeration
⚲ API
: Shell interface: ls /proc/bus/ /sys/bus/
See also [[#Buses|Buses of Driver Model]]
See [[../Human_interfaces#Input_devices|'''Input: keyboard, mouse etc''']]
'''PCI'''
⚲ Shell API
: lspci -vv
: column -t /proc/bus/pci/devices
Main article: [[The_Linux_Kernel/PCI|PCI]]
'''USB'''
⚲ Shell API
: lsusb -v
: ls /sys/bus/usb/
: cat /proc/bus/usb/devices
⚙️ Internals
: {{The Linux Kernel/source|drivers/usb}} – USB subsystem
📖 References
: {{The Linux Kernel/doc|USB|usb}}
: [http://lwn.net/images/pdf/LDD3/ch13.pdf LDD3:USB Drivers]
'''Other buses'''
: {{The Linux Kernel/source|drivers/bus}} – bus driver implementations
'''Buses for 🤖 embedded devices:'''
: {{The Linux Kernel/include|linux/gpio/driver.h}} {{The Linux Kernel/include|linux/gpio.h}} {{The Linux Kernel/source|drivers/gpio}} {{The Linux Kernel/source|tools/gpio}}
: {{The Linux Kernel/source|drivers/i2c}} – I2C bus framework, https://i2c.wiki.kernel.org
'''SPI'''
⚲ API
: {{The Linux Kernel/include|linux/spi/spi.h}}
: {{The Linux Kernel/source|tools/spi}} – SPI user-space tools
⚙️ Internals
: {{The Linux Kernel/source|drivers/spi}} – SPI bus framework
: {{The Linux Kernel/id|spi_register_controller}}
: {{The Linux Kernel/id|spi_controller_list}}🚧
📖 References
: {{The Linux Kernel/doc|SPI|spi}}
==Hardware interfaces==
Hardware interfaces are basic part of any operating, enabling communication between the processor and other HW components of a computer system: memory, peripheral devices and buses, various controllers.
[[../Multitasking/CPU#Interrupts|Interrupts]]
===I/O ports and registers===
I/O ports and registers are electronic components in computer systems that enable communication between CPU and other electronic controllers and devices.
⚲ API
{{The Linux Kernel/include|asm-generic/io.h}} — generic I/O port emulation.
: {{The Linux Kernel/id|ioport_map}}
: {{The Linux Kernel/id|ioread32}} / {{The Linux Kernel/id|iowrite32}} ...
: {{The Linux Kernel/id|readl}}/ {{The Linux Kernel/id|writel}} ...
: The {in,out}[bwl] macros are for emulating x86-style PCI/ISA IO space:
: {{The Linux Kernel/id|inl}}/ {{The Linux Kernel/id|outl}} ...
{{The Linux Kernel/include|linux/ioport.h}} — definitions of routines for detecting, reserving and allocating system resources.
: {{The Linux Kernel/id|request_mem_region}}
{{The Linux Kernel/source|arch/x86/include/asm/io.h}} – x86 I/O port and MMIO access
Functions for memory mapped registers:
{{The Linux Kernel/id|ioremap}} ...
==== regmap ====
The regmap subsystem provides a standardized abstraction layer for register access in device drivers.
It simplifies interactions with hardware registers across various bus types,
such as I2C, SPI, and MMIO, by offering a consistent API.
⚲ API
{{The Linux Kernel/include|linux/regmap.h}} — register map access API
: the most frequently used functions:
: {{The Linux Kernel/id|regmap_update_bits}}
: {{The Linux Kernel/id|regmap_write}}
: {{The Linux Kernel/id|regmap_read}}
: {{The Linux Kernel/id|regmap_reg_range}}
: {{The Linux Kernel/id|regmap_bulk_read}}
: {{The Linux Kernel/id|devm_regmap_init_i2c}}
: {{The Linux Kernel/id|regmap_set_bits}}
: {{The Linux Kernel/id|regmap_field_write}}
: {{The Linux Kernel/id|regmap_bulk_write}}
: {{The Linux Kernel/id|regmap_clear_bits}}
: {{The Linux Kernel/id|regmap_write_bits}}
: {{The Linux Kernel/id|regmap_config}}
: {{The Linux Kernel/id|regmap_read_poll_timeout}}
: {{The Linux Kernel/id|devm_regmap_init_mmio}}
⚙️ Internals
{{The Linux Kernel/source|drivers/base/regmap}} – register map abstraction layer
===Hardware Device Drivers===
Keywords: firmware, hotplug, clock, mux, pin
⚙️ Internals
: {{The Linux Kernel/source|drivers/acpi}} – ACPI drivers
: {{The Linux Kernel/source|drivers/base}} – driver model core
: {{The Linux Kernel/source|drivers/sdio}} – {{w|Secure Digital#SDIO cards|Secure Digital Input Output}}
: {{The Linux Kernel/source|drivers/virtio}} – virtio guest drivers
: {{The Linux Kernel/source|drivers/hwmon}} – hardware monitoring
: {{The Linux Kernel/source|drivers/thermal}} – thermal management
: {{The Linux Kernel/source|drivers/pinctrl}} – pin control and multiplexing
: {{The Linux Kernel/source|drivers/clk}} – clock framework
📖 References
: {{The Linux Kernel/doc|Pin control subsystem|driver-api/pin-control.html}}
: {{The Linux Kernel/doc|Linux Hardware Monitoring|hwmon}}
: {{The Linux Kernel/doc|Firmware guide|firmware-guide}}
: {{The Linux Kernel/doc|Devicetree|devicetree}}
: https://hwmon.wiki.kernel.org/
: [http://lwn.net/images/pdf/LDD3/ch14.pdf LDD3:The Linux Device Model]
: http://www.tldp.org/LDP/tlk/dd/drivers.html
: http://www.xml.com/ldd/chapter/book/
: http://examples.oreilly.com/linuxdrive2/
=== Booting and halting ===
==== Kernel booting ====
This is loaded in two stages - in the first stage the kernel (as a compressed image file) is loaded into memory and decompressed, and a few fundamental functions such as essential hardware and basic memory management (memory paging) are set up.
Control is then switched one final time to the main kernel start process calling {{The Linux Kernel/id|start_kernel}}, which then performs the majority of system setup (interrupts, the rest of memory management, device and driver initialization, etc.) before spawning separately, the idle process and scheduler, and the init process (which is executed in user space).
'''Kernel loading stage'''
The kernel as loaded is typically an image file, compressed into either zImage or bzImage formats with zlib.
A routine at the head of it does a minimal amount of hardware setup, decompresses the image fully into high memory, and takes note of any RAM disk if configured.
It then executes kernel startup via startup_64 (for x86_64 architecture).
: {{The Linux Kernel/source|arch/x86/boot/compressed/vmlinux.lds.S}} - linker script defines entry {{The Linux Kernel/id|startup_64}} in
: {{The Linux Kernel/source|arch/x86/boot/compressed/head_64.S}} - assembly of extractor
: {{The Linux Kernel/id|extract_kernel}} - extractor in language C
:: prints
Decompressing Linux... done.
Booting the kernel.
'''Kernel startup stage'''
The startup function for the kernel (also called the swapper or process 0) establishes memory management (paging tables and memory paging), detects the type of CPU and any additional functionality such as floating point capabilities, and then switches to non-architecture specific Linux kernel functionality via a call to {{The Linux Kernel/id|start_kernel}}.
↯ Startup call hierarchy:
: {{The Linux Kernel/source|arch/x86/kernel/vmlinux.lds.S}} – linker script
: {{The Linux Kernel/source|arch/x86/kernel/head_64.S}} – assembly of uncompressed startup code
: {{The Linux Kernel/source|arch/x86/kernel/head64.c}} – platform dependent startup:
:: {{The Linux Kernel/id|x86_64_start_kernel}}
:: {{The Linux Kernel/id|x86_64_start_reservations}}
: {{The Linux Kernel/source|init/main.c}} – main initialization code
:: {{The Linux Kernel/id|start_kernel}} 200 SLOC
::: {{The Linux Kernel/id|mm_init}}
:::: {{The Linux Kernel/id|mem_init}}
:::: {{The Linux Kernel/id|vmalloc_init}}
::: {{The Linux Kernel/id|sched_init}}
::: {{The Linux Kernel/id|rcu_init}} – {{w|Read-copy-update}}
::: {{The Linux Kernel/id|rest_init}}
:::: {{The Linux Kernel/id|kernel_init}} - deferred kernel thread #1
::::: {{The Linux Kernel/id|kernel_init_freeable}} This and following functions are defined with attribute {{The Linux Kernel/id|__init}}
:::::: {{The Linux Kernel/id|prepare_namespace}}
::::::: {{The Linux Kernel/id|initrd_load}}
::::::: {{The Linux Kernel/id|mount_root}}
::::: {{The Linux Kernel/id|run_init_process}} obviously runs the first process {{The Linux Kernel/man|1|init}}
:::: {{The Linux Kernel/id|kthreadd}} – deferred kernel thread #2
:::: {{The Linux Kernel/id|cpu_startup_entry}}
::::: {{The Linux Kernel/id|do_idle}}
{{The Linux Kernel/id|start_kernel}} executes a wide range of initialization functions. It sets up interrupt handling (IRQs), further configures memory, starts the {{The Linux Kernel/man|1|init}} process (the first user-space process), and then starts the idle task via {{The Linux Kernel/id|cpu_startup_entry}}. Notably, the kernel startup process also mounts the {{w|initial ramdisk}} (initrd) that was loaded previously as the temporary root file system during the boot phase. The initrd allows driver modules to be loaded directly from memory, without reliance upon other devices (e.g. a hard disk) and the drivers that are needed to access them (e.g. a SATA driver). This split of some drivers statically compiled into the kernel and other drivers loaded from initrd allows for a smaller kernel. The root file system is later switched via a call to {{The Linux Kernel/man|8|pivot_root}} / {{The Linux Kernel/man|2|pivot_root}} which unmounts the temporary root file system and replaces it with the use of the real one, once the latter is accessible. The memory used by the temporary root file system is then reclaimed.
⚙️ Internals
: {{The Linux Kernel/source|arch/x86/Kconfig.debug}} – x86 debugging Kconfig options
: {{The Linux Kernel/include|linux/smpboot.h}}
: {{The Linux Kernel/source|kernel/smpboot.c}} – common SMP CPU bringup/teardown
: {{The Linux Kernel/source|arch/x86/kernel/smpboot.c}} – x86 SMP booting
===== ... =====
📖 References
: Article about [[../Booting|booting of the kernel]]
: {{The Linux Kernel/doc|Initial RAM disk|admin-guide/initrd.html}}
: [https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt#:~:text=initcall_debug initcall_debug, boot argument]
: {{w|Linux startup process}}
: {{w|init}}
: [http://lwn.net/Articles/632528/ Linux (U)EFI boot process]
: {{The Linux Kernel/doc|The kernel’s command-line parameters|admin-guide/kernel-parameters.html}}
: {{The Linux Kernel/doc|The EFI Boot Stub|admin-guide/efi-stub.html}}
: {{The Linux Kernel/doc|Boot Configuration|admin-guide/bootconfig.html}}
: {{The Linux Kernel/doc|Boot time memory management|core-api/boot-time-mm.html}}
: [https://github.com/0xAX/linux-insides/blob/master/Booting/README.md Kernel booting process]
: [https://github.com/0xAX/linux-insides/blob/master/Initialization/README.md Kernel initialization process]
📚 Further reading
: {{The Linux Kernel/doc|Boot-time tracing|trace/boottime-trace.html}}
: {{w|E820}}
💾 ''Historical''
: http://tldp.org/HOWTO/Linux-i386-Boot-Code-HOWTO/
: http://www.tldp.org/LDP/lki/lki-1.html
: http://www.tldp.org/HOWTO/KernelAnalysis-HOWTO-4.html
==== Halting or rebooting ====
🔧 TODO
⚲ API
: {{The Linux Kernel/include|linux/reboot.h}}
: {{The Linux Kernel/include|linux/stop_machine.h}}
:: {{The Linux Kernel/id|print_stop_info}}
:: {{The Linux Kernel/id|stop_machine}}
::: {{The Linux Kernel/id|stop_core_cpuslocked}}
: {{The Linux Kernel/id|reboot_mode}}
: {{The Linux Kernel/id|sys_reboot}} calls
:: {{The Linux Kernel/id|machine_restart}} or
:: {{The Linux Kernel/id|machine_halt}} or
:: {{The Linux Kernel/id|machine_power_off}}
: {{The Linux Kernel/include|linux/reboot-mode.h}}
:: {{The Linux Kernel/id|reboot_mode_driver}}
::: {{The Linux Kernel/id|devm_reboot_mode_register}}
⚙️ Internals
: {{The Linux Kernel/source|kernel/reboot.c}} – reboot, halt and power-off
: {{The Linux Kernel/source|kernel/stop_machine.c}} – stop all CPUs for safe code patching
:: {{The Linux Kernel/id|cpu_stopper}}
:: {{The Linux Kernel/id|cpu_stop_init}}
::: {{The Linux Kernel/id|cpu_stopper_thread}} – "migration" tasks
: {{The Linux Kernel/source|arch/x86/kernel/reboot.c}} – x86 reboot methods
: [[../Softdog Driver/]]
==== Power management ====
Keyword: suspend, alarm, hibernation.
⚲ API
: /sys/power/
: /sys/kernel/debug/wakeup_sources
:: <big>⌨️</big> hands-on:
:: sudo awk '{gsub("^ ","?")} NR>1 {if ($6) {print $1}}' /sys/kernel/debug/wakeup_sources
: {{The Linux Kernel/include|linux/pm.h}}
:: {{The Linux Kernel/include|linux|dev_pm_ops}}
: {{The Linux Kernel/include|linux/pm_qos.h}}
: {{The Linux Kernel/include|linux/pm_clock.h}}
: {{The Linux Kernel/include|linux/pm_domain.h}}
: {{The Linux Kernel/include|linux/pm_wakeirq.h}}
: {{The Linux Kernel/include|linux/pm_wakeup.h}}
:: {{The Linux Kernel/id|wakeup_source}}
:: {{The Linux Kernel/id|wakeup_source_register}}
: {{The Linux Kernel/include|linux/suspend.h}}
:: {{The Linux Kernel/id|pm_suspend}} suspends the system
: Suspend and wakeup depend on
:: {{The Linux Kernel/man|2|timer_create}} and {{The Linux Kernel/man|2|timerfd_create}} with clock ids {{The Linux Kernel/id|CLOCK_REALTIME_ALARM}} or {{The Linux Kernel/id|CLOCK_BOOTTIME_ALARM}} will wake the system if it is suspended.
:: {{The Linux Kernel/man|2|epoll_ctl}} with flag {{The Linux Kernel/id|EPOLLWAKEUP}} blocks suspend
:: See also {{The Linux Kernel/man|7|capabilities}} {{The Linux Kernel/id|CAP_WAKE_ALARM}}, {{The Linux Kernel/id|CAP_BLOCK_SUSPEND}}
⚙️ Internals
: {{The Linux Kernel/id|CONFIG_PM}}
: {{The Linux Kernel/id|CONFIG_SUSPEND}}
: {{The Linux Kernel/source|kernel/power}} – suspend, hibernate and PM core
: {{The Linux Kernel/id|alarm_init}}
: {{The Linux Kernel/source|kernel/time/alarmtimer.c}} – alarm timer for wakeup events
: {{The Linux Kernel/source|drivers/base/power}}: {{The Linux Kernel/id|wakeup_sources}}
📖 References
: {{The Linux Kernel/doc|PM administration|admin-guide/pm}}
: {{The Linux Kernel/doc|CPU and Device PM|driver-api/pm}}
: {{The Linux Kernel/doc|Power Management|power}}
: {{The Linux Kernel/doc|sysfs power testing ABI|admin-guide/abi-testing.html#file-testing-sysfs-power}}
: https://lwn.net/Kernel/Index/#Power_management
: {{w|PowerTOP}}
: [https://linux.die.net/man/1/cpupower cpupower]
: [https://manpages.ubuntu.com/manpages/xenial/man8/tlp.8.html tlp] – apply laptop power management settings
: {{w|ACPI}} – Advanced Configuration and Power Interface
===== Runtime PM =====
Keywords: runtime power management, devices power management opportunistic suspend, autosuspend, autosleep.
⚲ API
: /sys/devices/.../power/:
:: async autosuspend_delay_ms control runtime_active_kids runtime_active_time runtime_enabled runtime_status runtime_suspended_time runtime_usage
: {{The Linux Kernel/include|linux/pm_runtime.h}}
:: {{The Linux Kernel/id|pm_runtime_mark_last_busy}}
:: {{The Linux Kernel/id|pm_runtime_enable}}
:: {{The Linux Kernel/id|pm_runtime_disable}}
:: {{The Linux Kernel/id|pm_runtime_get}} – asynchronous get
:: {{The Linux Kernel/id|pm_runtime_get_sync}}
:: {{The Linux Kernel/id|pm_runtime_resume_and_get}} – preferable synchronous get
:: {{The Linux Kernel/id|pm_runtime_put}}
:: {{The Linux Kernel/id|pm_runtime_put_noidle}} – just decrement usage counter
:: {{The Linux Kernel/id|pm_runtime_put_sync}}
:: {{The Linux Kernel/id|pm_runtime_put_autosuspend}}
: {{The Linux Kernel/id|SET_RUNTIME_PM_OPS}}
👁 Example: {{The Linux Kernel/id|ac97_pm}}
⚙️ Internals
: {{The Linux Kernel/id|CONFIG_PM_AUTOSLEEP}}
=== ... ===
📖 References
: {{The Linux Kernel/doc|Runtime Power Management Framework for I/O Devices|power/runtime_pm.html}}
: [https://wiki.linuxfoundation.org/realtime/documentation/howto/applications/cpuidle CPU idle power saving methods for real-time workloads]
: [https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-devices-power Sysfs devices PM API]
: [https://www.kernel.org/doc/Documentation/driver-api/usb/power-management.rst Power Management for USB]
: [https://lwn.net/Kernel/Index/#Power_management-Opportunistic_suspend Opportunistic suspend]
📚 Further reading
: https://deepwiki.com/torvalds/linux/5-hardware-drivers
== Building and Updating ==
: [[../Updating/]]
{{BookCat}}
nvxtdhk6d2lqpkjr6pxy52lrv5ob68f
4640248
4640239
2026-06-13T20:25:24Z
Conan
3188
fix service file -> device file wiki link
4640248
wikitext
text/x-wiki
<noinclude>{{DISPLAYTITLE:System functionality}}</noinclude>
{| style="float: right; text-align: center; border-spacing: 0; margin: auto;" cellpadding="5pc"
! bgcolor="#edf" |system
|-
| bgcolor="#cdf" |[[#System interfaces|system interfaces]]
|-
| bgcolor=#abe |[[#Virtualization|virtualization]]
|-
| bgcolor="#aad" |[[#Driver Model|Driver Model]]
|- style=""
| bgcolor="#99c" |[[../Modules|modules]]
|-
| bgcolor="#88a" |[[#Peripheral buses|buses]], [[The Linux Kernel/PCI|PCI]]
|-
| bgcolor="#889" |[[#Hardware interfaces|hardware interfaces]], [[#Booting and halting|[re]booting]]
|}
The System functionality is named after system calls and sysfs.
It differs from other kernel functionalities.
Its subsystems are not tightly coupled across layers but instead provide infrastructure to other parts of the kernel.
For example, the System Calls subsystem offers a common interface layer for all functionalities exposed to user space.
== System interfaces ==
There are several mechanisms available in Linux for user space system interfaces.
One of the most common mechanisms is through {{w|system call}}s, which are functions that allow user space applications to request services from the kernel, such as opening files, creating processes, and accessing system resources.
Another mechanism for user space communication is through {{w|device file}}s, which are special files that represent physical or virtual devices, such as storage devices, network interfaces, and various peripheral devices.
User space applications can communicate with these devices by reading from and writing to their corresponding device files.
In summary, Linux kernel provides several mechanisms for user space communication, including system calls, device files, {{w|procfs}}, {{w|sysfs}}, and devtmpfs.
These mechanisms enable user space applications to communicate with the kernel and access system resources in a safe and controlled manner.
⚲ APIs:
: kernel space API for user space
:: {{The Linux Kernel/include|uapi}}
:: {{The Linux Kernel/source|arch/x86/include/uapi}} – x86 user-space API headers
:: {{The Linux Kernel/man|2|ioctl}}
:: [[#System calls|System calls]]
:: [[#Device files|Device files]]
: user space API for kernel space
:: {{The Linux Kernel/include|linux/uaccess.h}}:
:: {{The Linux Kernel/id|copy_to_user}}
:: {{The Linux Kernel/id|copy_from_user}}
📖 References
: {{The Linux Kernel/doc|User-space API guides|userspace-api}}
: {{w|User space}}
: {{w|Linux kernel interfaces}}
: [http://safari.oreilly.com/0596005652/understandlk-CHP-11 ULK3 Chapter 11. Signals]
===System calls===
System calls are the fundamental interface between user space applications and the Linux kernel.
They provide a way for programs to request services from the operating system, such as opening a file, allocating memory, or creating a new process.
In the Linux kernel, system calls are implemented as functions that can be invoked by user space programs using a software interrupt mechanism.
The Linux kernel provides hundreds of system calls, each with its own unique functionality.
These system calls are organized into categories such as process management, file management, network communication, and memory management.
User space applications can use these system calls to interact with the kernel and access the underlying system resources.
⚲ API
: [[../Syscalls|Table of syscalls]]
: {{The Linux Kernel/man|2|syscalls}}
⚙️ Internals
: {{The Linux Kernel/include|linux/syscalls.h}}
: {{The Linux Kernel/id|syscall_init}} installs {{The Linux Kernel/id|entry_SYSCALL_64}}
: {{The Linux Kernel/man|2|syscall}} ↪
:: {{The Linux Kernel/id|entry_SYSCALL_64}} ↯ call hierarchy:
::: {{The Linux Kernel/id|do_syscall_64}}
:::: {{The Linux Kernel/id|sys_call_table}}
📖 References
: {{w|System call}}
: [http://man7.org/linux/man-pages/dir_section_2.html Directory of system calls, man section 2]
: Anatomy of a system call, [https://lwn.net/Articles/604287/ part 1] and [https://lwn.net/Articles/604515/ part 2]
: {{The Linux Kernel/ltp|kernel|syscalls}}
💾 ''Historical''
: [http://safari.oreilly.com/0596005652/understandlk-CHP-10 ULK3 Chapter 10. System Calls]
=== Device files ===
Classic UNIX devices are [[../Human_interfaces#Char_devices|Char devices]] used as byte streams with {{The Linux Kernel/man|2|ioctl}}.
⚲ API
ls /dev
cat /proc/devices
cat /proc/misc
Examples: {{The Linux Kernel/id|misc_fops}} {{The Linux Kernel/id|usb_fops}} {{The Linux Kernel/id|memory_fops}}
: {{The Linux Kernel/doc|Allocated devices|admin-guide/devices.html}}
: {{The Linux Kernel/source|drivers/char}} – miscellaneous byte stream devices
: [https://www.oreilly.com/library/view/understanding-the-linux/0596005652/ch13.html Chapter 13. I/O Architecture and Device Drivers]
==== hiddev ====
⚠️ Warning: confusion. hiddev isn't real [[../Human_interfaces#HID|human interface device]]! It reuses USBHID infrastructure. hiddev is used for example for monitor controls and Uninterruptible Power Supplies.
This module supports these devices separately using a separate event interface on /dev/usb/hiddevX (char 180:96 to 180:111) (⚙️ {{The Linux Kernel/id|HIDDEV_MINOR_BASE}})
⚲ API
: {{The Linux Kernel/include|uapi/linux/hiddev.h}}
: {{The Linux Kernel/id|HID_CONNECT_HIDDEV}}
⚙️ Internals
: [https://elixir.bootlin.com/linux/latest/K/ident/CONFIG_USB_HIDDEV CONFIG_USB_HIDDEV]
: {{The Linux Kernel/include|linux/hiddev.h}}
: {{The Linux Kernel/id|hiddev_event}}
: {{The Linux Kernel/source|drivers/hid/usbhid/hiddev.c}}, {{The Linux Kernel/id|hiddev_fops}}
📖 References
: {{The Linux Kernel/doc|HIDDEV - Care and feeding of your Human Interface Devices|hid/hiddev.html}}
📖 References
: {{w|Device file}}
===Administration===
🔧 TODO
📖 References
: {{The Linux Kernel/man|7|netlink}}
: {{The Linux Kernel/doc|The Linux kernel user’s and administrator’s guide|admin-guide}}
==== procfs ====
The ''proc filesystem'' (''procfs'') is a special filesystem that presents information about processes and other system information in a hierarchical file-like structure, providing a more convenient and standardized method for dynamically accessing process data held in the kernel than traditional tracing methods or direct access to kernel memory.
Typically, it is mapped to a mount point named <code>/proc</code> at boot time.
The proc file system acts as an interface to internal data structures in the kernel.
It can be used to obtain information about the system and to change certain kernel parameters at runtime.
<code>/proc</code> includes a directory for each running process —including kernel threads— in directories named <code>/proc/PID</code>, where <code>PID</code> is the process number. Each directory contains information about one process, including the command that originally started the process (<code>/proc/PID/cmdline</code>), the names and values of its environment variables (<code>/proc/PID/environ</code>), a symlink to its working directory (<code>/proc/PID/cwd</code>), another symlink to the original executable file —if it still exists— (<code>/proc/PID/exe</code>), a couple of directories with symlinks to each open file descriptor (<code>/proc/PID/fd</code>) and the status —position, flags, ...— of each of them (<code>/proc/PID/fdinfo</code>), information about mapped files and blocks like heap and stack (<code>/proc/PID/maps</code>), a binary image representing the process's virtual memory (<code>/proc/PID/mem</code>), a symlink to the root path as seen by the process (<code>/proc/PID/root</code>), a directory containing hard links to any child process or thread (<code>/proc/PID/task</code>), basic information about a process including its run state and memory usage (<code>/proc/PID/status</code>) and much more.
📖 References
: {{w|procfs}}
: {{The Linux Kernel/man|5|procfs}}
: {{The Linux Kernel/man|7|namespaces}}
: {{The Linux Kernel/man|7|capabilities}}
: {{The Linux Kernel/include|linux/proc_fs.h}}
: {{The Linux Kernel/source|fs/proc}} – procfs implementation
==== sysfs ====
sysfs is a pseudo-file system that exports information about various kernel subsystems, hardware devices, and associated device drivers from the kernel's device model to user space through virtual files.
In addition to providing information about various devices and kernel subsystems, exported virtual files are also used for their configuring.
Sysfs is designed to export the information present in the device tree, which would then no longer clutter up procfs.
Sysfs is mounted under the <code>/sys</code> mount point.
⚲ API
: {{The Linux Kernel/include|linux/sysfs.h}}
📖 References
: {{w|sysfs}}
: {{The Linux Kernel/man|5|sysfs}}
: {{The Linux Kernel/doc|sysfs - filesystem for exporting kernel objects|filesystems/sysfs.html}}
: {{The Linux Kernel/source|fs/sysfs}} – sysfs implementation
==== devtmpfs ====
devtmpfs is a hybrid {{w|User space and kernel space|kernel/user space}} approach of a device filesystem to provide nodes before udev runs for the first time.
📖 References
: {{w|Device file}}
: {{The Linux Kernel/source|drivers/base/devtmpfs.c}} – kernel-maintained tmpfs /dev
== Virtualization ==
🔧 TODO
See {{w|Kernel-based Virtual Machine}}
📖 References
: {{The Linux Kernel/doc|Virtualization Support|virt/}}
📚 Further reading
: https://deepwiki.com/torvalds/linux/3-virtualization
=== Containerization ===
{{w|OS-level virtualization|Containerization}} is a powerful technology that has revolutionized the way software applications are developed, deployed, and run.
At its core, containerization provides an isolated environment for running applications, where the application has all the necessary dependencies and can be easily moved from one environment to another without worrying about any compatibility issues.
Containerization technology has its roots in the {{w|chroot}} command, which was introduced in the Unix operating system in the 1979.
Chroot provided a way to change the root directory of a process, effectively creating a new isolated environment with its own file system hierarchy.
However, this early implementation of containerization had limited functionality, and it was difficult to manage and control the various processes running within the container.
In the early 2000s, the Linux kernel introduced {{w|Linux namespaces|namespaces}} and {{w|cgroups|control groups}} to provide a more robust and scalable containerization solution.
'''Namespaces''' allow processes to have their own isolated view of the system, including the file system, network, and process ID space, while '''control groups''' provide fine-grained control over the resources allocated to each container, such as CPU, memory, and I/O.
Using these kernel features, containerization platforms such as {{w|Docker (software)|Docker}} and {{w|Kubernetes}} have emerged as popular solutions for building and deploying containerized applications at scale.
Containerization has become an essential tool for modern software development, allowing developers to easily package applications and deploy them in a consistent and predictable manner across different environments.
==== Resources usage and limits ====
⚲ API
: {{The Linux Kernel/man|2|chroot}} – change root directory
: {{The Linux Kernel/man|2|sysinfo}} – return system information
: {{The Linux Kernel/man|2|getrusage}} – get resource usage
: get/set resource limits:
:: {{The Linux Kernel/man|2|getrlimit}}
:: {{The Linux Kernel/man|2|setrlimit}}
:: {{The Linux Kernel/man|2|prlimit64}}
📖 References
: {{w|chroot}}
==== Namespaces ====
{{w|Linux namespaces}} provide the way to isolate and virtualize different aspects of the operating system.
Namespaces allow multiple instances of an application to run in isolation from each other, without interfering with the host system or other instances.
🔧 TODO
⚲ API
: /proc/self/ns
: {{The Linux Kernel/man|8|lsns}}, {{The Linux Kernel/man|2|ioctl_ns}} ↪ {{The Linux Kernel/id|ns_ioctl}}
: {{The Linux Kernel/man|1|unshare}}, {{The Linux Kernel/man|2|unshare}}
: {{The Linux Kernel/man|1|nsenter}}, {{The Linux Kernel/man|2|setns}}
: {{The Linux Kernel/man|2|clone3}} ↪ {{The Linux Kernel/id|clone_args}}
: {{The Linux Kernel/include|linux/ns_common.h}}
: {{The Linux Kernel/include|linux/proc_ns.h}}
: namespaces definition
:: {{The Linux Kernel/id|uts_namespace}}
:: {{The Linux Kernel/id|ipc_namespace}}
:: {{The Linux Kernel/id|mnt_namespace}}
:: {{The Linux Kernel/id|pid_namespace}}
:: {{The Linux Kernel/include|net/net_namespace.h}} - struct net
:: {{The Linux Kernel/id|user_namespace}}
:: {{The Linux Kernel/id|time_namespace}}
:: {{The Linux Kernel/id|cgroup_namespace}}
⚙️ Internals
: {{The Linux Kernel/id|init_nsproxy}} - struct of namespaces
: {{The Linux Kernel/source|kernel/nsproxy.c}} – namespace proxy management
: {{The Linux Kernel/source|fs/namespace.c}} – mount namespace
: {{The Linux Kernel/source|fs/proc/namespaces.c}} – /proc namespace entries
: {{The Linux Kernel/source|net/core/net_namespace.c}} – network namespace
: {{The Linux Kernel/source|kernel/time/namespace.c}} – time namespace
: {{The Linux Kernel/source|kernel/user_namespace.c}} – user namespace
: {{The Linux Kernel/source|kernel/pid_namespace.c}} – PID namespace
: {{The Linux Kernel/source|kernel/utsname.c}} – UTS namespace
: {{The Linux Kernel/source|kernel/cgroup/namespace.c}} – cgroup namespace
: {{The Linux Kernel/source|ipc/namespace.c}} – IPC namespace
📖 References
: {{The Linux Kernel/man|7|namespaces}}
: {{The Linux Kernel/man|7|uts_namespaces}}
: {{The Linux Kernel/man|7|ipc_namespaces}}
: {{The Linux Kernel/man|7|mount_namespace}}
: {{The Linux Kernel/man|7|pid_namespaces}}
: {{The Linux Kernel/man|7|network_namespaces}}
: {{The Linux Kernel/man|7|user_namespaces}}
: {{The Linux Kernel/man|7|time_namespaces}}
: {{The Linux Kernel/man|7|cgroup_namespaces}}
=== Control groups ===
{{w|cgroups}} are used to limit and control the resource usage of groups of processes. They allow administrators to set limits on CPU usage, memory usage, disk I/O, network bandwidth, and other resources, which can be useful for managing system performance and preventing resource contention.
There are two versions of cgroups.
Unlike v1, cgroup v2 has only a single process hierarchy and discriminates between processes, not threads.
Here are some of the key differences between cgroups v1 and v2:
{| class="wikitable"
|+
!
!cgroups v1
!cgroups v2
|-
|Hierarchy
|each subsystem had its own hierarchy, which could lead to complexity and confusion
|unified hierarchy, which simplifies management and enables better resource allocation
|-
|Controllers
|has several subsystems that are controlled by separate controllers, each with its own set of configuration files and parameters
|controllers are consolidated into a single "cgroup2" controller, which provides a unified interface for managing resources
|-
|Resource distribution
|distributes resources among groups of processes based on proportional sharing, which can lead to unpredictable results
|resources are distributed based on a "weighted fair queuing" algorithm, which provides better predictability and fairness
|}
Cgroups v2 is not backward compatible with cgroups v1, which means that migrating from v1 to v2 can be challenging and requires careful planning.
🔧 TODO
⚲ API
: {{The Linux Kernel/include|linux/cgroup.h}}
: {{The Linux Kernel/include|linux/cgroup-defs.h}}
:: {{The Linux Kernel/id|css_set}} – holds set of reference-counted pointers to {{The Linux Kernel/id|cgroup_subsys_state}} objects
:: {{The Linux Kernel/id|cgroup_subsys}}
: {{The Linux Kernel/include|linux/cgroup_subsys.h}} – list of cgroup subsystems
⚙️ Internals
: {{The Linux Kernel/id|cg_list}} – list of {{The Linux Kernel/id|css_set}} in task_struct
: {{The Linux Kernel/source|kernel/cgroup}} – cgroup core
: {{The Linux Kernel/id|cgroup_init}}
: {{The Linux Kernel/id|cgroup2_fs_type}}
: {{The Linux Kernel/source|tools/testing/selftests/cgroup}} – cgroup self-tests
📖 References
: [[The_Linux_Kernel/System/CGroup_v2|Control Groups v2]]
: {{The Linux Kernel/doc|Control Groups v1|admin-guide/cgroup-v1/}}
: {{The Linux Kernel/man|1|systemd-cgtop}}
: {{The Linux Kernel/man|5|systemd.slice}} – slice unit configuration
: {{The Linux Kernel/man|7|cgroups}}
: {{The Linux Kernel/man|7|cgroup_namespaces}}
: {{The Linux Kernel/doc|CFS Bandwidth Control for cgroups|scheduler/sched-bwc.html}}
: {{The Linux Kernel/doc|Real-Time group scheduling|scheduler/sched-rt-group.html}}
: [https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/latest/html/managing_monitoring_and_updating_the_kernel/setting-limits-for-applications_managing-monitoring-and-updating-the-kernel Understanding control groups, RHEL]
📚 Further reading
: https://github.com/containers
: [https://github.com/mk-fg/fgtk#cgrc cgrc tool]
💾 Historical
: https://github.com/mk-fg/cgroup-tools for cgroup v1
== Driver Model ==
The Linux driver model (or Device Model, or just DM) is a framework that provides a consistent and standardized way for device drivers to interface with the kernel.
It defines a set of rules, interfaces, and data structures that enable device drivers to communicate with the kernel and perform various operations, such as managing resources, lifecycle and more.
DM core structure consists of DM classes, DM buses, DM drivers and DM devices.
=== kobject ===
In the Linux kernel, a {{The Linux Kernel/id|kobject}} is a fundamental data structure used to represent kernel objects and provide a standardized interface for interacting with them.
A kobject is a generic object that can represent any type of kernel object, including devices, files, modules, and more.
The kobject data structure contains several fields that describe the object, such as its name, type, parent, and operations.
Each kobject has a unique name within its parent object, and the parent-child relationships form a hierarchy of kobjects.
Kobjects are managed by the kernel's sysfs file system, which provides a virtual file system that exposes kernel objects as files and directories in the user space.
Each kobject is associated with a sysfs directory, which contains files and attributes that can be read or written to interact with the kernel object.
⚲ Infrastructure API
: {{The Linux Kernel/include|linux/kobject.h}}
: {{The Linux Kernel/id|kobject}}
: {{The Linux Kernel/doc|Kernel objects manipulation|driver-api/basics.html#kernel-objects-manipulation}}
: 🔧 TODO
=== Classes ===
A class is a higher-level view of a device that abstracts out low-level implementation details.
Drivers may see a NVME storage or a SATA storage, but, at the class level, they are all simply {{The Linux Kernel/id|block_class}} devices.
Classes allow user space to work with devices based on what they do, rather than how they are connected or how they work.
General DM classes structure match {{w|composite pattern}}.
⚲ API
: ls /sys/class/
: {{The Linux Kernel/id|class_register}} registers {{The Linux Kernel/id|class}}
: {{The Linux Kernel/include|linux/device/class.h}}
👁 Examples: {{The Linux Kernel/id|input_class}}, {{The Linux Kernel/id|block_class}} {{The Linux Kernel/id|net_class}}
=== Buses ===
A {{w|peripheral bus}} is a channel between the processor and one or more peripheral devices.
A DM bus is {{w|Proxy pattern|proxy}} for a peripheral bus.
General DM buses structure match {{w|composite pattern}}.
For the purposes of the device model, all devices are connected via a bus, even if it is an internal, virtual, {{The Linux Kernel/id|platform_bus_type}}.
Buses can plug into each other.
A USB controller is usually a PCI device, for example.
The device model represents the actual connections between buses and the devices they control.
A bus is represented by the {{The Linux Kernel/id|bus_type}} structure.
It contains the name, the default attributes, the bus' methods, PM operations, and the driver core's private data.
⚲ API
: ls /sys/bus/
: {{The Linux Kernel/id|bus_register}} registers {{The Linux Kernel/id|bus_type}}
: {{The Linux Kernel/include|linux/device/bus.h}}
👁 Examples: {{The Linux Kernel/id|usb_bus_type}}, {{The Linux Kernel/id|hid_bus_type}}, {{The Linux Kernel/id|pci_bus_type}}, {{The Linux Kernel/id|scsi_bus_type}}, {{The Linux Kernel/id|platform_bus_type}}
: [[#Peripheral_buses|Peripheral buses]]
=== Drivers ===
⚲ API
: ls /sys/bus/:/drivers/
: {{The Linux Kernel/id|module_driver}} - simple common driver initializer, 👁 for example used in {{The Linux Kernel/id|module_pci_driver}}
: {{The Linux Kernel/id|driver_register}} registers {{The Linux Kernel/id|device_driver}} - basic device driver structure, one per all device instances.
: {{The Linux Kernel/include|linux/device/driver.h}}
👁 Examples: {{The Linux Kernel/id|hid_generic}} {{The Linux Kernel/id|usb_register_device_driver}}
'''Platform drivers'''
: {{The Linux Kernel/id|module_platform_driver}} registers {{The Linux Kernel/id|platform_driver}} (platform wrapper of {{The Linux Kernel/id|device_driver}}) with {{The Linux Kernel/id|platform_bus_type}}
: {{The Linux Kernel/include|linux/platform_device.h}}
👁 Examples: {{The Linux Kernel/id|gpio_mouse_device_driver}}
=== Devices ===
⚲ API
: ls /sys/devices/
: {{The Linux Kernel/id|device_register}} registers {{The Linux Kernel/id|device}} - the basic device structure, per each device instance
: {{The Linux Kernel/include|linux/device.h}} – {{The Linux Kernel/doc|Device drivers infrastructure|driver-api/infrastructure.html}}
: {{The Linux Kernel/include|linux/dev_printk.h}}
: {{The Linux Kernel/doc|Device Resource Management|driver-api/basics.html#device-resource-management}}, devres, devm ...
👁 Examples: {{The Linux Kernel/id|platform_bus}} mousedev_create
'''Platform devices'''
: {{The Linux Kernel/id|platform_device}} - platform wrapper of {{The Linux Kernel/doc|struct <big>device</big> - the basic device structure|driver-api/infrastructure.html#c.device}}, contains resources associated with the device
: it can be created dynamically by {{The Linux Kernel/id|platform_device_register_simple}} or {{The Linux Kernel/id|platform_device_alloc}}. Or registered with {{The Linux Kernel/id|platform_device_register}}.
: {{The Linux Kernel/id|platform_device_unregister}} - releases device and associated resources
👁 Examples: {{The Linux Kernel/id|add_pcspkr}}
⚲ API 🔧 TODO
: platform_device_info platform_device_id platform_device_register_full platform_device_add
: platform_device_add_data platform_device_register_data platform_device_add_resources
: attribute_group dev_pm_ops
<hr>
⚙️ Internals
: {{The Linux Kernel/include|linux/dev_printk.h}}
: {{The Linux Kernel/source|lib/kobject.c}} – kobject library
: {{The Linux Kernel/source|drivers/base/platform.c}} – platform bus for legacy devices
: {{The Linux Kernel/source|drivers/base/core.c}} – driver model core
📖 References
: {{The Linux Kernel/doc|Device drivers infrastructure|driver-api/infrastructure.html}}
: {{The Linux Kernel/doc|Everything you never wanted to know about kobjects, ksets, and ktypes|core-api/kobject.html}}
: {{The Linux Kernel/doc|Driver Model|driver-api/driver-model}}
:: {{The Linux Kernel/doc|The Linux Kernel Device Model|driver-api/driver-model/overview.html}}
:: {{The Linux Kernel/doc|Platform Devices and Drivers|driver-api/driver-model/platform.html}}
: [https://linux-kernel-labs.github.io/refs/heads/master/labs/device_model.html Linux Device Model, by linux-kernel-labs]
{{:The Linux Kernel/Modules}}
== {{w|Peripheral bus}}es ==
Peripheral buses are the communication channels used to connect various peripheral devices to a computer system.
These buses are used to transfer data between the peripheral devices and the system's processor or memory.
In the Linux kernel, peripheral buses are implemented as drivers that enable communication between the operating system and the hardware.
Peripheral buses in the Linux kernel include USB, PCI, SPI, I2C, and more.
Each of these buses has its own unique characteristics, and the Linux kernel provides support for a wide range of peripheral devices.
The PCI (Peripheral Component Interconnect) bus is used to connect internal hardware devices in a computer system.
It is commonly used to connect graphics cards, network cards, and other expansion cards.
The Linux kernel provides a PCI bus driver that enables communication between the operating system and the devices connected to the bus.
The USB (Universal Serial Bus) is one of the most commonly used peripheral buses in modern computer systems.
It allows devices to be hot-swapped and supports high-speed data transfer rates.
🔧 TODO: device enumeration
⚲ API
: Shell interface: ls /proc/bus/ /sys/bus/
See also [[#Buses|Buses of Driver Model]]
See [[../Human_interfaces#Input_devices|'''Input: keyboard, mouse etc''']]
'''PCI'''
⚲ Shell API
: lspci -vv
: column -t /proc/bus/pci/devices
Main article: [[The_Linux_Kernel/PCI|PCI]]
'''USB'''
⚲ Shell API
: lsusb -v
: ls /sys/bus/usb/
: cat /proc/bus/usb/devices
⚙️ Internals
: {{The Linux Kernel/source|drivers/usb}} – USB subsystem
📖 References
: {{The Linux Kernel/doc|USB|usb}}
: [http://lwn.net/images/pdf/LDD3/ch13.pdf LDD3:USB Drivers]
'''Other buses'''
: {{The Linux Kernel/source|drivers/bus}} – bus driver implementations
'''Buses for 🤖 embedded devices:'''
: {{The Linux Kernel/include|linux/gpio/driver.h}} {{The Linux Kernel/include|linux/gpio.h}} {{The Linux Kernel/source|drivers/gpio}} {{The Linux Kernel/source|tools/gpio}}
: {{The Linux Kernel/source|drivers/i2c}} – I2C bus framework, https://i2c.wiki.kernel.org
'''SPI'''
⚲ API
: {{The Linux Kernel/include|linux/spi/spi.h}}
: {{The Linux Kernel/source|tools/spi}} – SPI user-space tools
⚙️ Internals
: {{The Linux Kernel/source|drivers/spi}} – SPI bus framework
: {{The Linux Kernel/id|spi_register_controller}}
: {{The Linux Kernel/id|spi_controller_list}}🚧
📖 References
: {{The Linux Kernel/doc|SPI|spi}}
==Hardware interfaces==
Hardware interfaces are basic part of any operating, enabling communication between the processor and other HW components of a computer system: memory, peripheral devices and buses, various controllers.
[[../Multitasking/CPU#Interrupts|Interrupts]]
===I/O ports and registers===
I/O ports and registers are electronic components in computer systems that enable communication between CPU and other electronic controllers and devices.
⚲ API
{{The Linux Kernel/include|asm-generic/io.h}} — generic I/O port emulation.
: {{The Linux Kernel/id|ioport_map}}
: {{The Linux Kernel/id|ioread32}} / {{The Linux Kernel/id|iowrite32}} ...
: {{The Linux Kernel/id|readl}}/ {{The Linux Kernel/id|writel}} ...
: The {in,out}[bwl] macros are for emulating x86-style PCI/ISA IO space:
: {{The Linux Kernel/id|inl}}/ {{The Linux Kernel/id|outl}} ...
{{The Linux Kernel/include|linux/ioport.h}} — definitions of routines for detecting, reserving and allocating system resources.
: {{The Linux Kernel/id|request_mem_region}}
{{The Linux Kernel/source|arch/x86/include/asm/io.h}} – x86 I/O port and MMIO access
Functions for memory mapped registers:
{{The Linux Kernel/id|ioremap}} ...
==== regmap ====
The regmap subsystem provides a standardized abstraction layer for register access in device drivers.
It simplifies interactions with hardware registers across various bus types,
such as I2C, SPI, and MMIO, by offering a consistent API.
⚲ API
{{The Linux Kernel/include|linux/regmap.h}} — register map access API
: the most frequently used functions:
: {{The Linux Kernel/id|regmap_update_bits}}
: {{The Linux Kernel/id|regmap_write}}
: {{The Linux Kernel/id|regmap_read}}
: {{The Linux Kernel/id|regmap_reg_range}}
: {{The Linux Kernel/id|regmap_bulk_read}}
: {{The Linux Kernel/id|devm_regmap_init_i2c}}
: {{The Linux Kernel/id|regmap_set_bits}}
: {{The Linux Kernel/id|regmap_field_write}}
: {{The Linux Kernel/id|regmap_bulk_write}}
: {{The Linux Kernel/id|regmap_clear_bits}}
: {{The Linux Kernel/id|regmap_write_bits}}
: {{The Linux Kernel/id|regmap_config}}
: {{The Linux Kernel/id|regmap_read_poll_timeout}}
: {{The Linux Kernel/id|devm_regmap_init_mmio}}
⚙️ Internals
{{The Linux Kernel/source|drivers/base/regmap}} – register map abstraction layer
===Hardware Device Drivers===
Keywords: firmware, hotplug, clock, mux, pin
⚙️ Internals
: {{The Linux Kernel/source|drivers/acpi}} – ACPI drivers
: {{The Linux Kernel/source|drivers/base}} – driver model core
: {{The Linux Kernel/source|drivers/sdio}} – {{w|Secure Digital#SDIO cards|Secure Digital Input Output}}
: {{The Linux Kernel/source|drivers/virtio}} – virtio guest drivers
: {{The Linux Kernel/source|drivers/hwmon}} – hardware monitoring
: {{The Linux Kernel/source|drivers/thermal}} – thermal management
: {{The Linux Kernel/source|drivers/pinctrl}} – pin control and multiplexing
: {{The Linux Kernel/source|drivers/clk}} – clock framework
📖 References
: {{The Linux Kernel/doc|Pin control subsystem|driver-api/pin-control.html}}
: {{The Linux Kernel/doc|Linux Hardware Monitoring|hwmon}}
: {{The Linux Kernel/doc|Firmware guide|firmware-guide}}
: {{The Linux Kernel/doc|Devicetree|devicetree}}
: https://hwmon.wiki.kernel.org/
: [http://lwn.net/images/pdf/LDD3/ch14.pdf LDD3:The Linux Device Model]
: http://www.tldp.org/LDP/tlk/dd/drivers.html
: http://www.xml.com/ldd/chapter/book/
: http://examples.oreilly.com/linuxdrive2/
=== Booting and halting ===
==== Kernel booting ====
This is loaded in two stages - in the first stage the kernel (as a compressed image file) is loaded into memory and decompressed, and a few fundamental functions such as essential hardware and basic memory management (memory paging) are set up.
Control is then switched one final time to the main kernel start process calling {{The Linux Kernel/id|start_kernel}}, which then performs the majority of system setup (interrupts, the rest of memory management, device and driver initialization, etc.) before spawning separately, the idle process and scheduler, and the init process (which is executed in user space).
'''Kernel loading stage'''
The kernel as loaded is typically an image file, compressed into either zImage or bzImage formats with zlib.
A routine at the head of it does a minimal amount of hardware setup, decompresses the image fully into high memory, and takes note of any RAM disk if configured.
It then executes kernel startup via startup_64 (for x86_64 architecture).
: {{The Linux Kernel/source|arch/x86/boot/compressed/vmlinux.lds.S}} - linker script defines entry {{The Linux Kernel/id|startup_64}} in
: {{The Linux Kernel/source|arch/x86/boot/compressed/head_64.S}} - assembly of extractor
: {{The Linux Kernel/id|extract_kernel}} - extractor in language C
:: prints
Decompressing Linux... done.
Booting the kernel.
'''Kernel startup stage'''
The startup function for the kernel (also called the swapper or process 0) establishes memory management (paging tables and memory paging), detects the type of CPU and any additional functionality such as floating point capabilities, and then switches to non-architecture specific Linux kernel functionality via a call to {{The Linux Kernel/id|start_kernel}}.
↯ Startup call hierarchy:
: {{The Linux Kernel/source|arch/x86/kernel/vmlinux.lds.S}} – linker script
: {{The Linux Kernel/source|arch/x86/kernel/head_64.S}} – assembly of uncompressed startup code
: {{The Linux Kernel/source|arch/x86/kernel/head64.c}} – platform dependent startup:
:: {{The Linux Kernel/id|x86_64_start_kernel}}
:: {{The Linux Kernel/id|x86_64_start_reservations}}
: {{The Linux Kernel/source|init/main.c}} – main initialization code
:: {{The Linux Kernel/id|start_kernel}} 200 SLOC
::: {{The Linux Kernel/id|mm_init}}
:::: {{The Linux Kernel/id|mem_init}}
:::: {{The Linux Kernel/id|vmalloc_init}}
::: {{The Linux Kernel/id|sched_init}}
::: {{The Linux Kernel/id|rcu_init}} – {{w|Read-copy-update}}
::: {{The Linux Kernel/id|rest_init}}
:::: {{The Linux Kernel/id|kernel_init}} - deferred kernel thread #1
::::: {{The Linux Kernel/id|kernel_init_freeable}} This and following functions are defined with attribute {{The Linux Kernel/id|__init}}
:::::: {{The Linux Kernel/id|prepare_namespace}}
::::::: {{The Linux Kernel/id|initrd_load}}
::::::: {{The Linux Kernel/id|mount_root}}
::::: {{The Linux Kernel/id|run_init_process}} obviously runs the first process {{The Linux Kernel/man|1|init}}
:::: {{The Linux Kernel/id|kthreadd}} – deferred kernel thread #2
:::: {{The Linux Kernel/id|cpu_startup_entry}}
::::: {{The Linux Kernel/id|do_idle}}
{{The Linux Kernel/id|start_kernel}} executes a wide range of initialization functions. It sets up interrupt handling (IRQs), further configures memory, starts the {{The Linux Kernel/man|1|init}} process (the first user-space process), and then starts the idle task via {{The Linux Kernel/id|cpu_startup_entry}}. Notably, the kernel startup process also mounts the {{w|initial ramdisk}} (initrd) that was loaded previously as the temporary root file system during the boot phase. The initrd allows driver modules to be loaded directly from memory, without reliance upon other devices (e.g. a hard disk) and the drivers that are needed to access them (e.g. a SATA driver). This split of some drivers statically compiled into the kernel and other drivers loaded from initrd allows for a smaller kernel. The root file system is later switched via a call to {{The Linux Kernel/man|8|pivot_root}} / {{The Linux Kernel/man|2|pivot_root}} which unmounts the temporary root file system and replaces it with the use of the real one, once the latter is accessible. The memory used by the temporary root file system is then reclaimed.
⚙️ Internals
: {{The Linux Kernel/source|arch/x86/Kconfig.debug}} – x86 debugging Kconfig options
: {{The Linux Kernel/include|linux/smpboot.h}}
: {{The Linux Kernel/source|kernel/smpboot.c}} – common SMP CPU bringup/teardown
: {{The Linux Kernel/source|arch/x86/kernel/smpboot.c}} – x86 SMP booting
===== ... =====
📖 References
: Article about [[../Booting|booting of the kernel]]
: {{The Linux Kernel/doc|Initial RAM disk|admin-guide/initrd.html}}
: [https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt#:~:text=initcall_debug initcall_debug, boot argument]
: {{w|Linux startup process}}
: {{w|init}}
: [http://lwn.net/Articles/632528/ Linux (U)EFI boot process]
: {{The Linux Kernel/doc|The kernel’s command-line parameters|admin-guide/kernel-parameters.html}}
: {{The Linux Kernel/doc|The EFI Boot Stub|admin-guide/efi-stub.html}}
: {{The Linux Kernel/doc|Boot Configuration|admin-guide/bootconfig.html}}
: {{The Linux Kernel/doc|Boot time memory management|core-api/boot-time-mm.html}}
: [https://github.com/0xAX/linux-insides/blob/master/Booting/README.md Kernel booting process]
: [https://github.com/0xAX/linux-insides/blob/master/Initialization/README.md Kernel initialization process]
📚 Further reading
: {{The Linux Kernel/doc|Boot-time tracing|trace/boottime-trace.html}}
: {{w|E820}}
💾 ''Historical''
: http://tldp.org/HOWTO/Linux-i386-Boot-Code-HOWTO/
: http://www.tldp.org/LDP/lki/lki-1.html
: http://www.tldp.org/HOWTO/KernelAnalysis-HOWTO-4.html
==== Halting or rebooting ====
🔧 TODO
⚲ API
: {{The Linux Kernel/include|linux/reboot.h}}
: {{The Linux Kernel/include|linux/stop_machine.h}}
:: {{The Linux Kernel/id|print_stop_info}}
:: {{The Linux Kernel/id|stop_machine}}
::: {{The Linux Kernel/id|stop_core_cpuslocked}}
: {{The Linux Kernel/id|reboot_mode}}
: {{The Linux Kernel/id|sys_reboot}} calls
:: {{The Linux Kernel/id|machine_restart}} or
:: {{The Linux Kernel/id|machine_halt}} or
:: {{The Linux Kernel/id|machine_power_off}}
: {{The Linux Kernel/include|linux/reboot-mode.h}}
:: {{The Linux Kernel/id|reboot_mode_driver}}
::: {{The Linux Kernel/id|devm_reboot_mode_register}}
⚙️ Internals
: {{The Linux Kernel/source|kernel/reboot.c}} – reboot, halt and power-off
: {{The Linux Kernel/source|kernel/stop_machine.c}} – stop all CPUs for safe code patching
:: {{The Linux Kernel/id|cpu_stopper}}
:: {{The Linux Kernel/id|cpu_stop_init}}
::: {{The Linux Kernel/id|cpu_stopper_thread}} – "migration" tasks
: {{The Linux Kernel/source|arch/x86/kernel/reboot.c}} – x86 reboot methods
: [[../Softdog Driver/]]
==== Power management ====
Keyword: suspend, alarm, hibernation.
⚲ API
: /sys/power/
: /sys/kernel/debug/wakeup_sources
:: <big>⌨️</big> hands-on:
:: sudo awk '{gsub("^ ","?")} NR>1 {if ($6) {print $1}}' /sys/kernel/debug/wakeup_sources
: {{The Linux Kernel/include|linux/pm.h}}
:: {{The Linux Kernel/include|linux|dev_pm_ops}}
: {{The Linux Kernel/include|linux/pm_qos.h}}
: {{The Linux Kernel/include|linux/pm_clock.h}}
: {{The Linux Kernel/include|linux/pm_domain.h}}
: {{The Linux Kernel/include|linux/pm_wakeirq.h}}
: {{The Linux Kernel/include|linux/pm_wakeup.h}}
:: {{The Linux Kernel/id|wakeup_source}}
:: {{The Linux Kernel/id|wakeup_source_register}}
: {{The Linux Kernel/include|linux/suspend.h}}
:: {{The Linux Kernel/id|pm_suspend}} suspends the system
: Suspend and wakeup depend on
:: {{The Linux Kernel/man|2|timer_create}} and {{The Linux Kernel/man|2|timerfd_create}} with clock ids {{The Linux Kernel/id|CLOCK_REALTIME_ALARM}} or {{The Linux Kernel/id|CLOCK_BOOTTIME_ALARM}} will wake the system if it is suspended.
:: {{The Linux Kernel/man|2|epoll_ctl}} with flag {{The Linux Kernel/id|EPOLLWAKEUP}} blocks suspend
:: See also {{The Linux Kernel/man|7|capabilities}} {{The Linux Kernel/id|CAP_WAKE_ALARM}}, {{The Linux Kernel/id|CAP_BLOCK_SUSPEND}}
⚙️ Internals
: {{The Linux Kernel/id|CONFIG_PM}}
: {{The Linux Kernel/id|CONFIG_SUSPEND}}
: {{The Linux Kernel/source|kernel/power}} – suspend, hibernate and PM core
: {{The Linux Kernel/id|alarm_init}}
: {{The Linux Kernel/source|kernel/time/alarmtimer.c}} – alarm timer for wakeup events
: {{The Linux Kernel/source|drivers/base/power}}: {{The Linux Kernel/id|wakeup_sources}}
📖 References
: {{The Linux Kernel/doc|PM administration|admin-guide/pm}}
: {{The Linux Kernel/doc|CPU and Device PM|driver-api/pm}}
: {{The Linux Kernel/doc|Power Management|power}}
: {{The Linux Kernel/doc|sysfs power testing ABI|admin-guide/abi-testing.html#file-testing-sysfs-power}}
: https://lwn.net/Kernel/Index/#Power_management
: {{w|PowerTOP}}
: [https://linux.die.net/man/1/cpupower cpupower]
: [https://manpages.ubuntu.com/manpages/xenial/man8/tlp.8.html tlp] – apply laptop power management settings
: {{w|ACPI}} – Advanced Configuration and Power Interface
===== Runtime PM =====
Keywords: runtime power management, devices power management opportunistic suspend, autosuspend, autosleep.
⚲ API
: /sys/devices/.../power/:
:: async autosuspend_delay_ms control runtime_active_kids runtime_active_time runtime_enabled runtime_status runtime_suspended_time runtime_usage
: {{The Linux Kernel/include|linux/pm_runtime.h}}
:: {{The Linux Kernel/id|pm_runtime_mark_last_busy}}
:: {{The Linux Kernel/id|pm_runtime_enable}}
:: {{The Linux Kernel/id|pm_runtime_disable}}
:: {{The Linux Kernel/id|pm_runtime_get}} – asynchronous get
:: {{The Linux Kernel/id|pm_runtime_get_sync}}
:: {{The Linux Kernel/id|pm_runtime_resume_and_get}} – preferable synchronous get
:: {{The Linux Kernel/id|pm_runtime_put}}
:: {{The Linux Kernel/id|pm_runtime_put_noidle}} – just decrement usage counter
:: {{The Linux Kernel/id|pm_runtime_put_sync}}
:: {{The Linux Kernel/id|pm_runtime_put_autosuspend}}
: {{The Linux Kernel/id|SET_RUNTIME_PM_OPS}}
👁 Example: {{The Linux Kernel/id|ac97_pm}}
⚙️ Internals
: {{The Linux Kernel/id|CONFIG_PM_AUTOSLEEP}}
=== ... ===
📖 References
: {{The Linux Kernel/doc|Runtime Power Management Framework for I/O Devices|power/runtime_pm.html}}
: [https://wiki.linuxfoundation.org/realtime/documentation/howto/applications/cpuidle CPU idle power saving methods for real-time workloads]
: [https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-devices-power Sysfs devices PM API]
: [https://www.kernel.org/doc/Documentation/driver-api/usb/power-management.rst Power Management for USB]
: [https://lwn.net/Kernel/Index/#Power_management-Opportunistic_suspend Opportunistic suspend]
📚 Further reading
: https://deepwiki.com/torvalds/linux/5-hardware-drivers
== Building and Updating ==
: [[../Updating/]]
{{BookCat}}
d4poltmig8koijx2gngrm91fbwvtguv
4640287
4640248
2026-06-14T09:29:54Z
Conan
3188
add kernel/entry and fs/kernfs source references
4640287
wikitext
text/x-wiki
<noinclude>{{DISPLAYTITLE:System functionality}}</noinclude>
{| style="float: right; text-align: center; border-spacing: 0; margin: auto;" cellpadding="5pc"
! bgcolor="#edf" |system
|-
| bgcolor="#cdf" |[[#System interfaces|system interfaces]]
|-
| bgcolor=#abe |[[#Virtualization|virtualization]]
|-
| bgcolor="#aad" |[[#Driver Model|Driver Model]]
|- style=""
| bgcolor="#99c" |[[../Modules|modules]]
|-
| bgcolor="#88a" |[[#Peripheral buses|buses]], [[The Linux Kernel/PCI|PCI]]
|-
| bgcolor="#889" |[[#Hardware interfaces|hardware interfaces]], [[#Booting and halting|[re]booting]]
|}
The System functionality is named after system calls and sysfs.
It differs from other kernel functionalities.
Its subsystems are not tightly coupled across layers but instead provide infrastructure to other parts of the kernel.
For example, the System Calls subsystem offers a common interface layer for all functionalities exposed to user space.
== System interfaces ==
There are several mechanisms available in Linux for user space system interfaces.
One of the most common mechanisms is through {{w|system call}}s, which are functions that allow user space applications to request services from the kernel, such as opening files, creating processes, and accessing system resources.
Another mechanism for user space communication is through {{w|device file}}s, which are special files that represent physical or virtual devices, such as storage devices, network interfaces, and various peripheral devices.
User space applications can communicate with these devices by reading from and writing to their corresponding device files.
In summary, Linux kernel provides several mechanisms for user space communication, including system calls, device files, {{w|procfs}}, {{w|sysfs}}, and devtmpfs.
These mechanisms enable user space applications to communicate with the kernel and access system resources in a safe and controlled manner.
⚲ APIs:
: kernel space API for user space
:: {{The Linux Kernel/include|uapi}}
:: {{The Linux Kernel/source|arch/x86/include/uapi}} – x86 user-space API headers
:: {{The Linux Kernel/man|2|ioctl}}
:: [[#System calls|System calls]]
:: [[#Device files|Device files]]
: user space API for kernel space
:: {{The Linux Kernel/include|linux/uaccess.h}}:
:: {{The Linux Kernel/id|copy_to_user}}
:: {{The Linux Kernel/id|copy_from_user}}
📖 References
: {{The Linux Kernel/doc|User-space API guides|userspace-api}}
: {{w|User space}}
: {{w|Linux kernel interfaces}}
: [http://safari.oreilly.com/0596005652/understandlk-CHP-11 ULK3 Chapter 11. Signals]
===System calls===
System calls are the fundamental interface between user space applications and the Linux kernel.
They provide a way for programs to request services from the operating system, such as opening a file, allocating memory, or creating a new process.
In the Linux kernel, system calls are implemented as functions that can be invoked by user space programs using a software interrupt mechanism.
The Linux kernel provides hundreds of system calls, each with its own unique functionality.
These system calls are organized into categories such as process management, file management, network communication, and memory management.
User space applications can use these system calls to interact with the kernel and access the underlying system resources.
⚲ API
: [[../Syscalls|Table of syscalls]]
: {{The Linux Kernel/man|2|syscalls}}
⚙️ Internals
: {{The Linux Kernel/include|linux/syscalls.h}}
: {{The Linux Kernel/source|kernel/entry}} – common syscall entry/exit and exception handling
: {{The Linux Kernel/id|syscall_init}} installs {{The Linux Kernel/id|entry_SYSCALL_64}}
: {{The Linux Kernel/man|2|syscall}} ↪
:: {{The Linux Kernel/id|entry_SYSCALL_64}} ↯ call hierarchy:
::: {{The Linux Kernel/id|do_syscall_64}}
:::: {{The Linux Kernel/id|sys_call_table}}
📖 References
: {{w|System call}}
: [http://man7.org/linux/man-pages/dir_section_2.html Directory of system calls, man section 2]
: Anatomy of a system call, [https://lwn.net/Articles/604287/ part 1] and [https://lwn.net/Articles/604515/ part 2]
: {{The Linux Kernel/ltp|kernel|syscalls}}
💾 ''Historical''
: [http://safari.oreilly.com/0596005652/understandlk-CHP-10 ULK3 Chapter 10. System Calls]
=== Device files ===
Classic UNIX devices are [[../Human_interfaces#Char_devices|Char devices]] used as byte streams with {{The Linux Kernel/man|2|ioctl}}.
⚲ API
ls /dev
cat /proc/devices
cat /proc/misc
Examples: {{The Linux Kernel/id|misc_fops}} {{The Linux Kernel/id|usb_fops}} {{The Linux Kernel/id|memory_fops}}
: {{The Linux Kernel/doc|Allocated devices|admin-guide/devices.html}}
: {{The Linux Kernel/source|drivers/char}} – miscellaneous byte stream devices
: [https://www.oreilly.com/library/view/understanding-the-linux/0596005652/ch13.html Chapter 13. I/O Architecture and Device Drivers]
==== hiddev ====
⚠️ Warning: confusion. hiddev isn't real [[../Human_interfaces#HID|human interface device]]! It reuses USBHID infrastructure. hiddev is used for example for monitor controls and Uninterruptible Power Supplies.
This module supports these devices separately using a separate event interface on /dev/usb/hiddevX (char 180:96 to 180:111) (⚙️ {{The Linux Kernel/id|HIDDEV_MINOR_BASE}})
⚲ API
: {{The Linux Kernel/include|uapi/linux/hiddev.h}}
: {{The Linux Kernel/id|HID_CONNECT_HIDDEV}}
⚙️ Internals
: [https://elixir.bootlin.com/linux/latest/K/ident/CONFIG_USB_HIDDEV CONFIG_USB_HIDDEV]
: {{The Linux Kernel/include|linux/hiddev.h}}
: {{The Linux Kernel/id|hiddev_event}}
: {{The Linux Kernel/source|drivers/hid/usbhid/hiddev.c}}, {{The Linux Kernel/id|hiddev_fops}}
📖 References
: {{The Linux Kernel/doc|HIDDEV - Care and feeding of your Human Interface Devices|hid/hiddev.html}}
📖 References
: {{w|Device file}}
===Administration===
🔧 TODO
📖 References
: {{The Linux Kernel/man|7|netlink}}
: {{The Linux Kernel/doc|The Linux kernel user’s and administrator’s guide|admin-guide}}
==== procfs ====
The ''proc filesystem'' (''procfs'') is a special filesystem that presents information about processes and other system information in a hierarchical file-like structure, providing a more convenient and standardized method for dynamically accessing process data held in the kernel than traditional tracing methods or direct access to kernel memory.
Typically, it is mapped to a mount point named <code>/proc</code> at boot time.
The proc file system acts as an interface to internal data structures in the kernel.
It can be used to obtain information about the system and to change certain kernel parameters at runtime.
<code>/proc</code> includes a directory for each running process —including kernel threads— in directories named <code>/proc/PID</code>, where <code>PID</code> is the process number. Each directory contains information about one process, including the command that originally started the process (<code>/proc/PID/cmdline</code>), the names and values of its environment variables (<code>/proc/PID/environ</code>), a symlink to its working directory (<code>/proc/PID/cwd</code>), another symlink to the original executable file —if it still exists— (<code>/proc/PID/exe</code>), a couple of directories with symlinks to each open file descriptor (<code>/proc/PID/fd</code>) and the status —position, flags, ...— of each of them (<code>/proc/PID/fdinfo</code>), information about mapped files and blocks like heap and stack (<code>/proc/PID/maps</code>), a binary image representing the process's virtual memory (<code>/proc/PID/mem</code>), a symlink to the root path as seen by the process (<code>/proc/PID/root</code>), a directory containing hard links to any child process or thread (<code>/proc/PID/task</code>), basic information about a process including its run state and memory usage (<code>/proc/PID/status</code>) and much more.
📖 References
: {{w|procfs}}
: {{The Linux Kernel/man|5|procfs}}
: {{The Linux Kernel/man|7|namespaces}}
: {{The Linux Kernel/man|7|capabilities}}
: {{The Linux Kernel/include|linux/proc_fs.h}}
: {{The Linux Kernel/source|fs/proc}} – procfs implementation
==== sysfs ====
sysfs is a pseudo-file system that exports information about various kernel subsystems, hardware devices, and associated device drivers from the kernel's device model to user space through virtual files.
In addition to providing information about various devices and kernel subsystems, exported virtual files are also used for their configuring.
Sysfs is designed to export the information present in the device tree, which would then no longer clutter up procfs.
Sysfs is mounted under the <code>/sys</code> mount point.
⚲ API
: {{The Linux Kernel/include|linux/sysfs.h}}
📖 References
: {{w|sysfs}}
: {{The Linux Kernel/man|5|sysfs}}
: {{The Linux Kernel/doc|sysfs - filesystem for exporting kernel objects|filesystems/sysfs.html}}
: {{The Linux Kernel/source|fs/sysfs}} – sysfs implementation
: {{The Linux Kernel/source|fs/kernfs}} – kernfs, the backing filesystem for sysfs and cgroups
==== devtmpfs ====
devtmpfs is a hybrid {{w|User space and kernel space|kernel/user space}} approach of a device filesystem to provide nodes before udev runs for the first time.
📖 References
: {{w|Device file}}
: {{The Linux Kernel/source|drivers/base/devtmpfs.c}} – kernel-maintained tmpfs /dev
== Virtualization ==
🔧 TODO
See {{w|Kernel-based Virtual Machine}}
📖 References
: {{The Linux Kernel/doc|Virtualization Support|virt/}}
📚 Further reading
: https://deepwiki.com/torvalds/linux/3-virtualization
=== Containerization ===
{{w|OS-level virtualization|Containerization}} is a powerful technology that has revolutionized the way software applications are developed, deployed, and run.
At its core, containerization provides an isolated environment for running applications, where the application has all the necessary dependencies and can be easily moved from one environment to another without worrying about any compatibility issues.
Containerization technology has its roots in the {{w|chroot}} command, which was introduced in the Unix operating system in the 1979.
Chroot provided a way to change the root directory of a process, effectively creating a new isolated environment with its own file system hierarchy.
However, this early implementation of containerization had limited functionality, and it was difficult to manage and control the various processes running within the container.
In the early 2000s, the Linux kernel introduced {{w|Linux namespaces|namespaces}} and {{w|cgroups|control groups}} to provide a more robust and scalable containerization solution.
'''Namespaces''' allow processes to have their own isolated view of the system, including the file system, network, and process ID space, while '''control groups''' provide fine-grained control over the resources allocated to each container, such as CPU, memory, and I/O.
Using these kernel features, containerization platforms such as {{w|Docker (software)|Docker}} and {{w|Kubernetes}} have emerged as popular solutions for building and deploying containerized applications at scale.
Containerization has become an essential tool for modern software development, allowing developers to easily package applications and deploy them in a consistent and predictable manner across different environments.
==== Resources usage and limits ====
⚲ API
: {{The Linux Kernel/man|2|chroot}} – change root directory
: {{The Linux Kernel/man|2|sysinfo}} – return system information
: {{The Linux Kernel/man|2|getrusage}} – get resource usage
: get/set resource limits:
:: {{The Linux Kernel/man|2|getrlimit}}
:: {{The Linux Kernel/man|2|setrlimit}}
:: {{The Linux Kernel/man|2|prlimit64}}
📖 References
: {{w|chroot}}
==== Namespaces ====
{{w|Linux namespaces}} provide the way to isolate and virtualize different aspects of the operating system.
Namespaces allow multiple instances of an application to run in isolation from each other, without interfering with the host system or other instances.
🔧 TODO
⚲ API
: /proc/self/ns
: {{The Linux Kernel/man|8|lsns}}, {{The Linux Kernel/man|2|ioctl_ns}} ↪ {{The Linux Kernel/id|ns_ioctl}}
: {{The Linux Kernel/man|1|unshare}}, {{The Linux Kernel/man|2|unshare}}
: {{The Linux Kernel/man|1|nsenter}}, {{The Linux Kernel/man|2|setns}}
: {{The Linux Kernel/man|2|clone3}} ↪ {{The Linux Kernel/id|clone_args}}
: {{The Linux Kernel/include|linux/ns_common.h}}
: {{The Linux Kernel/include|linux/proc_ns.h}}
: namespaces definition
:: {{The Linux Kernel/id|uts_namespace}}
:: {{The Linux Kernel/id|ipc_namespace}}
:: {{The Linux Kernel/id|mnt_namespace}}
:: {{The Linux Kernel/id|pid_namespace}}
:: {{The Linux Kernel/include|net/net_namespace.h}} - struct net
:: {{The Linux Kernel/id|user_namespace}}
:: {{The Linux Kernel/id|time_namespace}}
:: {{The Linux Kernel/id|cgroup_namespace}}
⚙️ Internals
: {{The Linux Kernel/id|init_nsproxy}} - struct of namespaces
: {{The Linux Kernel/source|kernel/nsproxy.c}} – namespace proxy management
: {{The Linux Kernel/source|fs/namespace.c}} – mount namespace
: {{The Linux Kernel/source|fs/proc/namespaces.c}} – /proc namespace entries
: {{The Linux Kernel/source|net/core/net_namespace.c}} – network namespace
: {{The Linux Kernel/source|kernel/time/namespace.c}} – time namespace
: {{The Linux Kernel/source|kernel/user_namespace.c}} – user namespace
: {{The Linux Kernel/source|kernel/pid_namespace.c}} – PID namespace
: {{The Linux Kernel/source|kernel/utsname.c}} – UTS namespace
: {{The Linux Kernel/source|kernel/cgroup/namespace.c}} – cgroup namespace
: {{The Linux Kernel/source|ipc/namespace.c}} – IPC namespace
📖 References
: {{The Linux Kernel/man|7|namespaces}}
: {{The Linux Kernel/man|7|uts_namespaces}}
: {{The Linux Kernel/man|7|ipc_namespaces}}
: {{The Linux Kernel/man|7|mount_namespace}}
: {{The Linux Kernel/man|7|pid_namespaces}}
: {{The Linux Kernel/man|7|network_namespaces}}
: {{The Linux Kernel/man|7|user_namespaces}}
: {{The Linux Kernel/man|7|time_namespaces}}
: {{The Linux Kernel/man|7|cgroup_namespaces}}
=== Control groups ===
{{w|cgroups}} are used to limit and control the resource usage of groups of processes. They allow administrators to set limits on CPU usage, memory usage, disk I/O, network bandwidth, and other resources, which can be useful for managing system performance and preventing resource contention.
There are two versions of cgroups.
Unlike v1, cgroup v2 has only a single process hierarchy and discriminates between processes, not threads.
Here are some of the key differences between cgroups v1 and v2:
{| class="wikitable"
|+
!
!cgroups v1
!cgroups v2
|-
|Hierarchy
|each subsystem had its own hierarchy, which could lead to complexity and confusion
|unified hierarchy, which simplifies management and enables better resource allocation
|-
|Controllers
|has several subsystems that are controlled by separate controllers, each with its own set of configuration files and parameters
|controllers are consolidated into a single "cgroup2" controller, which provides a unified interface for managing resources
|-
|Resource distribution
|distributes resources among groups of processes based on proportional sharing, which can lead to unpredictable results
|resources are distributed based on a "weighted fair queuing" algorithm, which provides better predictability and fairness
|}
Cgroups v2 is not backward compatible with cgroups v1, which means that migrating from v1 to v2 can be challenging and requires careful planning.
🔧 TODO
⚲ API
: {{The Linux Kernel/include|linux/cgroup.h}}
: {{The Linux Kernel/include|linux/cgroup-defs.h}}
:: {{The Linux Kernel/id|css_set}} – holds set of reference-counted pointers to {{The Linux Kernel/id|cgroup_subsys_state}} objects
:: {{The Linux Kernel/id|cgroup_subsys}}
: {{The Linux Kernel/include|linux/cgroup_subsys.h}} – list of cgroup subsystems
⚙️ Internals
: {{The Linux Kernel/id|cg_list}} – list of {{The Linux Kernel/id|css_set}} in task_struct
: {{The Linux Kernel/source|kernel/cgroup}} – cgroup core
: {{The Linux Kernel/id|cgroup_init}}
: {{The Linux Kernel/id|cgroup2_fs_type}}
: {{The Linux Kernel/source|tools/testing/selftests/cgroup}} – cgroup self-tests
📖 References
: [[The_Linux_Kernel/System/CGroup_v2|Control Groups v2]]
: {{The Linux Kernel/doc|Control Groups v1|admin-guide/cgroup-v1/}}
: {{The Linux Kernel/man|1|systemd-cgtop}}
: {{The Linux Kernel/man|5|systemd.slice}} – slice unit configuration
: {{The Linux Kernel/man|7|cgroups}}
: {{The Linux Kernel/man|7|cgroup_namespaces}}
: {{The Linux Kernel/doc|CFS Bandwidth Control for cgroups|scheduler/sched-bwc.html}}
: {{The Linux Kernel/doc|Real-Time group scheduling|scheduler/sched-rt-group.html}}
: [https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/latest/html/managing_monitoring_and_updating_the_kernel/setting-limits-for-applications_managing-monitoring-and-updating-the-kernel Understanding control groups, RHEL]
📚 Further reading
: https://github.com/containers
: [https://github.com/mk-fg/fgtk#cgrc cgrc tool]
💾 Historical
: https://github.com/mk-fg/cgroup-tools for cgroup v1
== Driver Model ==
The Linux driver model (or Device Model, or just DM) is a framework that provides a consistent and standardized way for device drivers to interface with the kernel.
It defines a set of rules, interfaces, and data structures that enable device drivers to communicate with the kernel and perform various operations, such as managing resources, lifecycle and more.
DM core structure consists of DM classes, DM buses, DM drivers and DM devices.
=== kobject ===
In the Linux kernel, a {{The Linux Kernel/id|kobject}} is a fundamental data structure used to represent kernel objects and provide a standardized interface for interacting with them.
A kobject is a generic object that can represent any type of kernel object, including devices, files, modules, and more.
The kobject data structure contains several fields that describe the object, such as its name, type, parent, and operations.
Each kobject has a unique name within its parent object, and the parent-child relationships form a hierarchy of kobjects.
Kobjects are managed by the kernel's sysfs file system, which provides a virtual file system that exposes kernel objects as files and directories in the user space.
Each kobject is associated with a sysfs directory, which contains files and attributes that can be read or written to interact with the kernel object.
⚲ Infrastructure API
: {{The Linux Kernel/include|linux/kobject.h}}
: {{The Linux Kernel/id|kobject}}
: {{The Linux Kernel/doc|Kernel objects manipulation|driver-api/basics.html#kernel-objects-manipulation}}
: 🔧 TODO
=== Classes ===
A class is a higher-level view of a device that abstracts out low-level implementation details.
Drivers may see a NVME storage or a SATA storage, but, at the class level, they are all simply {{The Linux Kernel/id|block_class}} devices.
Classes allow user space to work with devices based on what they do, rather than how they are connected or how they work.
General DM classes structure match {{w|composite pattern}}.
⚲ API
: ls /sys/class/
: {{The Linux Kernel/id|class_register}} registers {{The Linux Kernel/id|class}}
: {{The Linux Kernel/include|linux/device/class.h}}
👁 Examples: {{The Linux Kernel/id|input_class}}, {{The Linux Kernel/id|block_class}} {{The Linux Kernel/id|net_class}}
=== Buses ===
A {{w|peripheral bus}} is a channel between the processor and one or more peripheral devices.
A DM bus is {{w|Proxy pattern|proxy}} for a peripheral bus.
General DM buses structure match {{w|composite pattern}}.
For the purposes of the device model, all devices are connected via a bus, even if it is an internal, virtual, {{The Linux Kernel/id|platform_bus_type}}.
Buses can plug into each other.
A USB controller is usually a PCI device, for example.
The device model represents the actual connections between buses and the devices they control.
A bus is represented by the {{The Linux Kernel/id|bus_type}} structure.
It contains the name, the default attributes, the bus' methods, PM operations, and the driver core's private data.
⚲ API
: ls /sys/bus/
: {{The Linux Kernel/id|bus_register}} registers {{The Linux Kernel/id|bus_type}}
: {{The Linux Kernel/include|linux/device/bus.h}}
👁 Examples: {{The Linux Kernel/id|usb_bus_type}}, {{The Linux Kernel/id|hid_bus_type}}, {{The Linux Kernel/id|pci_bus_type}}, {{The Linux Kernel/id|scsi_bus_type}}, {{The Linux Kernel/id|platform_bus_type}}
: [[#Peripheral_buses|Peripheral buses]]
=== Drivers ===
⚲ API
: ls /sys/bus/:/drivers/
: {{The Linux Kernel/id|module_driver}} - simple common driver initializer, 👁 for example used in {{The Linux Kernel/id|module_pci_driver}}
: {{The Linux Kernel/id|driver_register}} registers {{The Linux Kernel/id|device_driver}} - basic device driver structure, one per all device instances.
: {{The Linux Kernel/include|linux/device/driver.h}}
👁 Examples: {{The Linux Kernel/id|hid_generic}} {{The Linux Kernel/id|usb_register_device_driver}}
'''Platform drivers'''
: {{The Linux Kernel/id|module_platform_driver}} registers {{The Linux Kernel/id|platform_driver}} (platform wrapper of {{The Linux Kernel/id|device_driver}}) with {{The Linux Kernel/id|platform_bus_type}}
: {{The Linux Kernel/include|linux/platform_device.h}}
👁 Examples: {{The Linux Kernel/id|gpio_mouse_device_driver}}
=== Devices ===
⚲ API
: ls /sys/devices/
: {{The Linux Kernel/id|device_register}} registers {{The Linux Kernel/id|device}} - the basic device structure, per each device instance
: {{The Linux Kernel/include|linux/device.h}} – {{The Linux Kernel/doc|Device drivers infrastructure|driver-api/infrastructure.html}}
: {{The Linux Kernel/include|linux/dev_printk.h}}
: {{The Linux Kernel/doc|Device Resource Management|driver-api/basics.html#device-resource-management}}, devres, devm ...
👁 Examples: {{The Linux Kernel/id|platform_bus}} mousedev_create
'''Platform devices'''
: {{The Linux Kernel/id|platform_device}} - platform wrapper of {{The Linux Kernel/doc|struct <big>device</big> - the basic device structure|driver-api/infrastructure.html#c.device}}, contains resources associated with the device
: it can be created dynamically by {{The Linux Kernel/id|platform_device_register_simple}} or {{The Linux Kernel/id|platform_device_alloc}}. Or registered with {{The Linux Kernel/id|platform_device_register}}.
: {{The Linux Kernel/id|platform_device_unregister}} - releases device and associated resources
👁 Examples: {{The Linux Kernel/id|add_pcspkr}}
⚲ API 🔧 TODO
: platform_device_info platform_device_id platform_device_register_full platform_device_add
: platform_device_add_data platform_device_register_data platform_device_add_resources
: attribute_group dev_pm_ops
<hr>
⚙️ Internals
: {{The Linux Kernel/include|linux/dev_printk.h}}
: {{The Linux Kernel/source|lib/kobject.c}} – kobject library
: {{The Linux Kernel/source|drivers/base/platform.c}} – platform bus for legacy devices
: {{The Linux Kernel/source|drivers/base/core.c}} – driver model core
📖 References
: {{The Linux Kernel/doc|Device drivers infrastructure|driver-api/infrastructure.html}}
: {{The Linux Kernel/doc|Everything you never wanted to know about kobjects, ksets, and ktypes|core-api/kobject.html}}
: {{The Linux Kernel/doc|Driver Model|driver-api/driver-model}}
:: {{The Linux Kernel/doc|The Linux Kernel Device Model|driver-api/driver-model/overview.html}}
:: {{The Linux Kernel/doc|Platform Devices and Drivers|driver-api/driver-model/platform.html}}
: [https://linux-kernel-labs.github.io/refs/heads/master/labs/device_model.html Linux Device Model, by linux-kernel-labs]
{{:The Linux Kernel/Modules}}
== {{w|Peripheral bus}}es ==
Peripheral buses are the communication channels used to connect various peripheral devices to a computer system.
These buses are used to transfer data between the peripheral devices and the system's processor or memory.
In the Linux kernel, peripheral buses are implemented as drivers that enable communication between the operating system and the hardware.
Peripheral buses in the Linux kernel include USB, PCI, SPI, I2C, and more.
Each of these buses has its own unique characteristics, and the Linux kernel provides support for a wide range of peripheral devices.
The PCI (Peripheral Component Interconnect) bus is used to connect internal hardware devices in a computer system.
It is commonly used to connect graphics cards, network cards, and other expansion cards.
The Linux kernel provides a PCI bus driver that enables communication between the operating system and the devices connected to the bus.
The USB (Universal Serial Bus) is one of the most commonly used peripheral buses in modern computer systems.
It allows devices to be hot-swapped and supports high-speed data transfer rates.
🔧 TODO: device enumeration
⚲ API
: Shell interface: ls /proc/bus/ /sys/bus/
See also [[#Buses|Buses of Driver Model]]
See [[../Human_interfaces#Input_devices|'''Input: keyboard, mouse etc''']]
'''PCI'''
⚲ Shell API
: lspci -vv
: column -t /proc/bus/pci/devices
Main article: [[The_Linux_Kernel/PCI|PCI]]
'''USB'''
⚲ Shell API
: lsusb -v
: ls /sys/bus/usb/
: cat /proc/bus/usb/devices
⚙️ Internals
: {{The Linux Kernel/source|drivers/usb}} – USB subsystem
📖 References
: {{The Linux Kernel/doc|USB|usb}}
: [http://lwn.net/images/pdf/LDD3/ch13.pdf LDD3:USB Drivers]
'''Other buses'''
: {{The Linux Kernel/source|drivers/bus}} – bus driver implementations
'''Buses for 🤖 embedded devices:'''
: {{The Linux Kernel/include|linux/gpio/driver.h}} {{The Linux Kernel/include|linux/gpio.h}} {{The Linux Kernel/source|drivers/gpio}} {{The Linux Kernel/source|tools/gpio}}
: {{The Linux Kernel/source|drivers/i2c}} – I2C bus framework, https://i2c.wiki.kernel.org
'''SPI'''
⚲ API
: {{The Linux Kernel/include|linux/spi/spi.h}}
: {{The Linux Kernel/source|tools/spi}} – SPI user-space tools
⚙️ Internals
: {{The Linux Kernel/source|drivers/spi}} – SPI bus framework
: {{The Linux Kernel/id|spi_register_controller}}
: {{The Linux Kernel/id|spi_controller_list}}🚧
📖 References
: {{The Linux Kernel/doc|SPI|spi}}
==Hardware interfaces==
Hardware interfaces are basic part of any operating, enabling communication between the processor and other HW components of a computer system: memory, peripheral devices and buses, various controllers.
[[../Multitasking/CPU#Interrupts|Interrupts]]
===I/O ports and registers===
I/O ports and registers are electronic components in computer systems that enable communication between CPU and other electronic controllers and devices.
⚲ API
{{The Linux Kernel/include|asm-generic/io.h}} — generic I/O port emulation.
: {{The Linux Kernel/id|ioport_map}}
: {{The Linux Kernel/id|ioread32}} / {{The Linux Kernel/id|iowrite32}} ...
: {{The Linux Kernel/id|readl}}/ {{The Linux Kernel/id|writel}} ...
: The {in,out}[bwl] macros are for emulating x86-style PCI/ISA IO space:
: {{The Linux Kernel/id|inl}}/ {{The Linux Kernel/id|outl}} ...
{{The Linux Kernel/include|linux/ioport.h}} — definitions of routines for detecting, reserving and allocating system resources.
: {{The Linux Kernel/id|request_mem_region}}
{{The Linux Kernel/source|arch/x86/include/asm/io.h}} – x86 I/O port and MMIO access
Functions for memory mapped registers:
{{The Linux Kernel/id|ioremap}} ...
==== regmap ====
The regmap subsystem provides a standardized abstraction layer for register access in device drivers.
It simplifies interactions with hardware registers across various bus types,
such as I2C, SPI, and MMIO, by offering a consistent API.
⚲ API
{{The Linux Kernel/include|linux/regmap.h}} — register map access API
: the most frequently used functions:
: {{The Linux Kernel/id|regmap_update_bits}}
: {{The Linux Kernel/id|regmap_write}}
: {{The Linux Kernel/id|regmap_read}}
: {{The Linux Kernel/id|regmap_reg_range}}
: {{The Linux Kernel/id|regmap_bulk_read}}
: {{The Linux Kernel/id|devm_regmap_init_i2c}}
: {{The Linux Kernel/id|regmap_set_bits}}
: {{The Linux Kernel/id|regmap_field_write}}
: {{The Linux Kernel/id|regmap_bulk_write}}
: {{The Linux Kernel/id|regmap_clear_bits}}
: {{The Linux Kernel/id|regmap_write_bits}}
: {{The Linux Kernel/id|regmap_config}}
: {{The Linux Kernel/id|regmap_read_poll_timeout}}
: {{The Linux Kernel/id|devm_regmap_init_mmio}}
⚙️ Internals
{{The Linux Kernel/source|drivers/base/regmap}} – register map abstraction layer
===Hardware Device Drivers===
Keywords: firmware, hotplug, clock, mux, pin
⚙️ Internals
: {{The Linux Kernel/source|drivers/acpi}} – ACPI drivers
: {{The Linux Kernel/source|drivers/base}} – driver model core
: {{The Linux Kernel/source|drivers/sdio}} – {{w|Secure Digital#SDIO cards|Secure Digital Input Output}}
: {{The Linux Kernel/source|drivers/virtio}} – virtio guest drivers
: {{The Linux Kernel/source|drivers/hwmon}} – hardware monitoring
: {{The Linux Kernel/source|drivers/thermal}} – thermal management
: {{The Linux Kernel/source|drivers/pinctrl}} – pin control and multiplexing
: {{The Linux Kernel/source|drivers/clk}} – clock framework
📖 References
: {{The Linux Kernel/doc|Pin control subsystem|driver-api/pin-control.html}}
: {{The Linux Kernel/doc|Linux Hardware Monitoring|hwmon}}
: {{The Linux Kernel/doc|Firmware guide|firmware-guide}}
: {{The Linux Kernel/doc|Devicetree|devicetree}}
: https://hwmon.wiki.kernel.org/
: [http://lwn.net/images/pdf/LDD3/ch14.pdf LDD3:The Linux Device Model]
: http://www.tldp.org/LDP/tlk/dd/drivers.html
: http://www.xml.com/ldd/chapter/book/
: http://examples.oreilly.com/linuxdrive2/
=== Booting and halting ===
==== Kernel booting ====
This is loaded in two stages - in the first stage the kernel (as a compressed image file) is loaded into memory and decompressed, and a few fundamental functions such as essential hardware and basic memory management (memory paging) are set up.
Control is then switched one final time to the main kernel start process calling {{The Linux Kernel/id|start_kernel}}, which then performs the majority of system setup (interrupts, the rest of memory management, device and driver initialization, etc.) before spawning separately, the idle process and scheduler, and the init process (which is executed in user space).
'''Kernel loading stage'''
The kernel as loaded is typically an image file, compressed into either zImage or bzImage formats with zlib.
A routine at the head of it does a minimal amount of hardware setup, decompresses the image fully into high memory, and takes note of any RAM disk if configured.
It then executes kernel startup via startup_64 (for x86_64 architecture).
: {{The Linux Kernel/source|arch/x86/boot/compressed/vmlinux.lds.S}} - linker script defines entry {{The Linux Kernel/id|startup_64}} in
: {{The Linux Kernel/source|arch/x86/boot/compressed/head_64.S}} - assembly of extractor
: {{The Linux Kernel/id|extract_kernel}} - extractor in language C
:: prints
Decompressing Linux... done.
Booting the kernel.
'''Kernel startup stage'''
The startup function for the kernel (also called the swapper or process 0) establishes memory management (paging tables and memory paging), detects the type of CPU and any additional functionality such as floating point capabilities, and then switches to non-architecture specific Linux kernel functionality via a call to {{The Linux Kernel/id|start_kernel}}.
↯ Startup call hierarchy:
: {{The Linux Kernel/source|arch/x86/kernel/vmlinux.lds.S}} – linker script
: {{The Linux Kernel/source|arch/x86/kernel/head_64.S}} – assembly of uncompressed startup code
: {{The Linux Kernel/source|arch/x86/kernel/head64.c}} – platform dependent startup:
:: {{The Linux Kernel/id|x86_64_start_kernel}}
:: {{The Linux Kernel/id|x86_64_start_reservations}}
: {{The Linux Kernel/source|init/main.c}} – main initialization code
:: {{The Linux Kernel/id|start_kernel}} 200 SLOC
::: {{The Linux Kernel/id|mm_init}}
:::: {{The Linux Kernel/id|mem_init}}
:::: {{The Linux Kernel/id|vmalloc_init}}
::: {{The Linux Kernel/id|sched_init}}
::: {{The Linux Kernel/id|rcu_init}} – {{w|Read-copy-update}}
::: {{The Linux Kernel/id|rest_init}}
:::: {{The Linux Kernel/id|kernel_init}} - deferred kernel thread #1
::::: {{The Linux Kernel/id|kernel_init_freeable}} This and following functions are defined with attribute {{The Linux Kernel/id|__init}}
:::::: {{The Linux Kernel/id|prepare_namespace}}
::::::: {{The Linux Kernel/id|initrd_load}}
::::::: {{The Linux Kernel/id|mount_root}}
::::: {{The Linux Kernel/id|run_init_process}} obviously runs the first process {{The Linux Kernel/man|1|init}}
:::: {{The Linux Kernel/id|kthreadd}} – deferred kernel thread #2
:::: {{The Linux Kernel/id|cpu_startup_entry}}
::::: {{The Linux Kernel/id|do_idle}}
{{The Linux Kernel/id|start_kernel}} executes a wide range of initialization functions. It sets up interrupt handling (IRQs), further configures memory, starts the {{The Linux Kernel/man|1|init}} process (the first user-space process), and then starts the idle task via {{The Linux Kernel/id|cpu_startup_entry}}. Notably, the kernel startup process also mounts the {{w|initial ramdisk}} (initrd) that was loaded previously as the temporary root file system during the boot phase. The initrd allows driver modules to be loaded directly from memory, without reliance upon other devices (e.g. a hard disk) and the drivers that are needed to access them (e.g. a SATA driver). This split of some drivers statically compiled into the kernel and other drivers loaded from initrd allows for a smaller kernel. The root file system is later switched via a call to {{The Linux Kernel/man|8|pivot_root}} / {{The Linux Kernel/man|2|pivot_root}} which unmounts the temporary root file system and replaces it with the use of the real one, once the latter is accessible. The memory used by the temporary root file system is then reclaimed.
⚙️ Internals
: {{The Linux Kernel/source|arch/x86/Kconfig.debug}} – x86 debugging Kconfig options
: {{The Linux Kernel/include|linux/smpboot.h}}
: {{The Linux Kernel/source|kernel/smpboot.c}} – common SMP CPU bringup/teardown
: {{The Linux Kernel/source|arch/x86/kernel/smpboot.c}} – x86 SMP booting
===== ... =====
📖 References
: Article about [[../Booting|booting of the kernel]]
: {{The Linux Kernel/doc|Initial RAM disk|admin-guide/initrd.html}}
: [https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt#:~:text=initcall_debug initcall_debug, boot argument]
: {{w|Linux startup process}}
: {{w|init}}
: [http://lwn.net/Articles/632528/ Linux (U)EFI boot process]
: {{The Linux Kernel/doc|The kernel’s command-line parameters|admin-guide/kernel-parameters.html}}
: {{The Linux Kernel/doc|The EFI Boot Stub|admin-guide/efi-stub.html}}
: {{The Linux Kernel/doc|Boot Configuration|admin-guide/bootconfig.html}}
: {{The Linux Kernel/doc|Boot time memory management|core-api/boot-time-mm.html}}
: [https://github.com/0xAX/linux-insides/blob/master/Booting/README.md Kernel booting process]
: [https://github.com/0xAX/linux-insides/blob/master/Initialization/README.md Kernel initialization process]
📚 Further reading
: {{The Linux Kernel/doc|Boot-time tracing|trace/boottime-trace.html}}
: {{w|E820}}
💾 ''Historical''
: http://tldp.org/HOWTO/Linux-i386-Boot-Code-HOWTO/
: http://www.tldp.org/LDP/lki/lki-1.html
: http://www.tldp.org/HOWTO/KernelAnalysis-HOWTO-4.html
==== Halting or rebooting ====
🔧 TODO
⚲ API
: {{The Linux Kernel/include|linux/reboot.h}}
: {{The Linux Kernel/include|linux/stop_machine.h}}
:: {{The Linux Kernel/id|print_stop_info}}
:: {{The Linux Kernel/id|stop_machine}}
::: {{The Linux Kernel/id|stop_core_cpuslocked}}
: {{The Linux Kernel/id|reboot_mode}}
: {{The Linux Kernel/id|sys_reboot}} calls
:: {{The Linux Kernel/id|machine_restart}} or
:: {{The Linux Kernel/id|machine_halt}} or
:: {{The Linux Kernel/id|machine_power_off}}
: {{The Linux Kernel/include|linux/reboot-mode.h}}
:: {{The Linux Kernel/id|reboot_mode_driver}}
::: {{The Linux Kernel/id|devm_reboot_mode_register}}
⚙️ Internals
: {{The Linux Kernel/source|kernel/reboot.c}} – reboot, halt and power-off
: {{The Linux Kernel/source|kernel/stop_machine.c}} – stop all CPUs for safe code patching
:: {{The Linux Kernel/id|cpu_stopper}}
:: {{The Linux Kernel/id|cpu_stop_init}}
::: {{The Linux Kernel/id|cpu_stopper_thread}} – "migration" tasks
: {{The Linux Kernel/source|arch/x86/kernel/reboot.c}} – x86 reboot methods
: [[../Softdog Driver/]]
==== Power management ====
Keyword: suspend, alarm, hibernation.
⚲ API
: /sys/power/
: /sys/kernel/debug/wakeup_sources
:: <big>⌨️</big> hands-on:
:: sudo awk '{gsub("^ ","?")} NR>1 {if ($6) {print $1}}' /sys/kernel/debug/wakeup_sources
: {{The Linux Kernel/include|linux/pm.h}}
:: {{The Linux Kernel/include|linux|dev_pm_ops}}
: {{The Linux Kernel/include|linux/pm_qos.h}}
: {{The Linux Kernel/include|linux/pm_clock.h}}
: {{The Linux Kernel/include|linux/pm_domain.h}}
: {{The Linux Kernel/include|linux/pm_wakeirq.h}}
: {{The Linux Kernel/include|linux/pm_wakeup.h}}
:: {{The Linux Kernel/id|wakeup_source}}
:: {{The Linux Kernel/id|wakeup_source_register}}
: {{The Linux Kernel/include|linux/suspend.h}}
:: {{The Linux Kernel/id|pm_suspend}} suspends the system
: Suspend and wakeup depend on
:: {{The Linux Kernel/man|2|timer_create}} and {{The Linux Kernel/man|2|timerfd_create}} with clock ids {{The Linux Kernel/id|CLOCK_REALTIME_ALARM}} or {{The Linux Kernel/id|CLOCK_BOOTTIME_ALARM}} will wake the system if it is suspended.
:: {{The Linux Kernel/man|2|epoll_ctl}} with flag {{The Linux Kernel/id|EPOLLWAKEUP}} blocks suspend
:: See also {{The Linux Kernel/man|7|capabilities}} {{The Linux Kernel/id|CAP_WAKE_ALARM}}, {{The Linux Kernel/id|CAP_BLOCK_SUSPEND}}
⚙️ Internals
: {{The Linux Kernel/id|CONFIG_PM}}
: {{The Linux Kernel/id|CONFIG_SUSPEND}}
: {{The Linux Kernel/source|kernel/power}} – suspend, hibernate and PM core
: {{The Linux Kernel/id|alarm_init}}
: {{The Linux Kernel/source|kernel/time/alarmtimer.c}} – alarm timer for wakeup events
: {{The Linux Kernel/source|drivers/base/power}}: {{The Linux Kernel/id|wakeup_sources}}
📖 References
: {{The Linux Kernel/doc|PM administration|admin-guide/pm}}
: {{The Linux Kernel/doc|CPU and Device PM|driver-api/pm}}
: {{The Linux Kernel/doc|Power Management|power}}
: {{The Linux Kernel/doc|sysfs power testing ABI|admin-guide/abi-testing.html#file-testing-sysfs-power}}
: https://lwn.net/Kernel/Index/#Power_management
: {{w|PowerTOP}}
: [https://linux.die.net/man/1/cpupower cpupower]
: [https://manpages.ubuntu.com/manpages/xenial/man8/tlp.8.html tlp] – apply laptop power management settings
: {{w|ACPI}} – Advanced Configuration and Power Interface
===== Runtime PM =====
Keywords: runtime power management, devices power management opportunistic suspend, autosuspend, autosleep.
⚲ API
: /sys/devices/.../power/:
:: async autosuspend_delay_ms control runtime_active_kids runtime_active_time runtime_enabled runtime_status runtime_suspended_time runtime_usage
: {{The Linux Kernel/include|linux/pm_runtime.h}}
:: {{The Linux Kernel/id|pm_runtime_mark_last_busy}}
:: {{The Linux Kernel/id|pm_runtime_enable}}
:: {{The Linux Kernel/id|pm_runtime_disable}}
:: {{The Linux Kernel/id|pm_runtime_get}} – asynchronous get
:: {{The Linux Kernel/id|pm_runtime_get_sync}}
:: {{The Linux Kernel/id|pm_runtime_resume_and_get}} – preferable synchronous get
:: {{The Linux Kernel/id|pm_runtime_put}}
:: {{The Linux Kernel/id|pm_runtime_put_noidle}} – just decrement usage counter
:: {{The Linux Kernel/id|pm_runtime_put_sync}}
:: {{The Linux Kernel/id|pm_runtime_put_autosuspend}}
: {{The Linux Kernel/id|SET_RUNTIME_PM_OPS}}
👁 Example: {{The Linux Kernel/id|ac97_pm}}
⚙️ Internals
: {{The Linux Kernel/id|CONFIG_PM_AUTOSLEEP}}
=== ... ===
📖 References
: {{The Linux Kernel/doc|Runtime Power Management Framework for I/O Devices|power/runtime_pm.html}}
: [https://wiki.linuxfoundation.org/realtime/documentation/howto/applications/cpuidle CPU idle power saving methods for real-time workloads]
: [https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-devices-power Sysfs devices PM API]
: [https://www.kernel.org/doc/Documentation/driver-api/usb/power-management.rst Power Management for USB]
: [https://lwn.net/Kernel/Index/#Power_management-Opportunistic_suspend Opportunistic suspend]
📚 Further reading
: https://deepwiki.com/torvalds/linux/5-hardware-drivers
== Building and Updating ==
: [[../Updating/]]
{{BookCat}}
c0fuh7odqb2m9dv7tsgpsx5ccyjhlu3
The Linux Kernel/Multitasking
0
226982
4640218
4634336
2026-06-13T17:19:37Z
Conan
3188
add brief descriptions to source file references
4640218
wikitext
text/x-wiki
<noinclude>{{DISPLAYTITLE:Multitasking functionality}}</noinclude>
{| style="width: 25%; float: right; text-align:center;border-spacing: 0; margin:auto;" cellpadding="5pc"
! bgcolor="#ffc" |multitasking
|-
| bgcolor="#eeb" |[[#Execution|execution]]
|-
| bgcolor="#dda" |[[#Threads_or_tasks|threads or tasks]]
|-
| bgcolor="#cc9" |[[#Synchronization|synchronization]]
|-
| bgcolor="#bb8" |[[#Scheduler|Scheduler]]
|-
| bgcolor="#aa8" |[[#Interrupts|interrupts core]]
|- style=""
| bgcolor="#997" |[[#CPU_specific|CPU specific]]
|}
Linux kernel is a preemptive {{w|Computer multitasking|multitasking}} operating system.
As a multitasking OS, it allows multiple processes to share processors (CPUs) and other system resources.
Each CPU executes a single task at a time.
However, multitasking allows each processor to switch between tasks that are being executed without having to wait for each task to finish.
For that, the kernel can, at any time, temporarily interrupt a task being carried out by the processor, and replace it by another task that can be new or a previously suspended one.
The operation involving the swapping of the running task is called ''{{w|context switch}}''.
== Execution ==
⚲ API ↪ ⚙️ implementations
{{The Linux Kernel/man|2|execve}} ↪ {{The Linux Kernel/id|do_execve}} runs an executable file in the context of current process, replacing the previous executable.
This system call is used by family of functions of libc {{The Linux Kernel/man|3|exec}}
{{The Linux Kernel/man|2|clone}}.
Clone creates a child process that may share parts of its execution context with the parent.
It is often used to implement threads (though programmers will typically use a higher-level interface such as {{The Linux Kernel/man|7|pthreads}}, implemented on top of clone).
{{The Linux Kernel/man|2|wait}} ↪ {{The Linux Kernel/id|kernel_waitid}} suspends the execution of the calling process until one of its children processes terminates.
Syscall {{The Linux Kernel/man|2|getpid}} ↪ {{The Linux Kernel/id|task_tgid_vnr}} returns PID of the current process which internally is called TGID - thread group id.
A process can contain many threads.
{{The Linux Kernel/man|2|gettid}} ↪ {{The Linux Kernel/id|task_pid_vnr}} returns thread id.
Which internally is historically called PID.
⚠️ Warning: confusion.
User space PID ≠ kernel space PID.
{{The Linux Kernel/man|1|ps}} -AF lists current processes and thread as {{w|Light-weight process|LWP}}.
For a single thread process all these IDs are equal.
High-resolution delays:
: {{The Linux Kernel/man|2|nanosleep}} ↪ {{The Linux Kernel/id|sys_nanosleep}}
:: {{The Linux Kernel/id|hrtimer_nanosleep}}
: {{The Linux Kernel/man|2|clock_nanosleep}} ↪ {{The Linux Kernel/id|sys_clock_nanosleep}}
Wait for a signal:
: {{The Linux Kernel/man|2|pause}} ↪ {{The Linux Kernel/id|sys_pause}}
: {{The Linux Kernel/man|2|sigsuspend}} ↪ {{The Linux Kernel/id|sys_sigsuspend}}
See [[The Linux Kernel/Processes|Processes]] for process creation and termination.
=== Inter-process communication ===
Inter-process communication (IPC) refers specifically to the mechanisms an operating system provides to allow processes it manages to share data.
Methods for achieving IPC are divided into categories which vary based on software requirements, such as performance and modularity requirements, and system circumstances.
Linux inherited from Unix the following IPC mechanisms:
Signals (⚲ API ↪ ⚙️ implementations):
: {{The Linux Kernel/man|2|kill}} sends signal to a process
: {{The Linux Kernel/man|2|tgkill}} ↪ {{The Linux Kernel/id|do_tkill}} sends a signal to a thread
: {{The Linux Kernel/man|2|process_vm_readv}} ↪ {{The Linux Kernel/id|process_vm_rw}} - zero-copy data transfer between process address spaces
: {{The Linux Kernel/man|2|sigaction}} ↪ {{The Linux Kernel/id|do_sigaction}} – examine and change a signal action
: {{The Linux Kernel/man|2|sigprocmask}} – examine and change blocked signals
: {{The Linux Kernel/man|2|sigpending}} ↪ {{The Linux Kernel/id|do_sigpending}} – examine pending signals
: {{The Linux Kernel/man|2|sigsuspend}} – wait for a signal
: {{The Linux Kernel/man|2|sigaltstack}} – set or get signal stack context
: {{The Linux Kernel/man|2|sigtimedwait}} ↪ {{The Linux Kernel/id|do_sigtimedwait}} – synchronously wait for queued signals
: {{The Linux Kernel/man|7|signal}} – overview of signals
: {{The Linux Kernel/source|kernel/signal.c}} – signal delivery and handling
: [[../Storage#Zero-copy|Anonymous pipes]] and named pipes (FIFOs) {{The Linux Kernel/man|2|mknod}} ↪ {{The Linux Kernel/id|do_mknodat}} {{The Linux Kernel/id|S_IFIFO}}
: {{w|Express Data Path}} {{The Linux Kernel/id|PF_XDP}}
: {{w|Unix domain socket}} {{The Linux Kernel/id|PF_UNIX}}
: Memory-mapped files {{The Linux Kernel/man|2|mmap}} ⤑ {{The Linux Kernel/id|ksys_mmap_pgoff}}
: {{The Linux Kernel/man|2|eventfd}} ↪ {{The Linux Kernel/id|do_eventfd}} – event notification via file descriptor
: {{The Linux Kernel/man|2|signalfd}} ↪ {{The Linux Kernel/id|do_signalfd4}} – receive signals via file descriptor
: {{The Linux Kernel/man|2|timerfd_create}} – timer notification via file descriptor
: Sys V IPC:
:: Message queues
:: Semaphores
:: Shared memory: {{The Linux Kernel/man|2|shmget}}, {{The Linux Kernel/man|2|shmctl}}, {{The Linux Kernel/man|2|shmat}}, {{The Linux Kernel/man|2|shmdt}}
📖 References
: {{w|Inter-process communication}}
: {{The Linux Kernel/man|7|sysvipc}}
== Threads or tasks ==
In Linux kernel "thread" and "task" are almost synonyms.
⚲ API
: {{The Linux Kernel/include|linux/sched.h}} - the main scheduler API
:: {{The Linux Kernel/id|task_struct}}
: {{The Linux Kernel/source|arch/x86/include/asm/current.h}} – x86 current task pointer
::{{Linux ident|current}} and {{The Linux Kernel/id|get_current}} () return current {{The Linux Kernel/id|task_struct}}
: {{The Linux Kernel/include|uapi/linux/taskstats.h}} per-task statistics
: {{The Linux Kernel/include|linux/thread_info.h}}
:: {{The Linux Kernel/id|current_thread_info}}() returns {{The Linux Kernel/id|thread_info}}
:{{The Linux Kernel/include|linux/sched/task.h}} - interface between the scheduler and various task lifetime (fork()/exit()) functionality
: {{The Linux Kernel/include|linux/kthread.h}} - simple interface for creating and stopping kernel threads without mess.
::{{The Linux Kernel/id|kthread_run}} creates and wakes a thread
::{{The Linux Kernel/id|kthread_create}}
⚙️ Internals
: {{The Linux Kernel/id|kthread_run}} ↯ hierarchy:
: {{The Linux Kernel/source|kernel/kthread.c}} – kernel thread creation and management
:: {{The Linux Kernel/id|kthreadd}} – parent kernel thread and the creator of all other kernel threads.
Dequeues {{The Linux Kernel/id|kthread_create_info}} from {{The Linux Kernel/id|kthread_create_list}}.
::: {{The Linux Kernel/id|create_kthread}}
:::: {{The Linux Kernel/id|kernel_thread}}
:::: {{The Linux Kernel/id|kthread}} – invokes {{The Linux Kernel/id|threadfn}}
:: {{The Linux Kernel/id|__kthread_create_on_node}} – enqueues {{The Linux Kernel/id|kthread_create_info}} into {{The Linux Kernel/id|kthread_create_list}}
: {{The Linux Kernel/source|kernel/fork.c}} – process creation and cloning
:: {{The Linux Kernel/id|kernel_thread}}
::: {{The Linux Kernel/id|kernel_clone}}
==Scheduler==
The ''{{w|Scheduling_(computing)#Linux|scheduler}}'' is the part of the operating system that decides which process runs at a certain point in time.
It usually has the ability to pause a running process, move it to the back of the running queue and start a new process.
Active processes are placed in an array called a ''{{w|run queue}}'', or ''runqueue'' - {{The Linux Kernel/id|rq}}.
The run queue may contain priority values for each process, which will be used by the scheduler to determine which process to run next.
To ensure each program has a fair share of resources, each one is run for some time period (quantum) before it is paused and placed back into the run queue.
When a program is stopped to let another run, the program with the highest priority in the run queue is then allowed to execute.
Processes are also removed from the run queue when they ask to ''sleep'', are waiting on a resource to become available, or have been terminated.
Since version 6.6 the Linux kernel uses the {{w|Earliest eligible virtual deadline first scheduling}} (EEVDF) algorithm, which replaced the {{w|Completely Fair Scheduler}} (CFS).
While much of the CFS infrastructure remains: {{The Linux Kernel/id|sched_entity}}, {{The Linux Kernel/id|cfs_rq}}, the red-black tree, load balancing, and {{The Linux Kernel/source|kernel/sched/fair.c}} — the task selection logic is fundamentally different.
EEVDF is based on a classic scheduling algorithm originally designed for packet networks.
The scheduler has a scheduling complexity of O(log N), where N is the number of tasks in the runqueue.
Both picking and reinserting a task require O(log N) operations, because the run queue is implemented as a {{w|red–black tree}}.
The runqueue ({{The Linux Kernel/id|cfs_rq}}) is implemented as a red-black tree representing a "timeline" of future task execution.
The scheduler uses nanosecond granularity accounting and requires no heuristics or interactivity estimators.
EEVDF improves sleeper fairness over CFS by tracking ''lag'' ({{The Linux Kernel/id|vlag}}) — the difference between the service a task was entitled to and the service it actually received.
When a sleeping task wakes up, its lag determines eligibility, ensuring interactive tasks get prompt service without starving long-running tasks.
The data structure used for the scheduling algorithm is a red-black tree in which the nodes are {{The Linux Kernel/id|sched_entity}} structures, embedded in {{The Linux Kernel/id|task_struct}}.
With EEVDF, each task has a time slice ({{The Linux Kernel/id|sysctl_sched_base_slice}}, default 0.7ms) that determines its request length.
EEVDF computes a virtual deadline for each task: vd_i = ve_i + r_i/w_i, where ve_i is the eligible time, r_i is the request size, and w_i is the weight (determined by nice value).
The scheduler picks the eligible task with the earliest virtual deadline via {{The Linux Kernel/id|__pick_eevdf}}.
The Linux kernel contains different scheduler classes (or policies).
The EEVDF scheduler handles {{The Linux Kernel/id|SCHED_NORMAL}} (aka SCHED_OTHER).
The kernel also contains two additional classes {{The Linux Kernel/id|SCHED_BATCH}} and {{The Linux Kernel/id|SCHED_IDLE}}, and another two real-time scheduling classes named {{The Linux Kernel/id|SCHED_FIFO}} (realtime first-in-first-out) and {{The Linux Kernel/id|SCHED_RR}} (realtime round-robin), with a third realtime scheduling policy known as {{The Linux Kernel/id|SCHED_DEADLINE}} that implements the {{w|Earliest deadline first scheduling|earliest deadline first algorithm (EDF)}} added later.
Any realtime scheduler class takes precedence over any of the "normal" —i.e.
non realtime— classes.
The scheduler class is selected and configured through the {{The Linux Kernel/man|2|sched_setscheduler}} ↪ {{The Linux Kernel/id|do_sched_setscheduler}} system call.
Properly balancing latency, throughput, and fairness in schedulers is an open problem.<ref name="malte" >
Malte Skarupke.
[https://probablydance.com/2019/12/30/measuring-mutexes-spinlocks-and-how-bad-the-linux-scheduler-really-is/ "Measuring Mutexes, Spinlocks and how Bad the Linux Scheduler Really is"].
</ref>
⚲ API
: {{The Linux Kernel/man|1|renice}} – priority of running processes
: {{The Linux Kernel/man|1|nice}} – run a program with modified scheduling priority
: {{The Linux Kernel/man|1|chrt}} – manipulate the real-time attributes of a process
:: {{The Linux Kernel/man|2|sched_getattr}} ↪ {{The Linux Kernel/id|sys_sched_getattr}} – get scheduling policy and attributes
: {{The Linux Kernel/include|linux/sched.h}} – the main scheduler API
:: {{The Linux Kernel/id|schedule}}
: {{The Linux Kernel/man|2|getpriority}}, {{The Linux Kernel/man|2|setpriority}}
: {{The Linux Kernel/man|2|sched_setscheduler}}, {{The Linux Kernel/man|2|sched_getscheduler}}
: /sys/kernel/debug/sched/ – scheduler debugfs tuning directory
:: features – toggle scheduler feature flags
:: base_slice_ns – EEVDF base time slice (default 700000)
:: migration_cost_ns – cost threshold for task migration between CPUs
:: nr_migrate – max tasks to migrate per balancing pass
:: debug – dump detailed scheduler state
:: numa_balancing/ – NUMA balancing scan parameters
⚙️ Internals
:{{The Linux Kernel/id|sched_init}} is called from {{The Linux Kernel/id|start_kernel}}
: {{The Linux Kernel/id|__schedule}} is the main scheduler function.
: {{The Linux Kernel/id|runqueues}}, {{The Linux Kernel/id|this_rq}}
: {{The Linux Kernel/source|kernel/sched}} – scheduler subsystem
: {{The Linux Kernel/source|kernel/sched/core.c}} – core scheduling logic
: {{The Linux Kernel/source|kernel/sched/fair.c}} implements {{The Linux Kernel/id|SCHED_NORMAL}}, {{The Linux Kernel/id|SCHED_BATCH}}, {{The Linux Kernel/id|SCHED_IDLE}}
:: {{The Linux Kernel/id|__pick_eevdf}} – core of EEVDF
: {{The Linux Kernel/id|sched_setscheduler}}, {{The Linux Kernel/id|sched_getscheduler}}
: {{The Linux Kernel/id|task_struct}}::{{The Linux Kernel/id|rt_priority}} and other members with less unique identifiers
🛠️ Utilities
: {{The Linux Kernel/man|1|pidstat}}
: {{The Linux Kernel/man|1|pcp-pidstat}}
: {{The Linux Kernel/man|1|perf-sched}}
: [https://opensource.googleblog.com/2019/10/understanding-scheduling-behavior-with.html Understanding Scheduling Behavior with SchedViz]
📖 References
: {{The Linux Kernel/man|7|sched}}
: {{The Linux Kernel/doc|Scheduling|scheduler}}
:: {{The Linux Kernel/doc|EEVDF Scheduler|scheduler/sched-eevdf.html}}
::: [https://lwn.net/Kernel/Index/#Scheduler-EEVDF An EEVDF CPU scheduler for Linux LWN]
: {{The Linux Kernel/doc|Delaying and scheduling routines|driver-api/basics.html#delaying-and-scheduling-routines}}
: CFS
:: {{The Linux Kernel/doc|Completely Fair Scheduler|scheduler/sched-design-CFS.html}}
:: {{The Linux Kernel/doc|CFS Bandwidth Control|scheduler/sched-bwc.html}}
:: [[The Linux Kernel/System/CGroup v2#CPU|CPU cgroup controller]]
:: {{The Linux Kernel/doc|CPU cgroup interface files|admin-guide/cgroup-v2.html#cpu-interface-files}}
:: [https://lwn.net/Kernel/Index/#Scheduler-Completely_fair_scheduler Completely fair scheduler LWN]
:: [https://documentation.suse.com/sles/15-SP1/html/SLES-all/cha-tuning-taskscheduler.html Tuning the task scheduler]
:: [https://home.robusta.dev/blog/stop-using-cpu-limits stop using CPU limits on Kubernetes]
: {{The Linux Kernel/doc|Deadline Task Scheduler|scheduler/sched-deadline.html}}
: {{The Linux Kernel/ltp|kernel|sched}}
: {{The Linux Kernel/ltp|kernel/syscalls|sched_setparam}}
: {{The Linux Kernel/ltp|kernel/syscalls|sched_getscheduler}}
: {{The Linux Kernel/ltp|kernel/syscalls|sched_setscheduler}}
📚 Further reading about the scheduler
: [https://github.com/iovisor/bpftrace/blob/master/docs/tutorial_one_liners.md#lesson-10-scheduler-tracing Scheduler tracing]
: [https://github.com/iovisor/bcc/blob/master/README.md#cpu-and-scheduler-tools bcc/ebpf CPU and scheduler tools]
=== Preemption ===
Preemption refers to the ability of the system to interrupt a running task to switch to another task.
This is essential for ensuring that high-priority tasks receive the necessary CPU time and for improving the system's responsiveness.
In Linux, preemption models define how and when the kernel can preempt tasks.
Different models offer varying trade-offs between system responsiveness and throughput.
📖 References
: {{The Linux Kernel/doc|Proper Locking Under a Preemptible Kernel|locking/preempt-locking.html}}
:: {{The Linux Kernel/id|preempt_enable}} – decrement the preempt counter
:: {{The Linux Kernel/id|preempt_disable}} – increment the preempt counter
:: {{The Linux Kernel/id|preempt_enable_no_resched}} – decrement, but do not immediately preempt
:: {{The Linux Kernel/id|preempt_check_resched}} – if needed, reschedule
:: {{The Linux Kernel/id|preempt_count}} – return the preempt counter
: {{The Linux Kernel/source|kernel/Kconfig.preempt}} – preemption model configuration
:: {{The Linux Kernel/id|CONFIG_PREEMPT_NONE}} – no forced preemption for servers
:: {{The Linux Kernel/id|CONFIG_PREEMPT_VOLUNTARY}} – voluntary preemption for desktops
:: {{The Linux Kernel/id|CONFIG_PREEMPT}} – preemptible except for critical sections for low-latency desktops
:: {{The Linux Kernel/id|CONFIG_PREEMPT_RT}} – real-time preemption for [[Embedded_Systems/Linux#Real-time|highly responsive applications]]
:: {{The Linux Kernel/id|CONFIG_PREEMPT_DYNAMIC}} – allows runtime switching of preemption model
::: /sys/kernel/debug/sched/preempt – shows and controls the active preemption model
=== sched_ext ===
Since version 6.12 the kernel supports {{The Linux Kernel/id|SCHED_EXT}} — an extensible scheduler class whose behavior is defined by a set of {{w|eBPF}} programs.
Any scheduling algorithm can be implemented on top of sched_ext, loaded and unloaded dynamically at runtime.
The system integrity is maintained no matter what the BPF scheduler does: the default scheduling behavior is restored on error or when a runnable task stalls.
⚙️ Internals
: {{The Linux Kernel/id|CONFIG_SCHED_CLASS_EXT}}
: {{The Linux Kernel/source|kernel/sched/ext.c}} – extensible BPF scheduler class
: {{The Linux Kernel/id|sched_ext_ops}} – BPF scheduler operations
: {{The Linux Kernel/id|sched_ext_entity}} – per-task sched_ext data, embedded in {{The Linux Kernel/id|task_struct}}
👁 Examples
: {{The Linux Kernel/source|tools/sched_ext}} – in-tree example BPF schedulers
📖 References
: {{The Linux Kernel/doc|Extensible Scheduler Class|scheduler/sched-ext.html}}
: [https://github.com/sched-ext/scx sched-ext/scx] – production BPF schedulers
: [https://lwn.net/Kernel/Index/#Scheduler-BPF Scheduler BPF LWN]
=== Energy Aware Scheduling ===
🚀 advanced topic
Since version 5.0, Energy Aware Scheduling (EAS) gives the scheduler the ability to predict the impact of its decisions on the energy consumed by CPUs.
EAS relies on an Energy Model (EM) to select an energy efficient CPU for each task, with minimal impact on throughput.
EAS operates only on heterogeneous CPU topologies (such as ARM {{w|big.LITTLE}}) where the potential for energy savings is highest.
⚲ API
: /proc/sys/kernel/sched_energy_aware – enable or disable EAS
: {{The Linux Kernel/include|linux/energy_model.h}}
:: {{The Linux Kernel/id|em_perf_domain}} – performance domain descriptor
:: {{The Linux Kernel/id|em_cpu_get}} – get the EM for a given CPU
⚙️ Internals
: {{The Linux Kernel/id|CONFIG_ENERGY_MODEL}}
: {{The Linux Kernel/id|find_energy_efficient_cpu}} – find most energy-efficient target CPU for a waking task
: {{The Linux Kernel/source|kernel/power/energy_model.c}} – CPU energy model framework
📖 References
: {{The Linux Kernel/doc|Energy Aware Scheduling|scheduler/sched-energy.html}}
: {{The Linux Kernel/doc|Energy Model of devices|power/energy-model.html}}
=== Wait queues ===
A ''wait queue'' in the kernel is a data structure that allows one or more processes to wait (sleep) until something of interest happens.
They are used throughout the kernel to wait for available memory, I/O completion, message arrival, and many other things.
In the early days of Linux, a wait queue was a simple list of waiting processes, but various scalability problems (including the {{w|thundering herd problem}}) have led to the addition of a fair amount of complexity since then.
⚲ API
{{The Linux Kernel/include|linux/wait.h}}
{{The Linux Kernel/id|wait_queue_head}} consists of double linked list of {{The Linux Kernel/id|wait_queue_entry}} and a spinlock.
Waiting for simple events:
: Use one of two methods for {{The Linux Kernel/id|wait_queue_head}} initialization:
:: {{The Linux Kernel/id|init_waitqueue_head}} initializes {{The Linux Kernel/id|wait_queue_head}} in function context
:: {{The Linux Kernel/id|DECLARE_WAIT_QUEUE_HEAD}} - actually defines {{The Linux Kernel/id|wait_queue_head}} in global context
: Wait alternatives:
:: {{The Linux Kernel/id|wait_event_interruptible}} - preferable wait
:: {{The Linux Kernel/id|wait_event_interruptible_timeout}}
:: {{The Linux Kernel/id|wait_event}} - uninterruptible wait. Can cause deadlock ⚠
: {{The Linux Kernel/id|wake_up}} etc
👁 For example usage see references to unique {{The Linux Kernel/id|suspend_queue}}.
Explicit use of add_wait_queue instead of simple wait_event for complex cases:
: {{The Linux Kernel/id|DECLARE_WAITQUEUE}} actually defines wait_queue_entry with {{The Linux Kernel/id|default_wake_function}}
: {{The Linux Kernel/id|add_wait_queue}} inserts process in the first position of a wait queue
: {{The Linux Kernel/id|remove_wait_queue}}
⚙️ Internals
: {{The Linux Kernel/id|___wait_event}}
: {{The Linux Kernel/id|__add_wait_queue}}
: {{The Linux Kernel/id|__wake_up_common}}, {{The Linux Kernel/id|try_to_wake_up}}
: {{The Linux Kernel/source|kernel/sched/wait.c}} – wait queue implementation
Simple wait queues – simplified version with raw spinlock, suitable for RT and restricted contexts:
: {{The Linux Kernel/include|linux/swait.h}}
:: {{The Linux Kernel/id|swait_queue_head}}, {{The Linux Kernel/id|swait_queue}}
: {{The Linux Kernel/source|kernel/sched/swait.c}} – simple wait queue implementation
📖 References
: {{The Linux Kernel/doc|Wait queues and Wake events|driver-api/basics.html#wait-queues-and-wake-events}}
=== Real-time ===
{{:The Linux Kernel/Multitasking/Real-time}}
== Synchronization ==
Thread {{w|Synchronization (computer science)|synchronization}} is defined as a mechanism which ensures that two or more concurrent processes or threads do not simultaneously execute some particular program segment known as {{w|mutual exclusion}} (mutex).
When one thread starts executing the critical section (serialized segment of the program) the other thread should wait until the first thread finishes.
If proper synchronization techniques are not applied, it may cause a race condition where, the values of variables may be unpredictable and vary depending on the timings of context switches of the processes or threads.
=== User space synchronization ===
==== POSIX Timers ====
⚲ APIs
: {{The Linux Kernel/man|2|timer_create}} – creates a POSIX timer
: {{The Linux Kernel/man|2|timer_settime}} – starts or modifies a timer
: {{The Linux Kernel/man|2|timer_gettime}} – retrieves the remaining time of a timer
: {{The Linux Kernel/man|2|timer_delete}} – deletes a POSIX timer
: {{The Linux Kernel/man|2|clock_nanosleep}} – suspends execution for a specified time
⚙️ Internals
: {{The Linux Kernel/include|linux/posix-timers.h}}
: {{The Linux Kernel/source|kernel/time/itimer.c}} – interval timer (setitimer/getitimer)
: {{The Linux Kernel/source|kernel/time/posix-timers.c}} – POSIX clock and timer operations
: {{The Linux Kernel/source|kernel/time/posix-cpu-timers.c}} – per-process/thread CPU timers
:: {{The Linux Kernel/id|posix_cpu_timer_set}} – function setting up CPU timers
==== Futex ====
A {{The Linux Kernel/man|2|futex}} ↪ {{The Linux Kernel/id|do_futex}} (short for "Fast User space muTex") is a kernel system call that programmers can use to implement basic locking, or as a building block for higher-level locking abstractions such as semaphores and POSIX mutexes or condition variables.
A futex consists of a kernel space ''wait queue'' that is attached to an aligned integer in user space.
Multiple processes or threads operate on the integer entirely in user space (using atomic operations to avoid interfering with one another), and only resort to relatively expensive system calls to request operations on the wait queue (for example to wake up waiting processes, or to put the current process on the wait queue).
A properly programmed futex-based lock will not use system calls except when the lock is contended; since most operations do not require arbitration between processes, this will not happen in most cases.
The basic operations of futexes are based on only two central operations {{The Linux Kernel/id|futex_wait}} and {{The Linux Kernel/id|futex_wake}} though implementation has more operations for more specialized cases.
: WAIT (''addr'', ''val'') checks if the value stored at the address ''addr'' is ''val'', and if it is puts the current thread to sleep.
: WAKE (''addr'', ''val'') wakes up ''val'' number of threads waiting on the address ''addr''.
⚲ API
: {{The Linux Kernel/include|uapi/linux/futex.h}}
: {{The Linux Kernel/include|linux/futex.h}}
⚙️ Internals: {{The Linux Kernel/source|kernel/futex}}
📖 References
: {{w|Futex}}
: {{The Linux Kernel/man|7|futex}}
: {{The Linux Kernel/doc|Futex API reference|kernel-hacking/locking.html#futex-api-reference}}
: {{The Linux Kernel/ltp|kernel/syscalls|futex}}
==== File locking ====
⚲ API: {{The Linux Kernel/man|2|flock}}
==== Semaphore ====
💾 ''History: Semaphore is part of System V IPC {{The Linux Kernel/man|7|sysvipc}}''
⚲ API
: {{The Linux Kernel/man|2|semget}}
: {{The Linux Kernel/man|2|semctl}}
: {{The Linux Kernel/man|2|semop}}
⚙️ Internals: {{The Linux Kernel/source|ipc/sem.c}}
=== Kernel space synchronization ===
For kernel mode synchronization Linux provides three categories of locking primitives: sleeping, per CPU local locks and spinning locks.
==== Read-Copy-Update ====
Common mechanism to solve the readers–writers problem is the {{w|read-copy-update}} (''RCU'') algorithm.
Read-copy-update implements a kind of mutual exclusion that is wait-free (non-blocking) for readers, allowing extremely low overhead.
However, RCU updates can be expensive, as they must leave the old versions of the data structure in place to accommodate pre-existing readers.
⚲ The core API in {{The Linux Kernel/include|linux/rcupdate.h}} is quite small:
: {{The Linux Kernel/id|rcu_read_lock}} marks an RCU-protected data structure so that it won't be reclaimed for the full duration of that critical section.
: {{The Linux Kernel/id|rcu_read_unlock}} is used by a reader to inform the reclaimer that the reader is exiting an RCU read-side critical section. Note that RCU read-side critical sections may be nested and/or overlapping.
: {{The Linux Kernel/id|synchronize_rcu}} blocks until all pre-existing RCU read-side critical sections on all CPUs have completed. Note that <code>synchronize_rcu</code> will ''not'' necessarily wait for any subsequent RCU read-side critical sections to complete.
For example, consider the following sequence of events:
{| class="wikitable"
!
!CPU 0
!CPU 1
!CPU 2
|-
|1.
|rcu_read_lock()
|
|
|-
|2.
|
|enters synchronize_rcu()
|
|-
|3.
|
|
| rcu_read_lock()
|-
|4.
|rcu_read_unlock()
|
|
|-
|5.
|
|exits synchronize_rcu()
|
|-
|6.
|
|
|rcu_read_unlock()
|}
[[File:Rcu api.jpg|thumb|upright=2|RCU API communications between the reader, updater, and reclaimer]]
:Since <code>synchronize_rcu</code> is the API that must figure out when readers are done, its implementation is key to RCU. For RCU to be useful in all but the most read-intensive situations, <code>synchronize_rcu</code>'s overhead must also be quite small.
:Alternatively, instead of blocking, synchronize_rcu may register a callback to be invoked after all ongoing RCU read-side critical sections have completed. This callback variant is called {{The Linux Kernel/id|call_rcu}} in the Linux kernel.
: {{The Linux Kernel/id|rcu_assign_pointer}} - The updater uses this function to assign a new value to an RCU-protected pointer, in order to safely communicate the change in value from the updater to the reader. This function returns the new value, and also executes any [[memory barrier]] instructions required for a given CPU architecture. Perhaps more importantly, it serves to document which pointers are protected by RCU.
: {{The Linux Kernel/id|rcu_dereference}} - The reader uses this function to fetch an RCU-protected pointer, which returns a value that may then be safely dereferenced. It also executes any directives required by the compiler or the CPU, for example, a volatile cast for gcc, a memory_order_consume load for C/C++11 or the memory-barrier instruction required by the old DEC Alpha CPU. The value returned by <code>rcu_dereference</code> is valid only within the enclosing RCU read-side critical section. As with <code>rcu_assign_pointer</code>, an important function of <code>rcu_dereference</code> is to document which pointers are protected by RCU.
The RCU infrastructure observes the time sequence of <code>rcu_read_lock</code>, <code>rcu_read_unlock</code>, <code>synchronize_rcu</code>, and <code>call_rcu</code> invocations in order to determine when (1) <code>synchronize_rcu</code> invocations may return to their callers and (2) <code>call_rcu</code> callbacks may be invoked.
Efficient implementations of the RCU infrastructure make heavy use of batching in order to amortize their overhead over many uses of the corresponding APIs.
⚲ API
: [https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt#:~:text=rcu_nocbs%5B rcu_nocbs] – no-callback CPUs
: {{The Linux Kernel/include|linux/rcupdate.h}}
⚙️ Internals
: {{The Linux Kernel/source|kernel/rcu}} – read-copy-update implementation
📖 References
: {{The Linux Kernel/doc|Avoiding Locks: Read Copy Update|kernel-hacking/locking.html?#avoiding-locks-read-copy-update}}
: {{The Linux Kernel/doc|RCU concepts|RCU}}
: [https://0xax.gitbooks.io/linux-insides/content/Initialization/linux-initialization-9.html RCU initialization]
📚 Further reading
: [https://lpc.events/event/18/contributions/1906/attachments/1590/3302/LPC-2024-Vienna.pdf Reduce synchronize_rcu() latency]
==== Sleeping locks ====
===== Mutexes =====
⚲ API
: {{The Linux Kernel/include|linux/mutex.h}}
: {{The Linux Kernel/include|linux/completion.h}}
: {{The Linux Kernel/id|mutex}} has owner and usage constraints, easier to debug than semaphore
:: {{The Linux Kernel/id|rt_mutex}} blocking mutual exclusion locks with priority inheritance (PI) support
:: {{The Linux Kernel/id|ww_mutex}} Wound/Wait mutexes: blocking mutual exclusion locks with deadlock avoidance
: {{The Linux Kernel/id|rw_semaphore}} readers–writer semaphores
: {{The Linux Kernel/id|percpu_rw_semaphore}}
: {{The Linux Kernel/id|completion}} - use completion for synchronization task with ISR and task or two tasks.
:: {{The Linux Kernel/id|wait_for_completion}}
:: {{The Linux Kernel/id|complete}}
💾 ''Historical''
: {{The Linux Kernel/id|semaphore}} - use mutex instead semaphore if possible
: {{The Linux Kernel/include|linux/semaphore.h}}
: {{The Linux Kernel/include|linux/rwsem.h}}
📖 References
: {{The Linux Kernel/doc|Completions - “wait for completion” barrier APIs|scheduler/completion.html}}
: {{The Linux Kernel/doc|Mutex API reference|kernel-hacking/locking.html#mutex-api-reference}}
: [http://lwn.net/Articles/23993/ LWN: completion events]
==== per CPU local lock ====
On normal preemptible kernel local_lock calls {{The Linux Kernel/id|preempt_disable}}.
On RT preemptible kernel local_lock calls {{The Linux Kernel/id|migrate_disable}} and {{The Linux Kernel/id|spin_lock}}.
Any changes applied to spinlock_t also apply to local_lock.
⚲ API
: {{The Linux Kernel/include|linux/local_lock.h}}
:: {{The Linux Kernel/id|local_lock}}, {{The Linux Kernel/id|preempt_disable}}
:: {{The Linux Kernel/id|local_lock_irqsave}}, {{The Linux Kernel/id|local_irq_save}}
:: etc
📖 References
: {{The Linux Kernel/doc|local_lock|locking/locktypes.html#local-lock}}
: {{The Linux Kernel/doc|PREEMPT_RT caveats: spinlock_t, rwlock_t, migrate_disable and local_lock|locking/locktypes.html#spinlock-t-and-rwlock-t}}
: {{The Linux Kernel/doc|Proper locking under a preemptive kernel|locking/preempt-locking.html}}
: [https://lwn.net/Articles/828477/ Local locks in the kernel]
==== Spinning locks ====
===== {{w|Spinlock}}s =====
a ''spinlock'' is a lock which causes a thread trying to acquire it to simply wait in a loop ("spin") while repeatedly checking if the lock is available.
Since the thread remains active but is not performing a useful task, the use of such a lock is a kind of busy waiting.
Once acquired, spinlocks will usually be held until they are explicitly released, although in some implementations they may be automatically released if the thread being waited on (that which holds the lock) blocks, or "goes to sleep".
Spinlocks are commonly used inside kernels because they are efficient if threads are likely to be blocked for only short periods.
However, spinlocks become wasteful if held for longer durations, as they may prevent other threads from running and require rescheduling.
👁 For example {{The Linux Kernel/id|kobj_kset_join}} uses spinlock to protect assess to the linked list.
Enabling and disabling of kernel preemption replaced spinlocks on uniprocessor systems (disabled {{The Linux Kernel/id|CONFIG_SMP}}).
Most spinning locks becoming sleeping locks in the {{The Linux Kernel/id|CONFIG_PREEMPT_RT}} kernels.
⚲ API
: {{The Linux Kernel/include|linux/spinlock.h}}
:: {{The Linux Kernel/id|spinlock_t}}
:: {{The Linux Kernel/id|raw_spinlock_t}}
: {{The Linux Kernel/include|linux/bit_spinlock.h}}
:: {{The Linux Kernel/id|bit_spin_lock}}
📖 References
: [https://0xax.gitbooks.io/linux-insides/content/SyncPrim/linux-sync-1.html Introduction to spinlocks]
: [https://0xax.gitbooks.io/linux-insides/content/SyncPrim/linux-sync-2.html Queued spinlocks]
===== {{w|Seqlock}}s =====
A ''seqlock'' (short for "sequential lock") is a special locking mechanism used in Linux for supporting fast writes of shared variables between two parallel operating system routines.
It is a special solution to the readers–writers problem when the number of writers is small.
It is a reader-writer consistent mechanism which avoids the problem of writer starvation.
A {{The Linux Kernel/id|seqlock_t}} consists of storage for saving a sequence counter {{The Linux Kernel/id|seqcount_t}}/seqcount_spinlock_t in addition to a lock.
The lock is to support synchronization between two writers and the counter is for indicating consistency in readers.
In addition to updating the shared data, the writer increments the sequence counter, both after acquiring the lock and before releasing the lock.
Readers read the sequence counter before and after reading the shared data.
If the sequence counter is odd on either occasion, a writer had taken the lock while the data was being read and it may have changed.
If the sequence counters are different, a writer has changed the data while it was being read.
In either case readers simply retry (using a loop) until they read the same even sequence counter before and after.
⚲ API
: {{The Linux Kernel/id|seqlock_t}}
:: {{The Linux Kernel/id|DEFINE_SEQLOCK}}, {{The Linux Kernel/id|seqlock_init}}, {{The Linux Kernel/id|read_seqlock_excl}}, {{The Linux Kernel/id|write_seqlock}}
: {{The Linux Kernel/id|seqcount_t}}
:: {{The Linux Kernel/id|seqcount_init}}, {{The Linux Kernel/id|read_seqcount_begin}}, {{The Linux Kernel/id|read_seqcount_retry}}, {{The Linux Kernel/id|write_seqcount_begin}}, {{The Linux Kernel/id|write_seqcount_end}}
: {{The Linux Kernel/include|linux/seqlock.h}}
👁 Example: {{The Linux Kernel/id|mount_lock}}, defined in {{The Linux Kernel/source|fs/namespace.c}}
📖 References
: {{The Linux Kernel/doc|Sequence counters and sequential locks|locking/seqlock.html}}
: [https://0xax.gitbooks.io/linux-insides/content/SyncPrim/linux-sync-6.html SeqLock]
==== Spinning or sleeping locks ====
:{| class="wikitable"
! !! normal !! on preempt RT
|-
| spinlock_t, || raw_spinlock_t || rt_mutex_base, rt_spin_lock, sleeping
|-
| rwlock_t || spinning || sleeping
|-
| local_lock || preempt_disable|| migrate_disable, rt_spin_lock, sleeping
|}
==== Low level ====
The compiler might optimize away or reorder writes to variables leading to unexpected behavior
when variables are accessed concurrently by multiple threads.
⚲ API
: {{The Linux Kernel/include|asm-generic/rwonce.h}} – prevent the compiler from merging or refetching reads or writes.
: {{The Linux Kernel/include|linux/compiler.h}}
:: {{The Linux Kernel/id|barrier}} – prevents the compiler from reordering instructions around the barrier
: {{The Linux Kernel/include|asm-generic/barrier.h}} – generic barrier definitions
: {{The Linux Kernel/source|arch/x86/include/asm/barrier.h}} – force strict CPU ordering
:: {{The Linux Kernel/id|mb}} – ensures that all memory operations before the barrier are completed before any memory operations after the barrier are started
⚙️ Internals
: {{The Linux Kernel/doc|Atomics|driver-api/basics.html#atomics}}
:: {{The Linux Kernel/include|asm-generic/atomic.h}}
:: {{The Linux Kernel/include|linux/atomic/atomic-instrumented.h}}
::: {{The Linux Kernel/id|atomic_dec_and_test}} ...
📚 Further reading
: {{w|Volatile_(computer_programming)#In_C_and_C++|volatile}} – prevents the compiler from optimizations
: {{w|Memory barrier}} – enforces an ordering constraint on memory operations
==== ... ====
⚙️ Locking internals
: {{The Linux Kernel/include|linux/lockdep.h}} – runtime locking correctness validator
: {{The Linux Kernel/include|linux/debug_locks.h}}
: {{The Linux Kernel/source|lib/locking-selftest.c}} – locking correctness self-tests
: {{The Linux Kernel/source|kernel/locking}} – locking primitives
: {{The Linux Kernel/id|mutex_waiter}}, {{The Linux Kernel/id|timer_list}}, {{The Linux Kernel/id|wait_queue_head_t}}
:: {{The Linux Kernel/source|kernel/locking/locktorture.c}} – module-based torture test facility for locking
📖 Locking references
: {{The Linux Kernel/doc|locking|locking}}
:: {{The Linux Kernel/doc|Lock types and their rules|locking/locktypes.html}}
::: 😴 {{The Linux Kernel/doc|sleeping locks|locking/locktypes.html#sleeping-locks}}
:::: {{The Linux Kernel/id|mutex}}, {{The Linux Kernel/id|rt_mutex}}, {{The Linux Kernel/id|semaphore}}, {{The Linux Kernel/id|rw_semaphore}}, {{The Linux Kernel/id|ww_mutex}}, {{The Linux Kernel/id|percpu_rw_semaphore}}
:::: on preempt RT: local_lock, spinlock_t, rwlock_t
::: 😵💫 {{The Linux Kernel/doc|spinning locks|locking/locktypes.html#spinning-locks}}:
:::: raw_spinlock_t, bit spinlocks
:::: on non preempt RT: spinlock_t, rwlock_t
: {{The Linux Kernel/doc|Unreliable Guide To Locking|kernel-hacking/locking.html}}
: [https://0xax.gitbooks.io/linux-insides/content/SyncPrim/ Synchronization primitives]
=== Time ===
⚲ UAPI
: {{The Linux Kernel/include|uapi/linux/time.h}}
:: {{The Linux Kernel/id|timespec}} – nanosecond resolution
:: {{The Linux Kernel/id|timeval}} – microsecond resolution
:: {{The Linux Kernel/id|timezone}}
:: ...
: {{The Linux Kernel/include|uapi/linux/time_types.h}}
:: {{The Linux Kernel/id|__kernel_timespec}} – nanosecond resolution, used in syscalls
:: ...
⚲ API
: {{The Linux Kernel/include|linux/delay.h}} – busy-wait delay functions for timing control
: {{The Linux Kernel/include|linux/sched/clock.h}}
:: {{The Linux Kernel/id|sched_clock}}
:: ...
: {{The Linux Kernel/include|linux/time.h}}
:: {{The Linux Kernel/id|tm}}
:: {{The Linux Kernel/id|get_timespec64}}
:: ...
: {{The Linux Kernel/include|linux/ktime.h}}
:: {{The Linux Kernel/id|ktime_t}} – nanosecond scalar representation for kernel time values
:: {{The Linux Kernel/id|ktime_sub}}
:: ...
: {{The Linux Kernel/include|linux/timekeeping.h}}
:: {{The Linux Kernel/id|ktime_get}}, {{The Linux Kernel/id|ktime_get_ns}}
:: {{The Linux Kernel/id|ktime_get_real}}
:: ...
: {{The Linux Kernel/include|linux/time64.h}}
:: {{The Linux Kernel/id|timespec64}}
:: {{The Linux Kernel/id|time64_t}}
:: {{The Linux Kernel/id|ns_to_timespec64}}
:: {{The Linux Kernel/id|timespec64_sub}}
:: {{The Linux Kernel/id|ktime_to_timespec64}}
:: ...
: {{The Linux Kernel/include|uapi/linux/rtc.h}}
: {{The Linux Kernel/include|linux/jiffies.h}}
⚙️ Internals
: {{The Linux Kernel/source|kernel/time}} – timekeeping, timers and clocks
📖 References
: {{The Linux Kernel/doc|ktime accessors|core-api/timekeeping.html}}
: {{The Linux Kernel/doc|Clock sources, Clock events, sched_clock() and delay timers|timers/timekeeping.html}}
: {{The Linux Kernel/doc|Time and timer routines|driver-api/basics.html#time-and-timer-routines}}
: {{w|Year 2038 problem}}
{{:The Linux Kernel/Multitasking/CPU}}
{{BookCat}}
56k00xhovqlfigawb9ldam0jzyjqqll
4640240
4640218
2026-06-13T19:15:18Z
Conan
3188
fix typos, double spaces, bare memory barrier wikilink
4640240
wikitext
text/x-wiki
<noinclude>{{DISPLAYTITLE:Multitasking functionality}}</noinclude>
{| style="width: 25%; float: right; text-align:center;border-spacing: 0; margin:auto;" cellpadding="5pc"
! bgcolor="#ffc" |multitasking
|-
| bgcolor="#eeb" |[[#Execution|execution]]
|-
| bgcolor="#dda" |[[#Threads_or_tasks|threads or tasks]]
|-
| bgcolor="#cc9" |[[#Synchronization|synchronization]]
|-
| bgcolor="#bb8" |[[#Scheduler|Scheduler]]
|-
| bgcolor="#aa8" |[[#Interrupts|interrupts core]]
|- style=""
| bgcolor="#997" |[[#CPU_specific|CPU specific]]
|}
Linux kernel is a preemptive {{w|Computer multitasking|multitasking}} operating system.
As a multitasking OS, it allows multiple processes to share processors (CPUs) and other system resources.
Each CPU executes a single task at a time.
However, multitasking allows each processor to switch between tasks that are being executed without having to wait for each task to finish.
For that, the kernel can, at any time, temporarily interrupt a task being carried out by the processor, and replace it by another task that can be new or a previously suspended one.
The operation involving the swapping of the running task is called ''{{w|context switch}}''.
== Execution ==
⚲ API ↪ ⚙️ implementations
{{The Linux Kernel/man|2|execve}} ↪ {{The Linux Kernel/id|do_execve}} runs an executable file in the context of current process, replacing the previous executable.
This system call is used by family of functions of libc {{The Linux Kernel/man|3|exec}}
{{The Linux Kernel/man|2|clone}}.
Clone creates a child process that may share parts of its execution context with the parent.
It is often used to implement threads (though programmers will typically use a higher-level interface such as {{The Linux Kernel/man|7|pthreads}}, implemented on top of clone).
{{The Linux Kernel/man|2|wait}} ↪ {{The Linux Kernel/id|kernel_waitid}} suspends the execution of the calling process until one of its child processes terminates.
Syscall {{The Linux Kernel/man|2|getpid}} ↪ {{The Linux Kernel/id|task_tgid_vnr}} returns PID of the current process which internally is called TGID - thread group id.
A process can contain many threads.
{{The Linux Kernel/man|2|gettid}} ↪ {{The Linux Kernel/id|task_pid_vnr}} returns thread id.
Which internally is historically called PID.
⚠️ Warning: confusion.
User space PID ≠ kernel space PID.
{{The Linux Kernel/man|1|ps}} -AF lists current processes and thread as {{w|Light-weight process|LWP}}.
For a single thread process all these IDs are equal.
High-resolution delays:
: {{The Linux Kernel/man|2|nanosleep}} ↪ {{The Linux Kernel/id|sys_nanosleep}}
:: {{The Linux Kernel/id|hrtimer_nanosleep}}
: {{The Linux Kernel/man|2|clock_nanosleep}} ↪ {{The Linux Kernel/id|sys_clock_nanosleep}}
Wait for a signal:
: {{The Linux Kernel/man|2|pause}} ↪ {{The Linux Kernel/id|sys_pause}}
: {{The Linux Kernel/man|2|sigsuspend}} ↪ {{The Linux Kernel/id|sys_sigsuspend}}
See [[The Linux Kernel/Processes|Processes]] for process creation and termination.
=== Inter-process communication ===
Inter-process communication (IPC) refers specifically to the mechanisms an operating system provides to allow processes it manages to share data.
Methods for achieving IPC are divided into categories which vary based on software requirements, such as performance and modularity requirements, and system circumstances.
Linux inherited from Unix the following IPC mechanisms:
Signals (⚲ API ↪ ⚙️ implementations):
: {{The Linux Kernel/man|2|kill}} sends signal to a process
: {{The Linux Kernel/man|2|tgkill}} ↪ {{The Linux Kernel/id|do_tkill}} sends a signal to a thread
: {{The Linux Kernel/man|2|process_vm_readv}} ↪ {{The Linux Kernel/id|process_vm_rw}} - zero-copy data transfer between process address spaces
: {{The Linux Kernel/man|2|sigaction}} ↪ {{The Linux Kernel/id|do_sigaction}} – examine and change a signal action
: {{The Linux Kernel/man|2|sigprocmask}} – examine and change blocked signals
: {{The Linux Kernel/man|2|sigpending}} ↪ {{The Linux Kernel/id|do_sigpending}} – examine pending signals
: {{The Linux Kernel/man|2|sigsuspend}} – wait for a signal
: {{The Linux Kernel/man|2|sigaltstack}} – set or get signal stack context
: {{The Linux Kernel/man|2|sigtimedwait}} ↪ {{The Linux Kernel/id|do_sigtimedwait}} – synchronously wait for queued signals
: {{The Linux Kernel/man|7|signal}} – overview of signals
: {{The Linux Kernel/source|kernel/signal.c}} – signal delivery and handling
: [[../Storage#Zero-copy|Anonymous pipes]] and named pipes (FIFOs) {{The Linux Kernel/man|2|mknod}} ↪ {{The Linux Kernel/id|do_mknodat}} {{The Linux Kernel/id|S_IFIFO}}
: {{w|Express Data Path}} {{The Linux Kernel/id|PF_XDP}}
: {{w|Unix domain socket}} {{The Linux Kernel/id|PF_UNIX}}
: Memory-mapped files {{The Linux Kernel/man|2|mmap}} ⤑ {{The Linux Kernel/id|ksys_mmap_pgoff}}
: {{The Linux Kernel/man|2|eventfd}} ↪ {{The Linux Kernel/id|do_eventfd}} – event notification via file descriptor
: {{The Linux Kernel/man|2|signalfd}} ↪ {{The Linux Kernel/id|do_signalfd4}} – receive signals via file descriptor
: {{The Linux Kernel/man|2|timerfd_create}} – timer notification via file descriptor
: Sys V IPC:
:: Message queues
:: Semaphores
:: Shared memory: {{The Linux Kernel/man|2|shmget}}, {{The Linux Kernel/man|2|shmctl}}, {{The Linux Kernel/man|2|shmat}}, {{The Linux Kernel/man|2|shmdt}}
📖 References
: {{w|Inter-process communication}}
: {{The Linux Kernel/man|7|sysvipc}}
== Threads or tasks ==
In Linux kernel "thread" and "task" are almost synonyms.
⚲ API
: {{The Linux Kernel/include|linux/sched.h}} - the main scheduler API
:: {{The Linux Kernel/id|task_struct}}
: {{The Linux Kernel/source|arch/x86/include/asm/current.h}} – x86 current task pointer
::{{Linux ident|current}} and {{The Linux Kernel/id|get_current}} () return current {{The Linux Kernel/id|task_struct}}
: {{The Linux Kernel/include|uapi/linux/taskstats.h}} per-task statistics
: {{The Linux Kernel/include|linux/thread_info.h}}
:: {{The Linux Kernel/id|current_thread_info}}() returns {{The Linux Kernel/id|thread_info}}
:{{The Linux Kernel/include|linux/sched/task.h}} - interface between the scheduler and various task lifetime (fork()/exit()) functionality
: {{The Linux Kernel/include|linux/kthread.h}} - simple interface for creating and stopping kernel threads without mess.
::{{The Linux Kernel/id|kthread_run}} creates and wakes a thread
::{{The Linux Kernel/id|kthread_create}}
⚙️ Internals
: {{The Linux Kernel/id|kthread_run}} ↯ hierarchy:
: {{The Linux Kernel/source|kernel/kthread.c}} – kernel thread creation and management
:: {{The Linux Kernel/id|kthreadd}} – parent kernel thread and the creator of all other kernel threads.
Dequeues {{The Linux Kernel/id|kthread_create_info}} from {{The Linux Kernel/id|kthread_create_list}}.
::: {{The Linux Kernel/id|create_kthread}}
:::: {{The Linux Kernel/id|kernel_thread}}
:::: {{The Linux Kernel/id|kthread}} – invokes {{The Linux Kernel/id|threadfn}}
:: {{The Linux Kernel/id|__kthread_create_on_node}} – enqueues {{The Linux Kernel/id|kthread_create_info}} into {{The Linux Kernel/id|kthread_create_list}}
: {{The Linux Kernel/source|kernel/fork.c}} – process creation and cloning
:: {{The Linux Kernel/id|kernel_thread}}
::: {{The Linux Kernel/id|kernel_clone}}
==Scheduler==
The ''{{w|Scheduling_(computing)#Linux|scheduler}}'' is the part of the operating system that decides which process runs at a certain point in time.
It usually has the ability to pause a running process, move it to the back of the running queue and start a new process.
Active processes are placed in an array called a ''{{w|run queue}}'', or ''runqueue'' - {{The Linux Kernel/id|rq}}.
The run queue may contain priority values for each process, which will be used by the scheduler to determine which process to run next.
To ensure each program has a fair share of resources, each one is run for some time period (quantum) before it is paused and placed back into the run queue.
When a program is stopped to let another run, the program with the highest priority in the run queue is then allowed to execute.
Processes are also removed from the run queue when they ask to ''sleep'', are waiting on a resource to become available, or have been terminated.
Since version 6.6 the Linux kernel uses the {{w|Earliest eligible virtual deadline first scheduling}} (EEVDF) algorithm, which replaced the {{w|Completely Fair Scheduler}} (CFS).
While much of the CFS infrastructure remains: {{The Linux Kernel/id|sched_entity}}, {{The Linux Kernel/id|cfs_rq}}, the red-black tree, load balancing, and {{The Linux Kernel/source|kernel/sched/fair.c}} — the task selection logic is fundamentally different.
EEVDF is based on a classic scheduling algorithm originally designed for packet networks.
The scheduler has a scheduling complexity of O(log N), where N is the number of tasks in the runqueue.
Both picking and reinserting a task require O(log N) operations, because the run queue is implemented as a {{w|red–black tree}}.
The runqueue ({{The Linux Kernel/id|cfs_rq}}) is implemented as a red-black tree representing a "timeline" of future task execution.
The scheduler uses nanosecond granularity accounting and requires no heuristics or interactivity estimators.
EEVDF improves sleeper fairness over CFS by tracking ''lag'' ({{The Linux Kernel/id|vlag}}) — the difference between the service a task was entitled to and the service it actually received.
When a sleeping task wakes up, its lag determines eligibility, ensuring interactive tasks get prompt service without starving long-running tasks.
The data structure used for the scheduling algorithm is a red-black tree in which the nodes are {{The Linux Kernel/id|sched_entity}} structures, embedded in {{The Linux Kernel/id|task_struct}}.
With EEVDF, each task has a time slice ({{The Linux Kernel/id|sysctl_sched_base_slice}}, default 0.7ms) that determines its request length.
EEVDF computes a virtual deadline for each task: vd_i = ve_i + r_i/w_i, where ve_i is the eligible time, r_i is the request size, and w_i is the weight (determined by nice value).
The scheduler picks the eligible task with the earliest virtual deadline via {{The Linux Kernel/id|__pick_eevdf}}.
The Linux kernel contains different scheduler classes (or policies).
The EEVDF scheduler handles {{The Linux Kernel/id|SCHED_NORMAL}} (aka SCHED_OTHER).
The kernel also contains two additional classes {{The Linux Kernel/id|SCHED_BATCH}} and {{The Linux Kernel/id|SCHED_IDLE}}, and another two real-time scheduling classes named {{The Linux Kernel/id|SCHED_FIFO}} (realtime first-in-first-out) and {{The Linux Kernel/id|SCHED_RR}} (realtime round-robin), with a third realtime scheduling policy known as {{The Linux Kernel/id|SCHED_DEADLINE}} that implements the {{w|Earliest deadline first scheduling|earliest deadline first algorithm (EDF)}} added later.
Any realtime scheduler class takes precedence over any of the "normal" —i.e.
non realtime— classes.
The scheduler class is selected and configured through the {{The Linux Kernel/man|2|sched_setscheduler}} ↪ {{The Linux Kernel/id|do_sched_setscheduler}} system call.
Properly balancing latency, throughput, and fairness in schedulers is an open problem.<ref name="malte" >
Malte Skarupke.
[https://probablydance.com/2019/12/30/measuring-mutexes-spinlocks-and-how-bad-the-linux-scheduler-really-is/ "Measuring Mutexes, Spinlocks and how Bad the Linux Scheduler Really is"].
</ref>
⚲ API
: {{The Linux Kernel/man|1|renice}} – priority of running processes
: {{The Linux Kernel/man|1|nice}} – run a program with modified scheduling priority
: {{The Linux Kernel/man|1|chrt}} – manipulate the real-time attributes of a process
:: {{The Linux Kernel/man|2|sched_getattr}} ↪ {{The Linux Kernel/id|sys_sched_getattr}} – get scheduling policy and attributes
: {{The Linux Kernel/include|linux/sched.h}} – the main scheduler API
:: {{The Linux Kernel/id|schedule}}
: {{The Linux Kernel/man|2|getpriority}}, {{The Linux Kernel/man|2|setpriority}}
: {{The Linux Kernel/man|2|sched_setscheduler}}, {{The Linux Kernel/man|2|sched_getscheduler}}
: /sys/kernel/debug/sched/ – scheduler debugfs tuning directory
:: features – toggle scheduler feature flags
:: base_slice_ns – EEVDF base time slice (default 700000)
:: migration_cost_ns – cost threshold for task migration between CPUs
:: nr_migrate – max tasks to migrate per balancing pass
:: debug – dump detailed scheduler state
:: numa_balancing/ – NUMA balancing scan parameters
⚙️ Internals
:{{The Linux Kernel/id|sched_init}} is called from {{The Linux Kernel/id|start_kernel}}
: {{The Linux Kernel/id|__schedule}} is the main scheduler function.
: {{The Linux Kernel/id|runqueues}}, {{The Linux Kernel/id|this_rq}}
: {{The Linux Kernel/source|kernel/sched}} – scheduler subsystem
: {{The Linux Kernel/source|kernel/sched/core.c}} – core scheduling logic
: {{The Linux Kernel/source|kernel/sched/fair.c}} implements {{The Linux Kernel/id|SCHED_NORMAL}}, {{The Linux Kernel/id|SCHED_BATCH}}, {{The Linux Kernel/id|SCHED_IDLE}}
:: {{The Linux Kernel/id|__pick_eevdf}} – core of EEVDF
: {{The Linux Kernel/id|sched_setscheduler}}, {{The Linux Kernel/id|sched_getscheduler}}
: {{The Linux Kernel/id|task_struct}}::{{The Linux Kernel/id|rt_priority}} and other members with less unique identifiers
🛠️ Utilities
: {{The Linux Kernel/man|1|pidstat}}
: {{The Linux Kernel/man|1|pcp-pidstat}}
: {{The Linux Kernel/man|1|perf-sched}}
: [https://opensource.googleblog.com/2019/10/understanding-scheduling-behavior-with.html Understanding Scheduling Behavior with SchedViz]
📖 References
: {{The Linux Kernel/man|7|sched}}
: {{The Linux Kernel/doc|Scheduling|scheduler}}
:: {{The Linux Kernel/doc|EEVDF Scheduler|scheduler/sched-eevdf.html}}
::: [https://lwn.net/Kernel/Index/#Scheduler-EEVDF An EEVDF CPU scheduler for Linux LWN]
: {{The Linux Kernel/doc|Delaying and scheduling routines|driver-api/basics.html#delaying-and-scheduling-routines}}
: CFS
:: {{The Linux Kernel/doc|Completely Fair Scheduler|scheduler/sched-design-CFS.html}}
:: {{The Linux Kernel/doc|CFS Bandwidth Control|scheduler/sched-bwc.html}}
:: [[The Linux Kernel/System/CGroup v2#CPU|CPU cgroup controller]]
:: {{The Linux Kernel/doc|CPU cgroup interface files|admin-guide/cgroup-v2.html#cpu-interface-files}}
:: [https://lwn.net/Kernel/Index/#Scheduler-Completely_fair_scheduler Completely fair scheduler LWN]
:: [https://documentation.suse.com/sles/15-SP1/html/SLES-all/cha-tuning-taskscheduler.html Tuning the task scheduler]
:: [https://home.robusta.dev/blog/stop-using-cpu-limits stop using CPU limits on Kubernetes]
: {{The Linux Kernel/doc|Deadline Task Scheduler|scheduler/sched-deadline.html}}
: {{The Linux Kernel/ltp|kernel|sched}}
: {{The Linux Kernel/ltp|kernel/syscalls|sched_setparam}}
: {{The Linux Kernel/ltp|kernel/syscalls|sched_getscheduler}}
: {{The Linux Kernel/ltp|kernel/syscalls|sched_setscheduler}}
📚 Further reading about the scheduler
: [https://github.com/iovisor/bpftrace/blob/master/docs/tutorial_one_liners.md#lesson-10-scheduler-tracing Scheduler tracing]
: [https://github.com/iovisor/bcc/blob/master/README.md#cpu-and-scheduler-tools bcc/ebpf CPU and scheduler tools]
=== Preemption ===
Preemption refers to the ability of the system to interrupt a running task to switch to another task.
This is essential for ensuring that high-priority tasks receive the necessary CPU time and for improving the system's responsiveness.
In Linux, preemption models define how and when the kernel can preempt tasks.
Different models offer varying trade-offs between system responsiveness and throughput.
📖 References
: {{The Linux Kernel/doc|Proper Locking Under a Preemptible Kernel|locking/preempt-locking.html}}
:: {{The Linux Kernel/id|preempt_enable}} – decrement the preempt counter
:: {{The Linux Kernel/id|preempt_disable}} – increment the preempt counter
:: {{The Linux Kernel/id|preempt_enable_no_resched}} – decrement, but do not immediately preempt
:: {{The Linux Kernel/id|preempt_check_resched}} – if needed, reschedule
:: {{The Linux Kernel/id|preempt_count}} – return the preempt counter
: {{The Linux Kernel/source|kernel/Kconfig.preempt}} – preemption model configuration
:: {{The Linux Kernel/id|CONFIG_PREEMPT_NONE}} – no forced preemption for servers
:: {{The Linux Kernel/id|CONFIG_PREEMPT_VOLUNTARY}} – voluntary preemption for desktops
:: {{The Linux Kernel/id|CONFIG_PREEMPT}} – preemptible except for critical sections for low-latency desktops
:: {{The Linux Kernel/id|CONFIG_PREEMPT_RT}} – real-time preemption for [[Embedded_Systems/Linux#Real-time|highly responsive applications]]
:: {{The Linux Kernel/id|CONFIG_PREEMPT_DYNAMIC}} – allows runtime switching of preemption model
::: /sys/kernel/debug/sched/preempt – shows and controls the active preemption model
=== sched_ext ===
Since version 6.12 the kernel supports {{The Linux Kernel/id|SCHED_EXT}} — an extensible scheduler class whose behavior is defined by a set of {{w|eBPF}} programs.
Any scheduling algorithm can be implemented on top of sched_ext, loaded and unloaded dynamically at runtime.
The system integrity is maintained no matter what the BPF scheduler does: the default scheduling behavior is restored on error or when a runnable task stalls.
⚙️ Internals
: {{The Linux Kernel/id|CONFIG_SCHED_CLASS_EXT}}
: {{The Linux Kernel/source|kernel/sched/ext.c}} – extensible BPF scheduler class
: {{The Linux Kernel/id|sched_ext_ops}} – BPF scheduler operations
: {{The Linux Kernel/id|sched_ext_entity}} – per-task sched_ext data, embedded in {{The Linux Kernel/id|task_struct}}
👁 Examples
: {{The Linux Kernel/source|tools/sched_ext}} – in-tree example BPF schedulers
📖 References
: {{The Linux Kernel/doc|Extensible Scheduler Class|scheduler/sched-ext.html}}
: [https://github.com/sched-ext/scx sched-ext/scx] – production BPF schedulers
: [https://lwn.net/Kernel/Index/#Scheduler-BPF Scheduler BPF LWN]
=== Energy Aware Scheduling ===
🚀 advanced topic
Since version 5.0, Energy Aware Scheduling (EAS) gives the scheduler the ability to predict the impact of its decisions on the energy consumed by CPUs.
EAS relies on an Energy Model (EM) to select an energy efficient CPU for each task, with minimal impact on throughput.
EAS operates only on heterogeneous CPU topologies (such as ARM {{w|big.LITTLE}}) where the potential for energy savings is highest.
⚲ API
: /proc/sys/kernel/sched_energy_aware – enable or disable EAS
: {{The Linux Kernel/include|linux/energy_model.h}}
:: {{The Linux Kernel/id|em_perf_domain}} – performance domain descriptor
:: {{The Linux Kernel/id|em_cpu_get}} – get the EM for a given CPU
⚙️ Internals
: {{The Linux Kernel/id|CONFIG_ENERGY_MODEL}}
: {{The Linux Kernel/id|find_energy_efficient_cpu}} – find most energy-efficient target CPU for a waking task
: {{The Linux Kernel/source|kernel/power/energy_model.c}} – CPU energy model framework
📖 References
: {{The Linux Kernel/doc|Energy Aware Scheduling|scheduler/sched-energy.html}}
: {{The Linux Kernel/doc|Energy Model of devices|power/energy-model.html}}
=== Wait queues ===
A ''wait queue'' in the kernel is a data structure that allows one or more processes to wait (sleep) until something of interest happens.
They are used throughout the kernel to wait for available memory, I/O completion, message arrival, and many other things.
In the early days of Linux, a wait queue was a simple list of waiting processes, but various scalability problems (including the {{w|thundering herd problem}}) have led to the addition of a fair amount of complexity since then.
⚲ API
{{The Linux Kernel/include|linux/wait.h}}
{{The Linux Kernel/id|wait_queue_head}} consists of double linked list of {{The Linux Kernel/id|wait_queue_entry}} and a spinlock.
Waiting for simple events:
: Use one of two methods for {{The Linux Kernel/id|wait_queue_head}} initialization:
:: {{The Linux Kernel/id|init_waitqueue_head}} initializes {{The Linux Kernel/id|wait_queue_head}} in function context
:: {{The Linux Kernel/id|DECLARE_WAIT_QUEUE_HEAD}} - actually defines {{The Linux Kernel/id|wait_queue_head}} in global context
: Wait alternatives:
:: {{The Linux Kernel/id|wait_event_interruptible}} - preferable wait
:: {{The Linux Kernel/id|wait_event_interruptible_timeout}}
:: {{The Linux Kernel/id|wait_event}} - uninterruptible wait. Can cause deadlock ⚠
: {{The Linux Kernel/id|wake_up}} etc
👁 For example usage see references to unique {{The Linux Kernel/id|suspend_queue}}.
Explicit use of add_wait_queue instead of simple wait_event for complex cases:
: {{The Linux Kernel/id|DECLARE_WAITQUEUE}} actually defines wait_queue_entry with {{The Linux Kernel/id|default_wake_function}}
: {{The Linux Kernel/id|add_wait_queue}} inserts process in the first position of a wait queue
: {{The Linux Kernel/id|remove_wait_queue}}
⚙️ Internals
: {{The Linux Kernel/id|___wait_event}}
: {{The Linux Kernel/id|__add_wait_queue}}
: {{The Linux Kernel/id|__wake_up_common}}, {{The Linux Kernel/id|try_to_wake_up}}
: {{The Linux Kernel/source|kernel/sched/wait.c}} – wait queue implementation
Simple wait queues – simplified version with raw spinlock, suitable for RT and restricted contexts:
: {{The Linux Kernel/include|linux/swait.h}}
:: {{The Linux Kernel/id|swait_queue_head}}, {{The Linux Kernel/id|swait_queue}}
: {{The Linux Kernel/source|kernel/sched/swait.c}} – simple wait queue implementation
📖 References
: {{The Linux Kernel/doc|Wait queues and Wake events|driver-api/basics.html#wait-queues-and-wake-events}}
=== Real-time ===
{{:The Linux Kernel/Multitasking/Real-time}}
== Synchronization ==
Thread {{w|Synchronization (computer science)|synchronization}} is defined as a mechanism which ensures that two or more concurrent processes or threads do not simultaneously execute some particular program segment known as {{w|mutual exclusion}} (mutex).
When one thread starts executing the critical section (serialized segment of the program) the other thread should wait until the first thread finishes.
If proper synchronization techniques are not applied, it may cause a race condition where, the values of variables may be unpredictable and vary depending on the timings of context switches of the processes or threads.
=== User space synchronization ===
==== POSIX Timers ====
⚲ APIs
: {{The Linux Kernel/man|2|timer_create}} – creates a POSIX timer
: {{The Linux Kernel/man|2|timer_settime}} – starts or modifies a timer
: {{The Linux Kernel/man|2|timer_gettime}} – retrieves the remaining time of a timer
: {{The Linux Kernel/man|2|timer_delete}} – deletes a POSIX timer
: {{The Linux Kernel/man|2|clock_nanosleep}} – suspends execution for a specified time
⚙️ Internals
: {{The Linux Kernel/include|linux/posix-timers.h}}
: {{The Linux Kernel/source|kernel/time/itimer.c}} – interval timer (setitimer/getitimer)
: {{The Linux Kernel/source|kernel/time/posix-timers.c}} – POSIX clock and timer operations
: {{The Linux Kernel/source|kernel/time/posix-cpu-timers.c}} – per-process/thread CPU timers
:: {{The Linux Kernel/id|posix_cpu_timer_set}} – function setting up CPU timers
==== Futex ====
A {{The Linux Kernel/man|2|futex}} ↪ {{The Linux Kernel/id|do_futex}} (short for "Fast User space muTex") is a kernel system call that programmers can use to implement basic locking, or as a building block for higher-level locking abstractions such as semaphores and POSIX mutexes or condition variables.
A futex consists of a kernel space ''wait queue'' that is attached to an aligned integer in user space.
Multiple processes or threads operate on the integer entirely in user space (using atomic operations to avoid interfering with one another), and only resort to relatively expensive system calls to request operations on the wait queue (for example to wake up waiting processes, or to put the current process on the wait queue).
A properly programmed futex-based lock will not use system calls except when the lock is contended; since most operations do not require arbitration between processes, this will not happen in most cases.
The basic operations of futexes are based on only two central operations {{The Linux Kernel/id|futex_wait}} and {{The Linux Kernel/id|futex_wake}} though implementation has more operations for more specialized cases.
: WAIT (''addr'', ''val'') checks if the value stored at the address ''addr'' is ''val'', and if it is puts the current thread to sleep.
: WAKE (''addr'', ''val'') wakes up ''val'' number of threads waiting on the address ''addr''.
⚲ API
: {{The Linux Kernel/include|uapi/linux/futex.h}}
: {{The Linux Kernel/include|linux/futex.h}}
⚙️ Internals: {{The Linux Kernel/source|kernel/futex}}
📖 References
: {{w|Futex}}
: {{The Linux Kernel/man|7|futex}}
: {{The Linux Kernel/doc|Futex API reference|kernel-hacking/locking.html#futex-api-reference}}
: {{The Linux Kernel/ltp|kernel/syscalls|futex}}
==== File locking ====
⚲ API: {{The Linux Kernel/man|2|flock}}
==== Semaphore ====
💾 ''History: Semaphore is part of System V IPC {{The Linux Kernel/man|7|sysvipc}}''
⚲ API
: {{The Linux Kernel/man|2|semget}}
: {{The Linux Kernel/man|2|semctl}}
: {{The Linux Kernel/man|2|semop}}
⚙️ Internals: {{The Linux Kernel/source|ipc/sem.c}}
=== Kernel space synchronization ===
For kernel mode synchronization Linux provides three categories of locking primitives: sleeping, per CPU local locks and spinning locks.
==== Read-Copy-Update ====
Common mechanism to solve the readers–writers problem is the {{w|read-copy-update}} (''RCU'') algorithm.
Read-copy-update implements a kind of mutual exclusion that is wait-free (non-blocking) for readers, allowing extremely low overhead.
However, RCU updates can be expensive, as they must leave the old versions of the data structure in place to accommodate pre-existing readers.
⚲ The core API in {{The Linux Kernel/include|linux/rcupdate.h}} is quite small:
: {{The Linux Kernel/id|rcu_read_lock}} marks an RCU-protected data structure so that it won't be reclaimed for the full duration of that critical section.
: {{The Linux Kernel/id|rcu_read_unlock}} is used by a reader to inform the reclaimer that the reader is exiting an RCU read-side critical section. Note that RCU read-side critical sections may be nested and/or overlapping.
: {{The Linux Kernel/id|synchronize_rcu}} blocks until all pre-existing RCU read-side critical sections on all CPUs have completed. Note that <code>synchronize_rcu</code> will ''not'' necessarily wait for any subsequent RCU read-side critical sections to complete.
For example, consider the following sequence of events:
{| class="wikitable"
!
!CPU 0
!CPU 1
!CPU 2
|-
|1.
|rcu_read_lock()
|
|
|-
|2.
|
|enters synchronize_rcu()
|
|-
|3.
|
|
| rcu_read_lock()
|-
|4.
|rcu_read_unlock()
|
|
|-
|5.
|
|exits synchronize_rcu()
|
|-
|6.
|
|
|rcu_read_unlock()
|}
[[File:Rcu api.jpg|thumb|upright=2|RCU API communications between the reader, updater, and reclaimer]]
:Since <code>synchronize_rcu</code> is the API that must figure out when readers are done, its implementation is key to RCU. For RCU to be useful in all but the most read-intensive situations, <code>synchronize_rcu</code>'s overhead must also be quite small.
:Alternatively, instead of blocking, synchronize_rcu may register a callback to be invoked after all ongoing RCU read-side critical sections have completed. This callback variant is called {{The Linux Kernel/id|call_rcu}} in the Linux kernel.
: {{The Linux Kernel/id|rcu_assign_pointer}} - The updater uses this function to assign a new value to an RCU-protected pointer, in order to safely communicate the change in value from the updater to the reader. This function returns the new value, and also executes any {{w|Memory barrier}} instructions required for a given CPU architecture. Perhaps more importantly, it serves to document which pointers are protected by RCU.
: {{The Linux Kernel/id|rcu_dereference}} - The reader uses this function to fetch an RCU-protected pointer, which returns a value that may then be safely dereferenced. It also executes any directives required by the compiler or the CPU, for example, a volatile cast for gcc, a memory_order_consume load for C/C++11 or the memory-barrier instruction required by the old DEC Alpha CPU. The value returned by <code>rcu_dereference</code> is valid only within the enclosing RCU read-side critical section. As with <code>rcu_assign_pointer</code>, an important function of <code>rcu_dereference</code> is to document which pointers are protected by RCU.
The RCU infrastructure observes the time sequence of <code>rcu_read_lock</code>, <code>rcu_read_unlock</code>, <code>synchronize_rcu</code>, and <code>call_rcu</code> invocations in order to determine when (1) <code>synchronize_rcu</code> invocations may return to their callers and (2) <code>call_rcu</code> callbacks may be invoked.
Efficient implementations of the RCU infrastructure make heavy use of batching in order to amortize their overhead over many uses of the corresponding APIs.
⚲ API
: [https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt#:~:text=rcu_nocbs%5B rcu_nocbs] – no-callback CPUs
: {{The Linux Kernel/include|linux/rcupdate.h}}
⚙️ Internals
: {{The Linux Kernel/source|kernel/rcu}} – read-copy-update implementation
📖 References
: {{The Linux Kernel/doc|Avoiding Locks: Read Copy Update|kernel-hacking/locking.html?#avoiding-locks-read-copy-update}}
: {{The Linux Kernel/doc|RCU concepts|RCU}}
: [https://0xax.gitbooks.io/linux-insides/content/Initialization/linux-initialization-9.html RCU initialization]
📚 Further reading
: [https://lpc.events/event/18/contributions/1906/attachments/1590/3302/LPC-2024-Vienna.pdf Reduce synchronize_rcu() latency]
==== Sleeping locks ====
===== Mutexes =====
⚲ API
: {{The Linux Kernel/include|linux/mutex.h}}
: {{The Linux Kernel/include|linux/completion.h}}
: {{The Linux Kernel/id|mutex}} has owner and usage constraints, easier to debug than semaphore
:: {{The Linux Kernel/id|rt_mutex}} blocking mutual exclusion locks with priority inheritance (PI) support
:: {{The Linux Kernel/id|ww_mutex}} Wound/Wait mutexes: blocking mutual exclusion locks with deadlock avoidance
: {{The Linux Kernel/id|rw_semaphore}} readers–writer semaphores
: {{The Linux Kernel/id|percpu_rw_semaphore}}
: {{The Linux Kernel/id|completion}} - use completion for synchronization task with ISR and task or two tasks.
:: {{The Linux Kernel/id|wait_for_completion}}
:: {{The Linux Kernel/id|complete}}
💾 ''Historical''
: {{The Linux Kernel/id|semaphore}} - use mutex instead semaphore if possible
: {{The Linux Kernel/include|linux/semaphore.h}}
: {{The Linux Kernel/include|linux/rwsem.h}}
📖 References
: {{The Linux Kernel/doc|Completions - “wait for completion” barrier APIs|scheduler/completion.html}}
: {{The Linux Kernel/doc|Mutex API reference|kernel-hacking/locking.html#mutex-api-reference}}
: [http://lwn.net/Articles/23993/ LWN: completion events]
==== per CPU local lock ====
On normal preemptible kernel local_lock calls {{The Linux Kernel/id|preempt_disable}}.
On RT preemptible kernel local_lock calls {{The Linux Kernel/id|migrate_disable}} and {{The Linux Kernel/id|spin_lock}}.
Any changes applied to spinlock_t also apply to local_lock.
⚲ API
: {{The Linux Kernel/include|linux/local_lock.h}}
:: {{The Linux Kernel/id|local_lock}}, {{The Linux Kernel/id|preempt_disable}}
:: {{The Linux Kernel/id|local_lock_irqsave}}, {{The Linux Kernel/id|local_irq_save}}
:: etc
📖 References
: {{The Linux Kernel/doc|local_lock|locking/locktypes.html#local-lock}}
: {{The Linux Kernel/doc|PREEMPT_RT caveats: spinlock_t, rwlock_t, migrate_disable and local_lock|locking/locktypes.html#spinlock-t-and-rwlock-t}}
: {{The Linux Kernel/doc|Proper locking under a preemptive kernel|locking/preempt-locking.html}}
: [https://lwn.net/Articles/828477/ Local locks in the kernel]
==== Spinning locks ====
===== {{w|Spinlock}}s =====
a ''spinlock'' is a lock which causes a thread trying to acquire it to simply wait in a loop ("spin") while repeatedly checking if the lock is available.
Since the thread remains active but is not performing a useful task, the use of such a lock is a kind of busy waiting.
Once acquired, spinlocks will usually be held until they are explicitly released, although in some implementations they may be automatically released if the thread being waited on (that which holds the lock) blocks, or "goes to sleep".
Spinlocks are commonly used inside kernels because they are efficient if threads are likely to be blocked for only short periods.
However, spinlocks become wasteful if held for longer durations, as they may prevent other threads from running and require rescheduling.
👁 For example {{The Linux Kernel/id|kobj_kset_join}} uses spinlock to protect assess to the linked list.
Enabling and disabling of kernel preemption replaced spinlocks on uniprocessor systems (disabled {{The Linux Kernel/id|CONFIG_SMP}}).
Most spinning locks becoming sleeping locks in the {{The Linux Kernel/id|CONFIG_PREEMPT_RT}} kernels.
⚲ API
: {{The Linux Kernel/include|linux/spinlock.h}}
:: {{The Linux Kernel/id|spinlock_t}}
:: {{The Linux Kernel/id|raw_spinlock_t}}
: {{The Linux Kernel/include|linux/bit_spinlock.h}}
:: {{The Linux Kernel/id|bit_spin_lock}}
📖 References
: [https://0xax.gitbooks.io/linux-insides/content/SyncPrim/linux-sync-1.html Introduction to spinlocks]
: [https://0xax.gitbooks.io/linux-insides/content/SyncPrim/linux-sync-2.html Queued spinlocks]
===== {{w|Seqlock}}s =====
A ''seqlock'' (short for "sequential lock") is a special locking mechanism used in Linux for supporting fast writes of shared variables between two parallel operating system routines.
It is a special solution to the readers–writers problem when the number of writers is small.
It is a reader-writer consistent mechanism which avoids the problem of writer starvation.
A {{The Linux Kernel/id|seqlock_t}} consists of storage for saving a sequence counter {{The Linux Kernel/id|seqcount_t}}/seqcount_spinlock_t in addition to a lock.
The lock is to support synchronization between two writers and the counter is for indicating consistency in readers.
In addition to updating the shared data, the writer increments the sequence counter, both after acquiring the lock and before releasing the lock.
Readers read the sequence counter before and after reading the shared data.
If the sequence counter is odd on either occasion, a writer had taken the lock while the data was being read and it may have changed.
If the sequence counters are different, a writer has changed the data while it was being read.
In either case readers simply retry (using a loop) until they read the same even sequence counter before and after.
⚲ API
: {{The Linux Kernel/id|seqlock_t}}
:: {{The Linux Kernel/id|DEFINE_SEQLOCK}}, {{The Linux Kernel/id|seqlock_init}}, {{The Linux Kernel/id|read_seqlock_excl}}, {{The Linux Kernel/id|write_seqlock}}
: {{The Linux Kernel/id|seqcount_t}}
:: {{The Linux Kernel/id|seqcount_init}}, {{The Linux Kernel/id|read_seqcount_begin}}, {{The Linux Kernel/id|read_seqcount_retry}}, {{The Linux Kernel/id|write_seqcount_begin}}, {{The Linux Kernel/id|write_seqcount_end}}
: {{The Linux Kernel/include|linux/seqlock.h}}
👁 Example: {{The Linux Kernel/id|mount_lock}}, defined in {{The Linux Kernel/source|fs/namespace.c}}
📖 References
: {{The Linux Kernel/doc|Sequence counters and sequential locks|locking/seqlock.html}}
: [https://0xax.gitbooks.io/linux-insides/content/SyncPrim/linux-sync-6.html SeqLock]
==== Spinning or sleeping locks ====
:{| class="wikitable"
! !! normal !! on preempt RT
|-
| spinlock_t, || raw_spinlock_t || rt_mutex_base, rt_spin_lock, sleeping
|-
| rwlock_t || spinning || sleeping
|-
| local_lock || preempt_disable|| migrate_disable, rt_spin_lock, sleeping
|}
==== Low level ====
The compiler might optimize away or reorder writes to variables leading to unexpected behavior
when variables are accessed concurrently by multiple threads.
⚲ API
: {{The Linux Kernel/include|asm-generic/rwonce.h}} – prevent the compiler from merging or refetching reads or writes.
: {{The Linux Kernel/include|linux/compiler.h}}
:: {{The Linux Kernel/id|barrier}} – prevents the compiler from reordering instructions around the barrier
: {{The Linux Kernel/include|asm-generic/barrier.h}} – generic barrier definitions
: {{The Linux Kernel/source|arch/x86/include/asm/barrier.h}} – force strict CPU ordering
:: {{The Linux Kernel/id|mb}} – ensures that all memory operations before the barrier are completed before any memory operations after the barrier are started
⚙️ Internals
: {{The Linux Kernel/doc|Atomics|driver-api/basics.html#atomics}}
:: {{The Linux Kernel/include|asm-generic/atomic.h}}
:: {{The Linux Kernel/include|linux/atomic/atomic-instrumented.h}}
::: {{The Linux Kernel/id|atomic_dec_and_test}} ...
📚 Further reading
: {{w|Volatile_(computer_programming)#In_C_and_C++|volatile}} – prevents the compiler from optimizations
: {{w|Memory barrier}} – enforces an ordering constraint on memory operations
==== ... ====
⚙️ Locking internals
: {{The Linux Kernel/include|linux/lockdep.h}} – runtime locking correctness validator
: {{The Linux Kernel/include|linux/debug_locks.h}}
: {{The Linux Kernel/source|lib/locking-selftest.c}} – locking correctness self-tests
: {{The Linux Kernel/source|kernel/locking}} – locking primitives
: {{The Linux Kernel/id|mutex_waiter}}, {{The Linux Kernel/id|timer_list}}, {{The Linux Kernel/id|wait_queue_head_t}}
:: {{The Linux Kernel/source|kernel/locking/locktorture.c}} – module-based torture test facility for locking
📖 Locking references
: {{The Linux Kernel/doc|locking|locking}}
:: {{The Linux Kernel/doc|Lock types and their rules|locking/locktypes.html}}
::: 😴 {{The Linux Kernel/doc|sleeping locks|locking/locktypes.html#sleeping-locks}}
:::: {{The Linux Kernel/id|mutex}}, {{The Linux Kernel/id|rt_mutex}}, {{The Linux Kernel/id|semaphore}}, {{The Linux Kernel/id|rw_semaphore}}, {{The Linux Kernel/id|ww_mutex}}, {{The Linux Kernel/id|percpu_rw_semaphore}}
:::: on preempt RT: local_lock, spinlock_t, rwlock_t
::: 😵💫 {{The Linux Kernel/doc|spinning locks|locking/locktypes.html#spinning-locks}}:
:::: raw_spinlock_t, bit spinlocks
:::: on non preempt RT: spinlock_t, rwlock_t
: {{The Linux Kernel/doc|Unreliable Guide To Locking|kernel-hacking/locking.html}}
: [https://0xax.gitbooks.io/linux-insides/content/SyncPrim/ Synchronization primitives]
=== Time ===
⚲ UAPI
: {{The Linux Kernel/include|uapi/linux/time.h}}
:: {{The Linux Kernel/id|timespec}} – nanosecond resolution
:: {{The Linux Kernel/id|timeval}} – microsecond resolution
:: {{The Linux Kernel/id|timezone}}
:: ...
: {{The Linux Kernel/include|uapi/linux/time_types.h}}
:: {{The Linux Kernel/id|__kernel_timespec}} – nanosecond resolution, used in syscalls
:: ...
⚲ API
: {{The Linux Kernel/include|linux/delay.h}} – busy-wait delay functions for timing control
: {{The Linux Kernel/include|linux/sched/clock.h}}
:: {{The Linux Kernel/id|sched_clock}}
:: ...
: {{The Linux Kernel/include|linux/time.h}}
:: {{The Linux Kernel/id|tm}}
:: {{The Linux Kernel/id|get_timespec64}}
:: ...
: {{The Linux Kernel/include|linux/ktime.h}}
:: {{The Linux Kernel/id|ktime_t}} – nanosecond scalar representation for kernel time values
:: {{The Linux Kernel/id|ktime_sub}}
:: ...
: {{The Linux Kernel/include|linux/timekeeping.h}}
:: {{The Linux Kernel/id|ktime_get}}, {{The Linux Kernel/id|ktime_get_ns}}
:: {{The Linux Kernel/id|ktime_get_real}}
:: ...
: {{The Linux Kernel/include|linux/time64.h}}
:: {{The Linux Kernel/id|timespec64}}
:: {{The Linux Kernel/id|time64_t}}
:: {{The Linux Kernel/id|ns_to_timespec64}}
:: {{The Linux Kernel/id|timespec64_sub}}
:: {{The Linux Kernel/id|ktime_to_timespec64}}
:: ...
: {{The Linux Kernel/include|uapi/linux/rtc.h}}
: {{The Linux Kernel/include|linux/jiffies.h}}
⚙️ Internals
: {{The Linux Kernel/source|kernel/time}} – timekeeping, timers and clocks
📖 References
: {{The Linux Kernel/doc|ktime accessors|core-api/timekeeping.html}}
: {{The Linux Kernel/doc|Clock sources, Clock events, sched_clock() and delay timers|timers/timekeeping.html}}
: {{The Linux Kernel/doc|Time and timer routines|driver-api/basics.html#time-and-timer-routines}}
: {{w|Year 2038 problem}}
{{:The Linux Kernel/Multitasking/CPU}}
{{BookCat}}
g0fy3l8lp8vhrtu2e4n23jzlg2wdvef
4640251
4640240
2026-06-13T20:25:29Z
Conan
3188
update do_execve -> do_execveat_common
4640251
wikitext
text/x-wiki
<noinclude>{{DISPLAYTITLE:Multitasking functionality}}</noinclude>
{| style="width: 25%; float: right; text-align:center;border-spacing: 0; margin:auto;" cellpadding="5pc"
! bgcolor="#ffc" |multitasking
|-
| bgcolor="#eeb" |[[#Execution|execution]]
|-
| bgcolor="#dda" |[[#Threads_or_tasks|threads or tasks]]
|-
| bgcolor="#cc9" |[[#Synchronization|synchronization]]
|-
| bgcolor="#bb8" |[[#Scheduler|Scheduler]]
|-
| bgcolor="#aa8" |[[#Interrupts|interrupts core]]
|- style=""
| bgcolor="#997" |[[#CPU_specific|CPU specific]]
|}
Linux kernel is a preemptive {{w|Computer multitasking|multitasking}} operating system.
As a multitasking OS, it allows multiple processes to share processors (CPUs) and other system resources.
Each CPU executes a single task at a time.
However, multitasking allows each processor to switch between tasks that are being executed without having to wait for each task to finish.
For that, the kernel can, at any time, temporarily interrupt a task being carried out by the processor, and replace it by another task that can be new or a previously suspended one.
The operation involving the swapping of the running task is called ''{{w|context switch}}''.
== Execution ==
⚲ API ↪ ⚙️ implementations
{{The Linux Kernel/man|2|execve}} ↪ {{The Linux Kernel/id|do_execveat_common}} runs an executable file in the context of current process, replacing the previous executable.
This system call is used by family of functions of libc {{The Linux Kernel/man|3|exec}}
{{The Linux Kernel/man|2|clone}}.
Clone creates a child process that may share parts of its execution context with the parent.
It is often used to implement threads (though programmers will typically use a higher-level interface such as {{The Linux Kernel/man|7|pthreads}}, implemented on top of clone).
{{The Linux Kernel/man|2|wait}} ↪ {{The Linux Kernel/id|kernel_waitid}} suspends the execution of the calling process until one of its child processes terminates.
Syscall {{The Linux Kernel/man|2|getpid}} ↪ {{The Linux Kernel/id|task_tgid_vnr}} returns PID of the current process which internally is called TGID - thread group id.
A process can contain many threads.
{{The Linux Kernel/man|2|gettid}} ↪ {{The Linux Kernel/id|task_pid_vnr}} returns thread id.
Which internally is historically called PID.
⚠️ Warning: confusion.
User space PID ≠ kernel space PID.
{{The Linux Kernel/man|1|ps}} -AF lists current processes and thread as {{w|Light-weight process|LWP}}.
For a single thread process all these IDs are equal.
High-resolution delays:
: {{The Linux Kernel/man|2|nanosleep}} ↪ {{The Linux Kernel/id|sys_nanosleep}}
:: {{The Linux Kernel/id|hrtimer_nanosleep}}
: {{The Linux Kernel/man|2|clock_nanosleep}} ↪ {{The Linux Kernel/id|sys_clock_nanosleep}}
Wait for a signal:
: {{The Linux Kernel/man|2|pause}} ↪ {{The Linux Kernel/id|sys_pause}}
: {{The Linux Kernel/man|2|sigsuspend}} ↪ {{The Linux Kernel/id|sys_sigsuspend}}
See [[The Linux Kernel/Processes|Processes]] for process creation and termination.
=== Inter-process communication ===
Inter-process communication (IPC) refers specifically to the mechanisms an operating system provides to allow processes it manages to share data.
Methods for achieving IPC are divided into categories which vary based on software requirements, such as performance and modularity requirements, and system circumstances.
Linux inherited from Unix the following IPC mechanisms:
Signals (⚲ API ↪ ⚙️ implementations):
: {{The Linux Kernel/man|2|kill}} sends signal to a process
: {{The Linux Kernel/man|2|tgkill}} ↪ {{The Linux Kernel/id|do_tkill}} sends a signal to a thread
: {{The Linux Kernel/man|2|process_vm_readv}} ↪ {{The Linux Kernel/id|process_vm_rw}} - zero-copy data transfer between process address spaces
: {{The Linux Kernel/man|2|sigaction}} ↪ {{The Linux Kernel/id|do_sigaction}} – examine and change a signal action
: {{The Linux Kernel/man|2|sigprocmask}} – examine and change blocked signals
: {{The Linux Kernel/man|2|sigpending}} ↪ {{The Linux Kernel/id|do_sigpending}} – examine pending signals
: {{The Linux Kernel/man|2|sigsuspend}} – wait for a signal
: {{The Linux Kernel/man|2|sigaltstack}} – set or get signal stack context
: {{The Linux Kernel/man|2|sigtimedwait}} ↪ {{The Linux Kernel/id|do_sigtimedwait}} – synchronously wait for queued signals
: {{The Linux Kernel/man|7|signal}} – overview of signals
: {{The Linux Kernel/source|kernel/signal.c}} – signal delivery and handling
: [[../Storage#Zero-copy|Anonymous pipes]] and named pipes (FIFOs) {{The Linux Kernel/man|2|mknod}} ↪ {{The Linux Kernel/id|do_mknodat}} {{The Linux Kernel/id|S_IFIFO}}
: {{w|Express Data Path}} {{The Linux Kernel/id|PF_XDP}}
: {{w|Unix domain socket}} {{The Linux Kernel/id|PF_UNIX}}
: Memory-mapped files {{The Linux Kernel/man|2|mmap}} ⤑ {{The Linux Kernel/id|ksys_mmap_pgoff}}
: {{The Linux Kernel/man|2|eventfd}} ↪ {{The Linux Kernel/id|do_eventfd}} – event notification via file descriptor
: {{The Linux Kernel/man|2|signalfd}} ↪ {{The Linux Kernel/id|do_signalfd4}} – receive signals via file descriptor
: {{The Linux Kernel/man|2|timerfd_create}} – timer notification via file descriptor
: Sys V IPC:
:: Message queues
:: Semaphores
:: Shared memory: {{The Linux Kernel/man|2|shmget}}, {{The Linux Kernel/man|2|shmctl}}, {{The Linux Kernel/man|2|shmat}}, {{The Linux Kernel/man|2|shmdt}}
📖 References
: {{w|Inter-process communication}}
: {{The Linux Kernel/man|7|sysvipc}}
== Threads or tasks ==
In Linux kernel "thread" and "task" are almost synonyms.
⚲ API
: {{The Linux Kernel/include|linux/sched.h}} - the main scheduler API
:: {{The Linux Kernel/id|task_struct}}
: {{The Linux Kernel/source|arch/x86/include/asm/current.h}} – x86 current task pointer
::{{Linux ident|current}} and {{The Linux Kernel/id|get_current}} () return current {{The Linux Kernel/id|task_struct}}
: {{The Linux Kernel/include|uapi/linux/taskstats.h}} per-task statistics
: {{The Linux Kernel/include|linux/thread_info.h}}
:: {{The Linux Kernel/id|current_thread_info}}() returns {{The Linux Kernel/id|thread_info}}
:{{The Linux Kernel/include|linux/sched/task.h}} - interface between the scheduler and various task lifetime (fork()/exit()) functionality
: {{The Linux Kernel/include|linux/kthread.h}} - simple interface for creating and stopping kernel threads without mess.
::{{The Linux Kernel/id|kthread_run}} creates and wakes a thread
::{{The Linux Kernel/id|kthread_create}}
⚙️ Internals
: {{The Linux Kernel/id|kthread_run}} ↯ hierarchy:
: {{The Linux Kernel/source|kernel/kthread.c}} – kernel thread creation and management
:: {{The Linux Kernel/id|kthreadd}} – parent kernel thread and the creator of all other kernel threads.
Dequeues {{The Linux Kernel/id|kthread_create_info}} from {{The Linux Kernel/id|kthread_create_list}}.
::: {{The Linux Kernel/id|create_kthread}}
:::: {{The Linux Kernel/id|kernel_thread}}
:::: {{The Linux Kernel/id|kthread}} – invokes {{The Linux Kernel/id|threadfn}}
:: {{The Linux Kernel/id|__kthread_create_on_node}} – enqueues {{The Linux Kernel/id|kthread_create_info}} into {{The Linux Kernel/id|kthread_create_list}}
: {{The Linux Kernel/source|kernel/fork.c}} – process creation and cloning
:: {{The Linux Kernel/id|kernel_thread}}
::: {{The Linux Kernel/id|kernel_clone}}
==Scheduler==
The ''{{w|Scheduling_(computing)#Linux|scheduler}}'' is the part of the operating system that decides which process runs at a certain point in time.
It usually has the ability to pause a running process, move it to the back of the running queue and start a new process.
Active processes are placed in an array called a ''{{w|run queue}}'', or ''runqueue'' - {{The Linux Kernel/id|rq}}.
The run queue may contain priority values for each process, which will be used by the scheduler to determine which process to run next.
To ensure each program has a fair share of resources, each one is run for some time period (quantum) before it is paused and placed back into the run queue.
When a program is stopped to let another run, the program with the highest priority in the run queue is then allowed to execute.
Processes are also removed from the run queue when they ask to ''sleep'', are waiting on a resource to become available, or have been terminated.
Since version 6.6 the Linux kernel uses the {{w|Earliest eligible virtual deadline first scheduling}} (EEVDF) algorithm, which replaced the {{w|Completely Fair Scheduler}} (CFS).
While much of the CFS infrastructure remains: {{The Linux Kernel/id|sched_entity}}, {{The Linux Kernel/id|cfs_rq}}, the red-black tree, load balancing, and {{The Linux Kernel/source|kernel/sched/fair.c}} — the task selection logic is fundamentally different.
EEVDF is based on a classic scheduling algorithm originally designed for packet networks.
The scheduler has a scheduling complexity of O(log N), where N is the number of tasks in the runqueue.
Both picking and reinserting a task require O(log N) operations, because the run queue is implemented as a {{w|red–black tree}}.
The runqueue ({{The Linux Kernel/id|cfs_rq}}) is implemented as a red-black tree representing a "timeline" of future task execution.
The scheduler uses nanosecond granularity accounting and requires no heuristics or interactivity estimators.
EEVDF improves sleeper fairness over CFS by tracking ''lag'' ({{The Linux Kernel/id|vlag}}) — the difference between the service a task was entitled to and the service it actually received.
When a sleeping task wakes up, its lag determines eligibility, ensuring interactive tasks get prompt service without starving long-running tasks.
The data structure used for the scheduling algorithm is a red-black tree in which the nodes are {{The Linux Kernel/id|sched_entity}} structures, embedded in {{The Linux Kernel/id|task_struct}}.
With EEVDF, each task has a time slice ({{The Linux Kernel/id|sysctl_sched_base_slice}}, default 0.7ms) that determines its request length.
EEVDF computes a virtual deadline for each task: vd_i = ve_i + r_i/w_i, where ve_i is the eligible time, r_i is the request size, and w_i is the weight (determined by nice value).
The scheduler picks the eligible task with the earliest virtual deadline via {{The Linux Kernel/id|__pick_eevdf}}.
The Linux kernel contains different scheduler classes (or policies).
The EEVDF scheduler handles {{The Linux Kernel/id|SCHED_NORMAL}} (aka SCHED_OTHER).
The kernel also contains two additional classes {{The Linux Kernel/id|SCHED_BATCH}} and {{The Linux Kernel/id|SCHED_IDLE}}, and another two real-time scheduling classes named {{The Linux Kernel/id|SCHED_FIFO}} (realtime first-in-first-out) and {{The Linux Kernel/id|SCHED_RR}} (realtime round-robin), with a third realtime scheduling policy known as {{The Linux Kernel/id|SCHED_DEADLINE}} that implements the {{w|Earliest deadline first scheduling|earliest deadline first algorithm (EDF)}} added later.
Any realtime scheduler class takes precedence over any of the "normal" —i.e.
non realtime— classes.
The scheduler class is selected and configured through the {{The Linux Kernel/man|2|sched_setscheduler}} ↪ {{The Linux Kernel/id|do_sched_setscheduler}} system call.
Properly balancing latency, throughput, and fairness in schedulers is an open problem.<ref name="malte" >
Malte Skarupke.
[https://probablydance.com/2019/12/30/measuring-mutexes-spinlocks-and-how-bad-the-linux-scheduler-really-is/ "Measuring Mutexes, Spinlocks and how Bad the Linux Scheduler Really is"].
</ref>
⚲ API
: {{The Linux Kernel/man|1|renice}} – priority of running processes
: {{The Linux Kernel/man|1|nice}} – run a program with modified scheduling priority
: {{The Linux Kernel/man|1|chrt}} – manipulate the real-time attributes of a process
:: {{The Linux Kernel/man|2|sched_getattr}} ↪ {{The Linux Kernel/id|sys_sched_getattr}} – get scheduling policy and attributes
: {{The Linux Kernel/include|linux/sched.h}} – the main scheduler API
:: {{The Linux Kernel/id|schedule}}
: {{The Linux Kernel/man|2|getpriority}}, {{The Linux Kernel/man|2|setpriority}}
: {{The Linux Kernel/man|2|sched_setscheduler}}, {{The Linux Kernel/man|2|sched_getscheduler}}
: /sys/kernel/debug/sched/ – scheduler debugfs tuning directory
:: features – toggle scheduler feature flags
:: base_slice_ns – EEVDF base time slice (default 700000)
:: migration_cost_ns – cost threshold for task migration between CPUs
:: nr_migrate – max tasks to migrate per balancing pass
:: debug – dump detailed scheduler state
:: numa_balancing/ – NUMA balancing scan parameters
⚙️ Internals
:{{The Linux Kernel/id|sched_init}} is called from {{The Linux Kernel/id|start_kernel}}
: {{The Linux Kernel/id|__schedule}} is the main scheduler function.
: {{The Linux Kernel/id|runqueues}}, {{The Linux Kernel/id|this_rq}}
: {{The Linux Kernel/source|kernel/sched}} – scheduler subsystem
: {{The Linux Kernel/source|kernel/sched/core.c}} – core scheduling logic
: {{The Linux Kernel/source|kernel/sched/fair.c}} implements {{The Linux Kernel/id|SCHED_NORMAL}}, {{The Linux Kernel/id|SCHED_BATCH}}, {{The Linux Kernel/id|SCHED_IDLE}}
:: {{The Linux Kernel/id|__pick_eevdf}} – core of EEVDF
: {{The Linux Kernel/id|sched_setscheduler}}, {{The Linux Kernel/id|sched_getscheduler}}
: {{The Linux Kernel/id|task_struct}}::{{The Linux Kernel/id|rt_priority}} and other members with less unique identifiers
🛠️ Utilities
: {{The Linux Kernel/man|1|pidstat}}
: {{The Linux Kernel/man|1|pcp-pidstat}}
: {{The Linux Kernel/man|1|perf-sched}}
: [https://opensource.googleblog.com/2019/10/understanding-scheduling-behavior-with.html Understanding Scheduling Behavior with SchedViz]
📖 References
: {{The Linux Kernel/man|7|sched}}
: {{The Linux Kernel/doc|Scheduling|scheduler}}
:: {{The Linux Kernel/doc|EEVDF Scheduler|scheduler/sched-eevdf.html}}
::: [https://lwn.net/Kernel/Index/#Scheduler-EEVDF An EEVDF CPU scheduler for Linux LWN]
: {{The Linux Kernel/doc|Delaying and scheduling routines|driver-api/basics.html#delaying-and-scheduling-routines}}
: CFS
:: {{The Linux Kernel/doc|Completely Fair Scheduler|scheduler/sched-design-CFS.html}}
:: {{The Linux Kernel/doc|CFS Bandwidth Control|scheduler/sched-bwc.html}}
:: [[The Linux Kernel/System/CGroup v2#CPU|CPU cgroup controller]]
:: {{The Linux Kernel/doc|CPU cgroup interface files|admin-guide/cgroup-v2.html#cpu-interface-files}}
:: [https://lwn.net/Kernel/Index/#Scheduler-Completely_fair_scheduler Completely fair scheduler LWN]
:: [https://documentation.suse.com/sles/15-SP1/html/SLES-all/cha-tuning-taskscheduler.html Tuning the task scheduler]
:: [https://home.robusta.dev/blog/stop-using-cpu-limits stop using CPU limits on Kubernetes]
: {{The Linux Kernel/doc|Deadline Task Scheduler|scheduler/sched-deadline.html}}
: {{The Linux Kernel/ltp|kernel|sched}}
: {{The Linux Kernel/ltp|kernel/syscalls|sched_setparam}}
: {{The Linux Kernel/ltp|kernel/syscalls|sched_getscheduler}}
: {{The Linux Kernel/ltp|kernel/syscalls|sched_setscheduler}}
📚 Further reading about the scheduler
: [https://github.com/iovisor/bpftrace/blob/master/docs/tutorial_one_liners.md#lesson-10-scheduler-tracing Scheduler tracing]
: [https://github.com/iovisor/bcc/blob/master/README.md#cpu-and-scheduler-tools bcc/ebpf CPU and scheduler tools]
=== Preemption ===
Preemption refers to the ability of the system to interrupt a running task to switch to another task.
This is essential for ensuring that high-priority tasks receive the necessary CPU time and for improving the system's responsiveness.
In Linux, preemption models define how and when the kernel can preempt tasks.
Different models offer varying trade-offs between system responsiveness and throughput.
📖 References
: {{The Linux Kernel/doc|Proper Locking Under a Preemptible Kernel|locking/preempt-locking.html}}
:: {{The Linux Kernel/id|preempt_enable}} – decrement the preempt counter
:: {{The Linux Kernel/id|preempt_disable}} – increment the preempt counter
:: {{The Linux Kernel/id|preempt_enable_no_resched}} – decrement, but do not immediately preempt
:: {{The Linux Kernel/id|preempt_check_resched}} – if needed, reschedule
:: {{The Linux Kernel/id|preempt_count}} – return the preempt counter
: {{The Linux Kernel/source|kernel/Kconfig.preempt}} – preemption model configuration
:: {{The Linux Kernel/id|CONFIG_PREEMPT_NONE}} – no forced preemption for servers
:: {{The Linux Kernel/id|CONFIG_PREEMPT_VOLUNTARY}} – voluntary preemption for desktops
:: {{The Linux Kernel/id|CONFIG_PREEMPT}} – preemptible except for critical sections for low-latency desktops
:: {{The Linux Kernel/id|CONFIG_PREEMPT_RT}} – real-time preemption for [[Embedded_Systems/Linux#Real-time|highly responsive applications]]
:: {{The Linux Kernel/id|CONFIG_PREEMPT_DYNAMIC}} – allows runtime switching of preemption model
::: /sys/kernel/debug/sched/preempt – shows and controls the active preemption model
=== sched_ext ===
Since version 6.12 the kernel supports {{The Linux Kernel/id|SCHED_EXT}} — an extensible scheduler class whose behavior is defined by a set of {{w|eBPF}} programs.
Any scheduling algorithm can be implemented on top of sched_ext, loaded and unloaded dynamically at runtime.
The system integrity is maintained no matter what the BPF scheduler does: the default scheduling behavior is restored on error or when a runnable task stalls.
⚙️ Internals
: {{The Linux Kernel/id|CONFIG_SCHED_CLASS_EXT}}
: {{The Linux Kernel/source|kernel/sched/ext.c}} – extensible BPF scheduler class
: {{The Linux Kernel/id|sched_ext_ops}} – BPF scheduler operations
: {{The Linux Kernel/id|sched_ext_entity}} – per-task sched_ext data, embedded in {{The Linux Kernel/id|task_struct}}
👁 Examples
: {{The Linux Kernel/source|tools/sched_ext}} – in-tree example BPF schedulers
📖 References
: {{The Linux Kernel/doc|Extensible Scheduler Class|scheduler/sched-ext.html}}
: [https://github.com/sched-ext/scx sched-ext/scx] – production BPF schedulers
: [https://lwn.net/Kernel/Index/#Scheduler-BPF Scheduler BPF LWN]
=== Energy Aware Scheduling ===
🚀 advanced topic
Since version 5.0, Energy Aware Scheduling (EAS) gives the scheduler the ability to predict the impact of its decisions on the energy consumed by CPUs.
EAS relies on an Energy Model (EM) to select an energy efficient CPU for each task, with minimal impact on throughput.
EAS operates only on heterogeneous CPU topologies (such as ARM {{w|big.LITTLE}}) where the potential for energy savings is highest.
⚲ API
: /proc/sys/kernel/sched_energy_aware – enable or disable EAS
: {{The Linux Kernel/include|linux/energy_model.h}}
:: {{The Linux Kernel/id|em_perf_domain}} – performance domain descriptor
:: {{The Linux Kernel/id|em_cpu_get}} – get the EM for a given CPU
⚙️ Internals
: {{The Linux Kernel/id|CONFIG_ENERGY_MODEL}}
: {{The Linux Kernel/id|find_energy_efficient_cpu}} – find most energy-efficient target CPU for a waking task
: {{The Linux Kernel/source|kernel/power/energy_model.c}} – CPU energy model framework
📖 References
: {{The Linux Kernel/doc|Energy Aware Scheduling|scheduler/sched-energy.html}}
: {{The Linux Kernel/doc|Energy Model of devices|power/energy-model.html}}
=== Wait queues ===
A ''wait queue'' in the kernel is a data structure that allows one or more processes to wait (sleep) until something of interest happens.
They are used throughout the kernel to wait for available memory, I/O completion, message arrival, and many other things.
In the early days of Linux, a wait queue was a simple list of waiting processes, but various scalability problems (including the {{w|thundering herd problem}}) have led to the addition of a fair amount of complexity since then.
⚲ API
{{The Linux Kernel/include|linux/wait.h}}
{{The Linux Kernel/id|wait_queue_head}} consists of double linked list of {{The Linux Kernel/id|wait_queue_entry}} and a spinlock.
Waiting for simple events:
: Use one of two methods for {{The Linux Kernel/id|wait_queue_head}} initialization:
:: {{The Linux Kernel/id|init_waitqueue_head}} initializes {{The Linux Kernel/id|wait_queue_head}} in function context
:: {{The Linux Kernel/id|DECLARE_WAIT_QUEUE_HEAD}} - actually defines {{The Linux Kernel/id|wait_queue_head}} in global context
: Wait alternatives:
:: {{The Linux Kernel/id|wait_event_interruptible}} - preferable wait
:: {{The Linux Kernel/id|wait_event_interruptible_timeout}}
:: {{The Linux Kernel/id|wait_event}} - uninterruptible wait. Can cause deadlock ⚠
: {{The Linux Kernel/id|wake_up}} etc
👁 For example usage see references to unique {{The Linux Kernel/id|suspend_queue}}.
Explicit use of add_wait_queue instead of simple wait_event for complex cases:
: {{The Linux Kernel/id|DECLARE_WAITQUEUE}} actually defines wait_queue_entry with {{The Linux Kernel/id|default_wake_function}}
: {{The Linux Kernel/id|add_wait_queue}} inserts process in the first position of a wait queue
: {{The Linux Kernel/id|remove_wait_queue}}
⚙️ Internals
: {{The Linux Kernel/id|___wait_event}}
: {{The Linux Kernel/id|__add_wait_queue}}
: {{The Linux Kernel/id|__wake_up_common}}, {{The Linux Kernel/id|try_to_wake_up}}
: {{The Linux Kernel/source|kernel/sched/wait.c}} – wait queue implementation
Simple wait queues – simplified version with raw spinlock, suitable for RT and restricted contexts:
: {{The Linux Kernel/include|linux/swait.h}}
:: {{The Linux Kernel/id|swait_queue_head}}, {{The Linux Kernel/id|swait_queue}}
: {{The Linux Kernel/source|kernel/sched/swait.c}} – simple wait queue implementation
📖 References
: {{The Linux Kernel/doc|Wait queues and Wake events|driver-api/basics.html#wait-queues-and-wake-events}}
=== Real-time ===
{{:The Linux Kernel/Multitasking/Real-time}}
== Synchronization ==
Thread {{w|Synchronization (computer science)|synchronization}} is defined as a mechanism which ensures that two or more concurrent processes or threads do not simultaneously execute some particular program segment known as {{w|mutual exclusion}} (mutex).
When one thread starts executing the critical section (serialized segment of the program) the other thread should wait until the first thread finishes.
If proper synchronization techniques are not applied, it may cause a race condition where, the values of variables may be unpredictable and vary depending on the timings of context switches of the processes or threads.
=== User space synchronization ===
==== POSIX Timers ====
⚲ APIs
: {{The Linux Kernel/man|2|timer_create}} – creates a POSIX timer
: {{The Linux Kernel/man|2|timer_settime}} – starts or modifies a timer
: {{The Linux Kernel/man|2|timer_gettime}} – retrieves the remaining time of a timer
: {{The Linux Kernel/man|2|timer_delete}} – deletes a POSIX timer
: {{The Linux Kernel/man|2|clock_nanosleep}} – suspends execution for a specified time
⚙️ Internals
: {{The Linux Kernel/include|linux/posix-timers.h}}
: {{The Linux Kernel/source|kernel/time/itimer.c}} – interval timer (setitimer/getitimer)
: {{The Linux Kernel/source|kernel/time/posix-timers.c}} – POSIX clock and timer operations
: {{The Linux Kernel/source|kernel/time/posix-cpu-timers.c}} – per-process/thread CPU timers
:: {{The Linux Kernel/id|posix_cpu_timer_set}} – function setting up CPU timers
==== Futex ====
A {{The Linux Kernel/man|2|futex}} ↪ {{The Linux Kernel/id|do_futex}} (short for "Fast User space muTex") is a kernel system call that programmers can use to implement basic locking, or as a building block for higher-level locking abstractions such as semaphores and POSIX mutexes or condition variables.
A futex consists of a kernel space ''wait queue'' that is attached to an aligned integer in user space.
Multiple processes or threads operate on the integer entirely in user space (using atomic operations to avoid interfering with one another), and only resort to relatively expensive system calls to request operations on the wait queue (for example to wake up waiting processes, or to put the current process on the wait queue).
A properly programmed futex-based lock will not use system calls except when the lock is contended; since most operations do not require arbitration between processes, this will not happen in most cases.
The basic operations of futexes are based on only two central operations {{The Linux Kernel/id|futex_wait}} and {{The Linux Kernel/id|futex_wake}} though implementation has more operations for more specialized cases.
: WAIT (''addr'', ''val'') checks if the value stored at the address ''addr'' is ''val'', and if it is puts the current thread to sleep.
: WAKE (''addr'', ''val'') wakes up ''val'' number of threads waiting on the address ''addr''.
⚲ API
: {{The Linux Kernel/include|uapi/linux/futex.h}}
: {{The Linux Kernel/include|linux/futex.h}}
⚙️ Internals: {{The Linux Kernel/source|kernel/futex}}
📖 References
: {{w|Futex}}
: {{The Linux Kernel/man|7|futex}}
: {{The Linux Kernel/doc|Futex API reference|kernel-hacking/locking.html#futex-api-reference}}
: {{The Linux Kernel/ltp|kernel/syscalls|futex}}
==== File locking ====
⚲ API: {{The Linux Kernel/man|2|flock}}
==== Semaphore ====
💾 ''History: Semaphore is part of System V IPC {{The Linux Kernel/man|7|sysvipc}}''
⚲ API
: {{The Linux Kernel/man|2|semget}}
: {{The Linux Kernel/man|2|semctl}}
: {{The Linux Kernel/man|2|semop}}
⚙️ Internals: {{The Linux Kernel/source|ipc/sem.c}}
=== Kernel space synchronization ===
For kernel mode synchronization Linux provides three categories of locking primitives: sleeping, per CPU local locks and spinning locks.
==== Read-Copy-Update ====
Common mechanism to solve the readers–writers problem is the {{w|read-copy-update}} (''RCU'') algorithm.
Read-copy-update implements a kind of mutual exclusion that is wait-free (non-blocking) for readers, allowing extremely low overhead.
However, RCU updates can be expensive, as they must leave the old versions of the data structure in place to accommodate pre-existing readers.
⚲ The core API in {{The Linux Kernel/include|linux/rcupdate.h}} is quite small:
: {{The Linux Kernel/id|rcu_read_lock}} marks an RCU-protected data structure so that it won't be reclaimed for the full duration of that critical section.
: {{The Linux Kernel/id|rcu_read_unlock}} is used by a reader to inform the reclaimer that the reader is exiting an RCU read-side critical section. Note that RCU read-side critical sections may be nested and/or overlapping.
: {{The Linux Kernel/id|synchronize_rcu}} blocks until all pre-existing RCU read-side critical sections on all CPUs have completed. Note that <code>synchronize_rcu</code> will ''not'' necessarily wait for any subsequent RCU read-side critical sections to complete.
For example, consider the following sequence of events:
{| class="wikitable"
!
!CPU 0
!CPU 1
!CPU 2
|-
|1.
|rcu_read_lock()
|
|
|-
|2.
|
|enters synchronize_rcu()
|
|-
|3.
|
|
| rcu_read_lock()
|-
|4.
|rcu_read_unlock()
|
|
|-
|5.
|
|exits synchronize_rcu()
|
|-
|6.
|
|
|rcu_read_unlock()
|}
[[File:Rcu api.jpg|thumb|upright=2|RCU API communications between the reader, updater, and reclaimer]]
:Since <code>synchronize_rcu</code> is the API that must figure out when readers are done, its implementation is key to RCU. For RCU to be useful in all but the most read-intensive situations, <code>synchronize_rcu</code>'s overhead must also be quite small.
:Alternatively, instead of blocking, synchronize_rcu may register a callback to be invoked after all ongoing RCU read-side critical sections have completed. This callback variant is called {{The Linux Kernel/id|call_rcu}} in the Linux kernel.
: {{The Linux Kernel/id|rcu_assign_pointer}} - The updater uses this function to assign a new value to an RCU-protected pointer, in order to safely communicate the change in value from the updater to the reader. This function returns the new value, and also executes any {{w|Memory barrier}} instructions required for a given CPU architecture. Perhaps more importantly, it serves to document which pointers are protected by RCU.
: {{The Linux Kernel/id|rcu_dereference}} - The reader uses this function to fetch an RCU-protected pointer, which returns a value that may then be safely dereferenced. It also executes any directives required by the compiler or the CPU, for example, a volatile cast for gcc, a memory_order_consume load for C/C++11 or the memory-barrier instruction required by the old DEC Alpha CPU. The value returned by <code>rcu_dereference</code> is valid only within the enclosing RCU read-side critical section. As with <code>rcu_assign_pointer</code>, an important function of <code>rcu_dereference</code> is to document which pointers are protected by RCU.
The RCU infrastructure observes the time sequence of <code>rcu_read_lock</code>, <code>rcu_read_unlock</code>, <code>synchronize_rcu</code>, and <code>call_rcu</code> invocations in order to determine when (1) <code>synchronize_rcu</code> invocations may return to their callers and (2) <code>call_rcu</code> callbacks may be invoked.
Efficient implementations of the RCU infrastructure make heavy use of batching in order to amortize their overhead over many uses of the corresponding APIs.
⚲ API
: [https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt#:~:text=rcu_nocbs%5B rcu_nocbs] – no-callback CPUs
: {{The Linux Kernel/include|linux/rcupdate.h}}
⚙️ Internals
: {{The Linux Kernel/source|kernel/rcu}} – read-copy-update implementation
📖 References
: {{The Linux Kernel/doc|Avoiding Locks: Read Copy Update|kernel-hacking/locking.html?#avoiding-locks-read-copy-update}}
: {{The Linux Kernel/doc|RCU concepts|RCU}}
: [https://0xax.gitbooks.io/linux-insides/content/Initialization/linux-initialization-9.html RCU initialization]
📚 Further reading
: [https://lpc.events/event/18/contributions/1906/attachments/1590/3302/LPC-2024-Vienna.pdf Reduce synchronize_rcu() latency]
==== Sleeping locks ====
===== Mutexes =====
⚲ API
: {{The Linux Kernel/include|linux/mutex.h}}
: {{The Linux Kernel/include|linux/completion.h}}
: {{The Linux Kernel/id|mutex}} has owner and usage constraints, easier to debug than semaphore
:: {{The Linux Kernel/id|rt_mutex}} blocking mutual exclusion locks with priority inheritance (PI) support
:: {{The Linux Kernel/id|ww_mutex}} Wound/Wait mutexes: blocking mutual exclusion locks with deadlock avoidance
: {{The Linux Kernel/id|rw_semaphore}} readers–writer semaphores
: {{The Linux Kernel/id|percpu_rw_semaphore}}
: {{The Linux Kernel/id|completion}} - use completion for synchronization task with ISR and task or two tasks.
:: {{The Linux Kernel/id|wait_for_completion}}
:: {{The Linux Kernel/id|complete}}
💾 ''Historical''
: {{The Linux Kernel/id|semaphore}} - use mutex instead semaphore if possible
: {{The Linux Kernel/include|linux/semaphore.h}}
: {{The Linux Kernel/include|linux/rwsem.h}}
📖 References
: {{The Linux Kernel/doc|Completions - “wait for completion” barrier APIs|scheduler/completion.html}}
: {{The Linux Kernel/doc|Mutex API reference|kernel-hacking/locking.html#mutex-api-reference}}
: [http://lwn.net/Articles/23993/ LWN: completion events]
==== per CPU local lock ====
On normal preemptible kernel local_lock calls {{The Linux Kernel/id|preempt_disable}}.
On RT preemptible kernel local_lock calls {{The Linux Kernel/id|migrate_disable}} and {{The Linux Kernel/id|spin_lock}}.
Any changes applied to spinlock_t also apply to local_lock.
⚲ API
: {{The Linux Kernel/include|linux/local_lock.h}}
:: {{The Linux Kernel/id|local_lock}}, {{The Linux Kernel/id|preempt_disable}}
:: {{The Linux Kernel/id|local_lock_irqsave}}, {{The Linux Kernel/id|local_irq_save}}
:: etc
📖 References
: {{The Linux Kernel/doc|local_lock|locking/locktypes.html#local-lock}}
: {{The Linux Kernel/doc|PREEMPT_RT caveats: spinlock_t, rwlock_t, migrate_disable and local_lock|locking/locktypes.html#spinlock-t-and-rwlock-t}}
: {{The Linux Kernel/doc|Proper locking under a preemptive kernel|locking/preempt-locking.html}}
: [https://lwn.net/Articles/828477/ Local locks in the kernel]
==== Spinning locks ====
===== {{w|Spinlock}}s =====
a ''spinlock'' is a lock which causes a thread trying to acquire it to simply wait in a loop ("spin") while repeatedly checking if the lock is available.
Since the thread remains active but is not performing a useful task, the use of such a lock is a kind of busy waiting.
Once acquired, spinlocks will usually be held until they are explicitly released, although in some implementations they may be automatically released if the thread being waited on (that which holds the lock) blocks, or "goes to sleep".
Spinlocks are commonly used inside kernels because they are efficient if threads are likely to be blocked for only short periods.
However, spinlocks become wasteful if held for longer durations, as they may prevent other threads from running and require rescheduling.
👁 For example {{The Linux Kernel/id|kobj_kset_join}} uses spinlock to protect assess to the linked list.
Enabling and disabling of kernel preemption replaced spinlocks on uniprocessor systems (disabled {{The Linux Kernel/id|CONFIG_SMP}}).
Most spinning locks becoming sleeping locks in the {{The Linux Kernel/id|CONFIG_PREEMPT_RT}} kernels.
⚲ API
: {{The Linux Kernel/include|linux/spinlock.h}}
:: {{The Linux Kernel/id|spinlock_t}}
:: {{The Linux Kernel/id|raw_spinlock_t}}
: {{The Linux Kernel/include|linux/bit_spinlock.h}}
:: {{The Linux Kernel/id|bit_spin_lock}}
📖 References
: [https://0xax.gitbooks.io/linux-insides/content/SyncPrim/linux-sync-1.html Introduction to spinlocks]
: [https://0xax.gitbooks.io/linux-insides/content/SyncPrim/linux-sync-2.html Queued spinlocks]
===== {{w|Seqlock}}s =====
A ''seqlock'' (short for "sequential lock") is a special locking mechanism used in Linux for supporting fast writes of shared variables between two parallel operating system routines.
It is a special solution to the readers–writers problem when the number of writers is small.
It is a reader-writer consistent mechanism which avoids the problem of writer starvation.
A {{The Linux Kernel/id|seqlock_t}} consists of storage for saving a sequence counter {{The Linux Kernel/id|seqcount_t}}/seqcount_spinlock_t in addition to a lock.
The lock is to support synchronization between two writers and the counter is for indicating consistency in readers.
In addition to updating the shared data, the writer increments the sequence counter, both after acquiring the lock and before releasing the lock.
Readers read the sequence counter before and after reading the shared data.
If the sequence counter is odd on either occasion, a writer had taken the lock while the data was being read and it may have changed.
If the sequence counters are different, a writer has changed the data while it was being read.
In either case readers simply retry (using a loop) until they read the same even sequence counter before and after.
⚲ API
: {{The Linux Kernel/id|seqlock_t}}
:: {{The Linux Kernel/id|DEFINE_SEQLOCK}}, {{The Linux Kernel/id|seqlock_init}}, {{The Linux Kernel/id|read_seqlock_excl}}, {{The Linux Kernel/id|write_seqlock}}
: {{The Linux Kernel/id|seqcount_t}}
:: {{The Linux Kernel/id|seqcount_init}}, {{The Linux Kernel/id|read_seqcount_begin}}, {{The Linux Kernel/id|read_seqcount_retry}}, {{The Linux Kernel/id|write_seqcount_begin}}, {{The Linux Kernel/id|write_seqcount_end}}
: {{The Linux Kernel/include|linux/seqlock.h}}
👁 Example: {{The Linux Kernel/id|mount_lock}}, defined in {{The Linux Kernel/source|fs/namespace.c}}
📖 References
: {{The Linux Kernel/doc|Sequence counters and sequential locks|locking/seqlock.html}}
: [https://0xax.gitbooks.io/linux-insides/content/SyncPrim/linux-sync-6.html SeqLock]
==== Spinning or sleeping locks ====
:{| class="wikitable"
! !! normal !! on preempt RT
|-
| spinlock_t, || raw_spinlock_t || rt_mutex_base, rt_spin_lock, sleeping
|-
| rwlock_t || spinning || sleeping
|-
| local_lock || preempt_disable|| migrate_disable, rt_spin_lock, sleeping
|}
==== Low level ====
The compiler might optimize away or reorder writes to variables leading to unexpected behavior
when variables are accessed concurrently by multiple threads.
⚲ API
: {{The Linux Kernel/include|asm-generic/rwonce.h}} – prevent the compiler from merging or refetching reads or writes.
: {{The Linux Kernel/include|linux/compiler.h}}
:: {{The Linux Kernel/id|barrier}} – prevents the compiler from reordering instructions around the barrier
: {{The Linux Kernel/include|asm-generic/barrier.h}} – generic barrier definitions
: {{The Linux Kernel/source|arch/x86/include/asm/barrier.h}} – force strict CPU ordering
:: {{The Linux Kernel/id|mb}} – ensures that all memory operations before the barrier are completed before any memory operations after the barrier are started
⚙️ Internals
: {{The Linux Kernel/doc|Atomics|driver-api/basics.html#atomics}}
:: {{The Linux Kernel/include|asm-generic/atomic.h}}
:: {{The Linux Kernel/include|linux/atomic/atomic-instrumented.h}}
::: {{The Linux Kernel/id|atomic_dec_and_test}} ...
📚 Further reading
: {{w|Volatile_(computer_programming)#In_C_and_C++|volatile}} – prevents the compiler from optimizations
: {{w|Memory barrier}} – enforces an ordering constraint on memory operations
==== ... ====
⚙️ Locking internals
: {{The Linux Kernel/include|linux/lockdep.h}} – runtime locking correctness validator
: {{The Linux Kernel/include|linux/debug_locks.h}}
: {{The Linux Kernel/source|lib/locking-selftest.c}} – locking correctness self-tests
: {{The Linux Kernel/source|kernel/locking}} – locking primitives
: {{The Linux Kernel/id|mutex_waiter}}, {{The Linux Kernel/id|timer_list}}, {{The Linux Kernel/id|wait_queue_head_t}}
:: {{The Linux Kernel/source|kernel/locking/locktorture.c}} – module-based torture test facility for locking
📖 Locking references
: {{The Linux Kernel/doc|locking|locking}}
:: {{The Linux Kernel/doc|Lock types and their rules|locking/locktypes.html}}
::: 😴 {{The Linux Kernel/doc|sleeping locks|locking/locktypes.html#sleeping-locks}}
:::: {{The Linux Kernel/id|mutex}}, {{The Linux Kernel/id|rt_mutex}}, {{The Linux Kernel/id|semaphore}}, {{The Linux Kernel/id|rw_semaphore}}, {{The Linux Kernel/id|ww_mutex}}, {{The Linux Kernel/id|percpu_rw_semaphore}}
:::: on preempt RT: local_lock, spinlock_t, rwlock_t
::: 😵💫 {{The Linux Kernel/doc|spinning locks|locking/locktypes.html#spinning-locks}}:
:::: raw_spinlock_t, bit spinlocks
:::: on non preempt RT: spinlock_t, rwlock_t
: {{The Linux Kernel/doc|Unreliable Guide To Locking|kernel-hacking/locking.html}}
: [https://0xax.gitbooks.io/linux-insides/content/SyncPrim/ Synchronization primitives]
=== Time ===
⚲ UAPI
: {{The Linux Kernel/include|uapi/linux/time.h}}
:: {{The Linux Kernel/id|timespec}} – nanosecond resolution
:: {{The Linux Kernel/id|timeval}} – microsecond resolution
:: {{The Linux Kernel/id|timezone}}
:: ...
: {{The Linux Kernel/include|uapi/linux/time_types.h}}
:: {{The Linux Kernel/id|__kernel_timespec}} – nanosecond resolution, used in syscalls
:: ...
⚲ API
: {{The Linux Kernel/include|linux/delay.h}} – busy-wait delay functions for timing control
: {{The Linux Kernel/include|linux/sched/clock.h}}
:: {{The Linux Kernel/id|sched_clock}}
:: ...
: {{The Linux Kernel/include|linux/time.h}}
:: {{The Linux Kernel/id|tm}}
:: {{The Linux Kernel/id|get_timespec64}}
:: ...
: {{The Linux Kernel/include|linux/ktime.h}}
:: {{The Linux Kernel/id|ktime_t}} – nanosecond scalar representation for kernel time values
:: {{The Linux Kernel/id|ktime_sub}}
:: ...
: {{The Linux Kernel/include|linux/timekeeping.h}}
:: {{The Linux Kernel/id|ktime_get}}, {{The Linux Kernel/id|ktime_get_ns}}
:: {{The Linux Kernel/id|ktime_get_real}}
:: ...
: {{The Linux Kernel/include|linux/time64.h}}
:: {{The Linux Kernel/id|timespec64}}
:: {{The Linux Kernel/id|time64_t}}
:: {{The Linux Kernel/id|ns_to_timespec64}}
:: {{The Linux Kernel/id|timespec64_sub}}
:: {{The Linux Kernel/id|ktime_to_timespec64}}
:: ...
: {{The Linux Kernel/include|uapi/linux/rtc.h}}
: {{The Linux Kernel/include|linux/jiffies.h}}
⚙️ Internals
: {{The Linux Kernel/source|kernel/time}} – timekeeping, timers and clocks
📖 References
: {{The Linux Kernel/doc|ktime accessors|core-api/timekeeping.html}}
: {{The Linux Kernel/doc|Clock sources, Clock events, sched_clock() and delay timers|timers/timekeeping.html}}
: {{The Linux Kernel/doc|Time and timer routines|driver-api/basics.html#time-and-timer-routines}}
: {{w|Year 2038 problem}}
{{:The Linux Kernel/Multitasking/CPU}}
{{BookCat}}
li9orfio628eya6xlguae234ot7mzda
4640282
4640251
2026-06-14T09:29:47Z
Conan
3188
add ipc/msg.c and ipc/shm.c source references
4640282
wikitext
text/x-wiki
<noinclude>{{DISPLAYTITLE:Multitasking functionality}}</noinclude>
{| style="width: 25%; float: right; text-align:center;border-spacing: 0; margin:auto;" cellpadding="5pc"
! bgcolor="#ffc" |multitasking
|-
| bgcolor="#eeb" |[[#Execution|execution]]
|-
| bgcolor="#dda" |[[#Threads_or_tasks|threads or tasks]]
|-
| bgcolor="#cc9" |[[#Synchronization|synchronization]]
|-
| bgcolor="#bb8" |[[#Scheduler|Scheduler]]
|-
| bgcolor="#aa8" |[[#Interrupts|interrupts core]]
|- style=""
| bgcolor="#997" |[[#CPU_specific|CPU specific]]
|}
Linux kernel is a preemptive {{w|Computer multitasking|multitasking}} operating system.
As a multitasking OS, it allows multiple processes to share processors (CPUs) and other system resources.
Each CPU executes a single task at a time.
However, multitasking allows each processor to switch between tasks that are being executed without having to wait for each task to finish.
For that, the kernel can, at any time, temporarily interrupt a task being carried out by the processor, and replace it by another task that can be new or a previously suspended one.
The operation involving the swapping of the running task is called ''{{w|context switch}}''.
== Execution ==
⚲ API ↪ ⚙️ implementations
{{The Linux Kernel/man|2|execve}} ↪ {{The Linux Kernel/id|do_execveat_common}} runs an executable file in the context of current process, replacing the previous executable.
This system call is used by family of functions of libc {{The Linux Kernel/man|3|exec}}
{{The Linux Kernel/man|2|clone}}.
Clone creates a child process that may share parts of its execution context with the parent.
It is often used to implement threads (though programmers will typically use a higher-level interface such as {{The Linux Kernel/man|7|pthreads}}, implemented on top of clone).
{{The Linux Kernel/man|2|wait}} ↪ {{The Linux Kernel/id|kernel_waitid}} suspends the execution of the calling process until one of its child processes terminates.
Syscall {{The Linux Kernel/man|2|getpid}} ↪ {{The Linux Kernel/id|task_tgid_vnr}} returns PID of the current process which internally is called TGID - thread group id.
A process can contain many threads.
{{The Linux Kernel/man|2|gettid}} ↪ {{The Linux Kernel/id|task_pid_vnr}} returns thread id.
Which internally is historically called PID.
⚠️ Warning: confusion.
User space PID ≠ kernel space PID.
{{The Linux Kernel/man|1|ps}} -AF lists current processes and thread as {{w|Light-weight process|LWP}}.
For a single thread process all these IDs are equal.
High-resolution delays:
: {{The Linux Kernel/man|2|nanosleep}} ↪ {{The Linux Kernel/id|sys_nanosleep}}
:: {{The Linux Kernel/id|hrtimer_nanosleep}}
: {{The Linux Kernel/man|2|clock_nanosleep}} ↪ {{The Linux Kernel/id|sys_clock_nanosleep}}
Wait for a signal:
: {{The Linux Kernel/man|2|pause}} ↪ {{The Linux Kernel/id|sys_pause}}
: {{The Linux Kernel/man|2|sigsuspend}} ↪ {{The Linux Kernel/id|sys_sigsuspend}}
See [[The Linux Kernel/Processes|Processes]] for process creation and termination.
=== Inter-process communication ===
Inter-process communication (IPC) refers specifically to the mechanisms an operating system provides to allow processes it manages to share data.
Methods for achieving IPC are divided into categories which vary based on software requirements, such as performance and modularity requirements, and system circumstances.
Linux inherited from Unix the following IPC mechanisms:
Signals (⚲ API ↪ ⚙️ implementations):
: {{The Linux Kernel/man|2|kill}} sends signal to a process
: {{The Linux Kernel/man|2|tgkill}} ↪ {{The Linux Kernel/id|do_tkill}} sends a signal to a thread
: {{The Linux Kernel/man|2|process_vm_readv}} ↪ {{The Linux Kernel/id|process_vm_rw}} - zero-copy data transfer between process address spaces
: {{The Linux Kernel/man|2|sigaction}} ↪ {{The Linux Kernel/id|do_sigaction}} – examine and change a signal action
: {{The Linux Kernel/man|2|sigprocmask}} – examine and change blocked signals
: {{The Linux Kernel/man|2|sigpending}} ↪ {{The Linux Kernel/id|do_sigpending}} – examine pending signals
: {{The Linux Kernel/man|2|sigsuspend}} – wait for a signal
: {{The Linux Kernel/man|2|sigaltstack}} – set or get signal stack context
: {{The Linux Kernel/man|2|sigtimedwait}} ↪ {{The Linux Kernel/id|do_sigtimedwait}} – synchronously wait for queued signals
: {{The Linux Kernel/man|7|signal}} – overview of signals
: {{The Linux Kernel/source|kernel/signal.c}} – signal delivery and handling
: [[../Storage#Zero-copy|Anonymous pipes]] and named pipes (FIFOs) {{The Linux Kernel/man|2|mknod}} ↪ {{The Linux Kernel/id|do_mknodat}} {{The Linux Kernel/id|S_IFIFO}}
: {{w|Express Data Path}} {{The Linux Kernel/id|PF_XDP}}
: {{w|Unix domain socket}} {{The Linux Kernel/id|PF_UNIX}}
: Memory-mapped files {{The Linux Kernel/man|2|mmap}} ⤑ {{The Linux Kernel/id|ksys_mmap_pgoff}}
: {{The Linux Kernel/man|2|eventfd}} ↪ {{The Linux Kernel/id|do_eventfd}} – event notification via file descriptor
: {{The Linux Kernel/man|2|signalfd}} ↪ {{The Linux Kernel/id|do_signalfd4}} – receive signals via file descriptor
: {{The Linux Kernel/man|2|timerfd_create}} – timer notification via file descriptor
: Sys V IPC:
:: Message queues: {{The Linux Kernel/man|2|msgget}}, {{The Linux Kernel/man|2|msgsnd}}, {{The Linux Kernel/man|2|msgrcv}} ↪ {{The Linux Kernel/source|ipc/msg.c}}
:: Semaphores
:: Shared memory: {{The Linux Kernel/man|2|shmget}}, {{The Linux Kernel/man|2|shmctl}}, {{The Linux Kernel/man|2|shmat}}, {{The Linux Kernel/man|2|shmdt}} ↪ {{The Linux Kernel/source|ipc/shm.c}}
📖 References
: {{w|Inter-process communication}}
: {{The Linux Kernel/man|7|sysvipc}}
== Threads or tasks ==
In Linux kernel "thread" and "task" are almost synonyms.
⚲ API
: {{The Linux Kernel/include|linux/sched.h}} - the main scheduler API
:: {{The Linux Kernel/id|task_struct}}
: {{The Linux Kernel/source|arch/x86/include/asm/current.h}} – x86 current task pointer
::{{Linux ident|current}} and {{The Linux Kernel/id|get_current}} () return current {{The Linux Kernel/id|task_struct}}
: {{The Linux Kernel/include|uapi/linux/taskstats.h}} per-task statistics
: {{The Linux Kernel/include|linux/thread_info.h}}
:: {{The Linux Kernel/id|current_thread_info}}() returns {{The Linux Kernel/id|thread_info}}
:{{The Linux Kernel/include|linux/sched/task.h}} - interface between the scheduler and various task lifetime (fork()/exit()) functionality
: {{The Linux Kernel/include|linux/kthread.h}} - simple interface for creating and stopping kernel threads without mess.
::{{The Linux Kernel/id|kthread_run}} creates and wakes a thread
::{{The Linux Kernel/id|kthread_create}}
⚙️ Internals
: {{The Linux Kernel/id|kthread_run}} ↯ hierarchy:
: {{The Linux Kernel/source|kernel/kthread.c}} – kernel thread creation and management
:: {{The Linux Kernel/id|kthreadd}} – parent kernel thread and the creator of all other kernel threads.
Dequeues {{The Linux Kernel/id|kthread_create_info}} from {{The Linux Kernel/id|kthread_create_list}}.
::: {{The Linux Kernel/id|create_kthread}}
:::: {{The Linux Kernel/id|kernel_thread}}
:::: {{The Linux Kernel/id|kthread}} – invokes {{The Linux Kernel/id|threadfn}}
:: {{The Linux Kernel/id|__kthread_create_on_node}} – enqueues {{The Linux Kernel/id|kthread_create_info}} into {{The Linux Kernel/id|kthread_create_list}}
: {{The Linux Kernel/source|kernel/fork.c}} – process creation and cloning
:: {{The Linux Kernel/id|kernel_thread}}
::: {{The Linux Kernel/id|kernel_clone}}
==Scheduler==
The ''{{w|Scheduling_(computing)#Linux|scheduler}}'' is the part of the operating system that decides which process runs at a certain point in time.
It usually has the ability to pause a running process, move it to the back of the running queue and start a new process.
Active processes are placed in an array called a ''{{w|run queue}}'', or ''runqueue'' - {{The Linux Kernel/id|rq}}.
The run queue may contain priority values for each process, which will be used by the scheduler to determine which process to run next.
To ensure each program has a fair share of resources, each one is run for some time period (quantum) before it is paused and placed back into the run queue.
When a program is stopped to let another run, the program with the highest priority in the run queue is then allowed to execute.
Processes are also removed from the run queue when they ask to ''sleep'', are waiting on a resource to become available, or have been terminated.
Since version 6.6 the Linux kernel uses the {{w|Earliest eligible virtual deadline first scheduling}} (EEVDF) algorithm, which replaced the {{w|Completely Fair Scheduler}} (CFS).
While much of the CFS infrastructure remains: {{The Linux Kernel/id|sched_entity}}, {{The Linux Kernel/id|cfs_rq}}, the red-black tree, load balancing, and {{The Linux Kernel/source|kernel/sched/fair.c}} — the task selection logic is fundamentally different.
EEVDF is based on a classic scheduling algorithm originally designed for packet networks.
The scheduler has a scheduling complexity of O(log N), where N is the number of tasks in the runqueue.
Both picking and reinserting a task require O(log N) operations, because the run queue is implemented as a {{w|red–black tree}}.
The runqueue ({{The Linux Kernel/id|cfs_rq}}) is implemented as a red-black tree representing a "timeline" of future task execution.
The scheduler uses nanosecond granularity accounting and requires no heuristics or interactivity estimators.
EEVDF improves sleeper fairness over CFS by tracking ''lag'' ({{The Linux Kernel/id|vlag}}) — the difference between the service a task was entitled to and the service it actually received.
When a sleeping task wakes up, its lag determines eligibility, ensuring interactive tasks get prompt service without starving long-running tasks.
The data structure used for the scheduling algorithm is a red-black tree in which the nodes are {{The Linux Kernel/id|sched_entity}} structures, embedded in {{The Linux Kernel/id|task_struct}}.
With EEVDF, each task has a time slice ({{The Linux Kernel/id|sysctl_sched_base_slice}}, default 0.7ms) that determines its request length.
EEVDF computes a virtual deadline for each task: vd_i = ve_i + r_i/w_i, where ve_i is the eligible time, r_i is the request size, and w_i is the weight (determined by nice value).
The scheduler picks the eligible task with the earliest virtual deadline via {{The Linux Kernel/id|__pick_eevdf}}.
The Linux kernel contains different scheduler classes (or policies).
The EEVDF scheduler handles {{The Linux Kernel/id|SCHED_NORMAL}} (aka SCHED_OTHER).
The kernel also contains two additional classes {{The Linux Kernel/id|SCHED_BATCH}} and {{The Linux Kernel/id|SCHED_IDLE}}, and another two real-time scheduling classes named {{The Linux Kernel/id|SCHED_FIFO}} (realtime first-in-first-out) and {{The Linux Kernel/id|SCHED_RR}} (realtime round-robin), with a third realtime scheduling policy known as {{The Linux Kernel/id|SCHED_DEADLINE}} that implements the {{w|Earliest deadline first scheduling|earliest deadline first algorithm (EDF)}} added later.
Any realtime scheduler class takes precedence over any of the "normal" —i.e.
non realtime— classes.
The scheduler class is selected and configured through the {{The Linux Kernel/man|2|sched_setscheduler}} ↪ {{The Linux Kernel/id|do_sched_setscheduler}} system call.
Properly balancing latency, throughput, and fairness in schedulers is an open problem.<ref name="malte" >
Malte Skarupke.
[https://probablydance.com/2019/12/30/measuring-mutexes-spinlocks-and-how-bad-the-linux-scheduler-really-is/ "Measuring Mutexes, Spinlocks and how Bad the Linux Scheduler Really is"].
</ref>
⚲ API
: {{The Linux Kernel/man|1|renice}} – priority of running processes
: {{The Linux Kernel/man|1|nice}} – run a program with modified scheduling priority
: {{The Linux Kernel/man|1|chrt}} – manipulate the real-time attributes of a process
:: {{The Linux Kernel/man|2|sched_getattr}} ↪ {{The Linux Kernel/id|sys_sched_getattr}} – get scheduling policy and attributes
: {{The Linux Kernel/include|linux/sched.h}} – the main scheduler API
:: {{The Linux Kernel/id|schedule}}
: {{The Linux Kernel/man|2|getpriority}}, {{The Linux Kernel/man|2|setpriority}}
: {{The Linux Kernel/man|2|sched_setscheduler}}, {{The Linux Kernel/man|2|sched_getscheduler}}
: /sys/kernel/debug/sched/ – scheduler debugfs tuning directory
:: features – toggle scheduler feature flags
:: base_slice_ns – EEVDF base time slice (default 700000)
:: migration_cost_ns – cost threshold for task migration between CPUs
:: nr_migrate – max tasks to migrate per balancing pass
:: debug – dump detailed scheduler state
:: numa_balancing/ – NUMA balancing scan parameters
⚙️ Internals
:{{The Linux Kernel/id|sched_init}} is called from {{The Linux Kernel/id|start_kernel}}
: {{The Linux Kernel/id|__schedule}} is the main scheduler function.
: {{The Linux Kernel/id|runqueues}}, {{The Linux Kernel/id|this_rq}}
: {{The Linux Kernel/source|kernel/sched}} – scheduler subsystem
: {{The Linux Kernel/source|kernel/sched/core.c}} – core scheduling logic
: {{The Linux Kernel/source|kernel/sched/fair.c}} implements {{The Linux Kernel/id|SCHED_NORMAL}}, {{The Linux Kernel/id|SCHED_BATCH}}, {{The Linux Kernel/id|SCHED_IDLE}}
:: {{The Linux Kernel/id|__pick_eevdf}} – core of EEVDF
: {{The Linux Kernel/id|sched_setscheduler}}, {{The Linux Kernel/id|sched_getscheduler}}
: {{The Linux Kernel/id|task_struct}}::{{The Linux Kernel/id|rt_priority}} and other members with less unique identifiers
🛠️ Utilities
: {{The Linux Kernel/man|1|pidstat}}
: {{The Linux Kernel/man|1|pcp-pidstat}}
: {{The Linux Kernel/man|1|perf-sched}}
: [https://opensource.googleblog.com/2019/10/understanding-scheduling-behavior-with.html Understanding Scheduling Behavior with SchedViz]
📖 References
: {{The Linux Kernel/man|7|sched}}
: {{The Linux Kernel/doc|Scheduling|scheduler}}
:: {{The Linux Kernel/doc|EEVDF Scheduler|scheduler/sched-eevdf.html}}
::: [https://lwn.net/Kernel/Index/#Scheduler-EEVDF An EEVDF CPU scheduler for Linux LWN]
: {{The Linux Kernel/doc|Delaying and scheduling routines|driver-api/basics.html#delaying-and-scheduling-routines}}
: CFS
:: {{The Linux Kernel/doc|Completely Fair Scheduler|scheduler/sched-design-CFS.html}}
:: {{The Linux Kernel/doc|CFS Bandwidth Control|scheduler/sched-bwc.html}}
:: [[The Linux Kernel/System/CGroup v2#CPU|CPU cgroup controller]]
:: {{The Linux Kernel/doc|CPU cgroup interface files|admin-guide/cgroup-v2.html#cpu-interface-files}}
:: [https://lwn.net/Kernel/Index/#Scheduler-Completely_fair_scheduler Completely fair scheduler LWN]
:: [https://documentation.suse.com/sles/15-SP1/html/SLES-all/cha-tuning-taskscheduler.html Tuning the task scheduler]
:: [https://home.robusta.dev/blog/stop-using-cpu-limits stop using CPU limits on Kubernetes]
: {{The Linux Kernel/doc|Deadline Task Scheduler|scheduler/sched-deadline.html}}
: {{The Linux Kernel/ltp|kernel|sched}}
: {{The Linux Kernel/ltp|kernel/syscalls|sched_setparam}}
: {{The Linux Kernel/ltp|kernel/syscalls|sched_getscheduler}}
: {{The Linux Kernel/ltp|kernel/syscalls|sched_setscheduler}}
📚 Further reading about the scheduler
: [https://github.com/iovisor/bpftrace/blob/master/docs/tutorial_one_liners.md#lesson-10-scheduler-tracing Scheduler tracing]
: [https://github.com/iovisor/bcc/blob/master/README.md#cpu-and-scheduler-tools bcc/ebpf CPU and scheduler tools]
=== Preemption ===
Preemption refers to the ability of the system to interrupt a running task to switch to another task.
This is essential for ensuring that high-priority tasks receive the necessary CPU time and for improving the system's responsiveness.
In Linux, preemption models define how and when the kernel can preempt tasks.
Different models offer varying trade-offs between system responsiveness and throughput.
📖 References
: {{The Linux Kernel/doc|Proper Locking Under a Preemptible Kernel|locking/preempt-locking.html}}
:: {{The Linux Kernel/id|preempt_enable}} – decrement the preempt counter
:: {{The Linux Kernel/id|preempt_disable}} – increment the preempt counter
:: {{The Linux Kernel/id|preempt_enable_no_resched}} – decrement, but do not immediately preempt
:: {{The Linux Kernel/id|preempt_check_resched}} – if needed, reschedule
:: {{The Linux Kernel/id|preempt_count}} – return the preempt counter
: {{The Linux Kernel/source|kernel/Kconfig.preempt}} – preemption model configuration
:: {{The Linux Kernel/id|CONFIG_PREEMPT_NONE}} – no forced preemption for servers
:: {{The Linux Kernel/id|CONFIG_PREEMPT_VOLUNTARY}} – voluntary preemption for desktops
:: {{The Linux Kernel/id|CONFIG_PREEMPT}} – preemptible except for critical sections for low-latency desktops
:: {{The Linux Kernel/id|CONFIG_PREEMPT_RT}} – real-time preemption for [[Embedded_Systems/Linux#Real-time|highly responsive applications]]
:: {{The Linux Kernel/id|CONFIG_PREEMPT_DYNAMIC}} – allows runtime switching of preemption model
::: /sys/kernel/debug/sched/preempt – shows and controls the active preemption model
=== sched_ext ===
Since version 6.12 the kernel supports {{The Linux Kernel/id|SCHED_EXT}} — an extensible scheduler class whose behavior is defined by a set of {{w|eBPF}} programs.
Any scheduling algorithm can be implemented on top of sched_ext, loaded and unloaded dynamically at runtime.
The system integrity is maintained no matter what the BPF scheduler does: the default scheduling behavior is restored on error or when a runnable task stalls.
⚙️ Internals
: {{The Linux Kernel/id|CONFIG_SCHED_CLASS_EXT}}
: {{The Linux Kernel/source|kernel/sched/ext.c}} – extensible BPF scheduler class
: {{The Linux Kernel/id|sched_ext_ops}} – BPF scheduler operations
: {{The Linux Kernel/id|sched_ext_entity}} – per-task sched_ext data, embedded in {{The Linux Kernel/id|task_struct}}
👁 Examples
: {{The Linux Kernel/source|tools/sched_ext}} – in-tree example BPF schedulers
📖 References
: {{The Linux Kernel/doc|Extensible Scheduler Class|scheduler/sched-ext.html}}
: [https://github.com/sched-ext/scx sched-ext/scx] – production BPF schedulers
: [https://lwn.net/Kernel/Index/#Scheduler-BPF Scheduler BPF LWN]
=== Energy Aware Scheduling ===
🚀 advanced topic
Since version 5.0, Energy Aware Scheduling (EAS) gives the scheduler the ability to predict the impact of its decisions on the energy consumed by CPUs.
EAS relies on an Energy Model (EM) to select an energy efficient CPU for each task, with minimal impact on throughput.
EAS operates only on heterogeneous CPU topologies (such as ARM {{w|big.LITTLE}}) where the potential for energy savings is highest.
⚲ API
: /proc/sys/kernel/sched_energy_aware – enable or disable EAS
: {{The Linux Kernel/include|linux/energy_model.h}}
:: {{The Linux Kernel/id|em_perf_domain}} – performance domain descriptor
:: {{The Linux Kernel/id|em_cpu_get}} – get the EM for a given CPU
⚙️ Internals
: {{The Linux Kernel/id|CONFIG_ENERGY_MODEL}}
: {{The Linux Kernel/id|find_energy_efficient_cpu}} – find most energy-efficient target CPU for a waking task
: {{The Linux Kernel/source|kernel/power/energy_model.c}} – CPU energy model framework
📖 References
: {{The Linux Kernel/doc|Energy Aware Scheduling|scheduler/sched-energy.html}}
: {{The Linux Kernel/doc|Energy Model of devices|power/energy-model.html}}
=== Wait queues ===
A ''wait queue'' in the kernel is a data structure that allows one or more processes to wait (sleep) until something of interest happens.
They are used throughout the kernel to wait for available memory, I/O completion, message arrival, and many other things.
In the early days of Linux, a wait queue was a simple list of waiting processes, but various scalability problems (including the {{w|thundering herd problem}}) have led to the addition of a fair amount of complexity since then.
⚲ API
{{The Linux Kernel/include|linux/wait.h}}
{{The Linux Kernel/id|wait_queue_head}} consists of double linked list of {{The Linux Kernel/id|wait_queue_entry}} and a spinlock.
Waiting for simple events:
: Use one of two methods for {{The Linux Kernel/id|wait_queue_head}} initialization:
:: {{The Linux Kernel/id|init_waitqueue_head}} initializes {{The Linux Kernel/id|wait_queue_head}} in function context
:: {{The Linux Kernel/id|DECLARE_WAIT_QUEUE_HEAD}} - actually defines {{The Linux Kernel/id|wait_queue_head}} in global context
: Wait alternatives:
:: {{The Linux Kernel/id|wait_event_interruptible}} - preferable wait
:: {{The Linux Kernel/id|wait_event_interruptible_timeout}}
:: {{The Linux Kernel/id|wait_event}} - uninterruptible wait. Can cause deadlock ⚠
: {{The Linux Kernel/id|wake_up}} etc
👁 For example usage see references to unique {{The Linux Kernel/id|suspend_queue}}.
Explicit use of add_wait_queue instead of simple wait_event for complex cases:
: {{The Linux Kernel/id|DECLARE_WAITQUEUE}} actually defines wait_queue_entry with {{The Linux Kernel/id|default_wake_function}}
: {{The Linux Kernel/id|add_wait_queue}} inserts process in the first position of a wait queue
: {{The Linux Kernel/id|remove_wait_queue}}
⚙️ Internals
: {{The Linux Kernel/id|___wait_event}}
: {{The Linux Kernel/id|__add_wait_queue}}
: {{The Linux Kernel/id|__wake_up_common}}, {{The Linux Kernel/id|try_to_wake_up}}
: {{The Linux Kernel/source|kernel/sched/wait.c}} – wait queue implementation
Simple wait queues – simplified version with raw spinlock, suitable for RT and restricted contexts:
: {{The Linux Kernel/include|linux/swait.h}}
:: {{The Linux Kernel/id|swait_queue_head}}, {{The Linux Kernel/id|swait_queue}}
: {{The Linux Kernel/source|kernel/sched/swait.c}} – simple wait queue implementation
📖 References
: {{The Linux Kernel/doc|Wait queues and Wake events|driver-api/basics.html#wait-queues-and-wake-events}}
=== Real-time ===
{{:The Linux Kernel/Multitasking/Real-time}}
== Synchronization ==
Thread {{w|Synchronization (computer science)|synchronization}} is defined as a mechanism which ensures that two or more concurrent processes or threads do not simultaneously execute some particular program segment known as {{w|mutual exclusion}} (mutex).
When one thread starts executing the critical section (serialized segment of the program) the other thread should wait until the first thread finishes.
If proper synchronization techniques are not applied, it may cause a race condition where, the values of variables may be unpredictable and vary depending on the timings of context switches of the processes or threads.
=== User space synchronization ===
==== POSIX Timers ====
⚲ APIs
: {{The Linux Kernel/man|2|timer_create}} – creates a POSIX timer
: {{The Linux Kernel/man|2|timer_settime}} – starts or modifies a timer
: {{The Linux Kernel/man|2|timer_gettime}} – retrieves the remaining time of a timer
: {{The Linux Kernel/man|2|timer_delete}} – deletes a POSIX timer
: {{The Linux Kernel/man|2|clock_nanosleep}} – suspends execution for a specified time
⚙️ Internals
: {{The Linux Kernel/include|linux/posix-timers.h}}
: {{The Linux Kernel/source|kernel/time/itimer.c}} – interval timer (setitimer/getitimer)
: {{The Linux Kernel/source|kernel/time/posix-timers.c}} – POSIX clock and timer operations
: {{The Linux Kernel/source|kernel/time/posix-cpu-timers.c}} – per-process/thread CPU timers
:: {{The Linux Kernel/id|posix_cpu_timer_set}} – function setting up CPU timers
==== Futex ====
A {{The Linux Kernel/man|2|futex}} ↪ {{The Linux Kernel/id|do_futex}} (short for "Fast User space muTex") is a kernel system call that programmers can use to implement basic locking, or as a building block for higher-level locking abstractions such as semaphores and POSIX mutexes or condition variables.
A futex consists of a kernel space ''wait queue'' that is attached to an aligned integer in user space.
Multiple processes or threads operate on the integer entirely in user space (using atomic operations to avoid interfering with one another), and only resort to relatively expensive system calls to request operations on the wait queue (for example to wake up waiting processes, or to put the current process on the wait queue).
A properly programmed futex-based lock will not use system calls except when the lock is contended; since most operations do not require arbitration between processes, this will not happen in most cases.
The basic operations of futexes are based on only two central operations {{The Linux Kernel/id|futex_wait}} and {{The Linux Kernel/id|futex_wake}} though implementation has more operations for more specialized cases.
: WAIT (''addr'', ''val'') checks if the value stored at the address ''addr'' is ''val'', and if it is puts the current thread to sleep.
: WAKE (''addr'', ''val'') wakes up ''val'' number of threads waiting on the address ''addr''.
⚲ API
: {{The Linux Kernel/include|uapi/linux/futex.h}}
: {{The Linux Kernel/include|linux/futex.h}}
⚙️ Internals: {{The Linux Kernel/source|kernel/futex}}
📖 References
: {{w|Futex}}
: {{The Linux Kernel/man|7|futex}}
: {{The Linux Kernel/doc|Futex API reference|kernel-hacking/locking.html#futex-api-reference}}
: {{The Linux Kernel/ltp|kernel/syscalls|futex}}
==== File locking ====
⚲ API: {{The Linux Kernel/man|2|flock}}
==== Semaphore ====
💾 ''History: Semaphore is part of System V IPC {{The Linux Kernel/man|7|sysvipc}}''
⚲ API
: {{The Linux Kernel/man|2|semget}}
: {{The Linux Kernel/man|2|semctl}}
: {{The Linux Kernel/man|2|semop}}
⚙️ Internals: {{The Linux Kernel/source|ipc/sem.c}}
=== Kernel space synchronization ===
For kernel mode synchronization Linux provides three categories of locking primitives: sleeping, per CPU local locks and spinning locks.
==== Read-Copy-Update ====
Common mechanism to solve the readers–writers problem is the {{w|read-copy-update}} (''RCU'') algorithm.
Read-copy-update implements a kind of mutual exclusion that is wait-free (non-blocking) for readers, allowing extremely low overhead.
However, RCU updates can be expensive, as they must leave the old versions of the data structure in place to accommodate pre-existing readers.
⚲ The core API in {{The Linux Kernel/include|linux/rcupdate.h}} is quite small:
: {{The Linux Kernel/id|rcu_read_lock}} marks an RCU-protected data structure so that it won't be reclaimed for the full duration of that critical section.
: {{The Linux Kernel/id|rcu_read_unlock}} is used by a reader to inform the reclaimer that the reader is exiting an RCU read-side critical section. Note that RCU read-side critical sections may be nested and/or overlapping.
: {{The Linux Kernel/id|synchronize_rcu}} blocks until all pre-existing RCU read-side critical sections on all CPUs have completed. Note that <code>synchronize_rcu</code> will ''not'' necessarily wait for any subsequent RCU read-side critical sections to complete.
For example, consider the following sequence of events:
{| class="wikitable"
!
!CPU 0
!CPU 1
!CPU 2
|-
|1.
|rcu_read_lock()
|
|
|-
|2.
|
|enters synchronize_rcu()
|
|-
|3.
|
|
| rcu_read_lock()
|-
|4.
|rcu_read_unlock()
|
|
|-
|5.
|
|exits synchronize_rcu()
|
|-
|6.
|
|
|rcu_read_unlock()
|}
[[File:Rcu api.jpg|thumb|upright=2|RCU API communications between the reader, updater, and reclaimer]]
:Since <code>synchronize_rcu</code> is the API that must figure out when readers are done, its implementation is key to RCU. For RCU to be useful in all but the most read-intensive situations, <code>synchronize_rcu</code>'s overhead must also be quite small.
:Alternatively, instead of blocking, synchronize_rcu may register a callback to be invoked after all ongoing RCU read-side critical sections have completed. This callback variant is called {{The Linux Kernel/id|call_rcu}} in the Linux kernel.
: {{The Linux Kernel/id|rcu_assign_pointer}} - The updater uses this function to assign a new value to an RCU-protected pointer, in order to safely communicate the change in value from the updater to the reader. This function returns the new value, and also executes any {{w|Memory barrier}} instructions required for a given CPU architecture. Perhaps more importantly, it serves to document which pointers are protected by RCU.
: {{The Linux Kernel/id|rcu_dereference}} - The reader uses this function to fetch an RCU-protected pointer, which returns a value that may then be safely dereferenced. It also executes any directives required by the compiler or the CPU, for example, a volatile cast for gcc, a memory_order_consume load for C/C++11 or the memory-barrier instruction required by the old DEC Alpha CPU. The value returned by <code>rcu_dereference</code> is valid only within the enclosing RCU read-side critical section. As with <code>rcu_assign_pointer</code>, an important function of <code>rcu_dereference</code> is to document which pointers are protected by RCU.
The RCU infrastructure observes the time sequence of <code>rcu_read_lock</code>, <code>rcu_read_unlock</code>, <code>synchronize_rcu</code>, and <code>call_rcu</code> invocations in order to determine when (1) <code>synchronize_rcu</code> invocations may return to their callers and (2) <code>call_rcu</code> callbacks may be invoked.
Efficient implementations of the RCU infrastructure make heavy use of batching in order to amortize their overhead over many uses of the corresponding APIs.
⚲ API
: [https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt#:~:text=rcu_nocbs%5B rcu_nocbs] – no-callback CPUs
: {{The Linux Kernel/include|linux/rcupdate.h}}
⚙️ Internals
: {{The Linux Kernel/source|kernel/rcu}} – read-copy-update implementation
📖 References
: {{The Linux Kernel/doc|Avoiding Locks: Read Copy Update|kernel-hacking/locking.html?#avoiding-locks-read-copy-update}}
: {{The Linux Kernel/doc|RCU concepts|RCU}}
: [https://0xax.gitbooks.io/linux-insides/content/Initialization/linux-initialization-9.html RCU initialization]
📚 Further reading
: [https://lpc.events/event/18/contributions/1906/attachments/1590/3302/LPC-2024-Vienna.pdf Reduce synchronize_rcu() latency]
==== Sleeping locks ====
===== Mutexes =====
⚲ API
: {{The Linux Kernel/include|linux/mutex.h}}
: {{The Linux Kernel/include|linux/completion.h}}
: {{The Linux Kernel/id|mutex}} has owner and usage constraints, easier to debug than semaphore
:: {{The Linux Kernel/id|rt_mutex}} blocking mutual exclusion locks with priority inheritance (PI) support
:: {{The Linux Kernel/id|ww_mutex}} Wound/Wait mutexes: blocking mutual exclusion locks with deadlock avoidance
: {{The Linux Kernel/id|rw_semaphore}} readers–writer semaphores
: {{The Linux Kernel/id|percpu_rw_semaphore}}
: {{The Linux Kernel/id|completion}} - use completion for synchronization task with ISR and task or two tasks.
:: {{The Linux Kernel/id|wait_for_completion}}
:: {{The Linux Kernel/id|complete}}
💾 ''Historical''
: {{The Linux Kernel/id|semaphore}} - use mutex instead semaphore if possible
: {{The Linux Kernel/include|linux/semaphore.h}}
: {{The Linux Kernel/include|linux/rwsem.h}}
📖 References
: {{The Linux Kernel/doc|Completions - “wait for completion” barrier APIs|scheduler/completion.html}}
: {{The Linux Kernel/doc|Mutex API reference|kernel-hacking/locking.html#mutex-api-reference}}
: [http://lwn.net/Articles/23993/ LWN: completion events]
==== per CPU local lock ====
On normal preemptible kernel local_lock calls {{The Linux Kernel/id|preempt_disable}}.
On RT preemptible kernel local_lock calls {{The Linux Kernel/id|migrate_disable}} and {{The Linux Kernel/id|spin_lock}}.
Any changes applied to spinlock_t also apply to local_lock.
⚲ API
: {{The Linux Kernel/include|linux/local_lock.h}}
:: {{The Linux Kernel/id|local_lock}}, {{The Linux Kernel/id|preempt_disable}}
:: {{The Linux Kernel/id|local_lock_irqsave}}, {{The Linux Kernel/id|local_irq_save}}
:: etc
📖 References
: {{The Linux Kernel/doc|local_lock|locking/locktypes.html#local-lock}}
: {{The Linux Kernel/doc|PREEMPT_RT caveats: spinlock_t, rwlock_t, migrate_disable and local_lock|locking/locktypes.html#spinlock-t-and-rwlock-t}}
: {{The Linux Kernel/doc|Proper locking under a preemptive kernel|locking/preempt-locking.html}}
: [https://lwn.net/Articles/828477/ Local locks in the kernel]
==== Spinning locks ====
===== {{w|Spinlock}}s =====
a ''spinlock'' is a lock which causes a thread trying to acquire it to simply wait in a loop ("spin") while repeatedly checking if the lock is available.
Since the thread remains active but is not performing a useful task, the use of such a lock is a kind of busy waiting.
Once acquired, spinlocks will usually be held until they are explicitly released, although in some implementations they may be automatically released if the thread being waited on (that which holds the lock) blocks, or "goes to sleep".
Spinlocks are commonly used inside kernels because they are efficient if threads are likely to be blocked for only short periods.
However, spinlocks become wasteful if held for longer durations, as they may prevent other threads from running and require rescheduling.
👁 For example {{The Linux Kernel/id|kobj_kset_join}} uses spinlock to protect assess to the linked list.
Enabling and disabling of kernel preemption replaced spinlocks on uniprocessor systems (disabled {{The Linux Kernel/id|CONFIG_SMP}}).
Most spinning locks becoming sleeping locks in the {{The Linux Kernel/id|CONFIG_PREEMPT_RT}} kernels.
⚲ API
: {{The Linux Kernel/include|linux/spinlock.h}}
:: {{The Linux Kernel/id|spinlock_t}}
:: {{The Linux Kernel/id|raw_spinlock_t}}
: {{The Linux Kernel/include|linux/bit_spinlock.h}}
:: {{The Linux Kernel/id|bit_spin_lock}}
📖 References
: [https://0xax.gitbooks.io/linux-insides/content/SyncPrim/linux-sync-1.html Introduction to spinlocks]
: [https://0xax.gitbooks.io/linux-insides/content/SyncPrim/linux-sync-2.html Queued spinlocks]
===== {{w|Seqlock}}s =====
A ''seqlock'' (short for "sequential lock") is a special locking mechanism used in Linux for supporting fast writes of shared variables between two parallel operating system routines.
It is a special solution to the readers–writers problem when the number of writers is small.
It is a reader-writer consistent mechanism which avoids the problem of writer starvation.
A {{The Linux Kernel/id|seqlock_t}} consists of storage for saving a sequence counter {{The Linux Kernel/id|seqcount_t}}/seqcount_spinlock_t in addition to a lock.
The lock is to support synchronization between two writers and the counter is for indicating consistency in readers.
In addition to updating the shared data, the writer increments the sequence counter, both after acquiring the lock and before releasing the lock.
Readers read the sequence counter before and after reading the shared data.
If the sequence counter is odd on either occasion, a writer had taken the lock while the data was being read and it may have changed.
If the sequence counters are different, a writer has changed the data while it was being read.
In either case readers simply retry (using a loop) until they read the same even sequence counter before and after.
⚲ API
: {{The Linux Kernel/id|seqlock_t}}
:: {{The Linux Kernel/id|DEFINE_SEQLOCK}}, {{The Linux Kernel/id|seqlock_init}}, {{The Linux Kernel/id|read_seqlock_excl}}, {{The Linux Kernel/id|write_seqlock}}
: {{The Linux Kernel/id|seqcount_t}}
:: {{The Linux Kernel/id|seqcount_init}}, {{The Linux Kernel/id|read_seqcount_begin}}, {{The Linux Kernel/id|read_seqcount_retry}}, {{The Linux Kernel/id|write_seqcount_begin}}, {{The Linux Kernel/id|write_seqcount_end}}
: {{The Linux Kernel/include|linux/seqlock.h}}
👁 Example: {{The Linux Kernel/id|mount_lock}}, defined in {{The Linux Kernel/source|fs/namespace.c}}
📖 References
: {{The Linux Kernel/doc|Sequence counters and sequential locks|locking/seqlock.html}}
: [https://0xax.gitbooks.io/linux-insides/content/SyncPrim/linux-sync-6.html SeqLock]
==== Spinning or sleeping locks ====
:{| class="wikitable"
! !! normal !! on preempt RT
|-
| spinlock_t, || raw_spinlock_t || rt_mutex_base, rt_spin_lock, sleeping
|-
| rwlock_t || spinning || sleeping
|-
| local_lock || preempt_disable|| migrate_disable, rt_spin_lock, sleeping
|}
==== Low level ====
The compiler might optimize away or reorder writes to variables leading to unexpected behavior
when variables are accessed concurrently by multiple threads.
⚲ API
: {{The Linux Kernel/include|asm-generic/rwonce.h}} – prevent the compiler from merging or refetching reads or writes.
: {{The Linux Kernel/include|linux/compiler.h}}
:: {{The Linux Kernel/id|barrier}} – prevents the compiler from reordering instructions around the barrier
: {{The Linux Kernel/include|asm-generic/barrier.h}} – generic barrier definitions
: {{The Linux Kernel/source|arch/x86/include/asm/barrier.h}} – force strict CPU ordering
:: {{The Linux Kernel/id|mb}} – ensures that all memory operations before the barrier are completed before any memory operations after the barrier are started
⚙️ Internals
: {{The Linux Kernel/doc|Atomics|driver-api/basics.html#atomics}}
:: {{The Linux Kernel/include|asm-generic/atomic.h}}
:: {{The Linux Kernel/include|linux/atomic/atomic-instrumented.h}}
::: {{The Linux Kernel/id|atomic_dec_and_test}} ...
📚 Further reading
: {{w|Volatile_(computer_programming)#In_C_and_C++|volatile}} – prevents the compiler from optimizations
: {{w|Memory barrier}} – enforces an ordering constraint on memory operations
==== ... ====
⚙️ Locking internals
: {{The Linux Kernel/include|linux/lockdep.h}} – runtime locking correctness validator
: {{The Linux Kernel/include|linux/debug_locks.h}}
: {{The Linux Kernel/source|lib/locking-selftest.c}} – locking correctness self-tests
: {{The Linux Kernel/source|kernel/locking}} – locking primitives
: {{The Linux Kernel/id|mutex_waiter}}, {{The Linux Kernel/id|timer_list}}, {{The Linux Kernel/id|wait_queue_head_t}}
:: {{The Linux Kernel/source|kernel/locking/locktorture.c}} – module-based torture test facility for locking
📖 Locking references
: {{The Linux Kernel/doc|locking|locking}}
:: {{The Linux Kernel/doc|Lock types and their rules|locking/locktypes.html}}
::: 😴 {{The Linux Kernel/doc|sleeping locks|locking/locktypes.html#sleeping-locks}}
:::: {{The Linux Kernel/id|mutex}}, {{The Linux Kernel/id|rt_mutex}}, {{The Linux Kernel/id|semaphore}}, {{The Linux Kernel/id|rw_semaphore}}, {{The Linux Kernel/id|ww_mutex}}, {{The Linux Kernel/id|percpu_rw_semaphore}}
:::: on preempt RT: local_lock, spinlock_t, rwlock_t
::: 😵💫 {{The Linux Kernel/doc|spinning locks|locking/locktypes.html#spinning-locks}}:
:::: raw_spinlock_t, bit spinlocks
:::: on non preempt RT: spinlock_t, rwlock_t
: {{The Linux Kernel/doc|Unreliable Guide To Locking|kernel-hacking/locking.html}}
: [https://0xax.gitbooks.io/linux-insides/content/SyncPrim/ Synchronization primitives]
=== Time ===
⚲ UAPI
: {{The Linux Kernel/include|uapi/linux/time.h}}
:: {{The Linux Kernel/id|timespec}} – nanosecond resolution
:: {{The Linux Kernel/id|timeval}} – microsecond resolution
:: {{The Linux Kernel/id|timezone}}
:: ...
: {{The Linux Kernel/include|uapi/linux/time_types.h}}
:: {{The Linux Kernel/id|__kernel_timespec}} – nanosecond resolution, used in syscalls
:: ...
⚲ API
: {{The Linux Kernel/include|linux/delay.h}} – busy-wait delay functions for timing control
: {{The Linux Kernel/include|linux/sched/clock.h}}
:: {{The Linux Kernel/id|sched_clock}}
:: ...
: {{The Linux Kernel/include|linux/time.h}}
:: {{The Linux Kernel/id|tm}}
:: {{The Linux Kernel/id|get_timespec64}}
:: ...
: {{The Linux Kernel/include|linux/ktime.h}}
:: {{The Linux Kernel/id|ktime_t}} – nanosecond scalar representation for kernel time values
:: {{The Linux Kernel/id|ktime_sub}}
:: ...
: {{The Linux Kernel/include|linux/timekeeping.h}}
:: {{The Linux Kernel/id|ktime_get}}, {{The Linux Kernel/id|ktime_get_ns}}
:: {{The Linux Kernel/id|ktime_get_real}}
:: ...
: {{The Linux Kernel/include|linux/time64.h}}
:: {{The Linux Kernel/id|timespec64}}
:: {{The Linux Kernel/id|time64_t}}
:: {{The Linux Kernel/id|ns_to_timespec64}}
:: {{The Linux Kernel/id|timespec64_sub}}
:: {{The Linux Kernel/id|ktime_to_timespec64}}
:: ...
: {{The Linux Kernel/include|uapi/linux/rtc.h}}
: {{The Linux Kernel/include|linux/jiffies.h}}
⚙️ Internals
: {{The Linux Kernel/source|kernel/time}} – timekeeping, timers and clocks
📖 References
: {{The Linux Kernel/doc|ktime accessors|core-api/timekeeping.html}}
: {{The Linux Kernel/doc|Clock sources, Clock events, sched_clock() and delay timers|timers/timekeeping.html}}
: {{The Linux Kernel/doc|Time and timer routines|driver-api/basics.html#time-and-timer-routines}}
: {{w|Year 2038 problem}}
{{:The Linux Kernel/Multitasking/CPU}}
{{BookCat}}
0gildjj06965zmxbzrmxw3qeao8y15a
The Linux Kernel/Memory
0
226983
4640214
4632908
2026-06-13T17:19:31Z
Conan
3188
add brief descriptions to source file references
4640214
wikitext
text/x-wiki
<noinclude>{{DISPLAYTITLE:Memory functionality}}</noinclude>
{|style="width: 25%; float: right; text-align:center;border-spacing: 0; color:black; margin:auto;" cellpadding=5pc
! bgcolor="#bfd" |memory
|-
| bgcolor="#aed" |[[#Processes|Processes]]
|-
| bgcolor="#9dd" |[[#Virtual_memory|virtual memory]]
|-
| bgcolor="#aca" |[[#Memory_mapping|memory mapping]]
|-
| bgcolor="#acb" | [[#Swap|demand paging and swap]]
|-
| bgcolor="#8b9" |[[#Logical_memory|logical memory]]
|-
| bgcolor="#7a7" |[[#Page Allocator|Page Allocator]]
|-
| bgcolor="#686" |[[#Pages|pages]]
|}
The kernel has full access to the system's memory and allows processes to {{w|Process isolation|safely access}} this memory as they require it.
Often the first step in doing this is {{w|Virtual address space|virtual addressing}}, usually achieved by paging and/or segmentation.
Virtual addressing allows the kernel to make a given {{w|physical address}} appear to be another address, the virtual address.
Virtual address spaces may be different for different processes; the memory that one process accesses at a particular (virtual) address may be different memory from what another process accesses at the same address.
This allows every program to behave as if it is the only one (apart from the kernel) running and thus prevents applications from crashing each other.
On many systems, a program's virtual address may refer to data which is not currently in memory.
The layer of indirection provided by virtual addressing allows the operating system to use other data stores, like a hard drive, to store what would otherwise have to remain in main {{w|random-access memory}} (RAM).
As a result, operating systems can allow programs to use more memory than the system has physically available.
When a program needs data which is not currently in RAM, the {{w|Memory management unit|MMU}} {{w|Page fault|signals}} to the kernel that this has happened, and the kernel responds by writing the contents of an inactive memory block to disk (if necessary) and replacing it with the data requested by the program.
The program can then be resumed from the point where it was stopped.
This scheme is generally known as {{w|demand paging}}.
Virtual addressing also allows creation of virtual partitions of memory in two disjointed areas, one being reserved for the kernel (kernel space) and the other for the applications (user space).
The applications are not permitted by the processor to address kernel memory, thus preventing an application from damaging the running kernel.
This fundamental partition of memory space has contributed much to the current designs of actual general-purpose kernels and is almost universal in such systems, Linux being one of them.
⚲ Shell interface
: cat /proc/meminfo
: {{The Linux Kernel/man|1|free}}
: {{The Linux Kernel/man|8|vmstat}}
{{:The Linux Kernel/Processes}}
== Memory management API ==
: ⚲ {{The Linux Kernel/man|2|brk}} ↪ {{The Linux Kernel/id|sys_brk}}, {{The Linux Kernel/id|do_brk_flags}} dynamically changes data segment size of the calling process.
The change is made by resetting the <u>program break</u> of the process, which determines the maximum space that can be allocated.
The program break is the address of the first location beyond the current end of the data region, and determines the maximum space that can be allocated by the process.
The amount of available space increases as the break value increases.
The added available space is initialized to a value of zero.
: ⚲ {{The Linux Kernel/man|2|mmap}} ↪ {{The Linux Kernel/id|ksys_mmap_pgoff}} maps files or devices into memory.
It is a method of memory-mapped file I/O.
It naturally implements demand paging, because file contents are not read from disk initially and do not use physical RAM at all.
The actual reads from disk are performed in a "lazy" manner, after a specific location is accessed.
After the memory is no longer needed it is important to {{The Linux Kernel/man|2|unmmap}} the pointers to it.
Protection information can be managed using {{The Linux Kernel/man|2|mprotect}} ↪ {{The Linux Kernel/id|do_mprotect_pkey}} and special treatment can be enforced using {{The Linux Kernel/man|2|madvise}} ↪ {{The Linux Kernel/id|do_madvise}}.
In Linux, {{The Linux Kernel/man|2|mmap}} can create several types of mappings, such as ''anonymous mappings'', ''shared mappings'' and ''private mappings''.
Using the <code>MAP_ANONYMOUS</code> flag <code>mmap()</code> can map a specific area of the process's virtual memory not backed by any file, whose contents are initialized to zero.
These functions are typically called from a higher-level memory management library function such as C standard library {{The Linux Kernel/man|3|malloc}} or [[w:new and delete (C++)|C++ new operator]].
⚲ API
: {{The Linux Kernel/include|linux/uaccess.h}} – user-space memory access and validation helpers
: {{The Linux Kernel/include|linux/mm.h}} – memory management declarations and page handling APIs
: {{The Linux Kernel/include|linux/slab.h}} – memory allocation APIs for slab and kmalloc systems
💾 ''History: Two basic related to memory management system calls <code>brk</code> and <code>mmap</code> Linux inherits from Unix.''
''BTW: On Linux, {{The Linux Kernel/man|2|sbrk}} is not a separate system call, but a C library function that also calls to {{The Linux Kernel/id|sys_brk}} and keeps some internal state to return the previous break value.''
📚 References
: {{The Linux Kernel/doc|Memory Management APIs|core-api/mm-api.html}}
: {{The Linux Kernel/doc|x86_64 Memory Management|x86/x86_64/mm.html}}
: {{w|sbrk}}
: {{w|mmap}}
: [https://0xax.gitbooks.io/linux-insides/content/MM/ Memory management]
⚙️ Internals:
: '''{{The Linux Kernel/id|sys_brk}}''' ↯ call hierarchy:
: {{The Linux Kernel/id|do_brk_flags}}
:: {{The Linux Kernel/id|vm_area_alloc}}
::: {{The Linux Kernel/id|kmem_cache_alloc}}
:::: {{The Linux Kernel/id|kmem_cache_alloc_lru}}
== Virtual memory ==
🔧 TODO:
{{w|Virtual memory|Virtually contiguous memory}} on top of physical and [[#Swap|swapped]] memory pages.
🗝️ Acronyms:
: VPFN - Virtual Page Frame Number
: PFN - Physical Page Frame Number
: pgd - Page Directory
: pmd - Page Middle Directory
: pud - Page Upper Directory
: pte - {{w|Page table}} Entry
: TLB - {{w|Translation Lookaside Buffer}}
: MMU - {{w|Memory Management Unit}}
⚲ API:
: {{The Linux Kernel/include|linux/vmalloc.h}}
: {{The Linux Kernel/id|vmalloc}} {{The Linux Kernel/id|vfree}}
: {{The Linux Kernel/include|linux/cleanup.h}} – scope-based cleanup helpers
:: {{The Linux Kernel/id|scoped_guard}}
: /proc/vmallocinfo
⚙️ Internals:
: {{The Linux Kernel/id|vm_struct}}
: {{The Linux Kernel/id|virt_to_page}}
: {{The Linux Kernel/id|vmalloc_init}}
: {{The Linux Kernel/id|find_vma}}
: {{The Linux Kernel/source|mm/vmalloc.c}} – virtually contiguous memory allocator
📚 References
: {{The Linux Kernel/doc|Virtually Contiguous Mappings|core-api/mm-api.html#virtually-contiguous-mappings}}
: {{The Linux Kernel/doc|Page Tables|mm/page_tables.html}}
: {{The Linux Kernel/doc|Scope-based Cleanup Helpers|core-api/cleanup.html}}
== Data types ==
=== Pointers and addresses ===
Kernel-specific address types, in addition to common C pointers.
: <big>unsigned long</big> – used to store addresses that are not intended to be dereferenced by the user
: {{The Linux Kernel/id|uintptr_t}} – to be used in ioctl
: {{The Linux Kernel/id|phys_addr_t}} – physical address
: {{The Linux Kernel/id|dma_addr_t}} – DMA address
📚 Further reading
: {{The Linux Kernel/doc|(How to avoid) Botching up ioctls|process/botching-up-ioctls.html}}
: [https://unix.org/whitepapers/64bit.html Data Size Neutrality and 64-bit Support]
=== Other types ===
⚲ API
: {{The Linux Kernel/include|linux/types.h}} – fixed-width and kernel-specific type definitions
: {{The Linux Kernel/include|linux/string.h}} – standard string manipulation functions
: bit operations
:: {{The Linux Kernel/include|linux/bitfield.h}} – defining and extracting bitfield values
:: {{The Linux Kernel/include|linux/bitops.h}} – atomic and non-atomic bit manipulation operations
:: {{The Linux Kernel/include|linux/bitmap.h}} – bit arrays that consume one or more unsigned longs
:: {{The Linux Kernel/include|linux/sbitmap.h}} – fast and scalable bitmaps
: {{The Linux Kernel/include|linux/kref.h}}
: {{The Linux Kernel/include|acpi/actypes.h}} – common data types for the entire ACPI subsystem
:: {{The Linux Kernel/include|linux/list.h}} – circular doubly linked list implementation
::: {{The Linux Kernel/id|list_head}} – common double linked list
::: {{The Linux Kernel/id|list_add}} ...
:: {{The Linux Kernel/include|linux/klist.h}} – some {{The Linux Kernel/id|klist_node}}->{{The Linux Kernel/id|kref}} helpers
::: {{The Linux Kernel/id|klist_add_tail}} ...
: {{The Linux Kernel/include|linux/kobject.h}}
: {{The Linux Kernel/include|linux/circ_buf.h}}
: {{The Linux Kernel/include|linux/kfifo.h}} – generic kernel FIFO
:: {{The Linux Kernel/id|kfifo_in}} ...
: {{The Linux Kernel/include|linux/rbtree.h}} – Red-black trees
:: {{The Linux Kernel/id|rb_node}}
: {{The Linux Kernel/include|linux/scatterlist.h}}
:: {{The Linux Kernel/id|scatterlist}}
:: 👁 Example: {{The Linux Kernel/source|samples/kfifo/dma-example.c}}
: {{The Linux Kernel/include|linux/idr.h}} – ID allocation
: {{The Linux Kernel/include|linux/container_of.h}}
📖 References
: {{The Linux Kernel/doc|List Management Functions|core-api/kernel-api.html#list-management-functions}}
: {{The Linux Kernel/doc|FIFO Buffer|core-api/kernel-api.html#fifo-buffer}}
: {{The Linux Kernel/doc|Data structures and low-level utilities|core-api#data-structures-and-low-level-utilities}}
:: {{The Linux Kernel/doc|Everything you never wanted to know about kobjects, ksets, and ktypes|core-api/kobject.html}}
:: {{The Linux Kernel/doc|Adding reference counters (krefs) to kernel objects|core-api/kref.html}}
:: {{The Linux Kernel/doc|Generic Associative Array Implementation|core-api/assoc_array.html}}
:: {{The Linux Kernel/doc|XArray|core-api/xarray.html}}
:: {{The Linux Kernel/doc|ID Allocation|core-api/idr.html}}
:: {{The Linux Kernel/doc|Circular Buffers|core-api/circular-buffers.html}}
:: {{The Linux Kernel/doc|Red-black Trees (rbtree) in Linux|core-api/rbtree.html}}
:: {{The Linux Kernel/doc|Generic radix trees/sparse arrays|core-api/generic-radix-tree.html}}
:: {{The Linux Kernel/doc|Generic bitfield packing and unpacking functions|core-api/packing.html}}
:: {{The Linux Kernel/doc|How to access I/O mapped memory from within device drivers|core-api/bus-virt-phys-mapping.html}}
:: {{The Linux Kernel/doc|this_cpu operations|core-api/this_cpu_ops.html}}
:: {{The Linux Kernel/doc|The errseq_t datatype|core-api/errseq.html}}
📚 Further reading
: [https://0xax.gitbooks.io/linux-insides/content/DataStructures/ Data Structures in the Linux Kernel]
: https://kernelnewbies.org/InternalKernelDataTypes
== Memory mapping ==
🔧 TODO
⚲ API:
: {{The Linux Kernel/man|2|mmap}} ↪ {{The Linux Kernel/id|ksys_mmap_pgoff}} ↪ {{The Linux Kernel/id|do_mmap}}
: {{The Linux Kernel/man|2|mprotect}}
: {{The Linux Kernel/man|2|mmap2}}
: {{The Linux Kernel/man|2|mincore}}
: {{The Linux Kernel/include|linux/mm_types.h}} – {{The Linux Kernel/id|mm_struct}}, {{The Linux Kernel/id|vm_area_struct}}
: {{The Linux Kernel/include|linux/mm.h}}
: {{The Linux Kernel/id|remap_pfn_range}}
: {{The Linux Kernel/id|SetPageReserved}}, {{The Linux Kernel/id|ClearPageReserved}}
⚙️ Internals:
: {{The Linux Kernel/source|mm/mmap.c}} – memory mapping implementation
📚 References:
: {{w|mmap}}
: {{The Linux Kernel/doc|Maple Tree|core-api/maple_tree.html}}
: [https://linux-kernel-labs.github.io/refs/heads/master/labs/memory_mapping.html Memory mapping, linux-kernel-labs]
== Swap ==
🔧 TODO
⚲ API:
: cat /proc/sys/vm/swappiness ↪ {{The Linux Kernel/id|vm_swappiness}}
: {{The Linux Kernel/include|linux/swap.h}}
: {{The Linux Kernel/man|2|swapon}} ↪ {{The Linux Kernel/id|enable_swap_slots_cache}}
: {{The Linux Kernel/man|2|swapoff}}
: {{The Linux Kernel/man|2|mlock}} ↪ {{The Linux Kernel/id|do_mlock}}
: {{The Linux Kernel/man|2|shmctl}} ↪ {{The Linux Kernel/id|shmctl_do_lock}}
⚙️ Internals:
: {{The Linux Kernel/source|mm/swapfile.c}} – swap area management
: {{The Linux Kernel/source|mm/vmscan.c}} – page reclaim and scanning
: {{The Linux Kernel/source|mm/mlock.c}} – memory locking
: {{The Linux Kernel/id|VM_LOCKED}}
: {{The Linux Kernel/id|swap_info_struct}}, {{The Linux Kernel/id|si_swapinfo}}, {{The Linux Kernel/id|swap_info}}
: {{The Linux Kernel/id|handle_pte_fault}} ↪ {{The Linux Kernel/id|do_swap_page}}
: {{The Linux Kernel/id|wakeup_kswapd}} ↪ {{The Linux Kernel/id|kswapd}}
📚 References:
: {{w|Memory_paging#Linux|Memory paging}}
: https://wiki.archlinux.org/title/swap
== Logical memory ==
⚲ {{The Linux Kernel/id|kmalloc}} is the normal method of allocating memory in the kernel for objects smaller than the page size.
It is defined in {{The Linux Kernel/include|linux/slab.h}}.
The first argument ''size'' is the size (in bytes) of the block of memory to be allocated.
The second argument ''flags'' are the allocation flags or ''GFP flags'', a set of macros that the caller provides to control the type of requested memory.
The most commonly used values for ''flags'' are GFP_KERNEL and GFP_ATOMIC, but there is more to be considered.
Memory-allocation requests in the kernel are always qualified by a set of ''GFP flags'' ("GFP" initially came from "get free page") describing what can and cannot be done to satisfy the request.
The most commonly used flags are GFP_ATOMIC and GFP_KERNEL, though they are actually built up from lower-level flags.
The full set of flags is huge; they can be found in the {{The Linux Kernel/include|linux/gfp.h}} header file.
⚲ API:
: ↯ {{w|RAII}} allocation functions hierarchy from {{The Linux Kernel/include|linux/device.h}}:
:: {{The Linux Kernel/id|devm_kcalloc}} - zeroed array
::: {{The Linux Kernel/id|devm_kmalloc_array}}
:::: {{The Linux Kernel/id|devm_kmalloc}} - common allocation
:: {{The Linux Kernel/id|devm_kzalloc}} - zeroed allocation
::: {{The Linux Kernel/id|devm_kmalloc}} - common allocation
: Classic direct API:
:: {{The Linux Kernel/include|linux/slab.h}}
:: {{The Linux Kernel/id|kmalloc}}, {{The Linux Kernel/id|kfree}}
=== Slab allocation ===
{{w|Slab allocation}} is a memory management algorithm intended for the efficient memory allocation of kernel objects. It eliminates fragmentation caused by allocations and deallocations. The technique is used to retain allocated memory that contains a data object of a certain type for reuse upon subsequent allocations of objects of the same type.
''' Basics '''
''This section is about the SLUB allocator implementation''
A slab can be thought of as an array of objects of certain type or with the same size, spanning through one or more contiguous pages of memory; for example, the slab named "task_struct" holds objects of <code>struct task_struct</code> type, used by the scheduling subsystem.
Other slabs store objects used by other subsystems, and there is also slabs for dynamic allocations inside the kernel, such as the "kmalloc-64" slab that holds up to 64-byte chunks requested via kmalloc() calls.
In a slab, each object can be allocated and freed separately.
The primary motivation for slab allocation is that the initialization and destruction of kernel data objects can actually outweigh the cost of allocating memory for them.
As object creation and deletion are widely employed by the kernel, overhead costs of initialization can result in significant performance drops.
The notion of object caching was therefore introduced in order to avoid the invocation of functions used to initialize object state.
With slab allocation, memory chunks suitable to fit data objects of certain type or size are preallocated.
The slab allocator keeps track of these chunks, known as caches {{The Linux Kernel/id|kmalloc_caches}},
so that when a request to allocate memory for a data object of a certain type is received, it can instantly satisfy the request with an already allocated slot {{The Linux Kernel/id|slab_alloc}}.
Deallocation of the object with {{The Linux Kernel/id|kfree}} does not free up the memory,
but only opens a slot which is put in the list of free slots {{The Linux Kernel/id|kmem_cache_cpu}} by the slab allocator.
The next call to allocate memory of the same size will return the now unused memory slot.
See {{The Linux Kernel/id|slab_alloc}}/{{The Linux Kernel/id|___slab_alloc}}/{{The Linux Kernel/id|get_freelist}}.
This process eliminates the need to search for suitable memory space and greatly alleviates memory fragmentation.
In this context, a slab is one or more contiguous pages in the memory containing pre-allocated memory chunks.
Slab allocation provides a kind of front-end to the zoned buddy allocator for those sections of the kernel that require more flexible memory allocation than the standard 4KB page size.
⚲ Interface:
: sudo cat /proc/slabinfo
:{{The Linux Kernel/include|linux/slab.h}}
: {{The Linux Kernel/id|kmem_cache_alloc}}, {{The Linux Kernel/id|kmem_cache_free}}
: {{The Linux Kernel/man|1|slabtop}}
⚙️ Internals:
: {{The Linux Kernel/source|mm/slab_common.c}} – slab allocator common code
: {{The Linux Kernel/id|mm_init}} is called from {{The Linux Kernel/id|start_kernel}}
:: {{The Linux Kernel/id|kmem_cache_init}}
::: {{The Linux Kernel/id|create_kmalloc_caches}}
: {{The Linux Kernel/id|____kasan_kmalloc}}
''' SLUB allocator ''' – default Unqueued allocator
{{w|SLUB (software)|SLUB}} is the iteration of the original SLAB allocator that replaced it and became the Linux default allocator since 2.6.23.
⚙️ Internals: {{The Linux Kernel/source|mm/slub.c}}
📚 References:
: {{The Linux Kernel/id|CONFIG_SLUB}}
💾 ''Historical: SLOB (Simple List Of Blocks) allocator for embedded devices was removed in kernel 6.4.''
''SLAB allocator, the original slab allocation implementation based on Jeff Bonwick's 1994 paper, was removed in kernel 6.8.''
''SLUB is now the only slab allocator in the kernel.''
<hr>
📚 References for Slab allocation:
: {{The Linux Kernel/doc|KASAN - KernelAddressSANitizer|dev-tools/kasan.html}} - dynamic memory safety error detector designed to find out-of-bound and use-after-free bugs
: [https://www.youtube.com/watch?v=h0VMLXavx30 <nowiki>Video "SL[AUO]B: Kernel memory allocator design and philosophy"</nowiki>] Christopher Lameter (Linux.conf.au 2015 conference) [http://lca2015.linux.org.au/slides/167/slaballocators-auckland-2015.pdf Slides]
=== Page Allocator ===
The page allocator (or "zoned buddy allocator") is a low-level allocator that deals with physical memory.
It delivers physical pages (usually with a size of 4096 bytes) of free memory to high-level memory consumers such as the slab allocators and <code>kmalloc()</code>.
As the ultimate source of memory in the system, the page allocator must ensure that memory is always available, since a failure providing memory to a critical kernel subsystem can lead to a general system failure or a kernel panic.
The page allocator divides physical memory into "zones", each of which corresponds to {{The Linux Kernel/id|zone_type}} with specific characteristics.
ZONE_DMA contains memory at the bottom of the address range for use by severely challenged devices, for example, while {{The Linux Kernel/id|ZONE_NORMAL}} may contain most memory on the system. 32-bit systems have a ZONE_HIGHMEM for memory that is not directly mapped into the kernel's address space.
Depending on the characteristics of any given allocation request, the page allocator will search the available zones in a specific priority order.
For the curious, <code>/proc/zoneinfo</code> gives a lot of information about the zones in use on any given system.
Within a zone, memory is grouped into ''page blocks'', each of which can be marked with a ''migration type'' - {{The Linux Kernel/id|migratetype}} describing how the block should be allocated.
⚲ API:
: cat /proc/buddyinfo
: {{The Linux Kernel/include|linux/gfp.h}}
: {{The Linux Kernel/include|linux/mmzone.h}}
: {{The Linux Kernel/id|alloc_page}}
: {{The Linux Kernel/id|devm_get_free_pages}} - {{w|RAII}} function, ↯ hierarchy of it:
:: {{The Linux Kernel/id|__get_free_pages}}
::: {{The Linux Kernel/id|alloc_pages}}
:::: {{The Linux Kernel/id|alloc_pages_node}}
::::: {{The Linux Kernel/id|__alloc_pages}} - the 'heart' of the zoned buddy allocator
⚙️ Internals:
: {{The Linux Kernel/id|build_all_zonelists}} is called from {{The Linux Kernel/id|start_kernel}}, ↯ call hierarchy:
:: {{The Linux Kernel/id|build_all_zonelists_init}}
::: {{The Linux Kernel/id|__build_all_zonelists}}
:::: {{The Linux Kernel/id|build_zonelists}}
: {{The Linux Kernel/id|__alloc_pages}} - the 'heart' of the zoned buddy allocator
: struct {{The Linux Kernel/id|zone}}
:: {{The Linux Kernel/id|free_area}}
: {{The Linux Kernel/source|mm/mmzone.c}} – memory zone helpers
: {{The Linux Kernel/source|mm/page_alloc.c}} – buddy page allocator
📚 References:
: {{The Linux Kernel/doc|Get Free Page flags|core-api/memory-allocation.html}}
: {{w|Buddy memory allocation}}
: {{w|Page replacement algorithm}}
=== OOM killer ===
The {{w|Out of memory|Out-Of-Memory}} killer is invoked when the kernel cannot satisfy a memory allocation and all reclaim attempts have failed.
It selects a process to kill based on a badness score to free memory and keep the system running.
⚲ API:
: /proc/$pid/oom_score – current badness score
: /proc/$pid/oom_score_adj – adjust score (-1000 to 1000)
: /proc/$pid/oom_adj – deprecated, use oom_score_adj
: /proc/sys/vm/panic_on_oom
⚙️ Internals:
: {{The Linux Kernel/source|mm/oom_kill.c}} – out-of-memory killer
: {{The Linux Kernel/id|out_of_memory}} – main entry point
: {{The Linux Kernel/id|oom_badness}} – calculates badness score
: {{The Linux Kernel/id|oom_kill_process}}
📚 References:
: {{The Linux Kernel/doc|OOM|admin-guide/sysctl/vm.html}}
=== Memory cgroup controller ===
The memory cgroup controller limits and accounts memory usage per group of processes.
It can set hard and soft limits, trigger per-cgroup OOM, and track swap usage.
⚲ API:
: memory.max – hard memory limit
: memory.high – throttling threshold
: memory.current – current usage
: memory.swap.max – swap limit
: See [[../System/CGroup v2#Memory|CGroup v2 Memory controller]] for full interface
⚙️ Internals:
: {{The Linux Kernel/source|mm/memcontrol.c}} – memory cgroup controller
: {{The Linux Kernel/id|mem_cgroup}} – main structure
: {{The Linux Kernel/id|mem_cgroup_charge}}
: {{The Linux Kernel/id|mem_cgroup_oom}}
📚 References:
: {{The Linux Kernel/doc|Memory Resource Controller|admin-guide/cgroup-v2.html#memory}}
<hr>
📚 References for logical memory:
: {{The Linux Kernel/doc|Memory Allocation Guide|core-api/memory-allocation.html}}
: {{The Linux Kernel/doc|Selecting memory allocator|core-api/memory-allocation.html#selecting-memory-allocator}}
== Physical memory ==
=== Memory Layout ===
A 32-bit processor can address a maximum of 4GB of memory.
Linux kernels split the 4GB address space between user processes and the kernel; under the most common configuration, the first 3GB of the 32-bit range are given over to user space, and the kernel gets the final 1GB starting at 0xc0000000.
Sharing the address space gives a number of performance benefits; in particular, the hardware's address translation buffer can be shared between the kernel and user space.
In '''x86-64''' - {{The Linux Kernel/id|CONFIG_X86_64}} with 4-level page tables ({{The Linux Kernel/id|CONFIG_X86_5LEVEL}}=n), only the least significant 48 bits of a virtual memory address would actually be used in address translation (page table lookup).
The remainder bits 48 through 63 of any virtual address must be copies of bit 47, or the processor will raise an exception.
Addresses complying with this rule are referred to as "canonical form." Canonical form addresses run from 0 through 00007FFF'FFFFFFFF, and from FFFF8000'00000000 through FFFFFFFF'FFFFFFFF, for a total of 256 TB of usable {{w|virtual address space}}.
This is still approximately 64,000 times the virtual address space on 32-bit machines.
Linux takes the higher-addressed half of the address space for itself (kernel space) and leaves the lower-addressed half for user space.
The "canonical address" design has, in effect, two memory halves: the lower half starts at 00000000'00000000 and "grows upwards" as more virtual address bits become available, while the higher half is "docked" to the top of the address space and grows downwards.
{| class="wikitable sortable"
|+
!Start addr
!class=unsortable|Offset
!End addr
!class=unsortable|Size
!class=unsortable|VM area description
|-
| <code><small>0000'</small>'''8'''<small>000'0000'0000</small></code>
| +128 TB
| <code><small>ffff'7fff'ffff'ffff</small></code>
|
| ... huge, almost 64 bits wide hole of non-canonical virtual memory addresses up to the -128 TB starting offset of kernel mappings.
|-
| <code><small>0000'0000'0000'0000</small></code>
|0
| <code><small>0000'7fff'ffff'ffff</small></code>
|128 TB=2<sup>47</sup>
|user-space virtual memory, different per mm
|-
| <code><small>ffff'ffff'ffe0'0000</small></code>
| -2 MB
| <code><small>ffff'ffff'ffff'ffff</small></code>
| 2 MB=2<sup>21</sup>
|... unused hole
|-
| <code><small>ffff'ffff'ff60'0000</small></code>
| -10 MB
| <code><small>ffff'ffff'ff60'0fff</small></code>
| 4 kB=2<sup>12</sup>
| {{The Linux Kernel/id|VSYSCALL_ADDR}} - legacy vsyscall ABI
|-
| <code><small>ffff'ffff'8000'0000</small></code>
| -2 GB
| <code><small>ffff'ffff'9fff'ffff</small></code>
| 512 MB=2<sup>19</sup>
| kernel text mapping, mapped to physical address 0
|-
|
|
|
|
|
|-
| <code><small>ffff'8880'0000'0000</small></code>
| -119.5 TB
| <code><small>ffff'c87f'ffff'ffff</small></code>
| 64 TB
| {{The Linux Kernel/id|page_offset_base}} = {{The Linux Kernel/id|__PAGE_OFFSET_BASE_L4}} - direct mapping of all physical memory
|-
|
|
|
|
|
|-
| <code><small>ffff'8000'0000'0000</small></code>
| -128 TB
| <code><small>ffff'87ff'ffff'ffff</small></code>
| 8 TB
| ... guard hole, also reserved for hypervisor
|}
[[File:Linux_Virtual_Memory_Layout_64bit.svg|border|center|x86-64 memory layout]]
⚲ API:
: {{The Linux Kernel/man|8|setarch}} --addr-no-randomize cat /proc/self/maps
⚙️ Internals:
: {{The Linux Kernel/source|arch/x86/include/asm/page_64_types.h}} – x86-64 page type definitions
: {{The Linux Kernel/source|arch/x86/mm/init_64.c}} – x86-64 memory initialization
📚 References:
: {{The Linux Kernel/doc|X86_64 memory map|x86/x86_64/mm.html}}
: {{w|Address_space_layout_randomization#Linux|Address space layout randomization}}
=== Pages ===
In Linux, different architectures have different page sizes.
The original —for x86 architecture— and still most commonly used page size is 4096 bytes (4 KB).
The page size (in bytes) of the current architecture is defined by the <code>PAGE_SIZE</code> macro included in {{The Linux Kernel/source|arch/x86/include/asm/page_types.h}} header file.
User space programs can get this value using the {{The Linux Kernel/man|2|getpagesize}} library function.
Another related macro is <code>PAGE_SHIFT</code>, that contains the number of bits to shift an address to get its page number —12 bits for 4K pages.
One of the most fundamental kernel data structures relating memory-management is <code>struct page</code>.
The kernel keeps track of the status of every page of physical memory present in the system using variables of this type.
There are millions of pages in a modern system, and therefore there are millions of these structures in memory.
The full definition of <code>struct page</code> can be found in {{The Linux Kernel/include|linux/mm_types.h}}.
: [https://0xax.gitbooks.io/linux-insides/content/Theory/linux-theory-1.html Pages]
=== NUMA ===
In {{w|Non-uniform memory access}} systems, physical memory is divided into nodes, each local to a group of CPUs.
Accessing local memory is faster than remote memory, so the kernel tries to allocate memory from the node closest to the requesting CPU.
Each node contains its own set of zones (DMA, Normal, etc.).
⚲ API:
: {{The Linux Kernel/man|8|numactl}} – controls NUMA policy for processes or shared memory
: {{The Linux Kernel/man|2|set_mempolicy}} – set default NUMA memory policy
: {{The Linux Kernel/man|2|mbind}} – set NUMA memory policy for a memory range
: {{The Linux Kernel/man|2|get_mempolicy}}
: {{The Linux Kernel/man|2|migrate_pages}}
: {{The Linux Kernel/man|2|move_pages}}
: cat /proc/buddyinfo
: /sys/devices/system/node/
: {{The Linux Kernel/include|linux/topology.h}} – {{The Linux Kernel/id|cpu_to_node}}, {{The Linux Kernel/id|numa_node_id}}
: {{The Linux Kernel/include|linux/mempolicy.h}}
⚙️ Internals:
: {{The Linux Kernel/id|CONFIG_NUMA}}
: {{The Linux Kernel/id|pglist_data}} (pg_data_t) – per-node memory descriptor, contains zones @ {{The Linux Kernel/include|linux/mmzone.h}}
: {{The Linux Kernel/id|numa_node_id}} – returns NUMA node of current CPU
: {{The Linux Kernel/source|mm/numa.c}} – NUMA node data allocation during boot
: {{The Linux Kernel/source|mm/mempolicy.c}} – NUMA memory allocation policies
: {{The Linux Kernel/source|mm/migrate.c}} – page migration between nodes
: {{The Linux Kernel/source|mm/memory-tiers.c}} – memory tiering (DRAM, PMEM, HBM)
: {{The Linux Kernel/source|mm/numa_memblks.c}} – memory block and distance setup
📚 References:
: {{The Linux Kernel/doc|NUMA Memory Policy|admin-guide/mm/numa_memory_policy.html}}
: {{w|Non-uniform memory access}}
: See also [[../Multitasking/CPU#SMP|SMP section]] for NUMA topology and CPU aspects
=== Huge pages ===
{{w|Huge pages}} use larger page sizes (2 MB or 1 GB on x86-64) to reduce TLB misses and page table overhead for memory-intensive workloads.
==== HugeTLB ====
HugeTLB provides explicitly allocated persistent huge pages, reserved at boot or runtime.
⚲ API:
: cat /proc/meminfo | grep Huge
: cat /proc/sys/vm/nr_hugepages
: {{The Linux Kernel/man|2|mmap}} with MAP_HUGETLB
: mount -t hugetlbfs nodev /dev/hugepages
: {{The Linux Kernel/include|linux/hugetlb.h}}
⚙️ Internals:
: {{The Linux Kernel/source|mm/hugetlb.c}} – HugeTLB huge page allocator
: {{The Linux Kernel/id|hugetlb_init}}
: {{The Linux Kernel/id|hugetlb_fault}}
📚 References:
: {{The Linux Kernel/doc|HugeTLB Pages|admin-guide/mm/hugetlbpage.html}}
==== Transparent Huge Pages ====
THP automatically promotes regular pages to huge pages without application changes (since 2.6.38).
⚲ API:
: cat /sys/kernel/mm/transparent_hugepage/enabled
: {{The Linux Kernel/man|2|madvise}} with MADV_HUGEPAGE
: {{The Linux Kernel/include|linux/huge_mm.h}}
⚙️ Internals:
: {{The Linux Kernel/source|mm/huge_memory.c}} – transparent huge page support
: {{The Linux Kernel/id|khugepaged}} – daemon that collapses pages into huge pages
: {{The Linux Kernel/source|mm/khugepaged.c}} – THP collapse daemon
📚 References:
: {{The Linux Kernel/doc|Transparent Hugepage Support|admin-guide/mm/transhuge.html}}
: {{The Linux Kernel/doc|Concepts overview|admin-guide/mm/concepts.html}}
=== CMA ===
The Contiguous Memory Allocator (CMA) reserves a region of memory at boot for large physically contiguous allocations needed by DMA devices, GPUs and multimedia hardware (since 3.5).
Unused CMA memory is available to the page allocator for movable pages.
⚲ API:
: cat /proc/meminfo | grep Cma
: {{The Linux Kernel/include|linux/cma.h}}
: {{The Linux Kernel/id|dma_alloc_contiguous}}
: {{The Linux Kernel/id|CONFIG_CMA}}
⚙️ Internals:
: {{The Linux Kernel/source|mm/cma.c}} – contiguous memory allocator core
: {{The Linux Kernel/source|kernel/dma/contiguous.c}} – DMA-CMA integration
: {{The Linux Kernel/source|mm/cma_debug.c}} – debugfs interface
: {{The Linux Kernel/id|cma_alloc}}
: {{The Linux Kernel/id|cma_release}}
📚 References:
: {{The Linux Kernel/doc|Contiguous Memory Allocator|mm/cma.html}}
=== DMA ===
⚲ API:
: {{The Linux Kernel/id|dma_addr_t}} - bus address
: {{The Linux Kernel/include|linux/dma-mapping.h}}
: {{The Linux Kernel/id|dma_alloc_coherent}}
: {{The Linux Kernel/id|dma_alloc_pages}} {{The Linux Kernel/id|pin_user_pages}}
: {{The Linux Kernel/id|dma_map_single}} {{The Linux Kernel/id|dma_data_direction}}
: {{The Linux Kernel/id|dma_map_sg}} {{The Linux Kernel/id|scatterlist}}
: {{The Linux Kernel/id|dma_set_mask}} {{The Linux Kernel/id|dma_set_coherent_mask}} {{The Linux Kernel/id|dma_set_mask_and_coherent}}
: {{The Linux Kernel/id|dma_sync_single_for_cpu}} {{The Linux Kernel/id|dma_sync_single_for_device}}
: {{The Linux Kernel/include|linux/gfp.h}}
: {{The Linux Kernel/include|linux/dmapool.h}}
: {{The Linux Kernel/id|dma_pool_create}}
: DMA-able memory: {{The Linux Kernel/id|__get_free_page}} {{The Linux Kernel/id|kmalloc}} {{The Linux Kernel/id|kmem_cache_alloc}}
: {{The Linux Kernel/id|get_user_pages}} pins user pages in memory,
👁 Examples:
: {{The Linux Kernel/source|samples/kfifo/dma-example.c}}
: {{The Linux Kernel/id|e1000_alloc_rx_buffers}}, {{The Linux Kernel/id|e1000_alloc_ring_dma}}
⚙️ Internals:
: {{The Linux Kernel/source|kernel/dma}} – DMA subsystem core
: {{The Linux Kernel/source|mm/dmapool.c}} – small DMA-coherent allocations
: {{The Linux Kernel/source|mm/gup.c}} – get/pin user pages
: {{The Linux Kernel/source|kernel/dma/mapping.c}} – arch-independent DMA mapping
📚 References:
: {{The Linux Kernel/doc|Dynamic DMA mapping Guide|core-api/dma-api-howto.html}}
: {{The Linux Kernel/doc|Dynamic DMA mapping using the generic device|core-api/dma-api.html}}
: [https://lwn.net/Articles/787636/ LWM: get_user_pages, pinned pages, and DAX]
: {{The Linux Kernel/doc|pin_user_pages() and related calls|core-api/pin_user_pages.html}}
💾 ''Historical:''
: [http://lwn.net/images/pdf/LDD3/ch15.pdf LDD3:Memory Mapping and DMA]
: http://www.xml.com/ldd/chapter/book/ch13.html mmap and DMA
: SAC – Single Address Cycle, 32-bit DMA addressing (up to 4 GB)
: DAC – Dual Address Cycle, 64-bit DMA addressing
==== DMAEngine ====
: {{The Linux Kernel/include|linux/dmaengine.h}}
: {{The Linux Kernel/source|drivers/dma}} – DMA engine drivers
: {{The Linux Kernel/doc|driver-api/dmaengine}}
: https://bootlin.com/pub/conferences/2015/elc/ripard-dmaengine/
== ... ==
📚 References for the article:
: {{The Linux Kernel/doc|Linux Memory Management Documentation|mm/}}
: [https://www.ryadel.com/en/linux-memory-management-mechanism-analysis-kernel/ Analysis of Linux Memory Management Mechanism]
: [https://0xax.gitbooks.io/linux-insides/content/MM/ Memory management]
: http://linux-mm.org/LinuxMM
: http://www.tldp.org/HOWTO/KernelAnalysis-HOWTO-7.html
: [https://lwn.net/Kernel/Index/#Memory_management Memory management, lwn]
{{BookCat}}
li4km6dnjw3yrepj1jdvze2tilw0srk
4640238
4640214
2026-06-13T19:15:15Z
Conan
3188
fix munmap typo, memory layout size 2^19 -> 2^29, spacing
4640238
wikitext
text/x-wiki
<noinclude>{{DISPLAYTITLE:Memory functionality}}</noinclude>
{|style="width: 25%; float: right; text-align:center;border-spacing: 0; color:black; margin:auto;" cellpadding=5pc
! bgcolor="#bfd" |memory
|-
| bgcolor="#aed" |[[#Processes|Processes]]
|-
| bgcolor="#9dd" |[[#Virtual_memory|virtual memory]]
|-
| bgcolor="#aca" |[[#Memory_mapping|memory mapping]]
|-
| bgcolor="#acb" | [[#Swap|demand paging and swap]]
|-
| bgcolor="#8b9" |[[#Logical_memory|logical memory]]
|-
| bgcolor="#7a7" |[[#Page Allocator|Page Allocator]]
|-
| bgcolor="#686" |[[#Pages|pages]]
|}
The kernel has full access to the system's memory and allows processes to {{w|Process isolation|safely access}} this memory as they require it.
Often the first step in doing this is {{w|Virtual address space|virtual addressing}}, usually achieved by paging and/or segmentation.
Virtual addressing allows the kernel to make a given {{w|physical address}} appear to be another address, the virtual address.
Virtual address spaces may be different for different processes; the memory that one process accesses at a particular (virtual) address may be different memory from what another process accesses at the same address.
This allows every program to behave as if it is the only one (apart from the kernel) running and thus prevents applications from crashing each other.
On many systems, a program's virtual address may refer to data which is not currently in memory.
The layer of indirection provided by virtual addressing allows the operating system to use other data stores, like a hard drive, to store what would otherwise have to remain in main {{w|random-access memory}} (RAM).
As a result, operating systems can allow programs to use more memory than the system has physically available.
When a program needs data which is not currently in RAM, the {{w|Memory management unit|MMU}} {{w|Page fault|signals}} to the kernel that this has happened, and the kernel responds by writing the contents of an inactive memory block to disk (if necessary) and replacing it with the data requested by the program.
The program can then be resumed from the point where it was stopped.
This scheme is generally known as {{w|demand paging}}.
Virtual addressing also allows creation of virtual partitions of memory in two disjointed areas, one being reserved for the kernel (kernel space) and the other for the applications (user space).
The applications are not permitted by the processor to address kernel memory, thus preventing an application from damaging the running kernel.
This fundamental partition of memory space has contributed much to the current designs of actual general-purpose kernels and is almost universal in such systems, Linux being one of them.
⚲ Shell interface
: cat /proc/meminfo
: {{The Linux Kernel/man|1|free}}
: {{The Linux Kernel/man|8|vmstat}}
{{:The Linux Kernel/Processes}}
== Memory management API ==
: ⚲ {{The Linux Kernel/man|2|brk}} ↪ {{The Linux Kernel/id|sys_brk}}, {{The Linux Kernel/id|do_brk_flags}} dynamically changes data segment size of the calling process.
The change is made by resetting the <u>program break</u> of the process, which determines the maximum space that can be allocated.
The program break is the address of the first location beyond the current end of the data region, and determines the maximum space that can be allocated by the process.
The amount of available space increases as the break value increases.
The added available space is initialized to a value of zero.
: ⚲ {{The Linux Kernel/man|2|mmap}} ↪ {{The Linux Kernel/id|ksys_mmap_pgoff}} maps files or devices into memory.
It is a method of memory-mapped file I/O.
It naturally implements demand paging, because file contents are not read from disk initially and do not use physical RAM at all.
The actual reads from disk are performed in a "lazy" manner, after a specific location is accessed.
After the memory is no longer needed it is important to {{The Linux Kernel/man|2|munmap}} the pointers to it.
Protection information can be managed using {{The Linux Kernel/man|2|mprotect}} ↪ {{The Linux Kernel/id|do_mprotect_pkey}} and special treatment can be enforced using {{The Linux Kernel/man|2|madvise}} ↪ {{The Linux Kernel/id|do_madvise}}.
In Linux, {{The Linux Kernel/man|2|mmap}} can create several types of mappings, such as ''anonymous mappings'', ''shared mappings'' and ''private mappings''.
Using the <code>MAP_ANONYMOUS</code> flag <code>mmap()</code> can map a specific area of the process's virtual memory not backed by any file, whose contents are initialized to zero.
These functions are typically called from a higher-level memory management library function such as C standard library {{The Linux Kernel/man|3|malloc}} or [[w:new and delete (C++)|C++ new operator]].
⚲ API
: {{The Linux Kernel/include|linux/uaccess.h}} – user-space memory access and validation helpers
: {{The Linux Kernel/include|linux/mm.h}} – memory management declarations and page handling APIs
: {{The Linux Kernel/include|linux/slab.h}} – memory allocation APIs for slab and kmalloc systems
💾 ''History: Two basic related to memory management system calls <code>brk</code> and <code>mmap</code> Linux inherits from Unix.''
''BTW: On Linux, {{The Linux Kernel/man|2|sbrk}} is not a separate system call, but a C library function that also calls to {{The Linux Kernel/id|sys_brk}} and keeps some internal state to return the previous break value.''
📚 References
: {{The Linux Kernel/doc|Memory Management APIs|core-api/mm-api.html}}
: {{The Linux Kernel/doc|x86_64 Memory Management|x86/x86_64/mm.html}}
: {{w|sbrk}}
: {{w|mmap}}
: [https://0xax.gitbooks.io/linux-insides/content/MM/ Memory management]
⚙️ Internals:
: '''{{The Linux Kernel/id|sys_brk}}''' ↯ call hierarchy:
: {{The Linux Kernel/id|do_brk_flags}}
:: {{The Linux Kernel/id|vm_area_alloc}}
::: {{The Linux Kernel/id|kmem_cache_alloc}}
:::: {{The Linux Kernel/id|kmem_cache_alloc_lru}}
== Virtual memory ==
🔧 TODO:
{{w|Virtual memory|Virtually contiguous memory}} on top of physical and [[#Swap|swapped]] memory pages.
🗝️ Acronyms:
: VPFN - Virtual Page Frame Number
: PFN - Physical Page Frame Number
: pgd - Page Directory
: pmd - Page Middle Directory
: pud - Page Upper Directory
: pte - {{w|Page table}} Entry
: TLB - {{w|Translation Lookaside Buffer}}
: MMU - {{w|Memory Management Unit}}
⚲ API:
: {{The Linux Kernel/include|linux/vmalloc.h}}
: {{The Linux Kernel/id|vmalloc}} {{The Linux Kernel/id|vfree}}
: {{The Linux Kernel/include|linux/cleanup.h}} – scope-based cleanup helpers
:: {{The Linux Kernel/id|scoped_guard}}
: /proc/vmallocinfo
⚙️ Internals:
: {{The Linux Kernel/id|vm_struct}}
: {{The Linux Kernel/id|virt_to_page}}
: {{The Linux Kernel/id|vmalloc_init}}
: {{The Linux Kernel/id|find_vma}}
: {{The Linux Kernel/source|mm/vmalloc.c}} – virtually contiguous memory allocator
📚 References
: {{The Linux Kernel/doc|Virtually Contiguous Mappings|core-api/mm-api.html#virtually-contiguous-mappings}}
: {{The Linux Kernel/doc|Page Tables|mm/page_tables.html}}
: {{The Linux Kernel/doc|Scope-based Cleanup Helpers|core-api/cleanup.html}}
== Data types ==
=== Pointers and addresses ===
Kernel-specific address types, in addition to common C pointers.
: <big>unsigned long</big> – used to store addresses that are not intended to be dereferenced by the user
: {{The Linux Kernel/id|uintptr_t}} – to be used in ioctl
: {{The Linux Kernel/id|phys_addr_t}} – physical address
: {{The Linux Kernel/id|dma_addr_t}} – DMA address
📚 Further reading
: {{The Linux Kernel/doc|(How to avoid) Botching up ioctls|process/botching-up-ioctls.html}}
: [https://unix.org/whitepapers/64bit.html Data Size Neutrality and 64-bit Support]
=== Other types ===
⚲ API
: {{The Linux Kernel/include|linux/types.h}} – fixed-width and kernel-specific type definitions
: {{The Linux Kernel/include|linux/string.h}} – standard string manipulation functions
: bit operations
:: {{The Linux Kernel/include|linux/bitfield.h}} – defining and extracting bitfield values
:: {{The Linux Kernel/include|linux/bitops.h}} – atomic and non-atomic bit manipulation operations
:: {{The Linux Kernel/include|linux/bitmap.h}} – bit arrays that consume one or more unsigned longs
:: {{The Linux Kernel/include|linux/sbitmap.h}} – fast and scalable bitmaps
: {{The Linux Kernel/include|linux/kref.h}}
: {{The Linux Kernel/include|acpi/actypes.h}} – common data types for the entire ACPI subsystem
:: {{The Linux Kernel/include|linux/list.h}} – circular doubly linked list implementation
::: {{The Linux Kernel/id|list_head}} – common double linked list
::: {{The Linux Kernel/id|list_add}} ...
:: {{The Linux Kernel/include|linux/klist.h}} – some {{The Linux Kernel/id|klist_node}}->{{The Linux Kernel/id|kref}} helpers
::: {{The Linux Kernel/id|klist_add_tail}} ...
: {{The Linux Kernel/include|linux/kobject.h}}
: {{The Linux Kernel/include|linux/circ_buf.h}}
: {{The Linux Kernel/include|linux/kfifo.h}} – generic kernel FIFO
:: {{The Linux Kernel/id|kfifo_in}} ...
: {{The Linux Kernel/include|linux/rbtree.h}} – Red-black trees
:: {{The Linux Kernel/id|rb_node}}
: {{The Linux Kernel/include|linux/scatterlist.h}}
:: {{The Linux Kernel/id|scatterlist}}
:: 👁 Example: {{The Linux Kernel/source|samples/kfifo/dma-example.c}}
: {{The Linux Kernel/include|linux/idr.h}} – ID allocation
: {{The Linux Kernel/include|linux/container_of.h}}
📖 References
: {{The Linux Kernel/doc|List Management Functions|core-api/kernel-api.html#list-management-functions}}
: {{The Linux Kernel/doc|FIFO Buffer|core-api/kernel-api.html#fifo-buffer}}
: {{The Linux Kernel/doc|Data structures and low-level utilities|core-api#data-structures-and-low-level-utilities}}
:: {{The Linux Kernel/doc|Everything you never wanted to know about kobjects, ksets, and ktypes|core-api/kobject.html}}
:: {{The Linux Kernel/doc|Adding reference counters (krefs) to kernel objects|core-api/kref.html}}
:: {{The Linux Kernel/doc|Generic Associative Array Implementation|core-api/assoc_array.html}}
:: {{The Linux Kernel/doc|XArray|core-api/xarray.html}}
:: {{The Linux Kernel/doc|ID Allocation|core-api/idr.html}}
:: {{The Linux Kernel/doc|Circular Buffers|core-api/circular-buffers.html}}
:: {{The Linux Kernel/doc|Red-black Trees (rbtree) in Linux|core-api/rbtree.html}}
:: {{The Linux Kernel/doc|Generic radix trees/sparse arrays|core-api/generic-radix-tree.html}}
:: {{The Linux Kernel/doc|Generic bitfield packing and unpacking functions|core-api/packing.html}}
:: {{The Linux Kernel/doc|How to access I/O mapped memory from within device drivers|core-api/bus-virt-phys-mapping.html}}
:: {{The Linux Kernel/doc|this_cpu operations|core-api/this_cpu_ops.html}}
:: {{The Linux Kernel/doc|The errseq_t datatype|core-api/errseq.html}}
📚 Further reading
: [https://0xax.gitbooks.io/linux-insides/content/DataStructures/ Data Structures in the Linux Kernel]
: https://kernelnewbies.org/InternalKernelDataTypes
== Memory mapping ==
🔧 TODO
⚲ API:
: {{The Linux Kernel/man|2|mmap}} ↪ {{The Linux Kernel/id|ksys_mmap_pgoff}} ↪ {{The Linux Kernel/id|do_mmap}}
: {{The Linux Kernel/man|2|mprotect}}
: {{The Linux Kernel/man|2|mmap2}}
: {{The Linux Kernel/man|2|mincore}}
: {{The Linux Kernel/include|linux/mm_types.h}} – {{The Linux Kernel/id|mm_struct}}, {{The Linux Kernel/id|vm_area_struct}}
: {{The Linux Kernel/include|linux/mm.h}}
: {{The Linux Kernel/id|remap_pfn_range}}
: {{The Linux Kernel/id|SetPageReserved}}, {{The Linux Kernel/id|ClearPageReserved}}
⚙️ Internals:
: {{The Linux Kernel/source|mm/mmap.c}} – memory mapping implementation
📚 References:
: {{w|mmap}}
: {{The Linux Kernel/doc|Maple Tree|core-api/maple_tree.html}}
: [https://linux-kernel-labs.github.io/refs/heads/master/labs/memory_mapping.html Memory mapping, linux-kernel-labs]
== Swap ==
🔧 TODO
⚲ API:
: cat /proc/sys/vm/swappiness ↪ {{The Linux Kernel/id|vm_swappiness}}
: {{The Linux Kernel/include|linux/swap.h}}
: {{The Linux Kernel/man|2|swapon}} ↪ {{The Linux Kernel/id|enable_swap_slots_cache}}
: {{The Linux Kernel/man|2|swapoff}}
: {{The Linux Kernel/man|2|mlock}} ↪ {{The Linux Kernel/id|do_mlock}}
: {{The Linux Kernel/man|2|shmctl}} ↪ {{The Linux Kernel/id|shmctl_do_lock}}
⚙️ Internals:
: {{The Linux Kernel/source|mm/swapfile.c}} – swap area management
: {{The Linux Kernel/source|mm/vmscan.c}} – page reclaim and scanning
: {{The Linux Kernel/source|mm/mlock.c}} – memory locking
: {{The Linux Kernel/id|VM_LOCKED}}
: {{The Linux Kernel/id|swap_info_struct}}, {{The Linux Kernel/id|si_swapinfo}}, {{The Linux Kernel/id|swap_info}}
: {{The Linux Kernel/id|handle_pte_fault}} ↪ {{The Linux Kernel/id|do_swap_page}}
: {{The Linux Kernel/id|wakeup_kswapd}} ↪ {{The Linux Kernel/id|kswapd}}
📚 References:
: {{w|Memory_paging#Linux|Memory paging}}
: https://wiki.archlinux.org/title/swap
== Logical memory ==
⚲ {{The Linux Kernel/id|kmalloc}} is the normal method of allocating memory in the kernel for objects smaller than the page size.
It is defined in {{The Linux Kernel/include|linux/slab.h}}.
The first argument ''size'' is the size (in bytes) of the block of memory to be allocated.
The second argument ''flags'' are the allocation flags or ''GFP flags'', a set of macros that the caller provides to control the type of requested memory.
The most commonly used values for ''flags'' are GFP_KERNEL and GFP_ATOMIC, but there is more to be considered.
Memory-allocation requests in the kernel are always qualified by a set of ''GFP flags'' ("GFP" initially came from "get free page") describing what can and cannot be done to satisfy the request.
The most commonly used flags are GFP_ATOMIC and GFP_KERNEL, though they are actually built up from lower-level flags.
The full set of flags is huge; they can be found in the {{The Linux Kernel/include|linux/gfp.h}} header file.
⚲ API:
: ↯ {{w|RAII}} allocation functions hierarchy from {{The Linux Kernel/include|linux/device.h}}:
:: {{The Linux Kernel/id|devm_kcalloc}} - zeroed array
::: {{The Linux Kernel/id|devm_kmalloc_array}}
:::: {{The Linux Kernel/id|devm_kmalloc}} - common allocation
:: {{The Linux Kernel/id|devm_kzalloc}} - zeroed allocation
::: {{The Linux Kernel/id|devm_kmalloc}} - common allocation
: Classic direct API:
:: {{The Linux Kernel/include|linux/slab.h}}
:: {{The Linux Kernel/id|kmalloc}}, {{The Linux Kernel/id|kfree}}
=== Slab allocation ===
{{w|Slab allocation}} is a memory management algorithm intended for the efficient memory allocation of kernel objects. It eliminates fragmentation caused by allocations and deallocations. The technique is used to retain allocated memory that contains a data object of a certain type for reuse upon subsequent allocations of objects of the same type.
''' Basics '''
''This section is about the SLUB allocator implementation''
A slab can be thought of as an array of objects of certain type or with the same size, spanning through one or more contiguous pages of memory; for example, the slab named "task_struct" holds objects of <code>struct task_struct</code> type, used by the scheduling subsystem.
Other slabs store objects used by other subsystems, and there is also slabs for dynamic allocations inside the kernel, such as the "kmalloc-64" slab that holds up to 64-byte chunks requested via kmalloc() calls.
In a slab, each object can be allocated and freed separately.
The primary motivation for slab allocation is that the initialization and destruction of kernel data objects can actually outweigh the cost of allocating memory for them.
As object creation and deletion are widely employed by the kernel, overhead costs of initialization can result in significant performance drops.
The notion of object caching was therefore introduced in order to avoid the invocation of functions used to initialize object state.
With slab allocation, memory chunks suitable to fit data objects of certain type or size are preallocated.
The slab allocator keeps track of these chunks, known as caches {{The Linux Kernel/id|kmalloc_caches}},
so that when a request to allocate memory for a data object of a certain type is received, it can instantly satisfy the request with an already allocated slot {{The Linux Kernel/id|slab_alloc}}.
Deallocation of the object with {{The Linux Kernel/id|kfree}} does not free up the memory,
but only opens a slot which is put in the list of free slots {{The Linux Kernel/id|kmem_cache_cpu}} by the slab allocator.
The next call to allocate memory of the same size will return the now unused memory slot.
See {{The Linux Kernel/id|slab_alloc}}/{{The Linux Kernel/id|___slab_alloc}}/{{The Linux Kernel/id|get_freelist}}.
This process eliminates the need to search for suitable memory space and greatly alleviates memory fragmentation.
In this context, a slab is one or more contiguous pages in the memory containing pre-allocated memory chunks.
Slab allocation provides a kind of front-end to the zoned buddy allocator for those sections of the kernel that require more flexible memory allocation than the standard 4KB page size.
⚲ Interface:
: sudo cat /proc/slabinfo
: {{The Linux Kernel/include|linux/slab.h}}
: {{The Linux Kernel/id|kmem_cache_alloc}}, {{The Linux Kernel/id|kmem_cache_free}}
: {{The Linux Kernel/man|1|slabtop}}
⚙️ Internals:
: {{The Linux Kernel/source|mm/slab_common.c}} – slab allocator common code
: {{The Linux Kernel/id|mm_init}} is called from {{The Linux Kernel/id|start_kernel}}
:: {{The Linux Kernel/id|kmem_cache_init}}
::: {{The Linux Kernel/id|create_kmalloc_caches}}
: {{The Linux Kernel/id|____kasan_kmalloc}}
''' SLUB allocator ''' – default Unqueued allocator
{{w|SLUB (software)|SLUB}} is the iteration of the original SLAB allocator that replaced it and became the Linux default allocator since 2.6.23.
⚙️ Internals: {{The Linux Kernel/source|mm/slub.c}}
📚 References:
: {{The Linux Kernel/id|CONFIG_SLUB}}
💾 ''Historical: SLOB (Simple List Of Blocks) allocator for embedded devices was removed in kernel 6.4.''
''SLAB allocator, the original slab allocation implementation based on Jeff Bonwick's 1994 paper, was removed in kernel 6.8.''
''SLUB is now the only slab allocator in the kernel.''
<hr>
📚 References for Slab allocation:
: {{The Linux Kernel/doc|KASAN - KernelAddressSANitizer|dev-tools/kasan.html}} - dynamic memory safety error detector designed to find out-of-bound and use-after-free bugs
: [https://www.youtube.com/watch?v=h0VMLXavx30 <nowiki>Video "SL[AUO]B: Kernel memory allocator design and philosophy"</nowiki>] Christopher Lameter (Linux.conf.au 2015 conference) [http://lca2015.linux.org.au/slides/167/slaballocators-auckland-2015.pdf Slides]
=== Page Allocator ===
The page allocator (or "zoned buddy allocator") is a low-level allocator that deals with physical memory.
It delivers physical pages (usually with a size of 4096 bytes) of free memory to high-level memory consumers such as the slab allocators and <code>kmalloc()</code>.
As the ultimate source of memory in the system, the page allocator must ensure that memory is always available, since a failure providing memory to a critical kernel subsystem can lead to a general system failure or a kernel panic.
The page allocator divides physical memory into "zones", each of which corresponds to {{The Linux Kernel/id|zone_type}} with specific characteristics.
ZONE_DMA contains memory at the bottom of the address range for use by severely challenged devices, for example, while {{The Linux Kernel/id|ZONE_NORMAL}} may contain most memory on the system. 32-bit systems have a ZONE_HIGHMEM for memory that is not directly mapped into the kernel's address space.
Depending on the characteristics of any given allocation request, the page allocator will search the available zones in a specific priority order.
For the curious, <code>/proc/zoneinfo</code> gives a lot of information about the zones in use on any given system.
Within a zone, memory is grouped into ''page blocks'', each of which can be marked with a ''migration type'' - {{The Linux Kernel/id|migratetype}} describing how the block should be allocated.
⚲ API:
: cat /proc/buddyinfo
: {{The Linux Kernel/include|linux/gfp.h}}
: {{The Linux Kernel/include|linux/mmzone.h}}
: {{The Linux Kernel/id|alloc_page}}
: {{The Linux Kernel/id|devm_get_free_pages}} - {{w|RAII}} function, ↯ hierarchy of it:
:: {{The Linux Kernel/id|__get_free_pages}}
::: {{The Linux Kernel/id|alloc_pages}}
:::: {{The Linux Kernel/id|alloc_pages_node}}
::::: {{The Linux Kernel/id|__alloc_pages}} - the 'heart' of the zoned buddy allocator
⚙️ Internals:
: {{The Linux Kernel/id|build_all_zonelists}} is called from {{The Linux Kernel/id|start_kernel}}, ↯ call hierarchy:
:: {{The Linux Kernel/id|build_all_zonelists_init}}
::: {{The Linux Kernel/id|__build_all_zonelists}}
:::: {{The Linux Kernel/id|build_zonelists}}
: {{The Linux Kernel/id|__alloc_pages}} - the 'heart' of the zoned buddy allocator
: struct {{The Linux Kernel/id|zone}}
:: {{The Linux Kernel/id|free_area}}
: {{The Linux Kernel/source|mm/mmzone.c}} – memory zone helpers
: {{The Linux Kernel/source|mm/page_alloc.c}} – buddy page allocator
📚 References:
: {{The Linux Kernel/doc|Get Free Page flags|core-api/memory-allocation.html}}
: {{w|Buddy memory allocation}}
: {{w|Page replacement algorithm}}
=== OOM killer ===
The {{w|Out of memory|Out-Of-Memory}} killer is invoked when the kernel cannot satisfy a memory allocation and all reclaim attempts have failed.
It selects a process to kill based on a badness score to free memory and keep the system running.
⚲ API:
: /proc/$pid/oom_score – current badness score
: /proc/$pid/oom_score_adj – adjust score (-1000 to 1000)
: /proc/$pid/oom_adj – deprecated, use oom_score_adj
: /proc/sys/vm/panic_on_oom
⚙️ Internals:
: {{The Linux Kernel/source|mm/oom_kill.c}} – out-of-memory killer
: {{The Linux Kernel/id|out_of_memory}} – main entry point
: {{The Linux Kernel/id|oom_badness}} – calculates badness score
: {{The Linux Kernel/id|oom_kill_process}}
📚 References:
: {{The Linux Kernel/doc|OOM|admin-guide/sysctl/vm.html}}
=== Memory cgroup controller ===
The memory cgroup controller limits and accounts memory usage per group of processes.
It can set hard and soft limits, trigger per-cgroup OOM, and track swap usage.
⚲ API:
: memory.max – hard memory limit
: memory.high – throttling threshold
: memory.current – current usage
: memory.swap.max – swap limit
: See [[../System/CGroup v2#Memory|CGroup v2 Memory controller]] for full interface
⚙️ Internals:
: {{The Linux Kernel/source|mm/memcontrol.c}} – memory cgroup controller
: {{The Linux Kernel/id|mem_cgroup}} – main structure
: {{The Linux Kernel/id|mem_cgroup_charge}}
: {{The Linux Kernel/id|mem_cgroup_oom}}
📚 References:
: {{The Linux Kernel/doc|Memory Resource Controller|admin-guide/cgroup-v2.html#memory}}
<hr>
📚 References for logical memory:
: {{The Linux Kernel/doc|Memory Allocation Guide|core-api/memory-allocation.html}}
: {{The Linux Kernel/doc|Selecting memory allocator|core-api/memory-allocation.html#selecting-memory-allocator}}
== Physical memory ==
=== Memory Layout ===
A 32-bit processor can address a maximum of 4GB of memory.
Linux kernels split the 4GB address space between user processes and the kernel; under the most common configuration, the first 3GB of the 32-bit range are given over to user space, and the kernel gets the final 1GB starting at 0xc0000000.
Sharing the address space gives a number of performance benefits; in particular, the hardware's address translation buffer can be shared between the kernel and user space.
In '''x86-64''' - {{The Linux Kernel/id|CONFIG_X86_64}} with 4-level page tables ({{The Linux Kernel/id|CONFIG_X86_5LEVEL}}=n), only the least significant 48 bits of a virtual memory address would actually be used in address translation (page table lookup).
The remainder bits 48 through 63 of any virtual address must be copies of bit 47, or the processor will raise an exception.
Addresses complying with this rule are referred to as "canonical form." Canonical form addresses run from 0 through 00007FFF'FFFFFFFF, and from FFFF8000'00000000 through FFFFFFFF'FFFFFFFF, for a total of 256 TB of usable {{w|virtual address space}}.
This is still approximately 64,000 times the virtual address space on 32-bit machines.
Linux takes the higher-addressed half of the address space for itself (kernel space) and leaves the lower-addressed half for user space.
The "canonical address" design has, in effect, two memory halves: the lower half starts at 00000000'00000000 and "grows upwards" as more virtual address bits become available, while the higher half is "docked" to the top of the address space and grows downwards.
{| class="wikitable sortable"
|+
!Start addr
!class=unsortable|Offset
!End addr
!class=unsortable|Size
!class=unsortable|VM area description
|-
| <code><small>0000'</small>'''8'''<small>000'0000'0000</small></code>
| +128 TB
| <code><small>ffff'7fff'ffff'ffff</small></code>
|
| ... huge, almost 64 bits wide hole of non-canonical virtual memory addresses up to the -128 TB starting offset of kernel mappings.
|-
| <code><small>0000'0000'0000'0000</small></code>
|0
| <code><small>0000'7fff'ffff'ffff</small></code>
|128 TB=2<sup>47</sup>
|user-space virtual memory, different per mm
|-
| <code><small>ffff'ffff'ffe0'0000</small></code>
| -2 MB
| <code><small>ffff'ffff'ffff'ffff</small></code>
| 2 MB=2<sup>21</sup>
|... unused hole
|-
| <code><small>ffff'ffff'ff60'0000</small></code>
| -10 MB
| <code><small>ffff'ffff'ff60'0fff</small></code>
| 4 kB=2<sup>12</sup>
| {{The Linux Kernel/id|VSYSCALL_ADDR}} - legacy vsyscall ABI
|-
| <code><small>ffff'ffff'8000'0000</small></code>
| -2 GB
| <code><small>ffff'ffff'9fff'ffff</small></code>
| 512 MB=2<sup>29</sup>
| kernel text mapping, mapped to physical address 0
|-
|
|
|
|
|
|-
| <code><small>ffff'8880'0000'0000</small></code>
| -119.5 TB
| <code><small>ffff'c87f'ffff'ffff</small></code>
| 64 TB
| {{The Linux Kernel/id|page_offset_base}} = {{The Linux Kernel/id|__PAGE_OFFSET_BASE_L4}} - direct mapping of all physical memory
|-
|
|
|
|
|
|-
| <code><small>ffff'8000'0000'0000</small></code>
| -128 TB
| <code><small>ffff'87ff'ffff'ffff</small></code>
| 8 TB
| ... guard hole, also reserved for hypervisor
|}
[[File:Linux_Virtual_Memory_Layout_64bit.svg|border|center|x86-64 memory layout]]
⚲ API:
: {{The Linux Kernel/man|8|setarch}} --addr-no-randomize cat /proc/self/maps
⚙️ Internals:
: {{The Linux Kernel/source|arch/x86/include/asm/page_64_types.h}} – x86-64 page type definitions
: {{The Linux Kernel/source|arch/x86/mm/init_64.c}} – x86-64 memory initialization
📚 References:
: {{The Linux Kernel/doc|X86_64 memory map|x86/x86_64/mm.html}}
: {{w|Address_space_layout_randomization#Linux|Address space layout randomization}}
=== Pages ===
In Linux, different architectures have different page sizes.
The original —for x86 architecture— and still most commonly used page size is 4096 bytes (4 KB).
The page size (in bytes) of the current architecture is defined by the <code>PAGE_SIZE</code> macro included in {{The Linux Kernel/source|arch/x86/include/asm/page_types.h}} header file.
User space programs can get this value using the {{The Linux Kernel/man|2|getpagesize}} library function.
Another related macro is <code>PAGE_SHIFT</code>, that contains the number of bits to shift an address to get its page number —12 bits for 4K pages.
One of the most fundamental kernel data structures relating memory-management is <code>struct page</code>.
The kernel keeps track of the status of every page of physical memory present in the system using variables of this type.
There are millions of pages in a modern system, and therefore there are millions of these structures in memory.
The full definition of <code>struct page</code> can be found in {{The Linux Kernel/include|linux/mm_types.h}}.
: [https://0xax.gitbooks.io/linux-insides/content/Theory/linux-theory-1.html Pages]
=== NUMA ===
In {{w|Non-uniform memory access}} systems, physical memory is divided into nodes, each local to a group of CPUs.
Accessing local memory is faster than remote memory, so the kernel tries to allocate memory from the node closest to the requesting CPU.
Each node contains its own set of zones (DMA, Normal, etc.).
⚲ API:
: {{The Linux Kernel/man|8|numactl}} – controls NUMA policy for processes or shared memory
: {{The Linux Kernel/man|2|set_mempolicy}} – set default NUMA memory policy
: {{The Linux Kernel/man|2|mbind}} – set NUMA memory policy for a memory range
: {{The Linux Kernel/man|2|get_mempolicy}}
: {{The Linux Kernel/man|2|migrate_pages}}
: {{The Linux Kernel/man|2|move_pages}}
: cat /proc/buddyinfo
: /sys/devices/system/node/
: {{The Linux Kernel/include|linux/topology.h}} – {{The Linux Kernel/id|cpu_to_node}}, {{The Linux Kernel/id|numa_node_id}}
: {{The Linux Kernel/include|linux/mempolicy.h}}
⚙️ Internals:
: {{The Linux Kernel/id|CONFIG_NUMA}}
: {{The Linux Kernel/id|pglist_data}} (pg_data_t) – per-node memory descriptor, contains zones @ {{The Linux Kernel/include|linux/mmzone.h}}
: {{The Linux Kernel/id|numa_node_id}} – returns NUMA node of current CPU
: {{The Linux Kernel/source|mm/numa.c}} – NUMA node data allocation during boot
: {{The Linux Kernel/source|mm/mempolicy.c}} – NUMA memory allocation policies
: {{The Linux Kernel/source|mm/migrate.c}} – page migration between nodes
: {{The Linux Kernel/source|mm/memory-tiers.c}} – memory tiering (DRAM, PMEM, HBM)
: {{The Linux Kernel/source|mm/numa_memblks.c}} – memory block and distance setup
📚 References:
: {{The Linux Kernel/doc|NUMA Memory Policy|admin-guide/mm/numa_memory_policy.html}}
: {{w|Non-uniform memory access}}
: See also [[../Multitasking/CPU#SMP|SMP section]] for NUMA topology and CPU aspects
=== Huge pages ===
{{w|Huge pages}} use larger page sizes (2 MB or 1 GB on x86-64) to reduce TLB misses and page table overhead for memory-intensive workloads.
==== HugeTLB ====
HugeTLB provides explicitly allocated persistent huge pages, reserved at boot or runtime.
⚲ API:
: cat /proc/meminfo | grep Huge
: cat /proc/sys/vm/nr_hugepages
: {{The Linux Kernel/man|2|mmap}} with MAP_HUGETLB
: mount -t hugetlbfs nodev /dev/hugepages
: {{The Linux Kernel/include|linux/hugetlb.h}}
⚙️ Internals:
: {{The Linux Kernel/source|mm/hugetlb.c}} – HugeTLB huge page allocator
: {{The Linux Kernel/id|hugetlb_init}}
: {{The Linux Kernel/id|hugetlb_fault}}
📚 References:
: {{The Linux Kernel/doc|HugeTLB Pages|admin-guide/mm/hugetlbpage.html}}
==== Transparent Huge Pages ====
THP automatically promotes regular pages to huge pages without application changes (since 2.6.38).
⚲ API:
: cat /sys/kernel/mm/transparent_hugepage/enabled
: {{The Linux Kernel/man|2|madvise}} with MADV_HUGEPAGE
: {{The Linux Kernel/include|linux/huge_mm.h}}
⚙️ Internals:
: {{The Linux Kernel/source|mm/huge_memory.c}} – transparent huge page support
: {{The Linux Kernel/id|khugepaged}} – daemon that collapses pages into huge pages
: {{The Linux Kernel/source|mm/khugepaged.c}} – THP collapse daemon
📚 References:
: {{The Linux Kernel/doc|Transparent Hugepage Support|admin-guide/mm/transhuge.html}}
: {{The Linux Kernel/doc|Concepts overview|admin-guide/mm/concepts.html}}
=== CMA ===
The Contiguous Memory Allocator (CMA) reserves a region of memory at boot for large physically contiguous allocations needed by DMA devices, GPUs and multimedia hardware (since 3.5).
Unused CMA memory is available to the page allocator for movable pages.
⚲ API:
: cat /proc/meminfo | grep Cma
: {{The Linux Kernel/include|linux/cma.h}}
: {{The Linux Kernel/id|dma_alloc_contiguous}}
: {{The Linux Kernel/id|CONFIG_CMA}}
⚙️ Internals:
: {{The Linux Kernel/source|mm/cma.c}} – contiguous memory allocator core
: {{The Linux Kernel/source|kernel/dma/contiguous.c}} – DMA-CMA integration
: {{The Linux Kernel/source|mm/cma_debug.c}} – debugfs interface
: {{The Linux Kernel/id|cma_alloc}}
: {{The Linux Kernel/id|cma_release}}
📚 References:
: {{The Linux Kernel/doc|Contiguous Memory Allocator|mm/cma.html}}
=== DMA ===
⚲ API:
: {{The Linux Kernel/id|dma_addr_t}} - bus address
: {{The Linux Kernel/include|linux/dma-mapping.h}}
: {{The Linux Kernel/id|dma_alloc_coherent}}
: {{The Linux Kernel/id|dma_alloc_pages}} {{The Linux Kernel/id|pin_user_pages}}
: {{The Linux Kernel/id|dma_map_single}} {{The Linux Kernel/id|dma_data_direction}}
: {{The Linux Kernel/id|dma_map_sg}} {{The Linux Kernel/id|scatterlist}}
: {{The Linux Kernel/id|dma_set_mask}} {{The Linux Kernel/id|dma_set_coherent_mask}} {{The Linux Kernel/id|dma_set_mask_and_coherent}}
: {{The Linux Kernel/id|dma_sync_single_for_cpu}} {{The Linux Kernel/id|dma_sync_single_for_device}}
: {{The Linux Kernel/include|linux/gfp.h}}
: {{The Linux Kernel/include|linux/dmapool.h}}
: {{The Linux Kernel/id|dma_pool_create}}
: DMA-able memory: {{The Linux Kernel/id|__get_free_page}} {{The Linux Kernel/id|kmalloc}} {{The Linux Kernel/id|kmem_cache_alloc}}
: {{The Linux Kernel/id|get_user_pages}} pins user pages in memory,
👁 Examples:
: {{The Linux Kernel/source|samples/kfifo/dma-example.c}}
: {{The Linux Kernel/id|e1000_alloc_rx_buffers}}, {{The Linux Kernel/id|e1000_alloc_ring_dma}}
⚙️ Internals:
: {{The Linux Kernel/source|kernel/dma}} – DMA subsystem core
: {{The Linux Kernel/source|mm/dmapool.c}} – small DMA-coherent allocations
: {{The Linux Kernel/source|mm/gup.c}} – get/pin user pages
: {{The Linux Kernel/source|kernel/dma/mapping.c}} – arch-independent DMA mapping
📚 References:
: {{The Linux Kernel/doc|Dynamic DMA mapping Guide|core-api/dma-api-howto.html}}
: {{The Linux Kernel/doc|Dynamic DMA mapping using the generic device|core-api/dma-api.html}}
: [https://lwn.net/Articles/787636/ LWM: get_user_pages, pinned pages, and DAX]
: {{The Linux Kernel/doc|pin_user_pages() and related calls|core-api/pin_user_pages.html}}
💾 ''Historical:''
: [http://lwn.net/images/pdf/LDD3/ch15.pdf LDD3:Memory Mapping and DMA]
: http://www.xml.com/ldd/chapter/book/ch13.html mmap and DMA
: SAC – Single Address Cycle, 32-bit DMA addressing (up to 4 GB)
: DAC – Dual Address Cycle, 64-bit DMA addressing
==== DMAEngine ====
: {{The Linux Kernel/include|linux/dmaengine.h}}
: {{The Linux Kernel/source|drivers/dma}} – DMA engine drivers
: {{The Linux Kernel/doc|driver-api/dmaengine}}
: https://bootlin.com/pub/conferences/2015/elc/ripard-dmaengine/
== ... ==
📚 References for the article:
: {{The Linux Kernel/doc|Linux Memory Management Documentation|mm/}}
: [https://www.ryadel.com/en/linux-memory-management-mechanism-analysis-kernel/ Analysis of Linux Memory Management Mechanism]
: [https://0xax.gitbooks.io/linux-insides/content/MM/ Memory management]
: http://linux-mm.org/LinuxMM
: http://www.tldp.org/HOWTO/KernelAnalysis-HOWTO-7.html
: [https://lwn.net/Kernel/Index/#Memory_management Memory management, lwn]
{{BookCat}}
jyibp2x73kbpqmeqnv97j93yduzk5ii
4640250
4640238
2026-06-13T20:25:27Z
Conan
3188
update stale SLUB identifiers: slab_alloc, kmem_cache_cpu, kasan
4640250
wikitext
text/x-wiki
<noinclude>{{DISPLAYTITLE:Memory functionality}}</noinclude>
{|style="width: 25%; float: right; text-align:center;border-spacing: 0; color:black; margin:auto;" cellpadding=5pc
! bgcolor="#bfd" |memory
|-
| bgcolor="#aed" |[[#Processes|Processes]]
|-
| bgcolor="#9dd" |[[#Virtual_memory|virtual memory]]
|-
| bgcolor="#aca" |[[#Memory_mapping|memory mapping]]
|-
| bgcolor="#acb" | [[#Swap|demand paging and swap]]
|-
| bgcolor="#8b9" |[[#Logical_memory|logical memory]]
|-
| bgcolor="#7a7" |[[#Page Allocator|Page Allocator]]
|-
| bgcolor="#686" |[[#Pages|pages]]
|}
The kernel has full access to the system's memory and allows processes to {{w|Process isolation|safely access}} this memory as they require it.
Often the first step in doing this is {{w|Virtual address space|virtual addressing}}, usually achieved by paging and/or segmentation.
Virtual addressing allows the kernel to make a given {{w|physical address}} appear to be another address, the virtual address.
Virtual address spaces may be different for different processes; the memory that one process accesses at a particular (virtual) address may be different memory from what another process accesses at the same address.
This allows every program to behave as if it is the only one (apart from the kernel) running and thus prevents applications from crashing each other.
On many systems, a program's virtual address may refer to data which is not currently in memory.
The layer of indirection provided by virtual addressing allows the operating system to use other data stores, like a hard drive, to store what would otherwise have to remain in main {{w|random-access memory}} (RAM).
As a result, operating systems can allow programs to use more memory than the system has physically available.
When a program needs data which is not currently in RAM, the {{w|Memory management unit|MMU}} {{w|Page fault|signals}} to the kernel that this has happened, and the kernel responds by writing the contents of an inactive memory block to disk (if necessary) and replacing it with the data requested by the program.
The program can then be resumed from the point where it was stopped.
This scheme is generally known as {{w|demand paging}}.
Virtual addressing also allows creation of virtual partitions of memory in two disjointed areas, one being reserved for the kernel (kernel space) and the other for the applications (user space).
The applications are not permitted by the processor to address kernel memory, thus preventing an application from damaging the running kernel.
This fundamental partition of memory space has contributed much to the current designs of actual general-purpose kernels and is almost universal in such systems, Linux being one of them.
⚲ Shell interface
: cat /proc/meminfo
: {{The Linux Kernel/man|1|free}}
: {{The Linux Kernel/man|8|vmstat}}
{{:The Linux Kernel/Processes}}
== Memory management API ==
: ⚲ {{The Linux Kernel/man|2|brk}} ↪ {{The Linux Kernel/id|sys_brk}}, {{The Linux Kernel/id|do_brk_flags}} dynamically changes data segment size of the calling process.
The change is made by resetting the <u>program break</u> of the process, which determines the maximum space that can be allocated.
The program break is the address of the first location beyond the current end of the data region, and determines the maximum space that can be allocated by the process.
The amount of available space increases as the break value increases.
The added available space is initialized to a value of zero.
: ⚲ {{The Linux Kernel/man|2|mmap}} ↪ {{The Linux Kernel/id|ksys_mmap_pgoff}} maps files or devices into memory.
It is a method of memory-mapped file I/O.
It naturally implements demand paging, because file contents are not read from disk initially and do not use physical RAM at all.
The actual reads from disk are performed in a "lazy" manner, after a specific location is accessed.
After the memory is no longer needed it is important to {{The Linux Kernel/man|2|munmap}} the pointers to it.
Protection information can be managed using {{The Linux Kernel/man|2|mprotect}} ↪ {{The Linux Kernel/id|do_mprotect_pkey}} and special treatment can be enforced using {{The Linux Kernel/man|2|madvise}} ↪ {{The Linux Kernel/id|do_madvise}}.
In Linux, {{The Linux Kernel/man|2|mmap}} can create several types of mappings, such as ''anonymous mappings'', ''shared mappings'' and ''private mappings''.
Using the <code>MAP_ANONYMOUS</code> flag <code>mmap()</code> can map a specific area of the process's virtual memory not backed by any file, whose contents are initialized to zero.
These functions are typically called from a higher-level memory management library function such as C standard library {{The Linux Kernel/man|3|malloc}} or [[w:new and delete (C++)|C++ new operator]].
⚲ API
: {{The Linux Kernel/include|linux/uaccess.h}} – user-space memory access and validation helpers
: {{The Linux Kernel/include|linux/mm.h}} – memory management declarations and page handling APIs
: {{The Linux Kernel/include|linux/slab.h}} – memory allocation APIs for slab and kmalloc systems
💾 ''History: Two basic related to memory management system calls <code>brk</code> and <code>mmap</code> Linux inherits from Unix.''
''BTW: On Linux, {{The Linux Kernel/man|2|sbrk}} is not a separate system call, but a C library function that also calls to {{The Linux Kernel/id|sys_brk}} and keeps some internal state to return the previous break value.''
📚 References
: {{The Linux Kernel/doc|Memory Management APIs|core-api/mm-api.html}}
: {{The Linux Kernel/doc|x86_64 Memory Management|x86/x86_64/mm.html}}
: {{w|sbrk}}
: {{w|mmap}}
: [https://0xax.gitbooks.io/linux-insides/content/MM/ Memory management]
⚙️ Internals:
: '''{{The Linux Kernel/id|sys_brk}}''' ↯ call hierarchy:
: {{The Linux Kernel/id|do_brk_flags}}
:: {{The Linux Kernel/id|vm_area_alloc}}
::: {{The Linux Kernel/id|kmem_cache_alloc}}
:::: {{The Linux Kernel/id|kmem_cache_alloc_lru}}
== Virtual memory ==
🔧 TODO:
{{w|Virtual memory|Virtually contiguous memory}} on top of physical and [[#Swap|swapped]] memory pages.
🗝️ Acronyms:
: VPFN - Virtual Page Frame Number
: PFN - Physical Page Frame Number
: pgd - Page Directory
: pmd - Page Middle Directory
: pud - Page Upper Directory
: pte - {{w|Page table}} Entry
: TLB - {{w|Translation Lookaside Buffer}}
: MMU - {{w|Memory Management Unit}}
⚲ API:
: {{The Linux Kernel/include|linux/vmalloc.h}}
: {{The Linux Kernel/id|vmalloc}} {{The Linux Kernel/id|vfree}}
: {{The Linux Kernel/include|linux/cleanup.h}} – scope-based cleanup helpers
:: {{The Linux Kernel/id|scoped_guard}}
: /proc/vmallocinfo
⚙️ Internals:
: {{The Linux Kernel/id|vm_struct}}
: {{The Linux Kernel/id|virt_to_page}}
: {{The Linux Kernel/id|vmalloc_init}}
: {{The Linux Kernel/id|find_vma}}
: {{The Linux Kernel/source|mm/vmalloc.c}} – virtually contiguous memory allocator
📚 References
: {{The Linux Kernel/doc|Virtually Contiguous Mappings|core-api/mm-api.html#virtually-contiguous-mappings}}
: {{The Linux Kernel/doc|Page Tables|mm/page_tables.html}}
: {{The Linux Kernel/doc|Scope-based Cleanup Helpers|core-api/cleanup.html}}
== Data types ==
=== Pointers and addresses ===
Kernel-specific address types, in addition to common C pointers.
: <big>unsigned long</big> – used to store addresses that are not intended to be dereferenced by the user
: {{The Linux Kernel/id|uintptr_t}} – to be used in ioctl
: {{The Linux Kernel/id|phys_addr_t}} – physical address
: {{The Linux Kernel/id|dma_addr_t}} – DMA address
📚 Further reading
: {{The Linux Kernel/doc|(How to avoid) Botching up ioctls|process/botching-up-ioctls.html}}
: [https://unix.org/whitepapers/64bit.html Data Size Neutrality and 64-bit Support]
=== Other types ===
⚲ API
: {{The Linux Kernel/include|linux/types.h}} – fixed-width and kernel-specific type definitions
: {{The Linux Kernel/include|linux/string.h}} – standard string manipulation functions
: bit operations
:: {{The Linux Kernel/include|linux/bitfield.h}} – defining and extracting bitfield values
:: {{The Linux Kernel/include|linux/bitops.h}} – atomic and non-atomic bit manipulation operations
:: {{The Linux Kernel/include|linux/bitmap.h}} – bit arrays that consume one or more unsigned longs
:: {{The Linux Kernel/include|linux/sbitmap.h}} – fast and scalable bitmaps
: {{The Linux Kernel/include|linux/kref.h}}
: {{The Linux Kernel/include|acpi/actypes.h}} – common data types for the entire ACPI subsystem
:: {{The Linux Kernel/include|linux/list.h}} – circular doubly linked list implementation
::: {{The Linux Kernel/id|list_head}} – common double linked list
::: {{The Linux Kernel/id|list_add}} ...
:: {{The Linux Kernel/include|linux/klist.h}} – some {{The Linux Kernel/id|klist_node}}->{{The Linux Kernel/id|kref}} helpers
::: {{The Linux Kernel/id|klist_add_tail}} ...
: {{The Linux Kernel/include|linux/kobject.h}}
: {{The Linux Kernel/include|linux/circ_buf.h}}
: {{The Linux Kernel/include|linux/kfifo.h}} – generic kernel FIFO
:: {{The Linux Kernel/id|kfifo_in}} ...
: {{The Linux Kernel/include|linux/rbtree.h}} – Red-black trees
:: {{The Linux Kernel/id|rb_node}}
: {{The Linux Kernel/include|linux/scatterlist.h}}
:: {{The Linux Kernel/id|scatterlist}}
:: 👁 Example: {{The Linux Kernel/source|samples/kfifo/dma-example.c}}
: {{The Linux Kernel/include|linux/idr.h}} – ID allocation
: {{The Linux Kernel/include|linux/container_of.h}}
📖 References
: {{The Linux Kernel/doc|List Management Functions|core-api/kernel-api.html#list-management-functions}}
: {{The Linux Kernel/doc|FIFO Buffer|core-api/kernel-api.html#fifo-buffer}}
: {{The Linux Kernel/doc|Data structures and low-level utilities|core-api#data-structures-and-low-level-utilities}}
:: {{The Linux Kernel/doc|Everything you never wanted to know about kobjects, ksets, and ktypes|core-api/kobject.html}}
:: {{The Linux Kernel/doc|Adding reference counters (krefs) to kernel objects|core-api/kref.html}}
:: {{The Linux Kernel/doc|Generic Associative Array Implementation|core-api/assoc_array.html}}
:: {{The Linux Kernel/doc|XArray|core-api/xarray.html}}
:: {{The Linux Kernel/doc|ID Allocation|core-api/idr.html}}
:: {{The Linux Kernel/doc|Circular Buffers|core-api/circular-buffers.html}}
:: {{The Linux Kernel/doc|Red-black Trees (rbtree) in Linux|core-api/rbtree.html}}
:: {{The Linux Kernel/doc|Generic radix trees/sparse arrays|core-api/generic-radix-tree.html}}
:: {{The Linux Kernel/doc|Generic bitfield packing and unpacking functions|core-api/packing.html}}
:: {{The Linux Kernel/doc|How to access I/O mapped memory from within device drivers|core-api/bus-virt-phys-mapping.html}}
:: {{The Linux Kernel/doc|this_cpu operations|core-api/this_cpu_ops.html}}
:: {{The Linux Kernel/doc|The errseq_t datatype|core-api/errseq.html}}
📚 Further reading
: [https://0xax.gitbooks.io/linux-insides/content/DataStructures/ Data Structures in the Linux Kernel]
: https://kernelnewbies.org/InternalKernelDataTypes
== Memory mapping ==
🔧 TODO
⚲ API:
: {{The Linux Kernel/man|2|mmap}} ↪ {{The Linux Kernel/id|ksys_mmap_pgoff}} ↪ {{The Linux Kernel/id|do_mmap}}
: {{The Linux Kernel/man|2|mprotect}}
: {{The Linux Kernel/man|2|mmap2}}
: {{The Linux Kernel/man|2|mincore}}
: {{The Linux Kernel/include|linux/mm_types.h}} – {{The Linux Kernel/id|mm_struct}}, {{The Linux Kernel/id|vm_area_struct}}
: {{The Linux Kernel/include|linux/mm.h}}
: {{The Linux Kernel/id|remap_pfn_range}}
: {{The Linux Kernel/id|SetPageReserved}}, {{The Linux Kernel/id|ClearPageReserved}}
⚙️ Internals:
: {{The Linux Kernel/source|mm/mmap.c}} – memory mapping implementation
📚 References:
: {{w|mmap}}
: {{The Linux Kernel/doc|Maple Tree|core-api/maple_tree.html}}
: [https://linux-kernel-labs.github.io/refs/heads/master/labs/memory_mapping.html Memory mapping, linux-kernel-labs]
== Swap ==
🔧 TODO
⚲ API:
: cat /proc/sys/vm/swappiness ↪ {{The Linux Kernel/id|vm_swappiness}}
: {{The Linux Kernel/include|linux/swap.h}}
: {{The Linux Kernel/man|2|swapon}} ↪ {{The Linux Kernel/id|enable_swap_slots_cache}}
: {{The Linux Kernel/man|2|swapoff}}
: {{The Linux Kernel/man|2|mlock}} ↪ {{The Linux Kernel/id|do_mlock}}
: {{The Linux Kernel/man|2|shmctl}} ↪ {{The Linux Kernel/id|shmctl_do_lock}}
⚙️ Internals:
: {{The Linux Kernel/source|mm/swapfile.c}} – swap area management
: {{The Linux Kernel/source|mm/vmscan.c}} – page reclaim and scanning
: {{The Linux Kernel/source|mm/mlock.c}} – memory locking
: {{The Linux Kernel/id|VM_LOCKED}}
: {{The Linux Kernel/id|swap_info_struct}}, {{The Linux Kernel/id|si_swapinfo}}, {{The Linux Kernel/id|swap_info}}
: {{The Linux Kernel/id|handle_pte_fault}} ↪ {{The Linux Kernel/id|do_swap_page}}
: {{The Linux Kernel/id|wakeup_kswapd}} ↪ {{The Linux Kernel/id|kswapd}}
📚 References:
: {{w|Memory_paging#Linux|Memory paging}}
: https://wiki.archlinux.org/title/swap
== Logical memory ==
⚲ {{The Linux Kernel/id|kmalloc}} is the normal method of allocating memory in the kernel for objects smaller than the page size.
It is defined in {{The Linux Kernel/include|linux/slab.h}}.
The first argument ''size'' is the size (in bytes) of the block of memory to be allocated.
The second argument ''flags'' are the allocation flags or ''GFP flags'', a set of macros that the caller provides to control the type of requested memory.
The most commonly used values for ''flags'' are GFP_KERNEL and GFP_ATOMIC, but there is more to be considered.
Memory-allocation requests in the kernel are always qualified by a set of ''GFP flags'' ("GFP" initially came from "get free page") describing what can and cannot be done to satisfy the request.
The most commonly used flags are GFP_ATOMIC and GFP_KERNEL, though they are actually built up from lower-level flags.
The full set of flags is huge; they can be found in the {{The Linux Kernel/include|linux/gfp.h}} header file.
⚲ API:
: ↯ {{w|RAII}} allocation functions hierarchy from {{The Linux Kernel/include|linux/device.h}}:
:: {{The Linux Kernel/id|devm_kcalloc}} - zeroed array
::: {{The Linux Kernel/id|devm_kmalloc_array}}
:::: {{The Linux Kernel/id|devm_kmalloc}} - common allocation
:: {{The Linux Kernel/id|devm_kzalloc}} - zeroed allocation
::: {{The Linux Kernel/id|devm_kmalloc}} - common allocation
: Classic direct API:
:: {{The Linux Kernel/include|linux/slab.h}}
:: {{The Linux Kernel/id|kmalloc}}, {{The Linux Kernel/id|kfree}}
=== Slab allocation ===
{{w|Slab allocation}} is a memory management algorithm intended for the efficient memory allocation of kernel objects. It eliminates fragmentation caused by allocations and deallocations. The technique is used to retain allocated memory that contains a data object of a certain type for reuse upon subsequent allocations of objects of the same type.
''' Basics '''
''This section is about the SLUB allocator implementation''
A slab can be thought of as an array of objects of certain type or with the same size, spanning through one or more contiguous pages of memory; for example, the slab named "task_struct" holds objects of <code>struct task_struct</code> type, used by the scheduling subsystem.
Other slabs store objects used by other subsystems, and there is also slabs for dynamic allocations inside the kernel, such as the "kmalloc-64" slab that holds up to 64-byte chunks requested via kmalloc() calls.
In a slab, each object can be allocated and freed separately.
The primary motivation for slab allocation is that the initialization and destruction of kernel data objects can actually outweigh the cost of allocating memory for them.
As object creation and deletion are widely employed by the kernel, overhead costs of initialization can result in significant performance drops.
The notion of object caching was therefore introduced in order to avoid the invocation of functions used to initialize object state.
With slab allocation, memory chunks suitable to fit data objects of certain type or size are preallocated.
The slab allocator keeps track of these chunks, known as caches {{The Linux Kernel/id|kmalloc_caches}},
so that when a request to allocate memory for a data object of a certain type is received, it can instantly satisfy the request with an already allocated slot via {{The Linux Kernel/id|slab_alloc_node}}.
Deallocation of the object with {{The Linux Kernel/id|kfree}} does not free up the memory,
but only opens a slot which is returned to the slab allocator's free list.
The next call to allocate memory of the same size will return the now unused memory slot.
See {{The Linux Kernel/id|slab_alloc_node}}/{{The Linux Kernel/id|__slab_alloc_node}}/{{The Linux Kernel/id|___slab_alloc}}.
This process eliminates the need to search for suitable memory space and greatly alleviates memory fragmentation.
In this context, a slab is one or more contiguous pages in the memory containing pre-allocated memory chunks.
Slab allocation provides a kind of front-end to the zoned buddy allocator for those sections of the kernel that require more flexible memory allocation than the standard 4KB page size.
⚲ Interface:
: sudo cat /proc/slabinfo
: {{The Linux Kernel/include|linux/slab.h}}
: {{The Linux Kernel/id|kmem_cache_alloc}}, {{The Linux Kernel/id|kmem_cache_free}}
: {{The Linux Kernel/man|1|slabtop}}
⚙️ Internals:
: {{The Linux Kernel/source|mm/slab_common.c}} – slab allocator common code
: {{The Linux Kernel/id|mm_init}} is called from {{The Linux Kernel/id|start_kernel}}
:: {{The Linux Kernel/id|kmem_cache_init}}
::: {{The Linux Kernel/id|create_kmalloc_caches}}
: {{The Linux Kernel/id|kasan_slab_alloc}}
''' SLUB allocator ''' – default Unqueued allocator
{{w|SLUB (software)|SLUB}} is the iteration of the original SLAB allocator that replaced it and became the Linux default allocator since 2.6.23.
⚙️ Internals: {{The Linux Kernel/source|mm/slub.c}}
📚 References:
: {{The Linux Kernel/id|CONFIG_SLUB}}
💾 ''Historical: SLOB (Simple List Of Blocks) allocator for embedded devices was removed in kernel 6.4.''
''SLAB allocator, the original slab allocation implementation based on Jeff Bonwick's 1994 paper, was removed in kernel 6.8.''
''SLUB is now the only slab allocator in the kernel.''
<hr>
📚 References for Slab allocation:
: {{The Linux Kernel/doc|KASAN - KernelAddressSANitizer|dev-tools/kasan.html}} - dynamic memory safety error detector designed to find out-of-bound and use-after-free bugs
: [https://www.youtube.com/watch?v=h0VMLXavx30 <nowiki>Video "SL[AUO]B: Kernel memory allocator design and philosophy"</nowiki>] Christopher Lameter (Linux.conf.au 2015 conference) [http://lca2015.linux.org.au/slides/167/slaballocators-auckland-2015.pdf Slides]
=== Page Allocator ===
The page allocator (or "zoned buddy allocator") is a low-level allocator that deals with physical memory.
It delivers physical pages (usually with a size of 4096 bytes) of free memory to high-level memory consumers such as the slab allocators and <code>kmalloc()</code>.
As the ultimate source of memory in the system, the page allocator must ensure that memory is always available, since a failure providing memory to a critical kernel subsystem can lead to a general system failure or a kernel panic.
The page allocator divides physical memory into "zones", each of which corresponds to {{The Linux Kernel/id|zone_type}} with specific characteristics.
ZONE_DMA contains memory at the bottom of the address range for use by severely challenged devices, for example, while {{The Linux Kernel/id|ZONE_NORMAL}} may contain most memory on the system. 32-bit systems have a ZONE_HIGHMEM for memory that is not directly mapped into the kernel's address space.
Depending on the characteristics of any given allocation request, the page allocator will search the available zones in a specific priority order.
For the curious, <code>/proc/zoneinfo</code> gives a lot of information about the zones in use on any given system.
Within a zone, memory is grouped into ''page blocks'', each of which can be marked with a ''migration type'' - {{The Linux Kernel/id|migratetype}} describing how the block should be allocated.
⚲ API:
: cat /proc/buddyinfo
: {{The Linux Kernel/include|linux/gfp.h}}
: {{The Linux Kernel/include|linux/mmzone.h}}
: {{The Linux Kernel/id|alloc_page}}
: {{The Linux Kernel/id|devm_get_free_pages}} - {{w|RAII}} function, ↯ hierarchy of it:
:: {{The Linux Kernel/id|__get_free_pages}}
::: {{The Linux Kernel/id|alloc_pages}}
:::: {{The Linux Kernel/id|alloc_pages_node}}
::::: {{The Linux Kernel/id|__alloc_pages}} - the 'heart' of the zoned buddy allocator
⚙️ Internals:
: {{The Linux Kernel/id|build_all_zonelists}} is called from {{The Linux Kernel/id|start_kernel}}, ↯ call hierarchy:
:: {{The Linux Kernel/id|build_all_zonelists_init}}
::: {{The Linux Kernel/id|__build_all_zonelists}}
:::: {{The Linux Kernel/id|build_zonelists}}
: {{The Linux Kernel/id|__alloc_pages}} - the 'heart' of the zoned buddy allocator
: struct {{The Linux Kernel/id|zone}}
:: {{The Linux Kernel/id|free_area}}
: {{The Linux Kernel/source|mm/mmzone.c}} – memory zone helpers
: {{The Linux Kernel/source|mm/page_alloc.c}} – buddy page allocator
📚 References:
: {{The Linux Kernel/doc|Get Free Page flags|core-api/memory-allocation.html}}
: {{w|Buddy memory allocation}}
: {{w|Page replacement algorithm}}
=== OOM killer ===
The {{w|Out of memory|Out-Of-Memory}} killer is invoked when the kernel cannot satisfy a memory allocation and all reclaim attempts have failed.
It selects a process to kill based on a badness score to free memory and keep the system running.
⚲ API:
: /proc/$pid/oom_score – current badness score
: /proc/$pid/oom_score_adj – adjust score (-1000 to 1000)
: /proc/$pid/oom_adj – deprecated, use oom_score_adj
: /proc/sys/vm/panic_on_oom
⚙️ Internals:
: {{The Linux Kernel/source|mm/oom_kill.c}} – out-of-memory killer
: {{The Linux Kernel/id|out_of_memory}} – main entry point
: {{The Linux Kernel/id|oom_badness}} – calculates badness score
: {{The Linux Kernel/id|oom_kill_process}}
📚 References:
: {{The Linux Kernel/doc|OOM|admin-guide/sysctl/vm.html}}
=== Memory cgroup controller ===
The memory cgroup controller limits and accounts memory usage per group of processes.
It can set hard and soft limits, trigger per-cgroup OOM, and track swap usage.
⚲ API:
: memory.max – hard memory limit
: memory.high – throttling threshold
: memory.current – current usage
: memory.swap.max – swap limit
: See [[../System/CGroup v2#Memory|CGroup v2 Memory controller]] for full interface
⚙️ Internals:
: {{The Linux Kernel/source|mm/memcontrol.c}} – memory cgroup controller
: {{The Linux Kernel/id|mem_cgroup}} – main structure
: {{The Linux Kernel/id|mem_cgroup_charge}}
: {{The Linux Kernel/id|mem_cgroup_oom}}
📚 References:
: {{The Linux Kernel/doc|Memory Resource Controller|admin-guide/cgroup-v2.html#memory}}
<hr>
📚 References for logical memory:
: {{The Linux Kernel/doc|Memory Allocation Guide|core-api/memory-allocation.html}}
: {{The Linux Kernel/doc|Selecting memory allocator|core-api/memory-allocation.html#selecting-memory-allocator}}
== Physical memory ==
=== Memory Layout ===
A 32-bit processor can address a maximum of 4GB of memory.
Linux kernels split the 4GB address space between user processes and the kernel; under the most common configuration, the first 3GB of the 32-bit range are given over to user space, and the kernel gets the final 1GB starting at 0xc0000000.
Sharing the address space gives a number of performance benefits; in particular, the hardware's address translation buffer can be shared between the kernel and user space.
In '''x86-64''' - {{The Linux Kernel/id|CONFIG_X86_64}} with 4-level page tables ({{The Linux Kernel/id|CONFIG_X86_5LEVEL}}=n), only the least significant 48 bits of a virtual memory address would actually be used in address translation (page table lookup).
The remainder bits 48 through 63 of any virtual address must be copies of bit 47, or the processor will raise an exception.
Addresses complying with this rule are referred to as "canonical form." Canonical form addresses run from 0 through 00007FFF'FFFFFFFF, and from FFFF8000'00000000 through FFFFFFFF'FFFFFFFF, for a total of 256 TB of usable {{w|virtual address space}}.
This is still approximately 64,000 times the virtual address space on 32-bit machines.
Linux takes the higher-addressed half of the address space for itself (kernel space) and leaves the lower-addressed half for user space.
The "canonical address" design has, in effect, two memory halves: the lower half starts at 00000000'00000000 and "grows upwards" as more virtual address bits become available, while the higher half is "docked" to the top of the address space and grows downwards.
{| class="wikitable sortable"
|+
!Start addr
!class=unsortable|Offset
!End addr
!class=unsortable|Size
!class=unsortable|VM area description
|-
| <code><small>0000'</small>'''8'''<small>000'0000'0000</small></code>
| +128 TB
| <code><small>ffff'7fff'ffff'ffff</small></code>
|
| ... huge, almost 64 bits wide hole of non-canonical virtual memory addresses up to the -128 TB starting offset of kernel mappings.
|-
| <code><small>0000'0000'0000'0000</small></code>
|0
| <code><small>0000'7fff'ffff'ffff</small></code>
|128 TB=2<sup>47</sup>
|user-space virtual memory, different per mm
|-
| <code><small>ffff'ffff'ffe0'0000</small></code>
| -2 MB
| <code><small>ffff'ffff'ffff'ffff</small></code>
| 2 MB=2<sup>21</sup>
|... unused hole
|-
| <code><small>ffff'ffff'ff60'0000</small></code>
| -10 MB
| <code><small>ffff'ffff'ff60'0fff</small></code>
| 4 kB=2<sup>12</sup>
| {{The Linux Kernel/id|VSYSCALL_ADDR}} - legacy vsyscall ABI
|-
| <code><small>ffff'ffff'8000'0000</small></code>
| -2 GB
| <code><small>ffff'ffff'9fff'ffff</small></code>
| 512 MB=2<sup>29</sup>
| kernel text mapping, mapped to physical address 0
|-
|
|
|
|
|
|-
| <code><small>ffff'8880'0000'0000</small></code>
| -119.5 TB
| <code><small>ffff'c87f'ffff'ffff</small></code>
| 64 TB
| {{The Linux Kernel/id|page_offset_base}} = {{The Linux Kernel/id|__PAGE_OFFSET_BASE_L4}} - direct mapping of all physical memory
|-
|
|
|
|
|
|-
| <code><small>ffff'8000'0000'0000</small></code>
| -128 TB
| <code><small>ffff'87ff'ffff'ffff</small></code>
| 8 TB
| ... guard hole, also reserved for hypervisor
|}
[[File:Linux_Virtual_Memory_Layout_64bit.svg|border|center|x86-64 memory layout]]
⚲ API:
: {{The Linux Kernel/man|8|setarch}} --addr-no-randomize cat /proc/self/maps
⚙️ Internals:
: {{The Linux Kernel/source|arch/x86/include/asm/page_64_types.h}} – x86-64 page type definitions
: {{The Linux Kernel/source|arch/x86/mm/init_64.c}} – x86-64 memory initialization
📚 References:
: {{The Linux Kernel/doc|X86_64 memory map|x86/x86_64/mm.html}}
: {{w|Address_space_layout_randomization#Linux|Address space layout randomization}}
=== Pages ===
In Linux, different architectures have different page sizes.
The original —for x86 architecture— and still most commonly used page size is 4096 bytes (4 KB).
The page size (in bytes) of the current architecture is defined by the <code>PAGE_SIZE</code> macro included in {{The Linux Kernel/source|arch/x86/include/asm/page_types.h}} header file.
User space programs can get this value using the {{The Linux Kernel/man|2|getpagesize}} library function.
Another related macro is <code>PAGE_SHIFT</code>, that contains the number of bits to shift an address to get its page number —12 bits for 4K pages.
One of the most fundamental kernel data structures relating memory-management is <code>struct page</code>.
The kernel keeps track of the status of every page of physical memory present in the system using variables of this type.
There are millions of pages in a modern system, and therefore there are millions of these structures in memory.
The full definition of <code>struct page</code> can be found in {{The Linux Kernel/include|linux/mm_types.h}}.
: [https://0xax.gitbooks.io/linux-insides/content/Theory/linux-theory-1.html Pages]
=== NUMA ===
In {{w|Non-uniform memory access}} systems, physical memory is divided into nodes, each local to a group of CPUs.
Accessing local memory is faster than remote memory, so the kernel tries to allocate memory from the node closest to the requesting CPU.
Each node contains its own set of zones (DMA, Normal, etc.).
⚲ API:
: {{The Linux Kernel/man|8|numactl}} – controls NUMA policy for processes or shared memory
: {{The Linux Kernel/man|2|set_mempolicy}} – set default NUMA memory policy
: {{The Linux Kernel/man|2|mbind}} – set NUMA memory policy for a memory range
: {{The Linux Kernel/man|2|get_mempolicy}}
: {{The Linux Kernel/man|2|migrate_pages}}
: {{The Linux Kernel/man|2|move_pages}}
: cat /proc/buddyinfo
: /sys/devices/system/node/
: {{The Linux Kernel/include|linux/topology.h}} – {{The Linux Kernel/id|cpu_to_node}}, {{The Linux Kernel/id|numa_node_id}}
: {{The Linux Kernel/include|linux/mempolicy.h}}
⚙️ Internals:
: {{The Linux Kernel/id|CONFIG_NUMA}}
: {{The Linux Kernel/id|pglist_data}} (pg_data_t) – per-node memory descriptor, contains zones @ {{The Linux Kernel/include|linux/mmzone.h}}
: {{The Linux Kernel/id|numa_node_id}} – returns NUMA node of current CPU
: {{The Linux Kernel/source|mm/numa.c}} – NUMA node data allocation during boot
: {{The Linux Kernel/source|mm/mempolicy.c}} – NUMA memory allocation policies
: {{The Linux Kernel/source|mm/migrate.c}} – page migration between nodes
: {{The Linux Kernel/source|mm/memory-tiers.c}} – memory tiering (DRAM, PMEM, HBM)
: {{The Linux Kernel/source|mm/numa_memblks.c}} – memory block and distance setup
📚 References:
: {{The Linux Kernel/doc|NUMA Memory Policy|admin-guide/mm/numa_memory_policy.html}}
: {{w|Non-uniform memory access}}
: See also [[../Multitasking/CPU#SMP|SMP section]] for NUMA topology and CPU aspects
=== Huge pages ===
{{w|Huge pages}} use larger page sizes (2 MB or 1 GB on x86-64) to reduce TLB misses and page table overhead for memory-intensive workloads.
==== HugeTLB ====
HugeTLB provides explicitly allocated persistent huge pages, reserved at boot or runtime.
⚲ API:
: cat /proc/meminfo | grep Huge
: cat /proc/sys/vm/nr_hugepages
: {{The Linux Kernel/man|2|mmap}} with MAP_HUGETLB
: mount -t hugetlbfs nodev /dev/hugepages
: {{The Linux Kernel/include|linux/hugetlb.h}}
⚙️ Internals:
: {{The Linux Kernel/source|mm/hugetlb.c}} – HugeTLB huge page allocator
: {{The Linux Kernel/id|hugetlb_init}}
: {{The Linux Kernel/id|hugetlb_fault}}
📚 References:
: {{The Linux Kernel/doc|HugeTLB Pages|admin-guide/mm/hugetlbpage.html}}
==== Transparent Huge Pages ====
THP automatically promotes regular pages to huge pages without application changes (since 2.6.38).
⚲ API:
: cat /sys/kernel/mm/transparent_hugepage/enabled
: {{The Linux Kernel/man|2|madvise}} with MADV_HUGEPAGE
: {{The Linux Kernel/include|linux/huge_mm.h}}
⚙️ Internals:
: {{The Linux Kernel/source|mm/huge_memory.c}} – transparent huge page support
: {{The Linux Kernel/id|khugepaged}} – daemon that collapses pages into huge pages
: {{The Linux Kernel/source|mm/khugepaged.c}} – THP collapse daemon
📚 References:
: {{The Linux Kernel/doc|Transparent Hugepage Support|admin-guide/mm/transhuge.html}}
: {{The Linux Kernel/doc|Concepts overview|admin-guide/mm/concepts.html}}
=== CMA ===
The Contiguous Memory Allocator (CMA) reserves a region of memory at boot for large physically contiguous allocations needed by DMA devices, GPUs and multimedia hardware (since 3.5).
Unused CMA memory is available to the page allocator for movable pages.
⚲ API:
: cat /proc/meminfo | grep Cma
: {{The Linux Kernel/include|linux/cma.h}}
: {{The Linux Kernel/id|dma_alloc_contiguous}}
: {{The Linux Kernel/id|CONFIG_CMA}}
⚙️ Internals:
: {{The Linux Kernel/source|mm/cma.c}} – contiguous memory allocator core
: {{The Linux Kernel/source|kernel/dma/contiguous.c}} – DMA-CMA integration
: {{The Linux Kernel/source|mm/cma_debug.c}} – debugfs interface
: {{The Linux Kernel/id|cma_alloc}}
: {{The Linux Kernel/id|cma_release}}
📚 References:
: {{The Linux Kernel/doc|Contiguous Memory Allocator|mm/cma.html}}
=== DMA ===
⚲ API:
: {{The Linux Kernel/id|dma_addr_t}} - bus address
: {{The Linux Kernel/include|linux/dma-mapping.h}}
: {{The Linux Kernel/id|dma_alloc_coherent}}
: {{The Linux Kernel/id|dma_alloc_pages}} {{The Linux Kernel/id|pin_user_pages}}
: {{The Linux Kernel/id|dma_map_single}} {{The Linux Kernel/id|dma_data_direction}}
: {{The Linux Kernel/id|dma_map_sg}} {{The Linux Kernel/id|scatterlist}}
: {{The Linux Kernel/id|dma_set_mask}} {{The Linux Kernel/id|dma_set_coherent_mask}} {{The Linux Kernel/id|dma_set_mask_and_coherent}}
: {{The Linux Kernel/id|dma_sync_single_for_cpu}} {{The Linux Kernel/id|dma_sync_single_for_device}}
: {{The Linux Kernel/include|linux/gfp.h}}
: {{The Linux Kernel/include|linux/dmapool.h}}
: {{The Linux Kernel/id|dma_pool_create}}
: DMA-able memory: {{The Linux Kernel/id|__get_free_page}} {{The Linux Kernel/id|kmalloc}} {{The Linux Kernel/id|kmem_cache_alloc}}
: {{The Linux Kernel/id|get_user_pages}} pins user pages in memory,
👁 Examples:
: {{The Linux Kernel/source|samples/kfifo/dma-example.c}}
: {{The Linux Kernel/id|e1000_alloc_rx_buffers}}, {{The Linux Kernel/id|e1000_alloc_ring_dma}}
⚙️ Internals:
: {{The Linux Kernel/source|kernel/dma}} – DMA subsystem core
: {{The Linux Kernel/source|mm/dmapool.c}} – small DMA-coherent allocations
: {{The Linux Kernel/source|mm/gup.c}} – get/pin user pages
: {{The Linux Kernel/source|kernel/dma/mapping.c}} – arch-independent DMA mapping
📚 References:
: {{The Linux Kernel/doc|Dynamic DMA mapping Guide|core-api/dma-api-howto.html}}
: {{The Linux Kernel/doc|Dynamic DMA mapping using the generic device|core-api/dma-api.html}}
: [https://lwn.net/Articles/787636/ LWM: get_user_pages, pinned pages, and DAX]
: {{The Linux Kernel/doc|pin_user_pages() and related calls|core-api/pin_user_pages.html}}
💾 ''Historical:''
: [http://lwn.net/images/pdf/LDD3/ch15.pdf LDD3:Memory Mapping and DMA]
: http://www.xml.com/ldd/chapter/book/ch13.html mmap and DMA
: SAC – Single Address Cycle, 32-bit DMA addressing (up to 4 GB)
: DAC – Dual Address Cycle, 64-bit DMA addressing
==== DMAEngine ====
: {{The Linux Kernel/include|linux/dmaengine.h}}
: {{The Linux Kernel/source|drivers/dma}} – DMA engine drivers
: {{The Linux Kernel/doc|driver-api/dmaengine}}
: https://bootlin.com/pub/conferences/2015/elc/ripard-dmaengine/
== ... ==
📚 References for the article:
: {{The Linux Kernel/doc|Linux Memory Management Documentation|mm/}}
: [https://www.ryadel.com/en/linux-memory-management-mechanism-analysis-kernel/ Analysis of Linux Memory Management Mechanism]
: [https://0xax.gitbooks.io/linux-insides/content/MM/ Memory management]
: http://linux-mm.org/LinuxMM
: http://www.tldp.org/HOWTO/KernelAnalysis-HOWTO-7.html
: [https://lwn.net/Kernel/Index/#Memory_management Memory management, lwn]
{{BookCat}}
4a4l9zhajt9nsazflp2ivmp05y4qy1m
4640284
4640250
2026-06-14T09:29:50Z
Conan
3188
add DAMON section with API, internals and references
4640284
wikitext
text/x-wiki
<noinclude>{{DISPLAYTITLE:Memory functionality}}</noinclude>
{|style="width: 25%; float: right; text-align:center;border-spacing: 0; color:black; margin:auto;" cellpadding=5pc
! bgcolor="#bfd" |memory
|-
| bgcolor="#aed" |[[#Processes|Processes]]
|-
| bgcolor="#9dd" |[[#Virtual_memory|virtual memory]]
|-
| bgcolor="#aca" |[[#Memory_mapping|memory mapping]]
|-
| bgcolor="#acb" | [[#Swap|demand paging and swap]]
|-
| bgcolor="#8b9" |[[#Logical_memory|logical memory]]
|-
| bgcolor="#7a7" |[[#Page Allocator|Page Allocator]]
|-
| bgcolor="#686" |[[#Pages|pages]]
|}
The kernel has full access to the system's memory and allows processes to {{w|Process isolation|safely access}} this memory as they require it.
Often the first step in doing this is {{w|Virtual address space|virtual addressing}}, usually achieved by paging and/or segmentation.
Virtual addressing allows the kernel to make a given {{w|physical address}} appear to be another address, the virtual address.
Virtual address spaces may be different for different processes; the memory that one process accesses at a particular (virtual) address may be different memory from what another process accesses at the same address.
This allows every program to behave as if it is the only one (apart from the kernel) running and thus prevents applications from crashing each other.
On many systems, a program's virtual address may refer to data which is not currently in memory.
The layer of indirection provided by virtual addressing allows the operating system to use other data stores, like a hard drive, to store what would otherwise have to remain in main {{w|random-access memory}} (RAM).
As a result, operating systems can allow programs to use more memory than the system has physically available.
When a program needs data which is not currently in RAM, the {{w|Memory management unit|MMU}} {{w|Page fault|signals}} to the kernel that this has happened, and the kernel responds by writing the contents of an inactive memory block to disk (if necessary) and replacing it with the data requested by the program.
The program can then be resumed from the point where it was stopped.
This scheme is generally known as {{w|demand paging}}.
Virtual addressing also allows creation of virtual partitions of memory in two disjointed areas, one being reserved for the kernel (kernel space) and the other for the applications (user space).
The applications are not permitted by the processor to address kernel memory, thus preventing an application from damaging the running kernel.
This fundamental partition of memory space has contributed much to the current designs of actual general-purpose kernels and is almost universal in such systems, Linux being one of them.
⚲ Shell interface
: cat /proc/meminfo
: {{The Linux Kernel/man|1|free}}
: {{The Linux Kernel/man|8|vmstat}}
{{:The Linux Kernel/Processes}}
== Memory management API ==
: ⚲ {{The Linux Kernel/man|2|brk}} ↪ {{The Linux Kernel/id|sys_brk}}, {{The Linux Kernel/id|do_brk_flags}} dynamically changes data segment size of the calling process.
The change is made by resetting the <u>program break</u> of the process, which determines the maximum space that can be allocated.
The program break is the address of the first location beyond the current end of the data region, and determines the maximum space that can be allocated by the process.
The amount of available space increases as the break value increases.
The added available space is initialized to a value of zero.
: ⚲ {{The Linux Kernel/man|2|mmap}} ↪ {{The Linux Kernel/id|ksys_mmap_pgoff}} maps files or devices into memory.
It is a method of memory-mapped file I/O.
It naturally implements demand paging, because file contents are not read from disk initially and do not use physical RAM at all.
The actual reads from disk are performed in a "lazy" manner, after a specific location is accessed.
After the memory is no longer needed it is important to {{The Linux Kernel/man|2|munmap}} the pointers to it.
Protection information can be managed using {{The Linux Kernel/man|2|mprotect}} ↪ {{The Linux Kernel/id|do_mprotect_pkey}} and special treatment can be enforced using {{The Linux Kernel/man|2|madvise}} ↪ {{The Linux Kernel/id|do_madvise}}.
In Linux, {{The Linux Kernel/man|2|mmap}} can create several types of mappings, such as ''anonymous mappings'', ''shared mappings'' and ''private mappings''.
Using the <code>MAP_ANONYMOUS</code> flag <code>mmap()</code> can map a specific area of the process's virtual memory not backed by any file, whose contents are initialized to zero.
These functions are typically called from a higher-level memory management library function such as C standard library {{The Linux Kernel/man|3|malloc}} or [[w:new and delete (C++)|C++ new operator]].
⚲ API
: {{The Linux Kernel/include|linux/uaccess.h}} – user-space memory access and validation helpers
: {{The Linux Kernel/include|linux/mm.h}} – memory management declarations and page handling APIs
: {{The Linux Kernel/include|linux/slab.h}} – memory allocation APIs for slab and kmalloc systems
💾 ''History: Two basic related to memory management system calls <code>brk</code> and <code>mmap</code> Linux inherits from Unix.''
''BTW: On Linux, {{The Linux Kernel/man|2|sbrk}} is not a separate system call, but a C library function that also calls to {{The Linux Kernel/id|sys_brk}} and keeps some internal state to return the previous break value.''
📚 References
: {{The Linux Kernel/doc|Memory Management APIs|core-api/mm-api.html}}
: {{The Linux Kernel/doc|x86_64 Memory Management|x86/x86_64/mm.html}}
: {{w|sbrk}}
: {{w|mmap}}
: [https://0xax.gitbooks.io/linux-insides/content/MM/ Memory management]
⚙️ Internals:
: '''{{The Linux Kernel/id|sys_brk}}''' ↯ call hierarchy:
: {{The Linux Kernel/id|do_brk_flags}}
:: {{The Linux Kernel/id|vm_area_alloc}}
::: {{The Linux Kernel/id|kmem_cache_alloc}}
:::: {{The Linux Kernel/id|kmem_cache_alloc_lru}}
== Virtual memory ==
🔧 TODO:
{{w|Virtual memory|Virtually contiguous memory}} on top of physical and [[#Swap|swapped]] memory pages.
🗝️ Acronyms:
: VPFN - Virtual Page Frame Number
: PFN - Physical Page Frame Number
: pgd - Page Directory
: pmd - Page Middle Directory
: pud - Page Upper Directory
: pte - {{w|Page table}} Entry
: TLB - {{w|Translation Lookaside Buffer}}
: MMU - {{w|Memory Management Unit}}
⚲ API:
: {{The Linux Kernel/include|linux/vmalloc.h}}
: {{The Linux Kernel/id|vmalloc}} {{The Linux Kernel/id|vfree}}
: {{The Linux Kernel/include|linux/cleanup.h}} – scope-based cleanup helpers
:: {{The Linux Kernel/id|scoped_guard}}
: /proc/vmallocinfo
⚙️ Internals:
: {{The Linux Kernel/id|vm_struct}}
: {{The Linux Kernel/id|virt_to_page}}
: {{The Linux Kernel/id|vmalloc_init}}
: {{The Linux Kernel/id|find_vma}}
: {{The Linux Kernel/source|mm/vmalloc.c}} – virtually contiguous memory allocator
📚 References
: {{The Linux Kernel/doc|Virtually Contiguous Mappings|core-api/mm-api.html#virtually-contiguous-mappings}}
: {{The Linux Kernel/doc|Page Tables|mm/page_tables.html}}
: {{The Linux Kernel/doc|Scope-based Cleanup Helpers|core-api/cleanup.html}}
== Data types ==
=== Pointers and addresses ===
Kernel-specific address types, in addition to common C pointers.
: <big>unsigned long</big> – used to store addresses that are not intended to be dereferenced by the user
: {{The Linux Kernel/id|uintptr_t}} – to be used in ioctl
: {{The Linux Kernel/id|phys_addr_t}} – physical address
: {{The Linux Kernel/id|dma_addr_t}} – DMA address
📚 Further reading
: {{The Linux Kernel/doc|(How to avoid) Botching up ioctls|process/botching-up-ioctls.html}}
: [https://unix.org/whitepapers/64bit.html Data Size Neutrality and 64-bit Support]
=== Other types ===
⚲ API
: {{The Linux Kernel/include|linux/types.h}} – fixed-width and kernel-specific type definitions
: {{The Linux Kernel/include|linux/string.h}} – standard string manipulation functions
: bit operations
:: {{The Linux Kernel/include|linux/bitfield.h}} – defining and extracting bitfield values
:: {{The Linux Kernel/include|linux/bitops.h}} – atomic and non-atomic bit manipulation operations
:: {{The Linux Kernel/include|linux/bitmap.h}} – bit arrays that consume one or more unsigned longs
:: {{The Linux Kernel/include|linux/sbitmap.h}} – fast and scalable bitmaps
: {{The Linux Kernel/include|linux/kref.h}}
: {{The Linux Kernel/include|acpi/actypes.h}} – common data types for the entire ACPI subsystem
:: {{The Linux Kernel/include|linux/list.h}} – circular doubly linked list implementation
::: {{The Linux Kernel/id|list_head}} – common double linked list
::: {{The Linux Kernel/id|list_add}} ...
:: {{The Linux Kernel/include|linux/klist.h}} – some {{The Linux Kernel/id|klist_node}}->{{The Linux Kernel/id|kref}} helpers
::: {{The Linux Kernel/id|klist_add_tail}} ...
: {{The Linux Kernel/include|linux/kobject.h}}
: {{The Linux Kernel/include|linux/circ_buf.h}}
: {{The Linux Kernel/include|linux/kfifo.h}} – generic kernel FIFO
:: {{The Linux Kernel/id|kfifo_in}} ...
: {{The Linux Kernel/include|linux/rbtree.h}} – Red-black trees
:: {{The Linux Kernel/id|rb_node}}
: {{The Linux Kernel/include|linux/scatterlist.h}}
:: {{The Linux Kernel/id|scatterlist}}
:: 👁 Example: {{The Linux Kernel/source|samples/kfifo/dma-example.c}}
: {{The Linux Kernel/include|linux/idr.h}} – ID allocation
: {{The Linux Kernel/include|linux/container_of.h}}
📖 References
: {{The Linux Kernel/doc|List Management Functions|core-api/kernel-api.html#list-management-functions}}
: {{The Linux Kernel/doc|FIFO Buffer|core-api/kernel-api.html#fifo-buffer}}
: {{The Linux Kernel/doc|Data structures and low-level utilities|core-api#data-structures-and-low-level-utilities}}
:: {{The Linux Kernel/doc|Everything you never wanted to know about kobjects, ksets, and ktypes|core-api/kobject.html}}
:: {{The Linux Kernel/doc|Adding reference counters (krefs) to kernel objects|core-api/kref.html}}
:: {{The Linux Kernel/doc|Generic Associative Array Implementation|core-api/assoc_array.html}}
:: {{The Linux Kernel/doc|XArray|core-api/xarray.html}}
:: {{The Linux Kernel/doc|ID Allocation|core-api/idr.html}}
:: {{The Linux Kernel/doc|Circular Buffers|core-api/circular-buffers.html}}
:: {{The Linux Kernel/doc|Red-black Trees (rbtree) in Linux|core-api/rbtree.html}}
:: {{The Linux Kernel/doc|Generic radix trees/sparse arrays|core-api/generic-radix-tree.html}}
:: {{The Linux Kernel/doc|Generic bitfield packing and unpacking functions|core-api/packing.html}}
:: {{The Linux Kernel/doc|How to access I/O mapped memory from within device drivers|core-api/bus-virt-phys-mapping.html}}
:: {{The Linux Kernel/doc|this_cpu operations|core-api/this_cpu_ops.html}}
:: {{The Linux Kernel/doc|The errseq_t datatype|core-api/errseq.html}}
📚 Further reading
: [https://0xax.gitbooks.io/linux-insides/content/DataStructures/ Data Structures in the Linux Kernel]
: https://kernelnewbies.org/InternalKernelDataTypes
== Memory mapping ==
🔧 TODO
⚲ API:
: {{The Linux Kernel/man|2|mmap}} ↪ {{The Linux Kernel/id|ksys_mmap_pgoff}} ↪ {{The Linux Kernel/id|do_mmap}}
: {{The Linux Kernel/man|2|mprotect}}
: {{The Linux Kernel/man|2|mmap2}}
: {{The Linux Kernel/man|2|mincore}}
: {{The Linux Kernel/include|linux/mm_types.h}} – {{The Linux Kernel/id|mm_struct}}, {{The Linux Kernel/id|vm_area_struct}}
: {{The Linux Kernel/include|linux/mm.h}}
: {{The Linux Kernel/id|remap_pfn_range}}
: {{The Linux Kernel/id|SetPageReserved}}, {{The Linux Kernel/id|ClearPageReserved}}
⚙️ Internals:
: {{The Linux Kernel/source|mm/mmap.c}} – memory mapping implementation
📚 References:
: {{w|mmap}}
: {{The Linux Kernel/doc|Maple Tree|core-api/maple_tree.html}}
: [https://linux-kernel-labs.github.io/refs/heads/master/labs/memory_mapping.html Memory mapping, linux-kernel-labs]
== Swap ==
🔧 TODO
⚲ API:
: cat /proc/sys/vm/swappiness ↪ {{The Linux Kernel/id|vm_swappiness}}
: {{The Linux Kernel/include|linux/swap.h}}
: {{The Linux Kernel/man|2|swapon}} ↪ {{The Linux Kernel/id|enable_swap_slots_cache}}
: {{The Linux Kernel/man|2|swapoff}}
: {{The Linux Kernel/man|2|mlock}} ↪ {{The Linux Kernel/id|do_mlock}}
: {{The Linux Kernel/man|2|shmctl}} ↪ {{The Linux Kernel/id|shmctl_do_lock}}
⚙️ Internals:
: {{The Linux Kernel/source|mm/swapfile.c}} – swap area management
: {{The Linux Kernel/source|mm/vmscan.c}} – page reclaim and scanning
: {{The Linux Kernel/source|mm/mlock.c}} – memory locking
: {{The Linux Kernel/id|VM_LOCKED}}
: {{The Linux Kernel/id|swap_info_struct}}, {{The Linux Kernel/id|si_swapinfo}}, {{The Linux Kernel/id|swap_info}}
: {{The Linux Kernel/id|handle_pte_fault}} ↪ {{The Linux Kernel/id|do_swap_page}}
: {{The Linux Kernel/id|wakeup_kswapd}} ↪ {{The Linux Kernel/id|kswapd}}
📚 References:
: {{w|Memory_paging#Linux|Memory paging}}
: https://wiki.archlinux.org/title/swap
== Logical memory ==
⚲ {{The Linux Kernel/id|kmalloc}} is the normal method of allocating memory in the kernel for objects smaller than the page size.
It is defined in {{The Linux Kernel/include|linux/slab.h}}.
The first argument ''size'' is the size (in bytes) of the block of memory to be allocated.
The second argument ''flags'' are the allocation flags or ''GFP flags'', a set of macros that the caller provides to control the type of requested memory.
The most commonly used values for ''flags'' are GFP_KERNEL and GFP_ATOMIC, but there is more to be considered.
Memory-allocation requests in the kernel are always qualified by a set of ''GFP flags'' ("GFP" initially came from "get free page") describing what can and cannot be done to satisfy the request.
The most commonly used flags are GFP_ATOMIC and GFP_KERNEL, though they are actually built up from lower-level flags.
The full set of flags is huge; they can be found in the {{The Linux Kernel/include|linux/gfp.h}} header file.
⚲ API:
: ↯ {{w|RAII}} allocation functions hierarchy from {{The Linux Kernel/include|linux/device.h}}:
:: {{The Linux Kernel/id|devm_kcalloc}} - zeroed array
::: {{The Linux Kernel/id|devm_kmalloc_array}}
:::: {{The Linux Kernel/id|devm_kmalloc}} - common allocation
:: {{The Linux Kernel/id|devm_kzalloc}} - zeroed allocation
::: {{The Linux Kernel/id|devm_kmalloc}} - common allocation
: Classic direct API:
:: {{The Linux Kernel/include|linux/slab.h}}
:: {{The Linux Kernel/id|kmalloc}}, {{The Linux Kernel/id|kfree}}
=== Slab allocation ===
{{w|Slab allocation}} is a memory management algorithm intended for the efficient memory allocation of kernel objects. It eliminates fragmentation caused by allocations and deallocations. The technique is used to retain allocated memory that contains a data object of a certain type for reuse upon subsequent allocations of objects of the same type.
''' Basics '''
''This section is about the SLUB allocator implementation''
A slab can be thought of as an array of objects of certain type or with the same size, spanning through one or more contiguous pages of memory; for example, the slab named "task_struct" holds objects of <code>struct task_struct</code> type, used by the scheduling subsystem.
Other slabs store objects used by other subsystems, and there is also slabs for dynamic allocations inside the kernel, such as the "kmalloc-64" slab that holds up to 64-byte chunks requested via kmalloc() calls.
In a slab, each object can be allocated and freed separately.
The primary motivation for slab allocation is that the initialization and destruction of kernel data objects can actually outweigh the cost of allocating memory for them.
As object creation and deletion are widely employed by the kernel, overhead costs of initialization can result in significant performance drops.
The notion of object caching was therefore introduced in order to avoid the invocation of functions used to initialize object state.
With slab allocation, memory chunks suitable to fit data objects of certain type or size are preallocated.
The slab allocator keeps track of these chunks, known as caches {{The Linux Kernel/id|kmalloc_caches}},
so that when a request to allocate memory for a data object of a certain type is received, it can instantly satisfy the request with an already allocated slot via {{The Linux Kernel/id|slab_alloc_node}}.
Deallocation of the object with {{The Linux Kernel/id|kfree}} does not free up the memory,
but only opens a slot which is returned to the slab allocator's free list.
The next call to allocate memory of the same size will return the now unused memory slot.
See {{The Linux Kernel/id|slab_alloc_node}}/{{The Linux Kernel/id|__slab_alloc_node}}/{{The Linux Kernel/id|___slab_alloc}}.
This process eliminates the need to search for suitable memory space and greatly alleviates memory fragmentation.
In this context, a slab is one or more contiguous pages in the memory containing pre-allocated memory chunks.
Slab allocation provides a kind of front-end to the zoned buddy allocator for those sections of the kernel that require more flexible memory allocation than the standard 4KB page size.
⚲ Interface:
: sudo cat /proc/slabinfo
: {{The Linux Kernel/include|linux/slab.h}}
: {{The Linux Kernel/id|kmem_cache_alloc}}, {{The Linux Kernel/id|kmem_cache_free}}
: {{The Linux Kernel/man|1|slabtop}}
⚙️ Internals:
: {{The Linux Kernel/source|mm/slab_common.c}} – slab allocator common code
: {{The Linux Kernel/id|mm_init}} is called from {{The Linux Kernel/id|start_kernel}}
:: {{The Linux Kernel/id|kmem_cache_init}}
::: {{The Linux Kernel/id|create_kmalloc_caches}}
: {{The Linux Kernel/id|kasan_slab_alloc}}
''' SLUB allocator ''' – default Unqueued allocator
{{w|SLUB (software)|SLUB}} is the iteration of the original SLAB allocator that replaced it and became the Linux default allocator since 2.6.23.
⚙️ Internals: {{The Linux Kernel/source|mm/slub.c}}
📚 References:
: {{The Linux Kernel/id|CONFIG_SLUB}}
💾 ''Historical: SLOB (Simple List Of Blocks) allocator for embedded devices was removed in kernel 6.4.''
''SLAB allocator, the original slab allocation implementation based on Jeff Bonwick's 1994 paper, was removed in kernel 6.8.''
''SLUB is now the only slab allocator in the kernel.''
<hr>
📚 References for Slab allocation:
: {{The Linux Kernel/doc|KASAN - KernelAddressSANitizer|dev-tools/kasan.html}} - dynamic memory safety error detector designed to find out-of-bound and use-after-free bugs
: [https://www.youtube.com/watch?v=h0VMLXavx30 <nowiki>Video "SL[AUO]B: Kernel memory allocator design and philosophy"</nowiki>] Christopher Lameter (Linux.conf.au 2015 conference) [http://lca2015.linux.org.au/slides/167/slaballocators-auckland-2015.pdf Slides]
=== Page Allocator ===
The page allocator (or "zoned buddy allocator") is a low-level allocator that deals with physical memory.
It delivers physical pages (usually with a size of 4096 bytes) of free memory to high-level memory consumers such as the slab allocators and <code>kmalloc()</code>.
As the ultimate source of memory in the system, the page allocator must ensure that memory is always available, since a failure providing memory to a critical kernel subsystem can lead to a general system failure or a kernel panic.
The page allocator divides physical memory into "zones", each of which corresponds to {{The Linux Kernel/id|zone_type}} with specific characteristics.
ZONE_DMA contains memory at the bottom of the address range for use by severely challenged devices, for example, while {{The Linux Kernel/id|ZONE_NORMAL}} may contain most memory on the system. 32-bit systems have a ZONE_HIGHMEM for memory that is not directly mapped into the kernel's address space.
Depending on the characteristics of any given allocation request, the page allocator will search the available zones in a specific priority order.
For the curious, <code>/proc/zoneinfo</code> gives a lot of information about the zones in use on any given system.
Within a zone, memory is grouped into ''page blocks'', each of which can be marked with a ''migration type'' - {{The Linux Kernel/id|migratetype}} describing how the block should be allocated.
⚲ API:
: cat /proc/buddyinfo
: {{The Linux Kernel/include|linux/gfp.h}}
: {{The Linux Kernel/include|linux/mmzone.h}}
: {{The Linux Kernel/id|alloc_page}}
: {{The Linux Kernel/id|devm_get_free_pages}} - {{w|RAII}} function, ↯ hierarchy of it:
:: {{The Linux Kernel/id|__get_free_pages}}
::: {{The Linux Kernel/id|alloc_pages}}
:::: {{The Linux Kernel/id|alloc_pages_node}}
::::: {{The Linux Kernel/id|__alloc_pages}} - the 'heart' of the zoned buddy allocator
⚙️ Internals:
: {{The Linux Kernel/id|build_all_zonelists}} is called from {{The Linux Kernel/id|start_kernel}}, ↯ call hierarchy:
:: {{The Linux Kernel/id|build_all_zonelists_init}}
::: {{The Linux Kernel/id|__build_all_zonelists}}
:::: {{The Linux Kernel/id|build_zonelists}}
: {{The Linux Kernel/id|__alloc_pages}} - the 'heart' of the zoned buddy allocator
: struct {{The Linux Kernel/id|zone}}
:: {{The Linux Kernel/id|free_area}}
: {{The Linux Kernel/source|mm/mmzone.c}} – memory zone helpers
: {{The Linux Kernel/source|mm/page_alloc.c}} – buddy page allocator
📚 References:
: {{The Linux Kernel/doc|Get Free Page flags|core-api/memory-allocation.html}}
: {{w|Buddy memory allocation}}
: {{w|Page replacement algorithm}}
=== OOM killer ===
The {{w|Out of memory|Out-Of-Memory}} killer is invoked when the kernel cannot satisfy a memory allocation and all reclaim attempts have failed.
It selects a process to kill based on a badness score to free memory and keep the system running.
⚲ API:
: /proc/$pid/oom_score – current badness score
: /proc/$pid/oom_score_adj – adjust score (-1000 to 1000)
: /proc/$pid/oom_adj – deprecated, use oom_score_adj
: /proc/sys/vm/panic_on_oom
⚙️ Internals:
: {{The Linux Kernel/source|mm/oom_kill.c}} – out-of-memory killer
: {{The Linux Kernel/id|out_of_memory}} – main entry point
: {{The Linux Kernel/id|oom_badness}} – calculates badness score
: {{The Linux Kernel/id|oom_kill_process}}
📚 References:
: {{The Linux Kernel/doc|OOM|admin-guide/sysctl/vm.html}}
=== Memory cgroup controller ===
The memory cgroup controller limits and accounts memory usage per group of processes.
It can set hard and soft limits, trigger per-cgroup OOM, and track swap usage.
⚲ API:
: memory.max – hard memory limit
: memory.high – throttling threshold
: memory.current – current usage
: memory.swap.max – swap limit
: See [[../System/CGroup v2#Memory|CGroup v2 Memory controller]] for full interface
⚙️ Internals:
: {{The Linux Kernel/source|mm/memcontrol.c}} – memory cgroup controller
: {{The Linux Kernel/id|mem_cgroup}} – main structure
: {{The Linux Kernel/id|mem_cgroup_charge}}
: {{The Linux Kernel/id|mem_cgroup_oom}}
📚 References:
: {{The Linux Kernel/doc|Memory Resource Controller|admin-guide/cgroup-v2.html#memory}}
=== DAMON ===
Data Access MONitor (since 5.15) provides kernel-level data access pattern monitoring.
It can be used for memory management optimization and profiling.
⚲ API:
: /sys/kernel/mm/damon/
: {{The Linux Kernel/include|linux/damon.h}}
⚙️ Internals:
: {{The Linux Kernel/source|mm/damon}} – DAMON core and operation schemes
📖 References:
: {{The Linux Kernel/doc|DAMON|mm/damon}}
<hr>
📚 References for logical memory:
: {{The Linux Kernel/doc|Memory Allocation Guide|core-api/memory-allocation.html}}
: {{The Linux Kernel/doc|Selecting memory allocator|core-api/memory-allocation.html#selecting-memory-allocator}}
== Physical memory ==
=== Memory Layout ===
A 32-bit processor can address a maximum of 4GB of memory.
Linux kernels split the 4GB address space between user processes and the kernel; under the most common configuration, the first 3GB of the 32-bit range are given over to user space, and the kernel gets the final 1GB starting at 0xc0000000.
Sharing the address space gives a number of performance benefits; in particular, the hardware's address translation buffer can be shared between the kernel and user space.
In '''x86-64''' - {{The Linux Kernel/id|CONFIG_X86_64}} with 4-level page tables ({{The Linux Kernel/id|CONFIG_X86_5LEVEL}}=n), only the least significant 48 bits of a virtual memory address would actually be used in address translation (page table lookup).
The remainder bits 48 through 63 of any virtual address must be copies of bit 47, or the processor will raise an exception.
Addresses complying with this rule are referred to as "canonical form." Canonical form addresses run from 0 through 00007FFF'FFFFFFFF, and from FFFF8000'00000000 through FFFFFFFF'FFFFFFFF, for a total of 256 TB of usable {{w|virtual address space}}.
This is still approximately 64,000 times the virtual address space on 32-bit machines.
Linux takes the higher-addressed half of the address space for itself (kernel space) and leaves the lower-addressed half for user space.
The "canonical address" design has, in effect, two memory halves: the lower half starts at 00000000'00000000 and "grows upwards" as more virtual address bits become available, while the higher half is "docked" to the top of the address space and grows downwards.
{| class="wikitable sortable"
|+
!Start addr
!class=unsortable|Offset
!End addr
!class=unsortable|Size
!class=unsortable|VM area description
|-
| <code><small>0000'</small>'''8'''<small>000'0000'0000</small></code>
| +128 TB
| <code><small>ffff'7fff'ffff'ffff</small></code>
|
| ... huge, almost 64 bits wide hole of non-canonical virtual memory addresses up to the -128 TB starting offset of kernel mappings.
|-
| <code><small>0000'0000'0000'0000</small></code>
|0
| <code><small>0000'7fff'ffff'ffff</small></code>
|128 TB=2<sup>47</sup>
|user-space virtual memory, different per mm
|-
| <code><small>ffff'ffff'ffe0'0000</small></code>
| -2 MB
| <code><small>ffff'ffff'ffff'ffff</small></code>
| 2 MB=2<sup>21</sup>
|... unused hole
|-
| <code><small>ffff'ffff'ff60'0000</small></code>
| -10 MB
| <code><small>ffff'ffff'ff60'0fff</small></code>
| 4 kB=2<sup>12</sup>
| {{The Linux Kernel/id|VSYSCALL_ADDR}} - legacy vsyscall ABI
|-
| <code><small>ffff'ffff'8000'0000</small></code>
| -2 GB
| <code><small>ffff'ffff'9fff'ffff</small></code>
| 512 MB=2<sup>29</sup>
| kernel text mapping, mapped to physical address 0
|-
|
|
|
|
|
|-
| <code><small>ffff'8880'0000'0000</small></code>
| -119.5 TB
| <code><small>ffff'c87f'ffff'ffff</small></code>
| 64 TB
| {{The Linux Kernel/id|page_offset_base}} = {{The Linux Kernel/id|__PAGE_OFFSET_BASE_L4}} - direct mapping of all physical memory
|-
|
|
|
|
|
|-
| <code><small>ffff'8000'0000'0000</small></code>
| -128 TB
| <code><small>ffff'87ff'ffff'ffff</small></code>
| 8 TB
| ... guard hole, also reserved for hypervisor
|}
[[File:Linux_Virtual_Memory_Layout_64bit.svg|border|center|x86-64 memory layout]]
⚲ API:
: {{The Linux Kernel/man|8|setarch}} --addr-no-randomize cat /proc/self/maps
⚙️ Internals:
: {{The Linux Kernel/source|arch/x86/include/asm/page_64_types.h}} – x86-64 page type definitions
: {{The Linux Kernel/source|arch/x86/mm/init_64.c}} – x86-64 memory initialization
📚 References:
: {{The Linux Kernel/doc|X86_64 memory map|x86/x86_64/mm.html}}
: {{w|Address_space_layout_randomization#Linux|Address space layout randomization}}
=== Pages ===
In Linux, different architectures have different page sizes.
The original —for x86 architecture— and still most commonly used page size is 4096 bytes (4 KB).
The page size (in bytes) of the current architecture is defined by the <code>PAGE_SIZE</code> macro included in {{The Linux Kernel/source|arch/x86/include/asm/page_types.h}} header file.
User space programs can get this value using the {{The Linux Kernel/man|2|getpagesize}} library function.
Another related macro is <code>PAGE_SHIFT</code>, that contains the number of bits to shift an address to get its page number —12 bits for 4K pages.
One of the most fundamental kernel data structures relating memory-management is <code>struct page</code>.
The kernel keeps track of the status of every page of physical memory present in the system using variables of this type.
There are millions of pages in a modern system, and therefore there are millions of these structures in memory.
The full definition of <code>struct page</code> can be found in {{The Linux Kernel/include|linux/mm_types.h}}.
: [https://0xax.gitbooks.io/linux-insides/content/Theory/linux-theory-1.html Pages]
=== NUMA ===
In {{w|Non-uniform memory access}} systems, physical memory is divided into nodes, each local to a group of CPUs.
Accessing local memory is faster than remote memory, so the kernel tries to allocate memory from the node closest to the requesting CPU.
Each node contains its own set of zones (DMA, Normal, etc.).
⚲ API:
: {{The Linux Kernel/man|8|numactl}} – controls NUMA policy for processes or shared memory
: {{The Linux Kernel/man|2|set_mempolicy}} – set default NUMA memory policy
: {{The Linux Kernel/man|2|mbind}} – set NUMA memory policy for a memory range
: {{The Linux Kernel/man|2|get_mempolicy}}
: {{The Linux Kernel/man|2|migrate_pages}}
: {{The Linux Kernel/man|2|move_pages}}
: cat /proc/buddyinfo
: /sys/devices/system/node/
: {{The Linux Kernel/include|linux/topology.h}} – {{The Linux Kernel/id|cpu_to_node}}, {{The Linux Kernel/id|numa_node_id}}
: {{The Linux Kernel/include|linux/mempolicy.h}}
⚙️ Internals:
: {{The Linux Kernel/id|CONFIG_NUMA}}
: {{The Linux Kernel/id|pglist_data}} (pg_data_t) – per-node memory descriptor, contains zones @ {{The Linux Kernel/include|linux/mmzone.h}}
: {{The Linux Kernel/id|numa_node_id}} – returns NUMA node of current CPU
: {{The Linux Kernel/source|mm/numa.c}} – NUMA node data allocation during boot
: {{The Linux Kernel/source|mm/mempolicy.c}} – NUMA memory allocation policies
: {{The Linux Kernel/source|mm/migrate.c}} – page migration between nodes
: {{The Linux Kernel/source|mm/memory-tiers.c}} – memory tiering (DRAM, PMEM, HBM)
: {{The Linux Kernel/source|mm/numa_memblks.c}} – memory block and distance setup
📚 References:
: {{The Linux Kernel/doc|NUMA Memory Policy|admin-guide/mm/numa_memory_policy.html}}
: {{w|Non-uniform memory access}}
: See also [[../Multitasking/CPU#SMP|SMP section]] for NUMA topology and CPU aspects
=== Huge pages ===
{{w|Huge pages}} use larger page sizes (2 MB or 1 GB on x86-64) to reduce TLB misses and page table overhead for memory-intensive workloads.
==== HugeTLB ====
HugeTLB provides explicitly allocated persistent huge pages, reserved at boot or runtime.
⚲ API:
: cat /proc/meminfo | grep Huge
: cat /proc/sys/vm/nr_hugepages
: {{The Linux Kernel/man|2|mmap}} with MAP_HUGETLB
: mount -t hugetlbfs nodev /dev/hugepages
: {{The Linux Kernel/include|linux/hugetlb.h}}
⚙️ Internals:
: {{The Linux Kernel/source|mm/hugetlb.c}} – HugeTLB huge page allocator
: {{The Linux Kernel/id|hugetlb_init}}
: {{The Linux Kernel/id|hugetlb_fault}}
📚 References:
: {{The Linux Kernel/doc|HugeTLB Pages|admin-guide/mm/hugetlbpage.html}}
==== Transparent Huge Pages ====
THP automatically promotes regular pages to huge pages without application changes (since 2.6.38).
⚲ API:
: cat /sys/kernel/mm/transparent_hugepage/enabled
: {{The Linux Kernel/man|2|madvise}} with MADV_HUGEPAGE
: {{The Linux Kernel/include|linux/huge_mm.h}}
⚙️ Internals:
: {{The Linux Kernel/source|mm/huge_memory.c}} – transparent huge page support
: {{The Linux Kernel/id|khugepaged}} – daemon that collapses pages into huge pages
: {{The Linux Kernel/source|mm/khugepaged.c}} – THP collapse daemon
📚 References:
: {{The Linux Kernel/doc|Transparent Hugepage Support|admin-guide/mm/transhuge.html}}
: {{The Linux Kernel/doc|Concepts overview|admin-guide/mm/concepts.html}}
=== CMA ===
The Contiguous Memory Allocator (CMA) reserves a region of memory at boot for large physically contiguous allocations needed by DMA devices, GPUs and multimedia hardware (since 3.5).
Unused CMA memory is available to the page allocator for movable pages.
⚲ API:
: cat /proc/meminfo | grep Cma
: {{The Linux Kernel/include|linux/cma.h}}
: {{The Linux Kernel/id|dma_alloc_contiguous}}
: {{The Linux Kernel/id|CONFIG_CMA}}
⚙️ Internals:
: {{The Linux Kernel/source|mm/cma.c}} – contiguous memory allocator core
: {{The Linux Kernel/source|kernel/dma/contiguous.c}} – DMA-CMA integration
: {{The Linux Kernel/source|mm/cma_debug.c}} – debugfs interface
: {{The Linux Kernel/id|cma_alloc}}
: {{The Linux Kernel/id|cma_release}}
📚 References:
: {{The Linux Kernel/doc|Contiguous Memory Allocator|mm/cma.html}}
=== DMA ===
⚲ API:
: {{The Linux Kernel/id|dma_addr_t}} - bus address
: {{The Linux Kernel/include|linux/dma-mapping.h}}
: {{The Linux Kernel/id|dma_alloc_coherent}}
: {{The Linux Kernel/id|dma_alloc_pages}} {{The Linux Kernel/id|pin_user_pages}}
: {{The Linux Kernel/id|dma_map_single}} {{The Linux Kernel/id|dma_data_direction}}
: {{The Linux Kernel/id|dma_map_sg}} {{The Linux Kernel/id|scatterlist}}
: {{The Linux Kernel/id|dma_set_mask}} {{The Linux Kernel/id|dma_set_coherent_mask}} {{The Linux Kernel/id|dma_set_mask_and_coherent}}
: {{The Linux Kernel/id|dma_sync_single_for_cpu}} {{The Linux Kernel/id|dma_sync_single_for_device}}
: {{The Linux Kernel/include|linux/gfp.h}}
: {{The Linux Kernel/include|linux/dmapool.h}}
: {{The Linux Kernel/id|dma_pool_create}}
: DMA-able memory: {{The Linux Kernel/id|__get_free_page}} {{The Linux Kernel/id|kmalloc}} {{The Linux Kernel/id|kmem_cache_alloc}}
: {{The Linux Kernel/id|get_user_pages}} pins user pages in memory,
👁 Examples:
: {{The Linux Kernel/source|samples/kfifo/dma-example.c}}
: {{The Linux Kernel/id|e1000_alloc_rx_buffers}}, {{The Linux Kernel/id|e1000_alloc_ring_dma}}
⚙️ Internals:
: {{The Linux Kernel/source|kernel/dma}} – DMA subsystem core
: {{The Linux Kernel/source|mm/dmapool.c}} – small DMA-coherent allocations
: {{The Linux Kernel/source|mm/gup.c}} – get/pin user pages
: {{The Linux Kernel/source|kernel/dma/mapping.c}} – arch-independent DMA mapping
📚 References:
: {{The Linux Kernel/doc|Dynamic DMA mapping Guide|core-api/dma-api-howto.html}}
: {{The Linux Kernel/doc|Dynamic DMA mapping using the generic device|core-api/dma-api.html}}
: [https://lwn.net/Articles/787636/ LWM: get_user_pages, pinned pages, and DAX]
: {{The Linux Kernel/doc|pin_user_pages() and related calls|core-api/pin_user_pages.html}}
💾 ''Historical:''
: [http://lwn.net/images/pdf/LDD3/ch15.pdf LDD3:Memory Mapping and DMA]
: http://www.xml.com/ldd/chapter/book/ch13.html mmap and DMA
: SAC – Single Address Cycle, 32-bit DMA addressing (up to 4 GB)
: DAC – Dual Address Cycle, 64-bit DMA addressing
==== DMAEngine ====
: {{The Linux Kernel/include|linux/dmaengine.h}}
: {{The Linux Kernel/source|drivers/dma}} – DMA engine drivers
: {{The Linux Kernel/doc|driver-api/dmaengine}}
: https://bootlin.com/pub/conferences/2015/elc/ripard-dmaengine/
== ... ==
📚 References for the article:
: {{The Linux Kernel/doc|Linux Memory Management Documentation|mm/}}
: [https://www.ryadel.com/en/linux-memory-management-mechanism-analysis-kernel/ Analysis of Linux Memory Management Mechanism]
: [https://0xax.gitbooks.io/linux-insides/content/MM/ Memory management]
: http://linux-mm.org/LinuxMM
: http://www.tldp.org/HOWTO/KernelAnalysis-HOWTO-7.html
: [https://lwn.net/Kernel/Index/#Memory_management Memory management, lwn]
{{BookCat}}
ee4g483xafvkkujzq9dvqepmzhi7u7s
The Linux Kernel/Storage
0
226984
4640215
4632258
2026-06-13T17:19:33Z
Conan
3188
add brief descriptions to source file references
4640215
wikitext
text/x-wiki
{{DISPLAYTITLE:Storage functionality}}
{|style="width: 25%; float: right; text-align:center;border-spacing: 0; color:black; margin:auto;" cellpadding=5pc
! bgcolor=#cef | storage
|-style=""
| bgcolor=#aef | [[#Files_and_directories|files & directories access]]
|-style=""
| bgcolor=#8df | [[#Virtual File System|Virtual File System]]
|-style=""
| bgcolor=#8ce |[[#Page_cache|page cache]]
|-style=""
| bgcolor=#7ac |[[#Logical file systems|logical file systems]]
|-style=""
| bgcolor=#69a |[[#Block_device_layer|block devices]]
|-style=""
| bgcolor=#689 |[[#Storage_drivers|storage drivers]]
|}
Storage functionality provides access to various storage devices via files and directories of files.
Most of the storage is persistent as flash memory, SSD and legacy hard disks.
Another kind of storage is temporary.
The ''file system'' provides an abstraction to organize the information into separate pieces of data (called ''files'') identified by a unique name.
Each file system type defines their own structures and logic rules used to manage these groups of information and their names.
Linux supports a plethora or different file system types, local and remote, native and from other operating systems.
To accommodate such disparity the kernel defines a common top layer, the ''virtual file system'' (VFS) layer.
[[File:The Linux Storage Stack Diagram.svg|Summary of the Linux kernel's storage stack|right|800x800px]]
== Files and directories ==
Four basic files access system calls:
: {{The Linux Kernel/man|2|open}} ↪ {{The Linux Kernel/id|do_sys_open}} - opens a file by name and returns a {{w|file descriptor}} (<big>fd</big>). Below functions operates on a fd.
: {{The Linux Kernel/man|2|close}} ↪ {{The Linux Kernel/id|close_fd}}
: {{The Linux Kernel/man|2|read}} ↪ {{The Linux Kernel/id|ksys_read}}
: {{The Linux Kernel/man|2|write}} ↪ {{The Linux Kernel/id|ksys_write}}
File in Linux and UNIX is not only physical file on persistent storage.
File interface is used to access pipes, sockets and other pseudo-files.
🔧 TODO
: {{The Linux Kernel/man|2|readlink}} , {{The Linux Kernel/man|2|symlink}} , {{The Linux Kernel/man|2|link}}
: {{The Linux Kernel/man|3|readdir}} ⇾ {{The Linux Kernel/man|2|getdents}}
: {{The Linux Kernel/man|7|path_resolution}}
: {{The Linux Kernel/man|2|fcntl}} – manipulate file descriptor
⚙️ Files and directories internals
: {{The Linux Kernel/include|linux/fs.h}}
: {{The Linux Kernel/source|fs/open.c}} – open, close and related file operations
: {{The Linux Kernel/source|fs/namei.c}} – pathname lookup and resolution
: {{The Linux Kernel/source|fs/read_write.c}} – read, write and lseek operations
📚 Files and directories references
: [https://www.gnu.org/software/libc/manual/html_node/I_002fO-Overview.html Input/Output, The GNU C Library]
: [https://tldp.org/LDP/lki/lki-3.html VFS in Linux Kernel 2.4 Internals]
: {{w|Unix file types}}
=== File locks ===
File locks are mechanisms that allow processes to coordinate access to shared files.
These locks help prevent conflicts when multiple processes or threads attempt to access the same file simultaneously.
⚲ API
: {{The Linux Kernel/man|8|lslocks}} – list local system locks
: {{The Linux Kernel/man|3|lockf}} – apply, test or remove a POSIX lock on an open file
: {{The Linux Kernel/man|2|flock}} – apply or remove an advisory BSD lock on an open file
: {{The Linux Kernel/man|2|fcntl}} – manipulate file descriptor
:: {{The Linux Kernel/id|F_SETLK}} – advisory record lock
:: {{The Linux Kernel/id|F_OFD_SETLK}} – Open File Description Lock
:: {{The Linux Kernel/id|flock}} – lock parameters
: ⚠️ Avoid mixing flock and fcntl locks on the same file as they don’t interact with each other.
⚙️ Internals
: {{The Linux Kernel/include|linux/filelock.h}}
: {{The Linux Kernel/source|fs/locks.c}} – POSIX and flock file locking
: {{The Linux Kernel/include|trace/events/filelock.h}}
💾 ''Historical: [https://elixir.bootlin.com/linux/v5.14/K/ident/CONFIG_MANDATORY_FILE_LOCKING Mandatory locking] feature is no longer supported at all in Linux 5.15 and above because the implementation is unreliable.''
=== Asynchronous I/O ===
🚀 advanced features
'''AIO'''
: https://lwn.net/Kernel/Index/#Asynchronous_IO
: {{The Linux Kernel/man|2|io_submit}} {{The Linux Kernel/man|2|io_setup}} {{The Linux Kernel/man|2|io_cancel}} {{The Linux Kernel/man|2|io_destroy}} {{The Linux Kernel/man|2|io_getevents}}
: {{The Linux Kernel/include|uapi/linux/aio_abi.h}}
: {{The Linux Kernel/source|fs/aio.c}} – async I/O implementation
: {{The Linux Kernel/ltp|kernel|io/aio}}
'''{{w|io_uring}}'''
🌱 ''New since release 5.1 in May 2019''
: https://blogs.oracle.com/linux/an-introduction-to-the-io_uring-asynchronous-io-framework
: https://thenewstack.io/how-io_uring-and-ebpf-will-revolutionize-programming-in-linux/
: {{The Linux Kernel/id|io_uring_enter}} {{The Linux Kernel/id|io_uring_setup}} {{The Linux Kernel/id|io_uring_register}}
: {{The Linux Kernel/include|linux/io_uring.h}}
: {{The Linux Kernel/include|uapi/linux/io_uring.h}}
: {{The Linux Kernel/source|fs/.c}}
: https://lwn.net/Kernel/Index/#io_uring
:: [https://lwn.net/Articles/779472/ io_uring, SCM_RIGHTS, and reference-count cycles]
:: [https://lwn.net/Articles/810414/ The rapid growth of io_uring]
:: [https://lwn.net/Articles/815491/ Automatic buffer selection for io_uring]
:: [https://lwn.net/Articles/826053/ Operations restrictions for io_uring]
:: [https://lwn.net/Articles/779472/ io_uring, SCM_RIGHTS, and reference-count cycles]
:: [https://lwn.net/Articles/803070/ Redesigned workqueues for io_uring]
: {{The Linux Kernel/ltp|kernel/syscalls|io_uring}}
=== {{w|Asynchronous_I/O#Forms|Non-blocking I/O}} ===
Allow non-blocking access to multiple file descriptors.
'''Efficient event polling {{w|epoll}}'''
⚲ API:
: {{The Linux Kernel/include|uapi/linux/eventpoll.h}}
: {{The Linux Kernel/man|7|epoll}}
: {{The Linux Kernel/man|2|epoll_create}} ↪ {{The Linux Kernel/id|do_epoll_create}}
: {{The Linux Kernel/man|2|epoll_ctl}} ↪ {{The Linux Kernel/id|do_epoll_ctl}}
: {{The Linux Kernel/man|2|epoll_wait}} ↪ {{The Linux Kernel/id|do_epoll_wait}}
⚙️ Internals:
: {{The Linux Kernel/source|fs/eventpoll.c}} – efficient event polling (epoll)
'''{{w|Select (Unix)|select}} and {{w|poll (Unix)|poll}}'''
💾 ''Historical: Select and poll system calls are derived from UNIX''
⚲ API:
: {{The Linux Kernel/man|2|poll}} ↪ {{The Linux Kernel/id|do_sys_poll}}
: {{The Linux Kernel/man|2|select}} ↪ {{The Linux Kernel/id|kern_select}}
⚙️ Internals:
: {{The Linux Kernel/source|fs/select.c}} – select and poll implementation
=== Vectored I/O ===
🚀 advanced feature
{{w|Vectored I/O}}, also known as scatter/gather I/O, is a method of input and output by which a single procedure call sequentially reads data from multiple buffers and writes it to a single data stream, or reads data from a data stream and writes it to multiple buffers, as defined in a vector of buffers. Scatter/gather refers to the process of gathering data from, or scattering data into, the given set of buffers. Vectored I/O can operate synchronously or asynchronously. The main reasons for using vectored I/O are efficiency and convenience.
⚲ API:
: {{The Linux Kernel/include|uapi/linux/uio.h}}
: {{The Linux Kernel/include|linux/uio.h}}
: {{The Linux Kernel/id|iovec}}
: {{The Linux Kernel/man|2|readv}} ↪ {{The Linux Kernel/id|do_readv}}
: {{The Linux Kernel/man|2|writev}} ↪ {{The Linux Kernel/id|do_writev}}
⚙️ Internals:
: {{The Linux Kernel/id|iov_iter}}
: {{The Linux Kernel/id|do_readv}} ↯ call hierarchy:
:: {{The Linux Kernel/id|vfs_readv}}
::: {{The Linux Kernel/id|import_iovec}}
::: {{The Linux Kernel/id|ext4_file_read_iter}}
: {{The Linux Kernel/source|lib/iov_iter.c}} – I/O vector iterator operations
=== ... ===
📖 References
: [https://www.gnu.org/software/libc/manual/html_node/Scatter_002dGather.html Fast Scatter-Gather I/O, The GNU C Library]
: https://lwn.net/Kernel/Index/#Vectored_IO
: https://lwn.net/Kernel/Index/#Scattergather_chaining
📚 Further reading
: https://deepwiki.com/torvalds/linux/4-filesystems
== Virtual File System ==
The {{w|virtual file system}} (VFS) is an abstract layer on top of a concrete logical file system.
The purpose of a VFS is to allow client applications to access different types of logical file systems in a uniform way.
A VFS can, for example, be used to access local and [[../Networking#Network_storage|network storage]] devices transparently without the client application noticing the difference.
It can be used to bridge the differences in Windows, classic Mac OS/macOS and Unix filesystems, so that applications can access files on local file systems of those types without having to know what type of file system they are accessing.
A VFS specifies an interface (or a "contract") between the kernel and a logical file system.
Therefore, it is easy to add support for new file system types to the kernel simply by fulfilling the contract.
🔧 TODO: {{The Linux Kernel/id|vfsmount}}, {{The Linux Kernel/id|vfs_create}}, {{The Linux Kernel/id|vfs_read}}, {{The Linux Kernel/id|vfs_write}}
📚 VFS References
: {{The Linux Kernel/doc|VFS|filesystems/#core-vfs-documentation}}
: [https://tldp.org/LDP/lki/lki-3.html VFS in Linux Kernel 2.4 Internals]
== Logical file systems ==
A {{w|file system}} (or ''filesystem'') is used to control how data is stored and retrieved.
Without a file system, information placed in a storage area would be one large body of data with no way to tell where one piece of information stops and the next begins.
By separating the data into individual pieces, and giving each piece a name, the information is easily separated and identified.
Each group of data is called a "file".
The structure and logic rules used to manage the groups of information and their names is called a "file system".
There are many different kinds of file systems.
Each one has different structure and logic, properties of speed, flexibility, security, size and more.
Some file systems have been designed to be used for specific applications.
For example, the ISO 9660 file system is designed specifically for optical discs.
File systems can be used on many different kinds of storage devices.
Each storage device uses a different kind of media.
The most common storage device in use today is a {{w|SSD}}.
Other media that was used are hard disk, magnetic tape, optical disc, and .
In some cases, the computer's main memory (RAM) is used to create a temporary file system for short-term use.
Raw storage is called a block device.
Linux supports many different file systems, but common choices for the system disk on a block device include the ext* family (such as {{w|ext2}}, {{w|ext3}} and {{w|ext4}}), {{w|XFS}}, {{w|ReiserFS}} and {{w|btrfs}}.
For raw Flash without a {{w|flash translation layer}} (FTL) or {{w|Memory Technology Device}} (MTD), there is {{w|UBIFS}}, {{w|JFFS2}}, and {{w|YAFFS}}, among others. {{w|SquashFS}} is a common compressed read-only file system.
NFS and another network FS are described further in paragraph [[../Networking#Network_storage|Network storage]].
⚲ Shell interfaces:
: cat /proc/filesystems
: ls /sys/fs/
: {{The Linux Kernel/man|8|mount}}
: {{The Linux Kernel/man|8|umount}}
: {{The Linux Kernel/man|8|findmnt}}
: {{The Linux Kernel/man|1|mountpoint}}
: {{The Linux Kernel/man|1|df}}
Infrastructure ⚲ API function {{The Linux Kernel/id|register_filesystem}} registers structs {{The Linux Kernel/id|file_system_type}} and stores them in linked list ⚙️ {{The Linux Kernel/id|file_systems}}.
Function {{The Linux Kernel/id|ext4_init_fs}} registers {{The Linux Kernel/id|ext4_fs_type}}.
Operation of ''file system opening'' is called mounting: {{The Linux Kernel/id|ext4_mount}}
⚙️ Internals:
: {{The Linux Kernel/source|fs/namespace.c}} – mount and namespace operations
:: {{The Linux Kernel/man|2|mount}}
::: {{The Linux Kernel/id|do_mount}}
: {{The Linux Kernel/include|linux/buffer_head.h}}
:: {{The Linux Kernel/id|super_block}}
:: {{The Linux Kernel/id|sb_bread}}
: {{The Linux Kernel/source|fs}} – filesystem implementations
:: {{The Linux Kernel/source|fs/ext4/ext4.h}} – ext4 on-disk format and internal structures
::: {{The Linux Kernel/id|ext4_sb_bread}}
📚 References:
: {{The Linux Kernel/doc|filesystems|filesystems/#filesystems}}
: Kernel wikis: [https://ext4.wiki.kernel.org/ EXT4], [https://btrfs.wiki.kernel.org/ btrfs], [https://reiser4.wiki.kernel.org/ Reiser4], [https://raid.wiki.kernel.org/ RAID], [https://xfs.wiki.kernel.org/ XFS]
== Page cache ==
A page cache or disk cache is a transparent cache for the memory pages originating from a secondary storage device such as a hard disk drive.
The operating system keeps a page cache in otherwise unused portions of the main memory, resulting in quicker access to the contents of cached pages and overall performance improvements.
The page cache is implemented by the kernel, and is mostly transparent to applications.
Usually, all physical memory not directly allocated to applications is used by the operating system for the page cache.
Since the memory would otherwise be idle and is easily reclaimed when applications request it, there is generally no associated performance penalty and the operating system might even report such memory as "free" or "available".
The page cache also aids in writing to a disk.
Pages in the main memory that have been modified during writing data to disk are marked as "dirty" and have to be flushed to disk before they can be freed.
When a file write occurs, the page backing the particular block is looked up.
If it is already found in the page cache, the write is done to that page in the main memory.
Otherwise, when the write perfectly falls on page size boundaries, the page is not even read from disk, but allocated and immediately marked dirty.
Otherwise, the page(s) are fetched from disk and requested modifications are done.
Not all cached pages can be written to as program code is often mapped as read-only or copy-on-write; in the latter case, modifications to code will only be visible to the process itself and will not be written to disk.
⚲ API:
: {{The Linux Kernel/man|2|fsync}} ↪ {{The Linux Kernel/id|do_fsync}}
: {{The Linux Kernel/man|2|sync_file_range}} ↪ {{The Linux Kernel/id|ksys_sync_file_range}}
: {{The Linux Kernel/man|2|syncfs}} ↪ {{The Linux Kernel/id|sync_filesystem}}
📚 References
: {{The Linux Kernel/id|wb_workfn}}
: {{The Linux Kernel/id|address_space}}
: {{The Linux Kernel/id|do_writepages}}
: {{The Linux Kernel/include|linux/writeback.h}}
: {{The Linux Kernel/source|mm/page-writeback.c}} – dirty page writeback throttling
: {{w|Page cache}}
More
: [https://lwn.net/Articles/717953/ The future of DAX ] - direct access bypassing the cache
: [https://tldp.org/LDP/lki/lki-4.html Linux Page Cache in Linux Kernel 2.4 Internals]
== Zero-copy ==
🚀 advanced features
Writing data to storage and reading are very resource consuming operations.
Copying memory is time and CPU consuming operation too.
Set of methods to avoid copying operations is called {{w|zero-copy}}.
The goal of zero-copy methods is a fast and efficient data transfer within the system.
The first and simplest method is {{w|Pipeline (Unix)|Pipeline}}, invoked by operator "|" in shells.
Instead of writing data into temporary file and reading, the data is passed efficiently via a pipe bypassing a storage.
The second method is {{w|Tee_(command)|tee}}.
⚲ Syscalls:
: {{The Linux Kernel/man|2|pipe2}}
: {{The Linux Kernel/man|2|tee}}, {{The Linux Kernel/man|1|tee}}
: {{The Linux Kernel/man|2|sendfile}}
: {{The Linux Kernel/man|2|copy_file_range}}
: {{The Linux Kernel/man|2|splice}}
: {{The Linux Kernel/man|2|vmsplice}}
⚲ API and ⚙️ Internals:
: '''{{The Linux Kernel/man|2|pipe2}}''' ↪ {{The Linux Kernel/id|do_pipe2}} - creates pipe
:: uses {{The Linux Kernel/id|pipe_fs_type}}, {{The Linux Kernel/id|pipefifo_fops}}
: '''{{The Linux Kernel/man|2|tee}}''' ↪ {{The Linux Kernel/id|do_tee}}- duplicates pipe content
:: calls {{The Linux Kernel/id|link_pipe}}
: '''{{The Linux Kernel/man|2|sendfile}}''' ↪ {{The Linux Kernel/id|do_sendfile}} - transfers data between file descriptors, the output can be a socket. Used in [[../Networking#Network_storage|network storage]] and servers.
:: Calls: {{The Linux Kernel/id|do_splice_direct}}, {{The Linux Kernel/id|splice_direct_to_actor}}
: '''{{The Linux Kernel/man|2|copy_file_range}}''' ↪ {{The Linux Kernel/id|vfs_copy_file_range}} - transfers data between files
:: calls custom {{The Linux Kernel/id|remap_file_range}} like {{The Linux Kernel/id|nfs42_remap_file_range}}
:: or custom {{The Linux Kernel/id|copy_file_range}} like {{The Linux Kernel/id|fuse_copy_file_range}}
:: or {{The Linux Kernel/id|do_splice_direct}}
: '''{{The Linux Kernel/man|2|splice}}''' ↪ {{The Linux Kernel/id|do_splice}} - splices data to/from a pipe.
:: There are three cases regarding which end being a pipe:
:# {{The Linux Kernel/id|do_splice_from}} - only input is a pipe
:#: Calls {{The Linux Kernel/id|iter_file_splice_write}} or custom {{The Linux Kernel/id|splice_write}}
:#: or {{The Linux Kernel/id|default_file_splice_write}}: {{The Linux Kernel/id|write_pipe_buf}}, {{The Linux_Kernel/id|splice_from_pipe}}, {{The Linux Kernel/id|__splice_from_pipe}}
:# {{The Linux Kernel/id|do_splice_to}} - only output is a pipe.
:#: Calls {{The Linux Kernel/id|generic_file_splice_read}} or custom {{The Linux Kernel/id|splice_read}}
:#: or {{The Linux Kernel/id|default_file_splice_read}}: {{The Linux Kernel/id|kernel_readv}}
:# {{The Linux Kernel/id|splice_pipe_to_pipe}} - both are pipes
: '''{{The Linux Kernel/man|2|vmsplice}}''' ↪
:: {{The Linux Kernel/id|vmsplice_to_pipe}} – splices user pages to a pipe
:: {{The Linux Kernel/id|vmsplice_to_user}} – splices a pipe to user pages
⚲ API
: {{The Linux Kernel/include|linux/splice.h}}
⚙️ Internals:
: {{The Linux Kernel/source|fs/pipe.c}} – pipe and FIFO implementation
: {{The Linux Kernel/source|fs/splice.c}} – splice data transfer between file descriptors
🔧 TODO:
{{The Linux Kernel/id|zerocopy_sg_from_iter}} builds a zerocopy skb datagram from an iov_iter. Used in {{The Linux Kernel/id|tap_get_user}} and {{The Linux Kernel/id|tun_get_user}}.
{{The Linux Kernel/id|skb_zerocopy}}
{{The Linux Kernel/id|skb_zerocopy_iter_dgram}}
📚 References
: {{The Linux Kernel/man|7|pipe}}
: {{The Linux Kernel/man|7|fifo}}
: {{The Linux Kernel/doc|splice and pipes|filesystems/splice.html}}
:: {{The Linux Kernel/doc|Pipes API|filesystems/splice.html#pipes-api}}
: {{w|splice (system call)}}
: LTP: {{The Linux Kernel/ltp|kernel/syscalls|pipe}}, {{The Linux Kernel/ltp|kernel/syscalls|pipe2}}, {{The Linux Kernel/ltp|kernel/syscalls|tee}}, {{The Linux Kernel/ltp|kernel/syscalls|sendfile}}, {{The Linux Kernel/ltp|kernel/syscalls|copy_file_range}}, {{The Linux Kernel/ltp|kernel/syscalls|splice}}, {{The Linux Kernel/ltp|kernel/syscalls|vmsplice}}
== Block device layer ==
The block device layer in Linux provides an abstraction for accessing storage devices,
such as and USB drives, by presenting them as a series of fixed-size blocks.
It sits between the hardware and the file system,
allowing applications and file systems to perform read and write operations efficiently
without needing to know the specifics of the underlying hardware.
Key components include block drivers, the I/O scheduler,
and buffer management, which work together to handle requests,
optimize access patterns, and ensure data integrity.
This layer supports essential features like caching, partition management,
and queueing mechanisms to balance performance and reliability.
⚲ Interfaces:
: {{The Linux Kernel/include|linux/genhd.h}}
: {{The Linux Kernel/include|linux/blk_types.h}}
:: {{The Linux Kernel/id|bio}} – main unit of I/O for the block layer and lower layers
:: {{The Linux Kernel/id|req_op}} – operations common to the bio and request structures
: {{The Linux Kernel/include|linux/bio.h}}
: {{The Linux Kernel/id|block_device}}
:: {{The Linux Kernel/id|block_size}}
: {{The Linux Kernel/id|alloc_disk_node}} allocates {{The Linux Kernel/id|gendisk}}
: {{The Linux Kernel/id|add_disk}}
:: {{The Linux Kernel/id|device_add_disk}}
: {{The Linux Kernel/id|block_device_operations}}
: {{The Linux Kernel/include|linux/blkdev.h}}
:: {{The Linux Kernel/id|gendisk}}
::: {{The Linux Kernel/id|dev_to_disk}}, {{The Linux Kernel/id|disk_to_dev}}
:: {{The Linux Kernel/id|block_class}} – block devices Driver Model class
:: {{The Linux Kernel/id|register_blkdev}}
:: {{The Linux Kernel/id|request}}
:: {{The Linux Kernel/id|request_queue}}
⚙️ Internals.
: {{The Linux Kernel/source|block}} – block layer core
: {{The Linux Kernel/id|block_class}}
👁 Examples:
: {{The Linux Kernel/source|drivers/block/brd.c}} - small RAM backed block device driver
: {{The Linux Kernel/source|drivers/block/null_blk}} – null block test device
=== Device mapper ===
The ''device mapper'' is a framework provided by the kernel for mapping physical block devices onto higher-level "virtual block devices".
It forms the foundation of LVM2, software RAIDs and dm-crypt disk encryption, and offers additional features such as file system snapshots.
Device mapper works by passing data from a virtual block device, which is provided by the device mapper itself, to another block device.
Data can be also modified in transition, which is performed, for example, in the case of device mapper providing disk encryption.
User space applications that need to create new mapped devices talk to the device mapper via the <code>libdevmapper.so</code> shared library, which in turn issues ioctls to the <code>/dev/mapper/control</code> device node.
Functions provided by the device mapper include linear, striped and error ''mappings,'' as well as crypt and multipath ''targets.''
For example, two disks may be concatenated into one logical volume with a pair of ''linear'' mappings, one for each disk.
As another example, ''crypt'' target encrypts the data passing through the specified device, by using the Linux kernel's Crypto API.
The following mapping targets are available:
: ''cache'' - allows the creation of hybrid volumes, by using solid-state drives (SSDs) as caches for hard disk drives (HDDs)
: ''crypt'' - provides data encryption, by using the Linux kernel's Crypto API
: ''delay'' - delays reads and/or writes to different devices (used for testing)
: ''era'' - behaves in a way similar to the linear target, while it keeps track of blocks that were written to within a user-defined period of time
: ''error'' - simulates I/O errors for all mapped blocks (used for testing)
: ''flakey'' - simulates periodic unreliable behaviour (used for testing)
: ''linear'' - maps a continuous range of blocks onto another block device
: ''mirror'' - maps a mirrored logical device, while providing data redundancy
: ''multipath'' - supports the mapping of multipathed devices, through usage of their path groups
: ''raid'' - offers an interface to the Linux kernel's software RAID driver (md)
: ''snapshot'' and ''snapshot-origin'' - used for creation of LVM snapshots, as part of the underlining copy-on-write scheme
: ''striped'' - strips the data across physical devices, with the number of stripes and the striping chunk size as parameters
: ''zero'' - an equivalent of <code>/dev/zero</code>, all reads return blocks of zeros, and writes are discarded
📚 References
: {{w|Device mapper}}
: {{The Linux Kernel/doc|Device mapper|admin-guide/device-mapper}}
: {{The Linux Kernel/include|linux/device-mapper.h}}
: {{The Linux Kernel/source|drivers/md}} – device mapper and software RAID
: https://lwn.net/Kernel/Index/#Device_mapper
=== Multi-Queue Block IO Queueing ===
The blk-mq API enhances IO performance
by leveraging multiple queues for parallel processing,
addressing bottlenecks from traditional single-queue designs.
It uses software queues for scheduling,
merging, and reordering requests,
and hardware queues to interface directly with devices.
If hardware resources are limited,
requests are temporarily queued for later dispatch.
⚲ Interfaces:
: /sys/devices/.../mq/
: {{The Linux Kernel/include|linux/blk-mq.h}}
:: Structures:
::: {{The Linux Kernel/id|blk_mq_hw_ctx}} – hardware dispatch queue context
::: {{The Linux Kernel/id|blk_mq_tag_set}} – shared between request queues
:::: {{The Linux Kernel/id|blk_mq_ops}}
:::: {{The Linux Kernel/id|blk_mq_tags}}
:::: {{The Linux Kernel/id|blk_mq_queue_map}} – map software queues to hardware queues
::: {{The Linux Kernel/id|request}}
👁️ Example
: {{The Linux Kernel/source|drivers/block/null_blk}} – multi-queue aware block test driver
⚙️ Internals
: /sys/kernel/debug/block/*/hctx*
: {{The Linux Kernel/source|block/blk-mq.h}} – blk-mq internal definitions
:: {{The Linux Kernel/id|blk_mq_ctx}} – software staging queue context
: {{The Linux Kernel/source|block/blk-mq.c}} – block multi-queue core code
: {{The Linux Kernel/source|block/blk-mq-tag.c}} – tag allocation using scalable bitmaps
: ...
📖 References
: {{The Linux Kernel/doc|Multi-Queue Block IO Queueing Mechanism (blk-mq)|block/blk-mq.html}}
=== I/O scheduler ===
I/O scheduling (or disk scheduling) is the method chosen by the kernel to decide in which order the block I/O operations will be submitted to the storage volumes.
I/O scheduling usually has to work with hard disk drives that have long access times for requests placed far away from the current position of the disk head (this operation is called a seek).
To minimize the effect this has on system performance, most I/O schedulers implement a variant of the elevator algorithm that reorders the incoming randomly ordered requests so the associated data would be accessed with minimal arm/head movement.
The particular I/O scheduler used with certain block device can be switched at run time by modifying the corresponding <code>/sys/block/<block_device>/queue/scheduler</code> file in the sysfs filesystem.
Some I/O schedulers also have tunable parameters that can be set through files in <code>/sys/block/<block_device>/queue/iosched/</code>.
⚲ Interfaces:
: {{The Linux Kernel/man|1|ionice}} – set or get process I/O scheduling class and priority
:: {{The Linux Kernel/man|2|ioprio_get}}, ioprio_set
: {{The Linux Kernel/include|linux/elevator.h}}
: Function {{The Linux Kernel/id|elv_register}} registers struct {{The Linux Kernel/id|elevator_type}}.
: {{The Linux Kernel/id|elevator_queue}}
⚙️ Internals:
: {{The Linux Kernel/source|block/ioprio.c}} – I/O priority system call
: {{The Linux Kernel/source|block/elevator.c}} – I/O scheduler framework
: {{The Linux Kernel/source|block/Kconfig.iosched}} – I/O scheduler Kconfig options
: {{The Linux Kernel/source|block/bfq-iosched.c}} – Budget Fair Queueing scheduler
: {{The Linux Kernel/source|block/kyber-iosched.c}} – Kyber multiqueue scheduler
: {{The Linux Kernel/source|block/mq-deadline.c}} – deadline multiqueue scheduler
: {{The Linux Kernel/include|include/trace/events/block.h}}
📖 References:
: {{w|I/O scheduling}}
: {{w|Elevator algorithm}}
: {{The Linux Kernel/doc|Switching Scheduler|block/switching-sched.html}}
: {{The Linux Kernel/doc|BFQ - Budget Fair Queueing|block/bfq-iosched.html}}
: {{The Linux Kernel/doc|Deadline IO scheduler tunables|deadline-iosched.html}}
: https://www.cloudbees.com/blog/linux-io-scheduler-tuning/
: https://wiki.ubuntu.com/Kernel/Reference/IOSchedulers
=== ... ===
📖 References
: {{The Linux Kernel/doc|Block devices|block}}
:: {{The Linux Kernel/doc|Switching Scheduler|block/switching-sched.html}}
::: {{The Linux Kernel/doc|BFQ - Budget Fair Queueing|block/bfq-iosched.html}}
::: {{The Linux Kernel/doc|Deadline IO scheduler tunables|block/deadline-iosched.html}}
::: {{The Linux Kernel/doc|Kyber I/O scheduler tunables|block/kyber-iosched.html}}
:: {{The Linux Kernel/doc|Multi-Queue Block IO Queueing Mechanism (blk-mq)|block/blk-mq.html}}
📚 Further reading
: /sys/kernel/debug/block/*/
: https://lwn.net/Kernel/Index/#Block_layer
: [https://lore.kernel.org/linux-block/ block devices ML]
: [http://lwn.net/images/pdf/LDD3/ch16.pdf LDD3:Block Drivers]
: [http://www.xml.com/ldd/chapter/book/ch12.html LDD1:Loading Block Drivers]
: [https://www.oreilly.com/library/view/understanding-the-linux/0596005652/ch14.html ULK3 Chapter 14. Block Device Drivers]
: [https://sg.danny.cz/sg/The Linux SCSI Generic (sg) Driver]
:: [https://sg.danny.cz/sg/scsi_debug.html Scsi_debug adapter driver for Linux]
:: https://github.com/doug-gilbert/sg3_utils
== {{w|Computer data storage|Storage}} drivers ==
🔧 TODO
⚙️ Internals
: {{The Linux Kernel/source|drivers/nvmem}} – {{w|Non-volatile memory}}
: {{The Linux Kernel/source|drivers/sdio}} – {{w|Secure Digital#SDIO cards|Secure Digital Input Output}}
: {{The Linux Kernel/source|drivers/scsi}} – {{w|SCSI|Small Computer System Interface}}
: {{The Linux Kernel/source|drivers/virtio}} – virtio guest drivers
: {{The Linux Kernel/source|drivers/mtd}} – {{w|Memory Technology Device}} for 🤖 embedded devices
=== NVMe ===
{{w|NVM Express}} drivers provide accesses a computer's {{w|non-volatile storage}}.
Local storage is attached via {{w|PCIe|PCI Express}} bus.
PCI NVMe device driver entry point is {{The Linux Kernel/id|nvme_init}}.
Remote storage driver is called target and local {{w|Proxy_pattern|proxy}} driver is called host. {{w|Switched fabric|Fabrics}} connect remote targets with local host.
A fabric can be based on {{w|Remote direct memory access|RDMA}}, {{w|Transmission Control Protocol|TCP}} or {{w|Fibre Channel}} protocols.
⚲ API:
: [https://github.com/linux-nvme/nvme-cli nvme-cli]
: {{The Linux Kernel/include|uapi/linux/nvme_ioctl.h}}
: {{The Linux Kernel/include|linux/nvme.h}}
⚙️ '''Internals:'''
: {{The Linux Kernel/source|drivers/nvme}} – NVMe drivers
'''Host''' {{The Linux Kernel/source|drivers/nvme/host}}:
⚲ Interfaces:
: {{The Linux Kernel/source|drivers/nvme/host/nvme.h}} – NVMe host common definitions
:: {{The Linux Kernel/id|nvme_init_ctrl}} initializes a NVMe controller structures {{The Linux Kernel/id|nvme_ctrl}} with operations {{The Linux Kernel/id|nvme_ctrl_ops}}
::: a subroutine of {{The Linux Kernel/id|nvme_scan_work}} adds a new disk with {{The Linux Kernel/id|device_add_disk}}
: {{The Linux Kernel/id|nvme_init}} - local PCI nvme module init
:: {{The Linux Kernel/id|nvme_probe}}
::: {{The Linux Kernel/id|nvme_init_ctrl}} ...
::: {{The Linux Kernel/id|nvme_pci_ctrl_ops}}
: {{The Linux Kernel/id|nvme_core_init}} - module init
'''Fabrics'''
⚲ interfaces:
: {{The Linux Kernel/source|drivers/nvme/host/fabrics.h}} – NVMe over Fabrics host common definitions
:: {{The Linux Kernel/id|nvmf_register_transport}} resisters {{The Linux Kernel/id|nvmf_transport_ops}}
: {{The Linux Kernel/id|nvmf_init}} - fabrics module init
⚙️ internals:
: {{The Linux Kernel/id|nvmf_init}} - fabrics module init
:: {{The Linux Kernel/id|nvmf_misc}}
::: {{The Linux Kernel/id|nvmf_dev_fops}}
:::: {{The Linux Kernel/id|nvmf_dev_write}}
::::: {{The Linux Kernel/id|nvmf_create_ctrl}} binds {{The Linux Kernel/id|nvmf_transport_ops}}
'''Target''' {{The Linux Kernel/source|drivers/nvme/target}}:
⚲ Interfaces: {{The Linux Kernel/source|drivers/nvme/target/nvmet.h}}
: {{The Linux Kernel/id|nvmet_register_transport}} registers {{The Linux Kernel/id|nvmet_fabrics_ops}}
: {{The Linux Kernel/id|nvmet_init}} - module init
: {{The Linux Kernel/id|fcloop_init}} - loopback test module init which can be useful to test NVMe-FC transport interfaces.
{| class="wikitable"
|-
!
! colspan="3" |NVMe over {{w|Switched fabric|Fabrics}}
|-
!<div style='text-align:left'>Layers</div>
!{{w|Transmission Control Protocol|TCP}}
![[../Networking#RDMA|RDMA]]
!{{w|Fibre Channel}}
|-
!<div style='text-align:left'>Host modules</div>
|{{The Linux Kernel/id|nvme_tcp_init_module}}
|{{The Linux Kernel/id|nvme_rdma_init_module}}
|{{The Linux Kernel/id|nvme_fc_init_module}}
|-
!<div style='text-align:left'>Fabrics protocols</div>
|{{The Linux Kernel/include|linux/nvme-tcp.h}}
|{{The Linux Kernel/include|linux/nvme-rdma.h}}
|{{The Linux Kernel/include|linux/nvme-fc.h}}
{{The Linux Kernel/include|linux/nvme-fc-driver.h}}
|-
!<div style='text-align:left'>Target modules</div>
|{{The Linux Kernel/id|nvmet_tcp_init}}
|{{The Linux Kernel/id|nvmet_rdma_init}}
|{{The Linux Kernel/id|nvmet_fc_init_module}}
|}
👁 Example: {{The Linux Kernel/id|nvme_loop_init_module}} nvme loopback
: {{The Linux Kernel/id|nvme_loop_transport}} - fabrics operations
:: {{The Linux Kernel/id|nvme_loop_create_ctrl}}
::: {{The Linux Kernel/id|nvme_loop_create_io_queues}}
: {{The Linux Kernel/id|nvme_loop_ops}} - target operation
:: {{The Linux Kernel/id|nvme_loop_add_port}}
:: {{The Linux Kernel/id|nvme_loop_queue_response}}
== ... ==
🚀 Advanced
: {{The Linux Kernel/man|1|pidstat}} – reports task statistics
: /proc/self/io – I/O statistics for the process (see {{The Linux Kernel/man|5|proc}})
💾 Historical storage drivers
: {{The Linux Kernel/source|drivers/ata}} - {{w|Parallel ATA}}
📖 Further reading about storage
: [https://github.com/iovisor/bcc/blob/master/README.md#storage-and-filesystems-tools bcc/ebpf storage and filesystems tools]
{{BookCat}}
8pfq29it78zbhtbcxacizsosrj1hmwe
4640237
4640215
2026-06-13T19:15:13Z
Conan
3188
fix typos, broken io_uring path, double include prefix
4640237
wikitext
text/x-wiki
{{DISPLAYTITLE:Storage functionality}}
{|style="width: 25%; float: right; text-align:center;border-spacing: 0; color:black; margin:auto;" cellpadding=5pc
! bgcolor=#cef | storage
|-style=""
| bgcolor=#aef | [[#Files_and_directories|files & directories access]]
|-style=""
| bgcolor=#8df | [[#Virtual File System|Virtual File System]]
|-style=""
| bgcolor=#8ce |[[#Page_cache|page cache]]
|-style=""
| bgcolor=#7ac |[[#Logical file systems|logical file systems]]
|-style=""
| bgcolor=#69a |[[#Block_device_layer|block devices]]
|-style=""
| bgcolor=#689 |[[#Storage_drivers|storage drivers]]
|}
Storage functionality provides access to various storage devices via files and directories of files.
Most of the storage is persistent as flash memory, SSD and legacy hard disks.
Another kind of storage is temporary.
The ''file system'' provides an abstraction to organize the information into separate pieces of data (called ''files'') identified by a unique name.
Each file system type defines their own structures and logic rules used to manage these groups of information and their names.
Linux supports a plethora or different file system types, local and remote, native and from other operating systems.
To accommodate such disparity the kernel defines a common top layer, the ''virtual file system'' (VFS) layer.
[[File:The Linux Storage Stack Diagram.svg|Summary of the Linux kernel's storage stack|right|800x800px]]
== Files and directories ==
Four basic files access system calls:
: {{The Linux Kernel/man|2|open}} ↪ {{The Linux Kernel/id|do_sys_open}} - opens a file by name and returns a {{w|file descriptor}} (<big>fd</big>). Below functions operates on a fd.
: {{The Linux Kernel/man|2|close}} ↪ {{The Linux Kernel/id|close_fd}}
: {{The Linux Kernel/man|2|read}} ↪ {{The Linux Kernel/id|ksys_read}}
: {{The Linux Kernel/man|2|write}} ↪ {{The Linux Kernel/id|ksys_write}}
File in Linux and UNIX is not only physical file on persistent storage.
File interface is used to access pipes, sockets and other pseudo-files.
🔧 TODO
: {{The Linux Kernel/man|2|readlink}} , {{The Linux Kernel/man|2|symlink}} , {{The Linux Kernel/man|2|link}}
: {{The Linux Kernel/man|3|readdir}} ⇾ {{The Linux Kernel/man|2|getdents}}
: {{The Linux Kernel/man|7|path_resolution}}
: {{The Linux Kernel/man|2|fcntl}} – manipulate file descriptor
⚙️ Files and directories internals
: {{The Linux Kernel/include|linux/fs.h}}
: {{The Linux Kernel/source|fs/open.c}} – open, close and related file operations
: {{The Linux Kernel/source|fs/namei.c}} – pathname lookup and resolution
: {{The Linux Kernel/source|fs/read_write.c}} – read, write and lseek operations
📚 Files and directories references
: [https://www.gnu.org/software/libc/manual/html_node/I_002fO-Overview.html Input/Output, The GNU C Library]
: [https://tldp.org/LDP/lki/lki-3.html VFS in Linux Kernel 2.4 Internals]
: {{w|Unix file types}}
=== File locks ===
File locks are mechanisms that allow processes to coordinate access to shared files.
These locks help prevent conflicts when multiple processes or threads attempt to access the same file simultaneously.
⚲ API
: {{The Linux Kernel/man|8|lslocks}} – list local system locks
: {{The Linux Kernel/man|3|lockf}} – apply, test or remove a POSIX lock on an open file
: {{The Linux Kernel/man|2|flock}} – apply or remove an advisory BSD lock on an open file
: {{The Linux Kernel/man|2|fcntl}} – manipulate file descriptor
:: {{The Linux Kernel/id|F_SETLK}} – advisory record lock
:: {{The Linux Kernel/id|F_OFD_SETLK}} – Open File Description Lock
:: {{The Linux Kernel/id|flock}} – lock parameters
: ⚠️ Avoid mixing flock and fcntl locks on the same file as they don’t interact with each other.
⚙️ Internals
: {{The Linux Kernel/include|linux/filelock.h}}
: {{The Linux Kernel/source|fs/locks.c}} – POSIX and flock file locking
: {{The Linux Kernel/include|trace/events/filelock.h}}
💾 ''Historical: [https://elixir.bootlin.com/linux/v5.14/K/ident/CONFIG_MANDATORY_FILE_LOCKING Mandatory locking] feature is no longer supported at all in Linux 5.15 and above because the implementation is unreliable.''
=== Asynchronous I/O ===
🚀 advanced features
'''AIO'''
: https://lwn.net/Kernel/Index/#Asynchronous_IO
: {{The Linux Kernel/man|2|io_submit}} {{The Linux Kernel/man|2|io_setup}} {{The Linux Kernel/man|2|io_cancel}} {{The Linux Kernel/man|2|io_destroy}} {{The Linux Kernel/man|2|io_getevents}}
: {{The Linux Kernel/include|uapi/linux/aio_abi.h}}
: {{The Linux Kernel/source|fs/aio.c}} – async I/O implementation
: {{The Linux Kernel/ltp|kernel|io/aio}}
'''{{w|io_uring}}'''
🌱 ''New since release 5.1 in May 2019''
: https://blogs.oracle.com/linux/an-introduction-to-the-io_uring-asynchronous-io-framework
: https://thenewstack.io/how-io_uring-and-ebpf-will-revolutionize-programming-in-linux/
: {{The Linux Kernel/id|io_uring_enter}} {{The Linux Kernel/id|io_uring_setup}} {{The Linux Kernel/id|io_uring_register}}
: {{The Linux Kernel/include|linux/io_uring.h}}
: {{The Linux Kernel/include|uapi/linux/io_uring.h}}
: {{The Linux Kernel/source|io_uring}}
: https://lwn.net/Kernel/Index/#io_uring
:: [https://lwn.net/Articles/779472/ io_uring, SCM_RIGHTS, and reference-count cycles]
:: [https://lwn.net/Articles/810414/ The rapid growth of io_uring]
:: [https://lwn.net/Articles/815491/ Automatic buffer selection for io_uring]
:: [https://lwn.net/Articles/826053/ Operations restrictions for io_uring]
:: [https://lwn.net/Articles/779472/ io_uring, SCM_RIGHTS, and reference-count cycles]
:: [https://lwn.net/Articles/803070/ Redesigned workqueues for io_uring]
: {{The Linux Kernel/ltp|kernel/syscalls|io_uring}}
=== {{w|Asynchronous_I/O#Forms|Non-blocking I/O}} ===
Allow non-blocking access to multiple file descriptors.
'''Efficient event polling {{w|epoll}}'''
⚲ API:
: {{The Linux Kernel/include|uapi/linux/eventpoll.h}}
: {{The Linux Kernel/man|7|epoll}}
: {{The Linux Kernel/man|2|epoll_create}} ↪ {{The Linux Kernel/id|do_epoll_create}}
: {{The Linux Kernel/man|2|epoll_ctl}} ↪ {{The Linux Kernel/id|do_epoll_ctl}}
: {{The Linux Kernel/man|2|epoll_wait}} ↪ {{The Linux Kernel/id|do_epoll_wait}}
⚙️ Internals:
: {{The Linux Kernel/source|fs/eventpoll.c}} – efficient event polling (epoll)
'''{{w|Select (Unix)|select}} and {{w|poll (Unix)|poll}}'''
💾 ''Historical: Select and poll system calls are derived from UNIX''
⚲ API:
: {{The Linux Kernel/man|2|poll}} ↪ {{The Linux Kernel/id|do_sys_poll}}
: {{The Linux Kernel/man|2|select}} ↪ {{The Linux Kernel/id|kern_select}}
⚙️ Internals:
: {{The Linux Kernel/source|fs/select.c}} – select and poll implementation
=== Vectored I/O ===
🚀 advanced feature
{{w|Vectored I/O}}, also known as scatter/gather I/O, is a method of input and output by which a single procedure call sequentially reads data from multiple buffers and writes it to a single data stream, or reads data from a data stream and writes it to multiple buffers, as defined in a vector of buffers. Scatter/gather refers to the process of gathering data from, or scattering data into, the given set of buffers. Vectored I/O can operate synchronously or asynchronously. The main reasons for using vectored I/O are efficiency and convenience.
⚲ API:
: {{The Linux Kernel/include|uapi/linux/uio.h}}
: {{The Linux Kernel/include|linux/uio.h}}
: {{The Linux Kernel/id|iovec}}
: {{The Linux Kernel/man|2|readv}} ↪ {{The Linux Kernel/id|do_readv}}
: {{The Linux Kernel/man|2|writev}} ↪ {{The Linux Kernel/id|do_writev}}
⚙️ Internals:
: {{The Linux Kernel/id|iov_iter}}
: {{The Linux Kernel/id|do_readv}} ↯ call hierarchy:
:: {{The Linux Kernel/id|vfs_readv}}
::: {{The Linux Kernel/id|import_iovec}}
::: {{The Linux Kernel/id|ext4_file_read_iter}}
: {{The Linux Kernel/source|lib/iov_iter.c}} – I/O vector iterator operations
=== ... ===
📖 References
: [https://www.gnu.org/software/libc/manual/html_node/Scatter_002dGather.html Fast Scatter-Gather I/O, The GNU C Library]
: https://lwn.net/Kernel/Index/#Vectored_IO
: https://lwn.net/Kernel/Index/#Scattergather_chaining
📚 Further reading
: https://deepwiki.com/torvalds/linux/4-filesystems
== Virtual File System ==
The {{w|virtual file system}} (VFS) is an abstract layer on top of a concrete logical file system.
The purpose of a VFS is to allow client applications to access different types of logical file systems in a uniform way.
A VFS can, for example, be used to access local and [[../Networking#Network_storage|network storage]] devices transparently without the client application noticing the difference.
It can be used to bridge the differences in Windows, classic Mac OS/macOS and Unix filesystems, so that applications can access files on local file systems of those types without having to know what type of file system they are accessing.
A VFS specifies an interface (or a "contract") between the kernel and a logical file system.
Therefore, it is easy to add support for new file system types to the kernel simply by fulfilling the contract.
🔧 TODO: {{The Linux Kernel/id|vfsmount}}, {{The Linux Kernel/id|vfs_create}}, {{The Linux Kernel/id|vfs_read}}, {{The Linux Kernel/id|vfs_write}}
📚 VFS References
: {{The Linux Kernel/doc|VFS|filesystems/#core-vfs-documentation}}
: [https://tldp.org/LDP/lki/lki-3.html VFS in Linux Kernel 2.4 Internals]
== Logical file systems ==
A {{w|file system}} (or ''filesystem'') is used to control how data is stored and retrieved.
Without a file system, information placed in a storage area would be one large body of data with no way to tell where one piece of information stops and the next begins.
By separating the data into individual pieces, and giving each piece a name, the information is easily separated and identified.
Each group of data is called a "file".
The structure and logic rules used to manage the groups of information and their names is called a "file system".
There are many different kinds of file systems.
Each one has different structure and logic, properties of speed, flexibility, security, size and more.
Some file systems have been designed to be used for specific applications.
For example, the ISO 9660 file system is designed specifically for optical discs.
File systems can be used on many different kinds of storage devices.
Each storage device uses a different kind of media.
The most common storage device in use today is a {{w|SSD}}.
Other media that was used are hard disk, magnetic tape and optical disc.
In some cases, the computer's main memory (RAM) is used to create a temporary file system for short-term use.
Raw storage is called a block device.
Linux supports many different file systems, but common choices for the system disk on a block device include the ext* family (such as {{w|ext2}}, {{w|ext3}} and {{w|ext4}}), {{w|XFS}}, {{w|ReiserFS}} and {{w|btrfs}}.
For raw Flash without a {{w|flash translation layer}} (FTL) or {{w|Memory Technology Device}} (MTD), there is {{w|UBIFS}}, {{w|JFFS2}}, and {{w|YAFFS}}, among others. {{w|SquashFS}} is a common compressed read-only file system.
NFS and other network FS are described further in paragraph [[../Networking#Network_storage|Network storage]].
⚲ Shell interfaces:
: cat /proc/filesystems
: ls /sys/fs/
: {{The Linux Kernel/man|8|mount}}
: {{The Linux Kernel/man|8|umount}}
: {{The Linux Kernel/man|8|findmnt}}
: {{The Linux Kernel/man|1|mountpoint}}
: {{The Linux Kernel/man|1|df}}
Infrastructure ⚲ API function {{The Linux Kernel/id|register_filesystem}} registers structs {{The Linux Kernel/id|file_system_type}} and stores them in linked list ⚙️ {{The Linux Kernel/id|file_systems}}.
Function {{The Linux Kernel/id|ext4_init_fs}} registers {{The Linux Kernel/id|ext4_fs_type}}.
Operation of ''file system opening'' is called mounting: {{The Linux Kernel/id|ext4_mount}}
⚙️ Internals:
: {{The Linux Kernel/source|fs/namespace.c}} – mount and namespace operations
:: {{The Linux Kernel/man|2|mount}}
::: {{The Linux Kernel/id|do_mount}}
: {{The Linux Kernel/include|linux/buffer_head.h}}
:: {{The Linux Kernel/id|super_block}}
:: {{The Linux Kernel/id|sb_bread}}
: {{The Linux Kernel/source|fs}} – filesystem implementations
:: {{The Linux Kernel/source|fs/ext4/ext4.h}} – ext4 on-disk format and internal structures
::: {{The Linux Kernel/id|ext4_sb_bread}}
📚 References:
: {{The Linux Kernel/doc|filesystems|filesystems/#filesystems}}
: Kernel wikis: [https://ext4.wiki.kernel.org/ EXT4], [https://btrfs.wiki.kernel.org/ btrfs], [https://reiser4.wiki.kernel.org/ Reiser4], [https://raid.wiki.kernel.org/ RAID], [https://xfs.wiki.kernel.org/ XFS]
== Page cache ==
A page cache or disk cache is a transparent cache for the memory pages originating from a secondary storage device such as a hard disk drive.
The operating system keeps a page cache in otherwise unused portions of the main memory, resulting in quicker access to the contents of cached pages and overall performance improvements.
The page cache is implemented by the kernel, and is mostly transparent to applications.
Usually, all physical memory not directly allocated to applications is used by the operating system for the page cache.
Since the memory would otherwise be idle and is easily reclaimed when applications request it, there is generally no associated performance penalty and the operating system might even report such memory as "free" or "available".
The page cache also aids in writing to a disk.
Pages in the main memory that have been modified during writing data to disk are marked as "dirty" and have to be flushed to disk before they can be freed.
When a file write occurs, the page backing the particular block is looked up.
If it is already found in the page cache, the write is done to that page in the main memory.
Otherwise, when the write perfectly falls on page size boundaries, the page is not even read from disk, but allocated and immediately marked dirty.
Otherwise, the page(s) are fetched from disk and requested modifications are done.
Not all cached pages can be written to as program code is often mapped as read-only or copy-on-write; in the latter case, modifications to code will only be visible to the process itself and will not be written to disk.
⚲ API:
: {{The Linux Kernel/man|2|fsync}} ↪ {{The Linux Kernel/id|do_fsync}}
: {{The Linux Kernel/man|2|sync_file_range}} ↪ {{The Linux Kernel/id|ksys_sync_file_range}}
: {{The Linux Kernel/man|2|syncfs}} ↪ {{The Linux Kernel/id|sync_filesystem}}
📚 References
: {{The Linux Kernel/id|wb_workfn}}
: {{The Linux Kernel/id|address_space}}
: {{The Linux Kernel/id|do_writepages}}
: {{The Linux Kernel/include|linux/writeback.h}}
: {{The Linux Kernel/source|mm/page-writeback.c}} – dirty page writeback throttling
: {{w|Page cache}}
More
: [https://lwn.net/Articles/717953/ The future of DAX ] - direct access bypassing the cache
: [https://tldp.org/LDP/lki/lki-4.html Linux Page Cache in Linux Kernel 2.4 Internals]
== Zero-copy ==
🚀 advanced features
Writing data to storage and reading are very resource consuming operations.
Copying memory is time and CPU consuming operation too.
Set of methods to avoid copying operations is called {{w|zero-copy}}.
The goal of zero-copy methods is a fast and efficient data transfer within the system.
The first and simplest method is {{w|Pipeline (Unix)|Pipeline}}, invoked by operator "|" in shells.
Instead of writing data into temporary file and reading, the data is passed efficiently via a pipe bypassing a storage.
The second method is {{w|Tee_(command)|tee}}.
⚲ Syscalls:
: {{The Linux Kernel/man|2|pipe2}}
: {{The Linux Kernel/man|2|tee}}, {{The Linux Kernel/man|1|tee}}
: {{The Linux Kernel/man|2|sendfile}}
: {{The Linux Kernel/man|2|copy_file_range}}
: {{The Linux Kernel/man|2|splice}}
: {{The Linux Kernel/man|2|vmsplice}}
⚲ API and ⚙️ Internals:
: '''{{The Linux Kernel/man|2|pipe2}}''' ↪ {{The Linux Kernel/id|do_pipe2}} - creates pipe
:: uses {{The Linux Kernel/id|pipe_fs_type}}, {{The Linux Kernel/id|pipefifo_fops}}
: '''{{The Linux Kernel/man|2|tee}}''' ↪ {{The Linux Kernel/id|do_tee}} - duplicates pipe content
:: calls {{The Linux Kernel/id|link_pipe}}
: '''{{The Linux Kernel/man|2|sendfile}}''' ↪ {{The Linux Kernel/id|do_sendfile}} - transfers data between file descriptors, the output can be a socket. Used in [[../Networking#Network_storage|network storage]] and servers.
:: Calls: {{The Linux Kernel/id|do_splice_direct}}, {{The Linux Kernel/id|splice_direct_to_actor}}
: '''{{The Linux Kernel/man|2|copy_file_range}}''' ↪ {{The Linux Kernel/id|vfs_copy_file_range}} - transfers data between files
:: calls custom {{The Linux Kernel/id|remap_file_range}} like {{The Linux Kernel/id|nfs42_remap_file_range}}
:: or custom {{The Linux Kernel/id|copy_file_range}} like {{The Linux Kernel/id|fuse_copy_file_range}}
:: or {{The Linux Kernel/id|do_splice_direct}}
: '''{{The Linux Kernel/man|2|splice}}''' ↪ {{The Linux Kernel/id|do_splice}} - splices data to/from a pipe.
:: There are three cases regarding which end being a pipe:
:# {{The Linux Kernel/id|do_splice_from}} - only input is a pipe
:#: Calls {{The Linux Kernel/id|iter_file_splice_write}} or custom {{The Linux Kernel/id|splice_write}}
:#: or {{The Linux Kernel/id|default_file_splice_write}}: {{The Linux Kernel/id|write_pipe_buf}}, {{The Linux_Kernel/id|splice_from_pipe}}, {{The Linux Kernel/id|__splice_from_pipe}}
:# {{The Linux Kernel/id|do_splice_to}} - only output is a pipe.
:#: Calls {{The Linux Kernel/id|generic_file_splice_read}} or custom {{The Linux Kernel/id|splice_read}}
:#: or {{The Linux Kernel/id|default_file_splice_read}}: {{The Linux Kernel/id|kernel_readv}}
:# {{The Linux Kernel/id|splice_pipe_to_pipe}} - both are pipes
: '''{{The Linux Kernel/man|2|vmsplice}}''' ↪
:: {{The Linux Kernel/id|vmsplice_to_pipe}} – splices user pages to a pipe
:: {{The Linux Kernel/id|vmsplice_to_user}} – splices a pipe to user pages
⚲ API
: {{The Linux Kernel/include|linux/splice.h}}
⚙️ Internals:
: {{The Linux Kernel/source|fs/pipe.c}} – pipe and FIFO implementation
: {{The Linux Kernel/source|fs/splice.c}} – splice data transfer between file descriptors
🔧 TODO:
{{The Linux Kernel/id|zerocopy_sg_from_iter}} builds a zerocopy skb datagram from an iov_iter. Used in {{The Linux Kernel/id|tap_get_user}} and {{The Linux Kernel/id|tun_get_user}}.
{{The Linux Kernel/id|skb_zerocopy}}
{{The Linux Kernel/id|skb_zerocopy_iter_dgram}}
📚 References
: {{The Linux Kernel/man|7|pipe}}
: {{The Linux Kernel/man|7|fifo}}
: {{The Linux Kernel/doc|splice and pipes|filesystems/splice.html}}
:: {{The Linux Kernel/doc|Pipes API|filesystems/splice.html#pipes-api}}
: {{w|splice (system call)}}
: LTP: {{The Linux Kernel/ltp|kernel/syscalls|pipe}}, {{The Linux Kernel/ltp|kernel/syscalls|pipe2}}, {{The Linux Kernel/ltp|kernel/syscalls|tee}}, {{The Linux Kernel/ltp|kernel/syscalls|sendfile}}, {{The Linux Kernel/ltp|kernel/syscalls|copy_file_range}}, {{The Linux Kernel/ltp|kernel/syscalls|splice}}, {{The Linux Kernel/ltp|kernel/syscalls|vmsplice}}
== Block device layer ==
The block device layer in Linux provides an abstraction for accessing storage devices,
such as SSDs and USB drives, by presenting them as a series of fixed-size blocks.
It sits between the hardware and the file system,
allowing applications and file systems to perform read and write operations efficiently
without needing to know the specifics of the underlying hardware.
Key components include block drivers, the I/O scheduler,
and buffer management, which work together to handle requests,
optimize access patterns, and ensure data integrity.
This layer supports essential features like caching, partition management,
and queueing mechanisms to balance performance and reliability.
⚲ Interfaces:
: {{The Linux Kernel/include|linux/genhd.h}}
: {{The Linux Kernel/include|linux/blk_types.h}}
:: {{The Linux Kernel/id|bio}} – main unit of I/O for the block layer and lower layers
:: {{The Linux Kernel/id|req_op}} – operations common to the bio and request structures
: {{The Linux Kernel/include|linux/bio.h}}
: {{The Linux Kernel/id|block_device}}
:: {{The Linux Kernel/id|block_size}}
: {{The Linux Kernel/id|alloc_disk_node}} allocates {{The Linux Kernel/id|gendisk}}
: {{The Linux Kernel/id|add_disk}}
:: {{The Linux Kernel/id|device_add_disk}}
: {{The Linux Kernel/id|block_device_operations}}
: {{The Linux Kernel/include|linux/blkdev.h}}
:: {{The Linux Kernel/id|gendisk}}
::: {{The Linux Kernel/id|dev_to_disk}}, {{The Linux Kernel/id|disk_to_dev}}
:: {{The Linux Kernel/id|block_class}} – block devices Driver Model class
:: {{The Linux Kernel/id|register_blkdev}}
:: {{The Linux Kernel/id|request}}
:: {{The Linux Kernel/id|request_queue}}
⚙️ Internals.
: {{The Linux Kernel/source|block}} – block layer core
: {{The Linux Kernel/id|block_class}}
👁 Examples:
: {{The Linux Kernel/source|drivers/block/brd.c}} - small RAM backed block device driver
: {{The Linux Kernel/source|drivers/block/null_blk}} – null block test device
=== Device mapper ===
The ''device mapper'' is a framework provided by the kernel for mapping physical block devices onto higher-level "virtual block devices".
It forms the foundation of LVM2, software RAIDs and dm-crypt disk encryption, and offers additional features such as file system snapshots.
Device mapper works by passing data from a virtual block device, which is provided by the device mapper itself, to another block device.
Data can be also modified in transition, which is performed, for example, in the case of device mapper providing disk encryption.
User space applications that need to create new mapped devices talk to the device mapper via the <code>libdevmapper.so</code> shared library, which in turn issues ioctls to the <code>/dev/mapper/control</code> device node.
Functions provided by the device mapper include linear, striped and error ''mappings,'' as well as crypt and multipath ''targets.''
For example, two disks may be concatenated into one logical volume with a pair of ''linear'' mappings, one for each disk.
As another example, ''crypt'' target encrypts the data passing through the specified device, by using the Linux kernel's Crypto API.
The following mapping targets are available:
: ''cache'' - allows the creation of hybrid volumes, by using solid-state drives (SSDs) as caches for hard disk drives (HDDs)
: ''crypt'' - provides data encryption, by using the Linux kernel's Crypto API
: ''delay'' - delays reads and/or writes to different devices (used for testing)
: ''era'' - behaves in a way similar to the linear target, while it keeps track of blocks that were written to within a user-defined period of time
: ''error'' - simulates I/O errors for all mapped blocks (used for testing)
: ''flakey'' - simulates periodic unreliable behaviour (used for testing)
: ''linear'' - maps a continuous range of blocks onto another block device
: ''mirror'' - maps a mirrored logical device, while providing data redundancy
: ''multipath'' - supports the mapping of multipathed devices, through usage of their path groups
: ''raid'' - offers an interface to the Linux kernel's software RAID driver (md)
: ''snapshot'' and ''snapshot-origin'' - used for creation of LVM snapshots, as part of the underlining copy-on-write scheme
: ''striped'' - strips the data across physical devices, with the number of stripes and the striping chunk size as parameters
: ''zero'' - an equivalent of <code>/dev/zero</code>, all reads return blocks of zeros, and writes are discarded
📚 References
: {{w|Device mapper}}
: {{The Linux Kernel/doc|Device mapper|admin-guide/device-mapper}}
: {{The Linux Kernel/include|linux/device-mapper.h}}
: {{The Linux Kernel/source|drivers/md}} – device mapper and software RAID
: https://lwn.net/Kernel/Index/#Device_mapper
=== Multi-Queue Block IO Queueing ===
The blk-mq API enhances IO performance
by leveraging multiple queues for parallel processing,
addressing bottlenecks from traditional single-queue designs.
It uses software queues for scheduling,
merging, and reordering requests,
and hardware queues to interface directly with devices.
If hardware resources are limited,
requests are temporarily queued for later dispatch.
⚲ Interfaces:
: /sys/devices/.../mq/
: {{The Linux Kernel/include|linux/blk-mq.h}}
:: Structures:
::: {{The Linux Kernel/id|blk_mq_hw_ctx}} – hardware dispatch queue context
::: {{The Linux Kernel/id|blk_mq_tag_set}} – shared between request queues
:::: {{The Linux Kernel/id|blk_mq_ops}}
:::: {{The Linux Kernel/id|blk_mq_tags}}
:::: {{The Linux Kernel/id|blk_mq_queue_map}} – map software queues to hardware queues
::: {{The Linux Kernel/id|request}}
👁️ Example
: {{The Linux Kernel/source|drivers/block/null_blk}} – multi-queue aware block test driver
⚙️ Internals
: /sys/kernel/debug/block/*/hctx*
: {{The Linux Kernel/source|block/blk-mq.h}} – blk-mq internal definitions
:: {{The Linux Kernel/id|blk_mq_ctx}} – software staging queue context
: {{The Linux Kernel/source|block/blk-mq.c}} – block multi-queue core code
: {{The Linux Kernel/source|block/blk-mq-tag.c}} – tag allocation using scalable bitmaps
: ...
📖 References
: {{The Linux Kernel/doc|Multi-Queue Block IO Queueing Mechanism (blk-mq)|block/blk-mq.html}}
=== I/O scheduler ===
I/O scheduling (or disk scheduling) is the method chosen by the kernel to decide in which order the block I/O operations will be submitted to the storage volumes.
I/O scheduling usually has to work with hard disk drives that have long access times for requests placed far away from the current position of the disk head (this operation is called a seek).
To minimize the effect this has on system performance, most I/O schedulers implement a variant of the elevator algorithm that reorders the incoming randomly ordered requests so the associated data would be accessed with minimal arm/head movement.
The particular I/O scheduler used with certain block device can be switched at run time by modifying the corresponding <code>/sys/block/<block_device>/queue/scheduler</code> file in the sysfs filesystem.
Some I/O schedulers also have tunable parameters that can be set through files in <code>/sys/block/<block_device>/queue/iosched/</code>.
⚲ Interfaces:
: {{The Linux Kernel/man|1|ionice}} – set or get process I/O scheduling class and priority
:: {{The Linux Kernel/man|2|ioprio_get}}, ioprio_set
: {{The Linux Kernel/include|linux/elevator.h}}
: Function {{The Linux Kernel/id|elv_register}} registers struct {{The Linux Kernel/id|elevator_type}}.
: {{The Linux Kernel/id|elevator_queue}}
⚙️ Internals:
: {{The Linux Kernel/source|block/ioprio.c}} – I/O priority system call
: {{The Linux Kernel/source|block/elevator.c}} – I/O scheduler framework
: {{The Linux Kernel/source|block/Kconfig.iosched}} – I/O scheduler Kconfig options
: {{The Linux Kernel/source|block/bfq-iosched.c}} – Budget Fair Queueing scheduler
: {{The Linux Kernel/source|block/kyber-iosched.c}} – Kyber multiqueue scheduler
: {{The Linux Kernel/source|block/mq-deadline.c}} – deadline multiqueue scheduler
: {{The Linux Kernel/include|trace/events/block.h}}
📖 References:
: {{w|I/O scheduling}}
: {{w|Elevator algorithm}}
: {{The Linux Kernel/doc|Switching Scheduler|block/switching-sched.html}}
: {{The Linux Kernel/doc|BFQ - Budget Fair Queueing|block/bfq-iosched.html}}
: {{The Linux Kernel/doc|Deadline IO scheduler tunables|deadline-iosched.html}}
: https://www.cloudbees.com/blog/linux-io-scheduler-tuning/
: https://wiki.ubuntu.com/Kernel/Reference/IOSchedulers
=== ... ===
📖 References
: {{The Linux Kernel/doc|Block devices|block}}
:: {{The Linux Kernel/doc|Switching Scheduler|block/switching-sched.html}}
::: {{The Linux Kernel/doc|BFQ - Budget Fair Queueing|block/bfq-iosched.html}}
::: {{The Linux Kernel/doc|Deadline IO scheduler tunables|block/deadline-iosched.html}}
::: {{The Linux Kernel/doc|Kyber I/O scheduler tunables|block/kyber-iosched.html}}
:: {{The Linux Kernel/doc|Multi-Queue Block IO Queueing Mechanism (blk-mq)|block/blk-mq.html}}
📚 Further reading
: /sys/kernel/debug/block/*/
: https://lwn.net/Kernel/Index/#Block_layer
: [https://lore.kernel.org/linux-block/ block devices ML]
: [http://lwn.net/images/pdf/LDD3/ch16.pdf LDD3:Block Drivers]
: [http://www.xml.com/ldd/chapter/book/ch12.html LDD1:Loading Block Drivers]
: [https://www.oreilly.com/library/view/understanding-the-linux/0596005652/ch14.html ULK3 Chapter 14. Block Device Drivers]
: [https://sg.danny.cz/sg/The Linux SCSI Generic (sg) Driver]
:: [https://sg.danny.cz/sg/scsi_debug.html Scsi_debug adapter driver for Linux]
:: https://github.com/doug-gilbert/sg3_utils
== {{w|Computer data storage|Storage}} drivers ==
🔧 TODO
⚙️ Internals
: {{The Linux Kernel/source|drivers/nvmem}} – {{w|Non-volatile memory}}
: {{The Linux Kernel/source|drivers/sdio}} – {{w|Secure Digital#SDIO cards|Secure Digital Input Output}}
: {{The Linux Kernel/source|drivers/scsi}} – {{w|SCSI|Small Computer System Interface}}
: {{The Linux Kernel/source|drivers/virtio}} – virtio guest drivers
: {{The Linux Kernel/source|drivers/mtd}} – {{w|Memory Technology Device}} for 🤖 embedded devices
=== NVMe ===
{{w|NVM Express}} drivers provide accesses a computer's {{w|non-volatile storage}}.
Local storage is attached via {{w|PCIe|PCI Express}} bus.
PCI NVMe device driver entry point is {{The Linux Kernel/id|nvme_init}}.
Remote storage driver is called target and local {{w|Proxy_pattern|proxy}} driver is called host. {{w|Switched fabric|Fabrics}} connect remote targets with local host.
A fabric can be based on {{w|Remote direct memory access|RDMA}}, {{w|Transmission Control Protocol|TCP}} or {{w|Fibre Channel}} protocols.
⚲ API:
: [https://github.com/linux-nvme/nvme-cli nvme-cli]
: {{The Linux Kernel/include|uapi/linux/nvme_ioctl.h}}
: {{The Linux Kernel/include|linux/nvme.h}}
⚙️ '''Internals:'''
: {{The Linux Kernel/source|drivers/nvme}} – NVMe drivers
'''Host''' {{The Linux Kernel/source|drivers/nvme/host}}:
⚲ Interfaces:
: {{The Linux Kernel/source|drivers/nvme/host/nvme.h}} – NVMe host common definitions
:: {{The Linux Kernel/id|nvme_init_ctrl}} initializes a NVMe controller structures {{The Linux Kernel/id|nvme_ctrl}} with operations {{The Linux Kernel/id|nvme_ctrl_ops}}
::: a subroutine of {{The Linux Kernel/id|nvme_scan_work}} adds a new disk with {{The Linux Kernel/id|device_add_disk}}
: {{The Linux Kernel/id|nvme_init}} - local PCI nvme module init
:: {{The Linux Kernel/id|nvme_probe}}
::: {{The Linux Kernel/id|nvme_init_ctrl}} ...
::: {{The Linux Kernel/id|nvme_pci_ctrl_ops}}
: {{The Linux Kernel/id|nvme_core_init}} - module init
'''Fabrics'''
⚲ interfaces:
: {{The Linux Kernel/source|drivers/nvme/host/fabrics.h}} – NVMe over Fabrics host common definitions
:: {{The Linux Kernel/id|nvmf_register_transport}} registers {{The Linux Kernel/id|nvmf_transport_ops}}
: {{The Linux Kernel/id|nvmf_init}} - fabrics module init
⚙️ internals:
: {{The Linux Kernel/id|nvmf_init}} - fabrics module init
:: {{The Linux Kernel/id|nvmf_misc}}
::: {{The Linux Kernel/id|nvmf_dev_fops}}
:::: {{The Linux Kernel/id|nvmf_dev_write}}
::::: {{The Linux Kernel/id|nvmf_create_ctrl}} binds {{The Linux Kernel/id|nvmf_transport_ops}}
'''Target''' {{The Linux Kernel/source|drivers/nvme/target}}:
⚲ Interfaces: {{The Linux Kernel/source|drivers/nvme/target/nvmet.h}}
: {{The Linux Kernel/id|nvmet_register_transport}} registers {{The Linux Kernel/id|nvmet_fabrics_ops}}
: {{The Linux Kernel/id|nvmet_init}} - module init
: {{The Linux Kernel/id|fcloop_init}} - loopback test module init which can be useful to test NVMe-FC transport interfaces.
{| class="wikitable"
|-
!
! colspan="3" |NVMe over {{w|Switched fabric|Fabrics}}
|-
!<div style='text-align:left'>Layers</div>
!{{w|Transmission Control Protocol|TCP}}
![[../Networking#RDMA|RDMA]]
!{{w|Fibre Channel}}
|-
!<div style='text-align:left'>Host modules</div>
|{{The Linux Kernel/id|nvme_tcp_init_module}}
|{{The Linux Kernel/id|nvme_rdma_init_module}}
|{{The Linux Kernel/id|nvme_fc_init_module}}
|-
!<div style='text-align:left'>Fabrics protocols</div>
|{{The Linux Kernel/include|linux/nvme-tcp.h}}
|{{The Linux Kernel/include|linux/nvme-rdma.h}}
|{{The Linux Kernel/include|linux/nvme-fc.h}}
{{The Linux Kernel/include|linux/nvme-fc-driver.h}}
|-
!<div style='text-align:left'>Target modules</div>
|{{The Linux Kernel/id|nvmet_tcp_init}}
|{{The Linux Kernel/id|nvmet_rdma_init}}
|{{The Linux Kernel/id|nvmet_fc_init_module}}
|}
👁 Example: {{The Linux Kernel/id|nvme_loop_init_module}} nvme loopback
: {{The Linux Kernel/id|nvme_loop_transport}} - fabrics operations
:: {{The Linux Kernel/id|nvme_loop_create_ctrl}}
::: {{The Linux Kernel/id|nvme_loop_create_io_queues}}
: {{The Linux Kernel/id|nvme_loop_ops}} - target operation
:: {{The Linux Kernel/id|nvme_loop_add_port}}
:: {{The Linux Kernel/id|nvme_loop_queue_response}}
== ... ==
🚀 Advanced
: {{The Linux Kernel/man|1|pidstat}} – reports task statistics
: /proc/self/io – I/O statistics for the process (see {{The Linux Kernel/man|5|proc}})
💾 Historical storage drivers
: {{The Linux Kernel/source|drivers/ata}} - {{w|Parallel ATA}}
📖 Further reading about storage
: [https://github.com/iovisor/bcc/blob/master/README.md#storage-and-filesystems-tools bcc/ebpf storage and filesystems tools]
{{BookCat}}
d5xrm0vxs4s7ges74a3vier10cfse8k
4640247
4640237
2026-06-13T20:25:23Z
Conan
3188
fix plethora typo
4640247
wikitext
text/x-wiki
{{DISPLAYTITLE:Storage functionality}}
{|style="width: 25%; float: right; text-align:center;border-spacing: 0; color:black; margin:auto;" cellpadding=5pc
! bgcolor=#cef | storage
|-style=""
| bgcolor=#aef | [[#Files_and_directories|files & directories access]]
|-style=""
| bgcolor=#8df | [[#Virtual File System|Virtual File System]]
|-style=""
| bgcolor=#8ce |[[#Page_cache|page cache]]
|-style=""
| bgcolor=#7ac |[[#Logical file systems|logical file systems]]
|-style=""
| bgcolor=#69a |[[#Block_device_layer|block devices]]
|-style=""
| bgcolor=#689 |[[#Storage_drivers|storage drivers]]
|}
Storage functionality provides access to various storage devices via files and directories of files.
Most of the storage is persistent as flash memory, SSD and legacy hard disks.
Another kind of storage is temporary.
The ''file system'' provides an abstraction to organize the information into separate pieces of data (called ''files'') identified by a unique name.
Each file system type defines their own structures and logic rules used to manage these groups of information and their names.
Linux supports a plethora of different file system types, local and remote, native and from other operating systems.
To accommodate such disparity the kernel defines a common top layer, the ''virtual file system'' (VFS) layer.
[[File:The Linux Storage Stack Diagram.svg|Summary of the Linux kernel's storage stack|right|800x800px]]
== Files and directories ==
Four basic files access system calls:
: {{The Linux Kernel/man|2|open}} ↪ {{The Linux Kernel/id|do_sys_open}} - opens a file by name and returns a {{w|file descriptor}} (<big>fd</big>). Below functions operates on a fd.
: {{The Linux Kernel/man|2|close}} ↪ {{The Linux Kernel/id|close_fd}}
: {{The Linux Kernel/man|2|read}} ↪ {{The Linux Kernel/id|ksys_read}}
: {{The Linux Kernel/man|2|write}} ↪ {{The Linux Kernel/id|ksys_write}}
File in Linux and UNIX is not only physical file on persistent storage.
File interface is used to access pipes, sockets and other pseudo-files.
🔧 TODO
: {{The Linux Kernel/man|2|readlink}} , {{The Linux Kernel/man|2|symlink}} , {{The Linux Kernel/man|2|link}}
: {{The Linux Kernel/man|3|readdir}} ⇾ {{The Linux Kernel/man|2|getdents}}
: {{The Linux Kernel/man|7|path_resolution}}
: {{The Linux Kernel/man|2|fcntl}} – manipulate file descriptor
⚙️ Files and directories internals
: {{The Linux Kernel/include|linux/fs.h}}
: {{The Linux Kernel/source|fs/open.c}} – open, close and related file operations
: {{The Linux Kernel/source|fs/namei.c}} – pathname lookup and resolution
: {{The Linux Kernel/source|fs/read_write.c}} – read, write and lseek operations
📚 Files and directories references
: [https://www.gnu.org/software/libc/manual/html_node/I_002fO-Overview.html Input/Output, The GNU C Library]
: [https://tldp.org/LDP/lki/lki-3.html VFS in Linux Kernel 2.4 Internals]
: {{w|Unix file types}}
=== File locks ===
File locks are mechanisms that allow processes to coordinate access to shared files.
These locks help prevent conflicts when multiple processes or threads attempt to access the same file simultaneously.
⚲ API
: {{The Linux Kernel/man|8|lslocks}} – list local system locks
: {{The Linux Kernel/man|3|lockf}} – apply, test or remove a POSIX lock on an open file
: {{The Linux Kernel/man|2|flock}} – apply or remove an advisory BSD lock on an open file
: {{The Linux Kernel/man|2|fcntl}} – manipulate file descriptor
:: {{The Linux Kernel/id|F_SETLK}} – advisory record lock
:: {{The Linux Kernel/id|F_OFD_SETLK}} – Open File Description Lock
:: {{The Linux Kernel/id|flock}} – lock parameters
: ⚠️ Avoid mixing flock and fcntl locks on the same file as they don’t interact with each other.
⚙️ Internals
: {{The Linux Kernel/include|linux/filelock.h}}
: {{The Linux Kernel/source|fs/locks.c}} – POSIX and flock file locking
: {{The Linux Kernel/include|trace/events/filelock.h}}
💾 ''Historical: [https://elixir.bootlin.com/linux/v5.14/K/ident/CONFIG_MANDATORY_FILE_LOCKING Mandatory locking] feature is no longer supported at all in Linux 5.15 and above because the implementation is unreliable.''
=== Asynchronous I/O ===
🚀 advanced features
'''AIO'''
: https://lwn.net/Kernel/Index/#Asynchronous_IO
: {{The Linux Kernel/man|2|io_submit}} {{The Linux Kernel/man|2|io_setup}} {{The Linux Kernel/man|2|io_cancel}} {{The Linux Kernel/man|2|io_destroy}} {{The Linux Kernel/man|2|io_getevents}}
: {{The Linux Kernel/include|uapi/linux/aio_abi.h}}
: {{The Linux Kernel/source|fs/aio.c}} – async I/O implementation
: {{The Linux Kernel/ltp|kernel|io/aio}}
'''{{w|io_uring}}'''
🌱 ''New since release 5.1 in May 2019''
: https://blogs.oracle.com/linux/an-introduction-to-the-io_uring-asynchronous-io-framework
: https://thenewstack.io/how-io_uring-and-ebpf-will-revolutionize-programming-in-linux/
: {{The Linux Kernel/id|io_uring_enter}} {{The Linux Kernel/id|io_uring_setup}} {{The Linux Kernel/id|io_uring_register}}
: {{The Linux Kernel/include|linux/io_uring.h}}
: {{The Linux Kernel/include|uapi/linux/io_uring.h}}
: {{The Linux Kernel/source|io_uring}}
: https://lwn.net/Kernel/Index/#io_uring
:: [https://lwn.net/Articles/779472/ io_uring, SCM_RIGHTS, and reference-count cycles]
:: [https://lwn.net/Articles/810414/ The rapid growth of io_uring]
:: [https://lwn.net/Articles/815491/ Automatic buffer selection for io_uring]
:: [https://lwn.net/Articles/826053/ Operations restrictions for io_uring]
:: [https://lwn.net/Articles/779472/ io_uring, SCM_RIGHTS, and reference-count cycles]
:: [https://lwn.net/Articles/803070/ Redesigned workqueues for io_uring]
: {{The Linux Kernel/ltp|kernel/syscalls|io_uring}}
=== {{w|Asynchronous_I/O#Forms|Non-blocking I/O}} ===
Allow non-blocking access to multiple file descriptors.
'''Efficient event polling {{w|epoll}}'''
⚲ API:
: {{The Linux Kernel/include|uapi/linux/eventpoll.h}}
: {{The Linux Kernel/man|7|epoll}}
: {{The Linux Kernel/man|2|epoll_create}} ↪ {{The Linux Kernel/id|do_epoll_create}}
: {{The Linux Kernel/man|2|epoll_ctl}} ↪ {{The Linux Kernel/id|do_epoll_ctl}}
: {{The Linux Kernel/man|2|epoll_wait}} ↪ {{The Linux Kernel/id|do_epoll_wait}}
⚙️ Internals:
: {{The Linux Kernel/source|fs/eventpoll.c}} – efficient event polling (epoll)
'''{{w|Select (Unix)|select}} and {{w|poll (Unix)|poll}}'''
💾 ''Historical: Select and poll system calls are derived from UNIX''
⚲ API:
: {{The Linux Kernel/man|2|poll}} ↪ {{The Linux Kernel/id|do_sys_poll}}
: {{The Linux Kernel/man|2|select}} ↪ {{The Linux Kernel/id|kern_select}}
⚙️ Internals:
: {{The Linux Kernel/source|fs/select.c}} – select and poll implementation
=== Vectored I/O ===
🚀 advanced feature
{{w|Vectored I/O}}, also known as scatter/gather I/O, is a method of input and output by which a single procedure call sequentially reads data from multiple buffers and writes it to a single data stream, or reads data from a data stream and writes it to multiple buffers, as defined in a vector of buffers. Scatter/gather refers to the process of gathering data from, or scattering data into, the given set of buffers. Vectored I/O can operate synchronously or asynchronously. The main reasons for using vectored I/O are efficiency and convenience.
⚲ API:
: {{The Linux Kernel/include|uapi/linux/uio.h}}
: {{The Linux Kernel/include|linux/uio.h}}
: {{The Linux Kernel/id|iovec}}
: {{The Linux Kernel/man|2|readv}} ↪ {{The Linux Kernel/id|do_readv}}
: {{The Linux Kernel/man|2|writev}} ↪ {{The Linux Kernel/id|do_writev}}
⚙️ Internals:
: {{The Linux Kernel/id|iov_iter}}
: {{The Linux Kernel/id|do_readv}} ↯ call hierarchy:
:: {{The Linux Kernel/id|vfs_readv}}
::: {{The Linux Kernel/id|import_iovec}}
::: {{The Linux Kernel/id|ext4_file_read_iter}}
: {{The Linux Kernel/source|lib/iov_iter.c}} – I/O vector iterator operations
=== ... ===
📖 References
: [https://www.gnu.org/software/libc/manual/html_node/Scatter_002dGather.html Fast Scatter-Gather I/O, The GNU C Library]
: https://lwn.net/Kernel/Index/#Vectored_IO
: https://lwn.net/Kernel/Index/#Scattergather_chaining
📚 Further reading
: https://deepwiki.com/torvalds/linux/4-filesystems
== Virtual File System ==
The {{w|virtual file system}} (VFS) is an abstract layer on top of a concrete logical file system.
The purpose of a VFS is to allow client applications to access different types of logical file systems in a uniform way.
A VFS can, for example, be used to access local and [[../Networking#Network_storage|network storage]] devices transparently without the client application noticing the difference.
It can be used to bridge the differences in Windows, classic Mac OS/macOS and Unix filesystems, so that applications can access files on local file systems of those types without having to know what type of file system they are accessing.
A VFS specifies an interface (or a "contract") between the kernel and a logical file system.
Therefore, it is easy to add support for new file system types to the kernel simply by fulfilling the contract.
🔧 TODO: {{The Linux Kernel/id|vfsmount}}, {{The Linux Kernel/id|vfs_create}}, {{The Linux Kernel/id|vfs_read}}, {{The Linux Kernel/id|vfs_write}}
📚 VFS References
: {{The Linux Kernel/doc|VFS|filesystems/#core-vfs-documentation}}
: [https://tldp.org/LDP/lki/lki-3.html VFS in Linux Kernel 2.4 Internals]
== Logical file systems ==
A {{w|file system}} (or ''filesystem'') is used to control how data is stored and retrieved.
Without a file system, information placed in a storage area would be one large body of data with no way to tell where one piece of information stops and the next begins.
By separating the data into individual pieces, and giving each piece a name, the information is easily separated and identified.
Each group of data is called a "file".
The structure and logic rules used to manage the groups of information and their names is called a "file system".
There are many different kinds of file systems.
Each one has different structure and logic, properties of speed, flexibility, security, size and more.
Some file systems have been designed to be used for specific applications.
For example, the ISO 9660 file system is designed specifically for optical discs.
File systems can be used on many different kinds of storage devices.
Each storage device uses a different kind of media.
The most common storage device in use today is a {{w|SSD}}.
Other media that was used are hard disk, magnetic tape and optical disc.
In some cases, the computer's main memory (RAM) is used to create a temporary file system for short-term use.
Raw storage is called a block device.
Linux supports many different file systems, but common choices for the system disk on a block device include the ext* family (such as {{w|ext2}}, {{w|ext3}} and {{w|ext4}}), {{w|XFS}}, {{w|ReiserFS}} and {{w|btrfs}}.
For raw Flash without a {{w|flash translation layer}} (FTL) or {{w|Memory Technology Device}} (MTD), there is {{w|UBIFS}}, {{w|JFFS2}}, and {{w|YAFFS}}, among others. {{w|SquashFS}} is a common compressed read-only file system.
NFS and other network FS are described further in paragraph [[../Networking#Network_storage|Network storage]].
⚲ Shell interfaces:
: cat /proc/filesystems
: ls /sys/fs/
: {{The Linux Kernel/man|8|mount}}
: {{The Linux Kernel/man|8|umount}}
: {{The Linux Kernel/man|8|findmnt}}
: {{The Linux Kernel/man|1|mountpoint}}
: {{The Linux Kernel/man|1|df}}
Infrastructure ⚲ API function {{The Linux Kernel/id|register_filesystem}} registers structs {{The Linux Kernel/id|file_system_type}} and stores them in linked list ⚙️ {{The Linux Kernel/id|file_systems}}.
Function {{The Linux Kernel/id|ext4_init_fs}} registers {{The Linux Kernel/id|ext4_fs_type}}.
Operation of ''file system opening'' is called mounting: {{The Linux Kernel/id|ext4_mount}}
⚙️ Internals:
: {{The Linux Kernel/source|fs/namespace.c}} – mount and namespace operations
:: {{The Linux Kernel/man|2|mount}}
::: {{The Linux Kernel/id|do_mount}}
: {{The Linux Kernel/include|linux/buffer_head.h}}
:: {{The Linux Kernel/id|super_block}}
:: {{The Linux Kernel/id|sb_bread}}
: {{The Linux Kernel/source|fs}} – filesystem implementations
:: {{The Linux Kernel/source|fs/ext4/ext4.h}} – ext4 on-disk format and internal structures
::: {{The Linux Kernel/id|ext4_sb_bread}}
📚 References:
: {{The Linux Kernel/doc|filesystems|filesystems/#filesystems}}
: Kernel wikis: [https://ext4.wiki.kernel.org/ EXT4], [https://btrfs.wiki.kernel.org/ btrfs], [https://reiser4.wiki.kernel.org/ Reiser4], [https://raid.wiki.kernel.org/ RAID], [https://xfs.wiki.kernel.org/ XFS]
== Page cache ==
A page cache or disk cache is a transparent cache for the memory pages originating from a secondary storage device such as a hard disk drive.
The operating system keeps a page cache in otherwise unused portions of the main memory, resulting in quicker access to the contents of cached pages and overall performance improvements.
The page cache is implemented by the kernel, and is mostly transparent to applications.
Usually, all physical memory not directly allocated to applications is used by the operating system for the page cache.
Since the memory would otherwise be idle and is easily reclaimed when applications request it, there is generally no associated performance penalty and the operating system might even report such memory as "free" or "available".
The page cache also aids in writing to a disk.
Pages in the main memory that have been modified during writing data to disk are marked as "dirty" and have to be flushed to disk before they can be freed.
When a file write occurs, the page backing the particular block is looked up.
If it is already found in the page cache, the write is done to that page in the main memory.
Otherwise, when the write perfectly falls on page size boundaries, the page is not even read from disk, but allocated and immediately marked dirty.
Otherwise, the page(s) are fetched from disk and requested modifications are done.
Not all cached pages can be written to as program code is often mapped as read-only or copy-on-write; in the latter case, modifications to code will only be visible to the process itself and will not be written to disk.
⚲ API:
: {{The Linux Kernel/man|2|fsync}} ↪ {{The Linux Kernel/id|do_fsync}}
: {{The Linux Kernel/man|2|sync_file_range}} ↪ {{The Linux Kernel/id|ksys_sync_file_range}}
: {{The Linux Kernel/man|2|syncfs}} ↪ {{The Linux Kernel/id|sync_filesystem}}
📚 References
: {{The Linux Kernel/id|wb_workfn}}
: {{The Linux Kernel/id|address_space}}
: {{The Linux Kernel/id|do_writepages}}
: {{The Linux Kernel/include|linux/writeback.h}}
: {{The Linux Kernel/source|mm/page-writeback.c}} – dirty page writeback throttling
: {{w|Page cache}}
More
: [https://lwn.net/Articles/717953/ The future of DAX ] - direct access bypassing the cache
: [https://tldp.org/LDP/lki/lki-4.html Linux Page Cache in Linux Kernel 2.4 Internals]
== Zero-copy ==
🚀 advanced features
Writing data to storage and reading are very resource consuming operations.
Copying memory is time and CPU consuming operation too.
Set of methods to avoid copying operations is called {{w|zero-copy}}.
The goal of zero-copy methods is a fast and efficient data transfer within the system.
The first and simplest method is {{w|Pipeline (Unix)|Pipeline}}, invoked by operator "|" in shells.
Instead of writing data into temporary file and reading, the data is passed efficiently via a pipe bypassing a storage.
The second method is {{w|Tee_(command)|tee}}.
⚲ Syscalls:
: {{The Linux Kernel/man|2|pipe2}}
: {{The Linux Kernel/man|2|tee}}, {{The Linux Kernel/man|1|tee}}
: {{The Linux Kernel/man|2|sendfile}}
: {{The Linux Kernel/man|2|copy_file_range}}
: {{The Linux Kernel/man|2|splice}}
: {{The Linux Kernel/man|2|vmsplice}}
⚲ API and ⚙️ Internals:
: '''{{The Linux Kernel/man|2|pipe2}}''' ↪ {{The Linux Kernel/id|do_pipe2}} - creates pipe
:: uses {{The Linux Kernel/id|pipe_fs_type}}, {{The Linux Kernel/id|pipefifo_fops}}
: '''{{The Linux Kernel/man|2|tee}}''' ↪ {{The Linux Kernel/id|do_tee}} - duplicates pipe content
:: calls {{The Linux Kernel/id|link_pipe}}
: '''{{The Linux Kernel/man|2|sendfile}}''' ↪ {{The Linux Kernel/id|do_sendfile}} - transfers data between file descriptors, the output can be a socket. Used in [[../Networking#Network_storage|network storage]] and servers.
:: Calls: {{The Linux Kernel/id|do_splice_direct}}, {{The Linux Kernel/id|splice_direct_to_actor}}
: '''{{The Linux Kernel/man|2|copy_file_range}}''' ↪ {{The Linux Kernel/id|vfs_copy_file_range}} - transfers data between files
:: calls custom {{The Linux Kernel/id|remap_file_range}} like {{The Linux Kernel/id|nfs42_remap_file_range}}
:: or custom {{The Linux Kernel/id|copy_file_range}} like {{The Linux Kernel/id|fuse_copy_file_range}}
:: or {{The Linux Kernel/id|do_splice_direct}}
: '''{{The Linux Kernel/man|2|splice}}''' ↪ {{The Linux Kernel/id|do_splice}} - splices data to/from a pipe.
:: There are three cases regarding which end being a pipe:
:# {{The Linux Kernel/id|do_splice_from}} - only input is a pipe
:#: Calls {{The Linux Kernel/id|iter_file_splice_write}} or custom {{The Linux Kernel/id|splice_write}}
:#: or {{The Linux Kernel/id|default_file_splice_write}}: {{The Linux Kernel/id|write_pipe_buf}}, {{The Linux_Kernel/id|splice_from_pipe}}, {{The Linux Kernel/id|__splice_from_pipe}}
:# {{The Linux Kernel/id|do_splice_to}} - only output is a pipe.
:#: Calls {{The Linux Kernel/id|generic_file_splice_read}} or custom {{The Linux Kernel/id|splice_read}}
:#: or {{The Linux Kernel/id|default_file_splice_read}}: {{The Linux Kernel/id|kernel_readv}}
:# {{The Linux Kernel/id|splice_pipe_to_pipe}} - both are pipes
: '''{{The Linux Kernel/man|2|vmsplice}}''' ↪
:: {{The Linux Kernel/id|vmsplice_to_pipe}} – splices user pages to a pipe
:: {{The Linux Kernel/id|vmsplice_to_user}} – splices a pipe to user pages
⚲ API
: {{The Linux Kernel/include|linux/splice.h}}
⚙️ Internals:
: {{The Linux Kernel/source|fs/pipe.c}} – pipe and FIFO implementation
: {{The Linux Kernel/source|fs/splice.c}} – splice data transfer between file descriptors
🔧 TODO:
{{The Linux Kernel/id|zerocopy_sg_from_iter}} builds a zerocopy skb datagram from an iov_iter. Used in {{The Linux Kernel/id|tap_get_user}} and {{The Linux Kernel/id|tun_get_user}}.
{{The Linux Kernel/id|skb_zerocopy}}
{{The Linux Kernel/id|skb_zerocopy_iter_dgram}}
📚 References
: {{The Linux Kernel/man|7|pipe}}
: {{The Linux Kernel/man|7|fifo}}
: {{The Linux Kernel/doc|splice and pipes|filesystems/splice.html}}
:: {{The Linux Kernel/doc|Pipes API|filesystems/splice.html#pipes-api}}
: {{w|splice (system call)}}
: LTP: {{The Linux Kernel/ltp|kernel/syscalls|pipe}}, {{The Linux Kernel/ltp|kernel/syscalls|pipe2}}, {{The Linux Kernel/ltp|kernel/syscalls|tee}}, {{The Linux Kernel/ltp|kernel/syscalls|sendfile}}, {{The Linux Kernel/ltp|kernel/syscalls|copy_file_range}}, {{The Linux Kernel/ltp|kernel/syscalls|splice}}, {{The Linux Kernel/ltp|kernel/syscalls|vmsplice}}
== Block device layer ==
The block device layer in Linux provides an abstraction for accessing storage devices,
such as SSDs and USB drives, by presenting them as a series of fixed-size blocks.
It sits between the hardware and the file system,
allowing applications and file systems to perform read and write operations efficiently
without needing to know the specifics of the underlying hardware.
Key components include block drivers, the I/O scheduler,
and buffer management, which work together to handle requests,
optimize access patterns, and ensure data integrity.
This layer supports essential features like caching, partition management,
and queueing mechanisms to balance performance and reliability.
⚲ Interfaces:
: {{The Linux Kernel/include|linux/genhd.h}}
: {{The Linux Kernel/include|linux/blk_types.h}}
:: {{The Linux Kernel/id|bio}} – main unit of I/O for the block layer and lower layers
:: {{The Linux Kernel/id|req_op}} – operations common to the bio and request structures
: {{The Linux Kernel/include|linux/bio.h}}
: {{The Linux Kernel/id|block_device}}
:: {{The Linux Kernel/id|block_size}}
: {{The Linux Kernel/id|alloc_disk_node}} allocates {{The Linux Kernel/id|gendisk}}
: {{The Linux Kernel/id|add_disk}}
:: {{The Linux Kernel/id|device_add_disk}}
: {{The Linux Kernel/id|block_device_operations}}
: {{The Linux Kernel/include|linux/blkdev.h}}
:: {{The Linux Kernel/id|gendisk}}
::: {{The Linux Kernel/id|dev_to_disk}}, {{The Linux Kernel/id|disk_to_dev}}
:: {{The Linux Kernel/id|block_class}} – block devices Driver Model class
:: {{The Linux Kernel/id|register_blkdev}}
:: {{The Linux Kernel/id|request}}
:: {{The Linux Kernel/id|request_queue}}
⚙️ Internals.
: {{The Linux Kernel/source|block}} – block layer core
: {{The Linux Kernel/id|block_class}}
👁 Examples:
: {{The Linux Kernel/source|drivers/block/brd.c}} - small RAM backed block device driver
: {{The Linux Kernel/source|drivers/block/null_blk}} – null block test device
=== Device mapper ===
The ''device mapper'' is a framework provided by the kernel for mapping physical block devices onto higher-level "virtual block devices".
It forms the foundation of LVM2, software RAIDs and dm-crypt disk encryption, and offers additional features such as file system snapshots.
Device mapper works by passing data from a virtual block device, which is provided by the device mapper itself, to another block device.
Data can be also modified in transition, which is performed, for example, in the case of device mapper providing disk encryption.
User space applications that need to create new mapped devices talk to the device mapper via the <code>libdevmapper.so</code> shared library, which in turn issues ioctls to the <code>/dev/mapper/control</code> device node.
Functions provided by the device mapper include linear, striped and error ''mappings,'' as well as crypt and multipath ''targets.''
For example, two disks may be concatenated into one logical volume with a pair of ''linear'' mappings, one for each disk.
As another example, ''crypt'' target encrypts the data passing through the specified device, by using the Linux kernel's Crypto API.
The following mapping targets are available:
: ''cache'' - allows the creation of hybrid volumes, by using solid-state drives (SSDs) as caches for hard disk drives (HDDs)
: ''crypt'' - provides data encryption, by using the Linux kernel's Crypto API
: ''delay'' - delays reads and/or writes to different devices (used for testing)
: ''era'' - behaves in a way similar to the linear target, while it keeps track of blocks that were written to within a user-defined period of time
: ''error'' - simulates I/O errors for all mapped blocks (used for testing)
: ''flakey'' - simulates periodic unreliable behaviour (used for testing)
: ''linear'' - maps a continuous range of blocks onto another block device
: ''mirror'' - maps a mirrored logical device, while providing data redundancy
: ''multipath'' - supports the mapping of multipathed devices, through usage of their path groups
: ''raid'' - offers an interface to the Linux kernel's software RAID driver (md)
: ''snapshot'' and ''snapshot-origin'' - used for creation of LVM snapshots, as part of the underlining copy-on-write scheme
: ''striped'' - strips the data across physical devices, with the number of stripes and the striping chunk size as parameters
: ''zero'' - an equivalent of <code>/dev/zero</code>, all reads return blocks of zeros, and writes are discarded
📚 References
: {{w|Device mapper}}
: {{The Linux Kernel/doc|Device mapper|admin-guide/device-mapper}}
: {{The Linux Kernel/include|linux/device-mapper.h}}
: {{The Linux Kernel/source|drivers/md}} – device mapper and software RAID
: https://lwn.net/Kernel/Index/#Device_mapper
=== Multi-Queue Block IO Queueing ===
The blk-mq API enhances IO performance
by leveraging multiple queues for parallel processing,
addressing bottlenecks from traditional single-queue designs.
It uses software queues for scheduling,
merging, and reordering requests,
and hardware queues to interface directly with devices.
If hardware resources are limited,
requests are temporarily queued for later dispatch.
⚲ Interfaces:
: /sys/devices/.../mq/
: {{The Linux Kernel/include|linux/blk-mq.h}}
:: Structures:
::: {{The Linux Kernel/id|blk_mq_hw_ctx}} – hardware dispatch queue context
::: {{The Linux Kernel/id|blk_mq_tag_set}} – shared between request queues
:::: {{The Linux Kernel/id|blk_mq_ops}}
:::: {{The Linux Kernel/id|blk_mq_tags}}
:::: {{The Linux Kernel/id|blk_mq_queue_map}} – map software queues to hardware queues
::: {{The Linux Kernel/id|request}}
👁️ Example
: {{The Linux Kernel/source|drivers/block/null_blk}} – multi-queue aware block test driver
⚙️ Internals
: /sys/kernel/debug/block/*/hctx*
: {{The Linux Kernel/source|block/blk-mq.h}} – blk-mq internal definitions
:: {{The Linux Kernel/id|blk_mq_ctx}} – software staging queue context
: {{The Linux Kernel/source|block/blk-mq.c}} – block multi-queue core code
: {{The Linux Kernel/source|block/blk-mq-tag.c}} – tag allocation using scalable bitmaps
: ...
📖 References
: {{The Linux Kernel/doc|Multi-Queue Block IO Queueing Mechanism (blk-mq)|block/blk-mq.html}}
=== I/O scheduler ===
I/O scheduling (or disk scheduling) is the method chosen by the kernel to decide in which order the block I/O operations will be submitted to the storage volumes.
I/O scheduling usually has to work with hard disk drives that have long access times for requests placed far away from the current position of the disk head (this operation is called a seek).
To minimize the effect this has on system performance, most I/O schedulers implement a variant of the elevator algorithm that reorders the incoming randomly ordered requests so the associated data would be accessed with minimal arm/head movement.
The particular I/O scheduler used with certain block device can be switched at run time by modifying the corresponding <code>/sys/block/<block_device>/queue/scheduler</code> file in the sysfs filesystem.
Some I/O schedulers also have tunable parameters that can be set through files in <code>/sys/block/<block_device>/queue/iosched/</code>.
⚲ Interfaces:
: {{The Linux Kernel/man|1|ionice}} – set or get process I/O scheduling class and priority
:: {{The Linux Kernel/man|2|ioprio_get}}, ioprio_set
: {{The Linux Kernel/include|linux/elevator.h}}
: Function {{The Linux Kernel/id|elv_register}} registers struct {{The Linux Kernel/id|elevator_type}}.
: {{The Linux Kernel/id|elevator_queue}}
⚙️ Internals:
: {{The Linux Kernel/source|block/ioprio.c}} – I/O priority system call
: {{The Linux Kernel/source|block/elevator.c}} – I/O scheduler framework
: {{The Linux Kernel/source|block/Kconfig.iosched}} – I/O scheduler Kconfig options
: {{The Linux Kernel/source|block/bfq-iosched.c}} – Budget Fair Queueing scheduler
: {{The Linux Kernel/source|block/kyber-iosched.c}} – Kyber multiqueue scheduler
: {{The Linux Kernel/source|block/mq-deadline.c}} – deadline multiqueue scheduler
: {{The Linux Kernel/include|trace/events/block.h}}
📖 References:
: {{w|I/O scheduling}}
: {{w|Elevator algorithm}}
: {{The Linux Kernel/doc|Switching Scheduler|block/switching-sched.html}}
: {{The Linux Kernel/doc|BFQ - Budget Fair Queueing|block/bfq-iosched.html}}
: {{The Linux Kernel/doc|Deadline IO scheduler tunables|deadline-iosched.html}}
: https://www.cloudbees.com/blog/linux-io-scheduler-tuning/
: https://wiki.ubuntu.com/Kernel/Reference/IOSchedulers
=== ... ===
📖 References
: {{The Linux Kernel/doc|Block devices|block}}
:: {{The Linux Kernel/doc|Switching Scheduler|block/switching-sched.html}}
::: {{The Linux Kernel/doc|BFQ - Budget Fair Queueing|block/bfq-iosched.html}}
::: {{The Linux Kernel/doc|Deadline IO scheduler tunables|block/deadline-iosched.html}}
::: {{The Linux Kernel/doc|Kyber I/O scheduler tunables|block/kyber-iosched.html}}
:: {{The Linux Kernel/doc|Multi-Queue Block IO Queueing Mechanism (blk-mq)|block/blk-mq.html}}
📚 Further reading
: /sys/kernel/debug/block/*/
: https://lwn.net/Kernel/Index/#Block_layer
: [https://lore.kernel.org/linux-block/ block devices ML]
: [http://lwn.net/images/pdf/LDD3/ch16.pdf LDD3:Block Drivers]
: [http://www.xml.com/ldd/chapter/book/ch12.html LDD1:Loading Block Drivers]
: [https://www.oreilly.com/library/view/understanding-the-linux/0596005652/ch14.html ULK3 Chapter 14. Block Device Drivers]
: [https://sg.danny.cz/sg/The Linux SCSI Generic (sg) Driver]
:: [https://sg.danny.cz/sg/scsi_debug.html Scsi_debug adapter driver for Linux]
:: https://github.com/doug-gilbert/sg3_utils
== {{w|Computer data storage|Storage}} drivers ==
🔧 TODO
⚙️ Internals
: {{The Linux Kernel/source|drivers/nvmem}} – {{w|Non-volatile memory}}
: {{The Linux Kernel/source|drivers/sdio}} – {{w|Secure Digital#SDIO cards|Secure Digital Input Output}}
: {{The Linux Kernel/source|drivers/scsi}} – {{w|SCSI|Small Computer System Interface}}
: {{The Linux Kernel/source|drivers/virtio}} – virtio guest drivers
: {{The Linux Kernel/source|drivers/mtd}} – {{w|Memory Technology Device}} for 🤖 embedded devices
=== NVMe ===
{{w|NVM Express}} drivers provide accesses a computer's {{w|non-volatile storage}}.
Local storage is attached via {{w|PCIe|PCI Express}} bus.
PCI NVMe device driver entry point is {{The Linux Kernel/id|nvme_init}}.
Remote storage driver is called target and local {{w|Proxy_pattern|proxy}} driver is called host. {{w|Switched fabric|Fabrics}} connect remote targets with local host.
A fabric can be based on {{w|Remote direct memory access|RDMA}}, {{w|Transmission Control Protocol|TCP}} or {{w|Fibre Channel}} protocols.
⚲ API:
: [https://github.com/linux-nvme/nvme-cli nvme-cli]
: {{The Linux Kernel/include|uapi/linux/nvme_ioctl.h}}
: {{The Linux Kernel/include|linux/nvme.h}}
⚙️ '''Internals:'''
: {{The Linux Kernel/source|drivers/nvme}} – NVMe drivers
'''Host''' {{The Linux Kernel/source|drivers/nvme/host}}:
⚲ Interfaces:
: {{The Linux Kernel/source|drivers/nvme/host/nvme.h}} – NVMe host common definitions
:: {{The Linux Kernel/id|nvme_init_ctrl}} initializes a NVMe controller structures {{The Linux Kernel/id|nvme_ctrl}} with operations {{The Linux Kernel/id|nvme_ctrl_ops}}
::: a subroutine of {{The Linux Kernel/id|nvme_scan_work}} adds a new disk with {{The Linux Kernel/id|device_add_disk}}
: {{The Linux Kernel/id|nvme_init}} - local PCI nvme module init
:: {{The Linux Kernel/id|nvme_probe}}
::: {{The Linux Kernel/id|nvme_init_ctrl}} ...
::: {{The Linux Kernel/id|nvme_pci_ctrl_ops}}
: {{The Linux Kernel/id|nvme_core_init}} - module init
'''Fabrics'''
⚲ interfaces:
: {{The Linux Kernel/source|drivers/nvme/host/fabrics.h}} – NVMe over Fabrics host common definitions
:: {{The Linux Kernel/id|nvmf_register_transport}} registers {{The Linux Kernel/id|nvmf_transport_ops}}
: {{The Linux Kernel/id|nvmf_init}} - fabrics module init
⚙️ internals:
: {{The Linux Kernel/id|nvmf_init}} - fabrics module init
:: {{The Linux Kernel/id|nvmf_misc}}
::: {{The Linux Kernel/id|nvmf_dev_fops}}
:::: {{The Linux Kernel/id|nvmf_dev_write}}
::::: {{The Linux Kernel/id|nvmf_create_ctrl}} binds {{The Linux Kernel/id|nvmf_transport_ops}}
'''Target''' {{The Linux Kernel/source|drivers/nvme/target}}:
⚲ Interfaces: {{The Linux Kernel/source|drivers/nvme/target/nvmet.h}}
: {{The Linux Kernel/id|nvmet_register_transport}} registers {{The Linux Kernel/id|nvmet_fabrics_ops}}
: {{The Linux Kernel/id|nvmet_init}} - module init
: {{The Linux Kernel/id|fcloop_init}} - loopback test module init which can be useful to test NVMe-FC transport interfaces.
{| class="wikitable"
|-
!
! colspan="3" |NVMe over {{w|Switched fabric|Fabrics}}
|-
!<div style='text-align:left'>Layers</div>
!{{w|Transmission Control Protocol|TCP}}
![[../Networking#RDMA|RDMA]]
!{{w|Fibre Channel}}
|-
!<div style='text-align:left'>Host modules</div>
|{{The Linux Kernel/id|nvme_tcp_init_module}}
|{{The Linux Kernel/id|nvme_rdma_init_module}}
|{{The Linux Kernel/id|nvme_fc_init_module}}
|-
!<div style='text-align:left'>Fabrics protocols</div>
|{{The Linux Kernel/include|linux/nvme-tcp.h}}
|{{The Linux Kernel/include|linux/nvme-rdma.h}}
|{{The Linux Kernel/include|linux/nvme-fc.h}}
{{The Linux Kernel/include|linux/nvme-fc-driver.h}}
|-
!<div style='text-align:left'>Target modules</div>
|{{The Linux Kernel/id|nvmet_tcp_init}}
|{{The Linux Kernel/id|nvmet_rdma_init}}
|{{The Linux Kernel/id|nvmet_fc_init_module}}
|}
👁 Example: {{The Linux Kernel/id|nvme_loop_init_module}} nvme loopback
: {{The Linux Kernel/id|nvme_loop_transport}} - fabrics operations
:: {{The Linux Kernel/id|nvme_loop_create_ctrl}}
::: {{The Linux Kernel/id|nvme_loop_create_io_queues}}
: {{The Linux Kernel/id|nvme_loop_ops}} - target operation
:: {{The Linux Kernel/id|nvme_loop_add_port}}
:: {{The Linux Kernel/id|nvme_loop_queue_response}}
== ... ==
🚀 Advanced
: {{The Linux Kernel/man|1|pidstat}} – reports task statistics
: /proc/self/io – I/O statistics for the process (see {{The Linux Kernel/man|5|proc}})
💾 Historical storage drivers
: {{The Linux Kernel/source|drivers/ata}} - {{w|Parallel ATA}}
📖 Further reading about storage
: [https://github.com/iovisor/bcc/blob/master/README.md#storage-and-filesystems-tools bcc/ebpf storage and filesystems tools]
{{BookCat}}
n8ba14s2ou3kvfbhh0bg5sz2lc2i3rf
4640249
4640247
2026-06-13T20:25:25Z
Conan
3188
update stale identifiers: ext4_mount, genhd.h, alloc_disk_node, splice
4640249
wikitext
text/x-wiki
{{DISPLAYTITLE:Storage functionality}}
{|style="width: 25%; float: right; text-align:center;border-spacing: 0; color:black; margin:auto;" cellpadding=5pc
! bgcolor=#cef | storage
|-style=""
| bgcolor=#aef | [[#Files_and_directories|files & directories access]]
|-style=""
| bgcolor=#8df | [[#Virtual File System|Virtual File System]]
|-style=""
| bgcolor=#8ce |[[#Page_cache|page cache]]
|-style=""
| bgcolor=#7ac |[[#Logical file systems|logical file systems]]
|-style=""
| bgcolor=#69a |[[#Block_device_layer|block devices]]
|-style=""
| bgcolor=#689 |[[#Storage_drivers|storage drivers]]
|}
Storage functionality provides access to various storage devices via files and directories of files.
Most of the storage is persistent as flash memory, SSD and legacy hard disks.
Another kind of storage is temporary.
The ''file system'' provides an abstraction to organize the information into separate pieces of data (called ''files'') identified by a unique name.
Each file system type defines their own structures and logic rules used to manage these groups of information and their names.
Linux supports a plethora of different file system types, local and remote, native and from other operating systems.
To accommodate such disparity the kernel defines a common top layer, the ''virtual file system'' (VFS) layer.
[[File:The Linux Storage Stack Diagram.svg|Summary of the Linux kernel's storage stack|right|800x800px]]
== Files and directories ==
Four basic files access system calls:
: {{The Linux Kernel/man|2|open}} ↪ {{The Linux Kernel/id|do_sys_open}} - opens a file by name and returns a {{w|file descriptor}} (<big>fd</big>). Below functions operates on a fd.
: {{The Linux Kernel/man|2|close}} ↪ {{The Linux Kernel/id|close_fd}}
: {{The Linux Kernel/man|2|read}} ↪ {{The Linux Kernel/id|ksys_read}}
: {{The Linux Kernel/man|2|write}} ↪ {{The Linux Kernel/id|ksys_write}}
File in Linux and UNIX is not only physical file on persistent storage.
File interface is used to access pipes, sockets and other pseudo-files.
🔧 TODO
: {{The Linux Kernel/man|2|readlink}} , {{The Linux Kernel/man|2|symlink}} , {{The Linux Kernel/man|2|link}}
: {{The Linux Kernel/man|3|readdir}} ⇾ {{The Linux Kernel/man|2|getdents}}
: {{The Linux Kernel/man|7|path_resolution}}
: {{The Linux Kernel/man|2|fcntl}} – manipulate file descriptor
⚙️ Files and directories internals
: {{The Linux Kernel/include|linux/fs.h}}
: {{The Linux Kernel/source|fs/open.c}} – open, close and related file operations
: {{The Linux Kernel/source|fs/namei.c}} – pathname lookup and resolution
: {{The Linux Kernel/source|fs/read_write.c}} – read, write and lseek operations
📚 Files and directories references
: [https://www.gnu.org/software/libc/manual/html_node/I_002fO-Overview.html Input/Output, The GNU C Library]
: [https://tldp.org/LDP/lki/lki-3.html VFS in Linux Kernel 2.4 Internals]
: {{w|Unix file types}}
=== File locks ===
File locks are mechanisms that allow processes to coordinate access to shared files.
These locks help prevent conflicts when multiple processes or threads attempt to access the same file simultaneously.
⚲ API
: {{The Linux Kernel/man|8|lslocks}} – list local system locks
: {{The Linux Kernel/man|3|lockf}} – apply, test or remove a POSIX lock on an open file
: {{The Linux Kernel/man|2|flock}} – apply or remove an advisory BSD lock on an open file
: {{The Linux Kernel/man|2|fcntl}} – manipulate file descriptor
:: {{The Linux Kernel/id|F_SETLK}} – advisory record lock
:: {{The Linux Kernel/id|F_OFD_SETLK}} – Open File Description Lock
:: {{The Linux Kernel/id|flock}} – lock parameters
: ⚠️ Avoid mixing flock and fcntl locks on the same file as they don’t interact with each other.
⚙️ Internals
: {{The Linux Kernel/include|linux/filelock.h}}
: {{The Linux Kernel/source|fs/locks.c}} – POSIX and flock file locking
: {{The Linux Kernel/include|trace/events/filelock.h}}
💾 ''Historical: [https://elixir.bootlin.com/linux/v5.14/K/ident/CONFIG_MANDATORY_FILE_LOCKING Mandatory locking] feature is no longer supported at all in Linux 5.15 and above because the implementation is unreliable.''
=== Asynchronous I/O ===
🚀 advanced features
'''AIO'''
: https://lwn.net/Kernel/Index/#Asynchronous_IO
: {{The Linux Kernel/man|2|io_submit}} {{The Linux Kernel/man|2|io_setup}} {{The Linux Kernel/man|2|io_cancel}} {{The Linux Kernel/man|2|io_destroy}} {{The Linux Kernel/man|2|io_getevents}}
: {{The Linux Kernel/include|uapi/linux/aio_abi.h}}
: {{The Linux Kernel/source|fs/aio.c}} – async I/O implementation
: {{The Linux Kernel/ltp|kernel|io/aio}}
'''{{w|io_uring}}'''
🌱 ''New since release 5.1 in May 2019''
: https://blogs.oracle.com/linux/an-introduction-to-the-io_uring-asynchronous-io-framework
: https://thenewstack.io/how-io_uring-and-ebpf-will-revolutionize-programming-in-linux/
: {{The Linux Kernel/id|io_uring_enter}} {{The Linux Kernel/id|io_uring_setup}} {{The Linux Kernel/id|io_uring_register}}
: {{The Linux Kernel/include|linux/io_uring.h}}
: {{The Linux Kernel/include|uapi/linux/io_uring.h}}
: {{The Linux Kernel/source|io_uring}}
: https://lwn.net/Kernel/Index/#io_uring
:: [https://lwn.net/Articles/779472/ io_uring, SCM_RIGHTS, and reference-count cycles]
:: [https://lwn.net/Articles/810414/ The rapid growth of io_uring]
:: [https://lwn.net/Articles/815491/ Automatic buffer selection for io_uring]
:: [https://lwn.net/Articles/826053/ Operations restrictions for io_uring]
:: [https://lwn.net/Articles/779472/ io_uring, SCM_RIGHTS, and reference-count cycles]
:: [https://lwn.net/Articles/803070/ Redesigned workqueues for io_uring]
: {{The Linux Kernel/ltp|kernel/syscalls|io_uring}}
=== {{w|Asynchronous_I/O#Forms|Non-blocking I/O}} ===
Allow non-blocking access to multiple file descriptors.
'''Efficient event polling {{w|epoll}}'''
⚲ API:
: {{The Linux Kernel/include|uapi/linux/eventpoll.h}}
: {{The Linux Kernel/man|7|epoll}}
: {{The Linux Kernel/man|2|epoll_create}} ↪ {{The Linux Kernel/id|do_epoll_create}}
: {{The Linux Kernel/man|2|epoll_ctl}} ↪ {{The Linux Kernel/id|do_epoll_ctl}}
: {{The Linux Kernel/man|2|epoll_wait}} ↪ {{The Linux Kernel/id|do_epoll_wait}}
⚙️ Internals:
: {{The Linux Kernel/source|fs/eventpoll.c}} – efficient event polling (epoll)
'''{{w|Select (Unix)|select}} and {{w|poll (Unix)|poll}}'''
💾 ''Historical: Select and poll system calls are derived from UNIX''
⚲ API:
: {{The Linux Kernel/man|2|poll}} ↪ {{The Linux Kernel/id|do_sys_poll}}
: {{The Linux Kernel/man|2|select}} ↪ {{The Linux Kernel/id|kern_select}}
⚙️ Internals:
: {{The Linux Kernel/source|fs/select.c}} – select and poll implementation
=== Vectored I/O ===
🚀 advanced feature
{{w|Vectored I/O}}, also known as scatter/gather I/O, is a method of input and output by which a single procedure call sequentially reads data from multiple buffers and writes it to a single data stream, or reads data from a data stream and writes it to multiple buffers, as defined in a vector of buffers. Scatter/gather refers to the process of gathering data from, or scattering data into, the given set of buffers. Vectored I/O can operate synchronously or asynchronously. The main reasons for using vectored I/O are efficiency and convenience.
⚲ API:
: {{The Linux Kernel/include|uapi/linux/uio.h}}
: {{The Linux Kernel/include|linux/uio.h}}
: {{The Linux Kernel/id|iovec}}
: {{The Linux Kernel/man|2|readv}} ↪ {{The Linux Kernel/id|do_readv}}
: {{The Linux Kernel/man|2|writev}} ↪ {{The Linux Kernel/id|do_writev}}
⚙️ Internals:
: {{The Linux Kernel/id|iov_iter}}
: {{The Linux Kernel/id|do_readv}} ↯ call hierarchy:
:: {{The Linux Kernel/id|vfs_readv}}
::: {{The Linux Kernel/id|import_iovec}}
::: {{The Linux Kernel/id|ext4_file_read_iter}}
: {{The Linux Kernel/source|lib/iov_iter.c}} – I/O vector iterator operations
=== ... ===
📖 References
: [https://www.gnu.org/software/libc/manual/html_node/Scatter_002dGather.html Fast Scatter-Gather I/O, The GNU C Library]
: https://lwn.net/Kernel/Index/#Vectored_IO
: https://lwn.net/Kernel/Index/#Scattergather_chaining
📚 Further reading
: https://deepwiki.com/torvalds/linux/4-filesystems
== Virtual File System ==
The {{w|virtual file system}} (VFS) is an abstract layer on top of a concrete logical file system.
The purpose of a VFS is to allow client applications to access different types of logical file systems in a uniform way.
A VFS can, for example, be used to access local and [[../Networking#Network_storage|network storage]] devices transparently without the client application noticing the difference.
It can be used to bridge the differences in Windows, classic Mac OS/macOS and Unix filesystems, so that applications can access files on local file systems of those types without having to know what type of file system they are accessing.
A VFS specifies an interface (or a "contract") between the kernel and a logical file system.
Therefore, it is easy to add support for new file system types to the kernel simply by fulfilling the contract.
🔧 TODO: {{The Linux Kernel/id|vfsmount}}, {{The Linux Kernel/id|vfs_create}}, {{The Linux Kernel/id|vfs_read}}, {{The Linux Kernel/id|vfs_write}}
📚 VFS References
: {{The Linux Kernel/doc|VFS|filesystems/#core-vfs-documentation}}
: [https://tldp.org/LDP/lki/lki-3.html VFS in Linux Kernel 2.4 Internals]
== Logical file systems ==
A {{w|file system}} (or ''filesystem'') is used to control how data is stored and retrieved.
Without a file system, information placed in a storage area would be one large body of data with no way to tell where one piece of information stops and the next begins.
By separating the data into individual pieces, and giving each piece a name, the information is easily separated and identified.
Each group of data is called a "file".
The structure and logic rules used to manage the groups of information and their names is called a "file system".
There are many different kinds of file systems.
Each one has different structure and logic, properties of speed, flexibility, security, size and more.
Some file systems have been designed to be used for specific applications.
For example, the ISO 9660 file system is designed specifically for optical discs.
File systems can be used on many different kinds of storage devices.
Each storage device uses a different kind of media.
The most common storage device in use today is a {{w|SSD}}.
Other media that was used are hard disk, magnetic tape and optical disc.
In some cases, the computer's main memory (RAM) is used to create a temporary file system for short-term use.
Raw storage is called a block device.
Linux supports many different file systems, but common choices for the system disk on a block device include the ext* family (such as {{w|ext2}}, {{w|ext3}} and {{w|ext4}}), {{w|XFS}}, {{w|ReiserFS}} and {{w|btrfs}}.
For raw Flash without a {{w|flash translation layer}} (FTL) or {{w|Memory Technology Device}} (MTD), there is {{w|UBIFS}}, {{w|JFFS2}}, and {{w|YAFFS}}, among others. {{w|SquashFS}} is a common compressed read-only file system.
NFS and other network FS are described further in paragraph [[../Networking#Network_storage|Network storage]].
⚲ Shell interfaces:
: cat /proc/filesystems
: ls /sys/fs/
: {{The Linux Kernel/man|8|mount}}
: {{The Linux Kernel/man|8|umount}}
: {{The Linux Kernel/man|8|findmnt}}
: {{The Linux Kernel/man|1|mountpoint}}
: {{The Linux Kernel/man|1|df}}
Infrastructure ⚲ API function {{The Linux Kernel/id|register_filesystem}} registers structs {{The Linux Kernel/id|file_system_type}} and stores them in linked list ⚙️ {{The Linux Kernel/id|file_systems}}.
Function {{The Linux Kernel/id|ext4_init_fs}} registers {{The Linux Kernel/id|ext4_fs_type}}.
Operation of ''file system opening'' is called mounting: {{The Linux Kernel/id|ext4_get_tree}}
⚙️ Internals:
: {{The Linux Kernel/source|fs/namespace.c}} – mount and namespace operations
:: {{The Linux Kernel/man|2|mount}}
::: {{The Linux Kernel/id|do_mount}}
: {{The Linux Kernel/include|linux/buffer_head.h}}
:: {{The Linux Kernel/id|super_block}}
:: {{The Linux Kernel/id|sb_bread}}
: {{The Linux Kernel/source|fs}} – filesystem implementations
:: {{The Linux Kernel/source|fs/ext4/ext4.h}} – ext4 on-disk format and internal structures
::: {{The Linux Kernel/id|ext4_sb_bread}}
📚 References:
: {{The Linux Kernel/doc|filesystems|filesystems/#filesystems}}
: Kernel wikis: [https://ext4.wiki.kernel.org/ EXT4], [https://btrfs.wiki.kernel.org/ btrfs], [https://reiser4.wiki.kernel.org/ Reiser4], [https://raid.wiki.kernel.org/ RAID], [https://xfs.wiki.kernel.org/ XFS]
== Page cache ==
A page cache or disk cache is a transparent cache for the memory pages originating from a secondary storage device such as a hard disk drive.
The operating system keeps a page cache in otherwise unused portions of the main memory, resulting in quicker access to the contents of cached pages and overall performance improvements.
The page cache is implemented by the kernel, and is mostly transparent to applications.
Usually, all physical memory not directly allocated to applications is used by the operating system for the page cache.
Since the memory would otherwise be idle and is easily reclaimed when applications request it, there is generally no associated performance penalty and the operating system might even report such memory as "free" or "available".
The page cache also aids in writing to a disk.
Pages in the main memory that have been modified during writing data to disk are marked as "dirty" and have to be flushed to disk before they can be freed.
When a file write occurs, the page backing the particular block is looked up.
If it is already found in the page cache, the write is done to that page in the main memory.
Otherwise, when the write perfectly falls on page size boundaries, the page is not even read from disk, but allocated and immediately marked dirty.
Otherwise, the page(s) are fetched from disk and requested modifications are done.
Not all cached pages can be written to as program code is often mapped as read-only or copy-on-write; in the latter case, modifications to code will only be visible to the process itself and will not be written to disk.
⚲ API:
: {{The Linux Kernel/man|2|fsync}} ↪ {{The Linux Kernel/id|do_fsync}}
: {{The Linux Kernel/man|2|sync_file_range}} ↪ {{The Linux Kernel/id|ksys_sync_file_range}}
: {{The Linux Kernel/man|2|syncfs}} ↪ {{The Linux Kernel/id|sync_filesystem}}
📚 References
: {{The Linux Kernel/id|wb_workfn}}
: {{The Linux Kernel/id|address_space}}
: {{The Linux Kernel/id|do_writepages}}
: {{The Linux Kernel/include|linux/writeback.h}}
: {{The Linux Kernel/source|mm/page-writeback.c}} – dirty page writeback throttling
: {{w|Page cache}}
More
: [https://lwn.net/Articles/717953/ The future of DAX ] - direct access bypassing the cache
: [https://tldp.org/LDP/lki/lki-4.html Linux Page Cache in Linux Kernel 2.4 Internals]
== Zero-copy ==
🚀 advanced features
Writing data to storage and reading are very resource consuming operations.
Copying memory is time and CPU consuming operation too.
Set of methods to avoid copying operations is called {{w|zero-copy}}.
The goal of zero-copy methods is a fast and efficient data transfer within the system.
The first and simplest method is {{w|Pipeline (Unix)|Pipeline}}, invoked by operator "|" in shells.
Instead of writing data into temporary file and reading, the data is passed efficiently via a pipe bypassing a storage.
The second method is {{w|Tee_(command)|tee}}.
⚲ Syscalls:
: {{The Linux Kernel/man|2|pipe2}}
: {{The Linux Kernel/man|2|tee}}, {{The Linux Kernel/man|1|tee}}
: {{The Linux Kernel/man|2|sendfile}}
: {{The Linux Kernel/man|2|copy_file_range}}
: {{The Linux Kernel/man|2|splice}}
: {{The Linux Kernel/man|2|vmsplice}}
⚲ API and ⚙️ Internals:
: '''{{The Linux Kernel/man|2|pipe2}}''' ↪ {{The Linux Kernel/id|do_pipe2}} - creates pipe
:: uses {{The Linux Kernel/id|pipe_fs_type}}, {{The Linux Kernel/id|pipefifo_fops}}
: '''{{The Linux Kernel/man|2|tee}}''' ↪ {{The Linux Kernel/id|do_tee}} - duplicates pipe content
:: calls {{The Linux Kernel/id|link_pipe}}
: '''{{The Linux Kernel/man|2|sendfile}}''' ↪ {{The Linux Kernel/id|do_sendfile}} - transfers data between file descriptors, the output can be a socket. Used in [[../Networking#Network_storage|network storage]] and servers.
:: Calls: {{The Linux Kernel/id|do_splice_direct}}, {{The Linux Kernel/id|splice_direct_to_actor}}
: '''{{The Linux Kernel/man|2|copy_file_range}}''' ↪ {{The Linux Kernel/id|vfs_copy_file_range}} - transfers data between files
:: calls custom {{The Linux Kernel/id|remap_file_range}} like {{The Linux Kernel/id|nfs42_remap_file_range}}
:: or custom {{The Linux Kernel/id|copy_file_range}} like {{The Linux Kernel/id|fuse_copy_file_range}}
:: or {{The Linux Kernel/id|do_splice_direct}}
: '''{{The Linux Kernel/man|2|splice}}''' ↪ {{The Linux Kernel/id|do_splice}} - splices data to/from a pipe.
:: There are three cases regarding which end being a pipe:
:# {{The Linux Kernel/id|do_splice_from}} - pipe → file
:#: Calls custom {{The Linux Kernel/id|splice_write}} or {{The Linux Kernel/id|iter_file_splice_write}}
:# {{The Linux Kernel/id|do_splice_read}} - file → pipe
:#: Calls custom {{The Linux Kernel/id|splice_read}} or {{The Linux Kernel/id|copy_splice_read}}
:# {{The Linux Kernel/id|splice_pipe_to_pipe}} - both are pipes
: '''{{The Linux Kernel/man|2|vmsplice}}''' ↪
:: {{The Linux Kernel/id|vmsplice_to_pipe}} – splices user pages to a pipe
:: {{The Linux Kernel/id|vmsplice_to_user}} – splices a pipe to user pages
⚲ API
: {{The Linux Kernel/include|linux/splice.h}}
⚙️ Internals:
: {{The Linux Kernel/source|fs/pipe.c}} – pipe and FIFO implementation
: {{The Linux Kernel/source|fs/splice.c}} – splice data transfer between file descriptors
🔧 TODO:
{{The Linux Kernel/id|zerocopy_sg_from_iter}} builds a zerocopy skb datagram from an iov_iter. Used in {{The Linux Kernel/id|tap_get_user}} and {{The Linux Kernel/id|tun_get_user}}.
{{The Linux Kernel/id|skb_zerocopy}}
{{The Linux Kernel/id|skb_zerocopy_iter_dgram}}
📚 References
: {{The Linux Kernel/man|7|pipe}}
: {{The Linux Kernel/man|7|fifo}}
: {{The Linux Kernel/doc|splice and pipes|filesystems/splice.html}}
:: {{The Linux Kernel/doc|Pipes API|filesystems/splice.html#pipes-api}}
: {{w|splice (system call)}}
: LTP: {{The Linux Kernel/ltp|kernel/syscalls|pipe}}, {{The Linux Kernel/ltp|kernel/syscalls|pipe2}}, {{The Linux Kernel/ltp|kernel/syscalls|tee}}, {{The Linux Kernel/ltp|kernel/syscalls|sendfile}}, {{The Linux Kernel/ltp|kernel/syscalls|copy_file_range}}, {{The Linux Kernel/ltp|kernel/syscalls|splice}}, {{The Linux Kernel/ltp|kernel/syscalls|vmsplice}}
== Block device layer ==
The block device layer in Linux provides an abstraction for accessing storage devices,
such as SSDs and USB drives, by presenting them as a series of fixed-size blocks.
It sits between the hardware and the file system,
allowing applications and file systems to perform read and write operations efficiently
without needing to know the specifics of the underlying hardware.
Key components include block drivers, the I/O scheduler,
and buffer management, which work together to handle requests,
optimize access patterns, and ensure data integrity.
This layer supports essential features like caching, partition management,
and queueing mechanisms to balance performance and reliability.
⚲ Interfaces:
: {{The Linux Kernel/include|linux/blk_types.h}}
:: {{The Linux Kernel/id|bio}} – main unit of I/O for the block layer and lower layers
:: {{The Linux Kernel/id|req_op}} – operations common to the bio and request structures
: {{The Linux Kernel/include|linux/bio.h}}
: {{The Linux Kernel/id|block_device}}
:: {{The Linux Kernel/id|block_size}}
: {{The Linux Kernel/id|blk_alloc_disk}} allocates {{The Linux Kernel/id|gendisk}}
: {{The Linux Kernel/id|add_disk}}
:: {{The Linux Kernel/id|device_add_disk}}
: {{The Linux Kernel/id|block_device_operations}}
: {{The Linux Kernel/include|linux/blkdev.h}}
:: {{The Linux Kernel/id|gendisk}}
::: {{The Linux Kernel/id|dev_to_disk}}, {{The Linux Kernel/id|disk_to_dev}}
:: {{The Linux Kernel/id|block_class}} – block devices Driver Model class
:: {{The Linux Kernel/id|register_blkdev}}
:: {{The Linux Kernel/id|request}}
:: {{The Linux Kernel/id|request_queue}}
⚙️ Internals.
: {{The Linux Kernel/source|block}} – block layer core
: {{The Linux Kernel/id|block_class}}
👁 Examples:
: {{The Linux Kernel/source|drivers/block/brd.c}} - small RAM backed block device driver
: {{The Linux Kernel/source|drivers/block/null_blk}} – null block test device
=== Device mapper ===
The ''device mapper'' is a framework provided by the kernel for mapping physical block devices onto higher-level "virtual block devices".
It forms the foundation of LVM2, software RAIDs and dm-crypt disk encryption, and offers additional features such as file system snapshots.
Device mapper works by passing data from a virtual block device, which is provided by the device mapper itself, to another block device.
Data can be also modified in transition, which is performed, for example, in the case of device mapper providing disk encryption.
User space applications that need to create new mapped devices talk to the device mapper via the <code>libdevmapper.so</code> shared library, which in turn issues ioctls to the <code>/dev/mapper/control</code> device node.
Functions provided by the device mapper include linear, striped and error ''mappings,'' as well as crypt and multipath ''targets.''
For example, two disks may be concatenated into one logical volume with a pair of ''linear'' mappings, one for each disk.
As another example, ''crypt'' target encrypts the data passing through the specified device, by using the Linux kernel's Crypto API.
The following mapping targets are available:
: ''cache'' - allows the creation of hybrid volumes, by using solid-state drives (SSDs) as caches for hard disk drives (HDDs)
: ''crypt'' - provides data encryption, by using the Linux kernel's Crypto API
: ''delay'' - delays reads and/or writes to different devices (used for testing)
: ''era'' - behaves in a way similar to the linear target, while it keeps track of blocks that were written to within a user-defined period of time
: ''error'' - simulates I/O errors for all mapped blocks (used for testing)
: ''flakey'' - simulates periodic unreliable behaviour (used for testing)
: ''linear'' - maps a continuous range of blocks onto another block device
: ''mirror'' - maps a mirrored logical device, while providing data redundancy
: ''multipath'' - supports the mapping of multipathed devices, through usage of their path groups
: ''raid'' - offers an interface to the Linux kernel's software RAID driver (md)
: ''snapshot'' and ''snapshot-origin'' - used for creation of LVM snapshots, as part of the underlining copy-on-write scheme
: ''striped'' - strips the data across physical devices, with the number of stripes and the striping chunk size as parameters
: ''zero'' - an equivalent of <code>/dev/zero</code>, all reads return blocks of zeros, and writes are discarded
📚 References
: {{w|Device mapper}}
: {{The Linux Kernel/doc|Device mapper|admin-guide/device-mapper}}
: {{The Linux Kernel/include|linux/device-mapper.h}}
: {{The Linux Kernel/source|drivers/md}} – device mapper and software RAID
: https://lwn.net/Kernel/Index/#Device_mapper
=== Multi-Queue Block IO Queueing ===
The blk-mq API enhances IO performance
by leveraging multiple queues for parallel processing,
addressing bottlenecks from traditional single-queue designs.
It uses software queues for scheduling,
merging, and reordering requests,
and hardware queues to interface directly with devices.
If hardware resources are limited,
requests are temporarily queued for later dispatch.
⚲ Interfaces:
: /sys/devices/.../mq/
: {{The Linux Kernel/include|linux/blk-mq.h}}
:: Structures:
::: {{The Linux Kernel/id|blk_mq_hw_ctx}} – hardware dispatch queue context
::: {{The Linux Kernel/id|blk_mq_tag_set}} – shared between request queues
:::: {{The Linux Kernel/id|blk_mq_ops}}
:::: {{The Linux Kernel/id|blk_mq_tags}}
:::: {{The Linux Kernel/id|blk_mq_queue_map}} – map software queues to hardware queues
::: {{The Linux Kernel/id|request}}
👁️ Example
: {{The Linux Kernel/source|drivers/block/null_blk}} – multi-queue aware block test driver
⚙️ Internals
: /sys/kernel/debug/block/*/hctx*
: {{The Linux Kernel/source|block/blk-mq.h}} – blk-mq internal definitions
:: {{The Linux Kernel/id|blk_mq_ctx}} – software staging queue context
: {{The Linux Kernel/source|block/blk-mq.c}} – block multi-queue core code
: {{The Linux Kernel/source|block/blk-mq-tag.c}} – tag allocation using scalable bitmaps
: ...
📖 References
: {{The Linux Kernel/doc|Multi-Queue Block IO Queueing Mechanism (blk-mq)|block/blk-mq.html}}
=== I/O scheduler ===
I/O scheduling (or disk scheduling) is the method chosen by the kernel to decide in which order the block I/O operations will be submitted to the storage volumes.
I/O scheduling usually has to work with hard disk drives that have long access times for requests placed far away from the current position of the disk head (this operation is called a seek).
To minimize the effect this has on system performance, most I/O schedulers implement a variant of the elevator algorithm that reorders the incoming randomly ordered requests so the associated data would be accessed with minimal arm/head movement.
The particular I/O scheduler used with certain block device can be switched at run time by modifying the corresponding <code>/sys/block/<block_device>/queue/scheduler</code> file in the sysfs filesystem.
Some I/O schedulers also have tunable parameters that can be set through files in <code>/sys/block/<block_device>/queue/iosched/</code>.
⚲ Interfaces:
: {{The Linux Kernel/man|1|ionice}} – set or get process I/O scheduling class and priority
:: {{The Linux Kernel/man|2|ioprio_get}}, ioprio_set
: {{The Linux Kernel/include|linux/elevator.h}}
: Function {{The Linux Kernel/id|elv_register}} registers struct {{The Linux Kernel/id|elevator_type}}.
: {{The Linux Kernel/id|elevator_queue}}
⚙️ Internals:
: {{The Linux Kernel/source|block/ioprio.c}} – I/O priority system call
: {{The Linux Kernel/source|block/elevator.c}} – I/O scheduler framework
: {{The Linux Kernel/source|block/Kconfig.iosched}} – I/O scheduler Kconfig options
: {{The Linux Kernel/source|block/bfq-iosched.c}} – Budget Fair Queueing scheduler
: {{The Linux Kernel/source|block/kyber-iosched.c}} – Kyber multiqueue scheduler
: {{The Linux Kernel/source|block/mq-deadline.c}} – deadline multiqueue scheduler
: {{The Linux Kernel/include|trace/events/block.h}}
📖 References:
: {{w|I/O scheduling}}
: {{w|Elevator algorithm}}
: {{The Linux Kernel/doc|Switching Scheduler|block/switching-sched.html}}
: {{The Linux Kernel/doc|BFQ - Budget Fair Queueing|block/bfq-iosched.html}}
: {{The Linux Kernel/doc|Deadline IO scheduler tunables|deadline-iosched.html}}
: https://www.cloudbees.com/blog/linux-io-scheduler-tuning/
: https://wiki.ubuntu.com/Kernel/Reference/IOSchedulers
=== ... ===
📖 References
: {{The Linux Kernel/doc|Block devices|block}}
:: {{The Linux Kernel/doc|Switching Scheduler|block/switching-sched.html}}
::: {{The Linux Kernel/doc|BFQ - Budget Fair Queueing|block/bfq-iosched.html}}
::: {{The Linux Kernel/doc|Deadline IO scheduler tunables|block/deadline-iosched.html}}
::: {{The Linux Kernel/doc|Kyber I/O scheduler tunables|block/kyber-iosched.html}}
:: {{The Linux Kernel/doc|Multi-Queue Block IO Queueing Mechanism (blk-mq)|block/blk-mq.html}}
📚 Further reading
: /sys/kernel/debug/block/*/
: https://lwn.net/Kernel/Index/#Block_layer
: [https://lore.kernel.org/linux-block/ block devices ML]
: [http://lwn.net/images/pdf/LDD3/ch16.pdf LDD3:Block Drivers]
: [http://www.xml.com/ldd/chapter/book/ch12.html LDD1:Loading Block Drivers]
: [https://www.oreilly.com/library/view/understanding-the-linux/0596005652/ch14.html ULK3 Chapter 14. Block Device Drivers]
: [https://sg.danny.cz/sg/The Linux SCSI Generic (sg) Driver]
:: [https://sg.danny.cz/sg/scsi_debug.html Scsi_debug adapter driver for Linux]
:: https://github.com/doug-gilbert/sg3_utils
== {{w|Computer data storage|Storage}} drivers ==
🔧 TODO
⚙️ Internals
: {{The Linux Kernel/source|drivers/nvmem}} – {{w|Non-volatile memory}}
: {{The Linux Kernel/source|drivers/sdio}} – {{w|Secure Digital#SDIO cards|Secure Digital Input Output}}
: {{The Linux Kernel/source|drivers/scsi}} – {{w|SCSI|Small Computer System Interface}}
: {{The Linux Kernel/source|drivers/virtio}} – virtio guest drivers
: {{The Linux Kernel/source|drivers/mtd}} – {{w|Memory Technology Device}} for 🤖 embedded devices
=== NVMe ===
{{w|NVM Express}} drivers provide accesses a computer's {{w|non-volatile storage}}.
Local storage is attached via {{w|PCIe|PCI Express}} bus.
PCI NVMe device driver entry point is {{The Linux Kernel/id|nvme_init}}.
Remote storage driver is called target and local {{w|Proxy_pattern|proxy}} driver is called host. {{w|Switched fabric|Fabrics}} connect remote targets with local host.
A fabric can be based on {{w|Remote direct memory access|RDMA}}, {{w|Transmission Control Protocol|TCP}} or {{w|Fibre Channel}} protocols.
⚲ API:
: [https://github.com/linux-nvme/nvme-cli nvme-cli]
: {{The Linux Kernel/include|uapi/linux/nvme_ioctl.h}}
: {{The Linux Kernel/include|linux/nvme.h}}
⚙️ '''Internals:'''
: {{The Linux Kernel/source|drivers/nvme}} – NVMe drivers
'''Host''' {{The Linux Kernel/source|drivers/nvme/host}}:
⚲ Interfaces:
: {{The Linux Kernel/source|drivers/nvme/host/nvme.h}} – NVMe host common definitions
:: {{The Linux Kernel/id|nvme_init_ctrl}} initializes a NVMe controller structures {{The Linux Kernel/id|nvme_ctrl}} with operations {{The Linux Kernel/id|nvme_ctrl_ops}}
::: a subroutine of {{The Linux Kernel/id|nvme_scan_work}} adds a new disk with {{The Linux Kernel/id|device_add_disk}}
: {{The Linux Kernel/id|nvme_init}} - local PCI nvme module init
:: {{The Linux Kernel/id|nvme_probe}}
::: {{The Linux Kernel/id|nvme_init_ctrl}} ...
::: {{The Linux Kernel/id|nvme_pci_ctrl_ops}}
: {{The Linux Kernel/id|nvme_core_init}} - module init
'''Fabrics'''
⚲ interfaces:
: {{The Linux Kernel/source|drivers/nvme/host/fabrics.h}} – NVMe over Fabrics host common definitions
:: {{The Linux Kernel/id|nvmf_register_transport}} registers {{The Linux Kernel/id|nvmf_transport_ops}}
: {{The Linux Kernel/id|nvmf_init}} - fabrics module init
⚙️ internals:
: {{The Linux Kernel/id|nvmf_init}} - fabrics module init
:: {{The Linux Kernel/id|nvmf_misc}}
::: {{The Linux Kernel/id|nvmf_dev_fops}}
:::: {{The Linux Kernel/id|nvmf_dev_write}}
::::: {{The Linux Kernel/id|nvmf_create_ctrl}} binds {{The Linux Kernel/id|nvmf_transport_ops}}
'''Target''' {{The Linux Kernel/source|drivers/nvme/target}}:
⚲ Interfaces: {{The Linux Kernel/source|drivers/nvme/target/nvmet.h}}
: {{The Linux Kernel/id|nvmet_register_transport}} registers {{The Linux Kernel/id|nvmet_fabrics_ops}}
: {{The Linux Kernel/id|nvmet_init}} - module init
: {{The Linux Kernel/id|fcloop_init}} - loopback test module init which can be useful to test NVMe-FC transport interfaces.
{| class="wikitable"
|-
!
! colspan="3" |NVMe over {{w|Switched fabric|Fabrics}}
|-
!<div style='text-align:left'>Layers</div>
!{{w|Transmission Control Protocol|TCP}}
![[../Networking#RDMA|RDMA]]
!{{w|Fibre Channel}}
|-
!<div style='text-align:left'>Host modules</div>
|{{The Linux Kernel/id|nvme_tcp_init_module}}
|{{The Linux Kernel/id|nvme_rdma_init_module}}
|{{The Linux Kernel/id|nvme_fc_init_module}}
|-
!<div style='text-align:left'>Fabrics protocols</div>
|{{The Linux Kernel/include|linux/nvme-tcp.h}}
|{{The Linux Kernel/include|linux/nvme-rdma.h}}
|{{The Linux Kernel/include|linux/nvme-fc.h}}
{{The Linux Kernel/include|linux/nvme-fc-driver.h}}
|-
!<div style='text-align:left'>Target modules</div>
|{{The Linux Kernel/id|nvmet_tcp_init}}
|{{The Linux Kernel/id|nvmet_rdma_init}}
|{{The Linux Kernel/id|nvmet_fc_init_module}}
|}
👁 Example: {{The Linux Kernel/id|nvme_loop_init_module}} nvme loopback
: {{The Linux Kernel/id|nvme_loop_transport}} - fabrics operations
:: {{The Linux Kernel/id|nvme_loop_create_ctrl}}
::: {{The Linux Kernel/id|nvme_loop_create_io_queues}}
: {{The Linux Kernel/id|nvme_loop_ops}} - target operation
:: {{The Linux Kernel/id|nvme_loop_add_port}}
:: {{The Linux Kernel/id|nvme_loop_queue_response}}
== ... ==
🚀 Advanced
: {{The Linux Kernel/man|1|pidstat}} – reports task statistics
: /proc/self/io – I/O statistics for the process (see {{The Linux Kernel/man|5|proc}})
💾 Historical storage drivers
: {{The Linux Kernel/source|drivers/ata}} - {{w|Parallel ATA}}
📖 Further reading about storage
: [https://github.com/iovisor/bcc/blob/master/README.md#storage-and-filesystems-tools bcc/ebpf storage and filesystems tools]
{{BookCat}}
ifpurrdj2rw4qeq45458zcgh7wtixak
4640286
4640249
2026-06-14T09:29:53Z
Conan
3188
add fs/notify, xattr, fuse, overlayfs, btrfs, xfs, iomap; drop archived wiki links
4640286
wikitext
text/x-wiki
{{DISPLAYTITLE:Storage functionality}}
{|style="width: 25%; float: right; text-align:center;border-spacing: 0; color:black; margin:auto;" cellpadding=5pc
! bgcolor=#cef | storage
|-style=""
| bgcolor=#aef | [[#Files_and_directories|files & directories access]]
|-style=""
| bgcolor=#8df | [[#Virtual File System|Virtual File System]]
|-style=""
| bgcolor=#8ce |[[#Page_cache|page cache]]
|-style=""
| bgcolor=#7ac |[[#Logical file systems|logical file systems]]
|-style=""
| bgcolor=#69a |[[#Block_device_layer|block devices]]
|-style=""
| bgcolor=#689 |[[#Storage_drivers|storage drivers]]
|}
Storage functionality provides access to various storage devices via files and directories of files.
Most of the storage is persistent as flash memory, SSD and legacy hard disks.
Another kind of storage is temporary.
The ''file system'' provides an abstraction to organize the information into separate pieces of data (called ''files'') identified by a unique name.
Each file system type defines their own structures and logic rules used to manage these groups of information and their names.
Linux supports a plethora of different file system types, local and remote, native and from other operating systems.
To accommodate such disparity the kernel defines a common top layer, the ''virtual file system'' (VFS) layer.
[[File:The Linux Storage Stack Diagram.svg|Summary of the Linux kernel's storage stack|right|800x800px]]
== Files and directories ==
Four basic files access system calls:
: {{The Linux Kernel/man|2|open}} ↪ {{The Linux Kernel/id|do_sys_open}} - opens a file by name and returns a {{w|file descriptor}} (<big>fd</big>). Below functions operates on a fd.
: {{The Linux Kernel/man|2|close}} ↪ {{The Linux Kernel/id|close_fd}}
: {{The Linux Kernel/man|2|read}} ↪ {{The Linux Kernel/id|ksys_read}}
: {{The Linux Kernel/man|2|write}} ↪ {{The Linux Kernel/id|ksys_write}}
File in Linux and UNIX is not only physical file on persistent storage.
File interface is used to access pipes, sockets and other pseudo-files.
🔧 TODO
: {{The Linux Kernel/man|2|readlink}} , {{The Linux Kernel/man|2|symlink}} , {{The Linux Kernel/man|2|link}}
: {{The Linux Kernel/man|3|readdir}} ⇾ {{The Linux Kernel/man|2|getdents}}
: {{The Linux Kernel/man|7|path_resolution}}
: {{The Linux Kernel/man|2|fcntl}} – manipulate file descriptor
⚙️ Files and directories internals
: {{The Linux Kernel/include|linux/fs.h}}
: {{The Linux Kernel/source|fs/open.c}} – open, close and related file operations
: {{The Linux Kernel/source|fs/namei.c}} – pathname lookup and resolution
: {{The Linux Kernel/source|fs/read_write.c}} – read, write and lseek operations
: {{The Linux Kernel/source|fs/xattr.c}} – extended attributes
: {{The Linux Kernel/source|fs/notify}} – {{The Linux Kernel/man|7|inotify}} and {{The Linux Kernel/man|7|fanotify}} filesystem event notification
📚 Files and directories references
: [https://www.gnu.org/software/libc/manual/html_node/I_002fO-Overview.html Input/Output, The GNU C Library]
: [https://tldp.org/LDP/lki/lki-3.html VFS in Linux Kernel 2.4 Internals]
: {{w|Unix file types}}
=== File locks ===
File locks are mechanisms that allow processes to coordinate access to shared files.
These locks help prevent conflicts when multiple processes or threads attempt to access the same file simultaneously.
⚲ API
: {{The Linux Kernel/man|8|lslocks}} – list local system locks
: {{The Linux Kernel/man|3|lockf}} – apply, test or remove a POSIX lock on an open file
: {{The Linux Kernel/man|2|flock}} – apply or remove an advisory BSD lock on an open file
: {{The Linux Kernel/man|2|fcntl}} – manipulate file descriptor
:: {{The Linux Kernel/id|F_SETLK}} – advisory record lock
:: {{The Linux Kernel/id|F_OFD_SETLK}} – Open File Description Lock
:: {{The Linux Kernel/id|flock}} – lock parameters
: ⚠️ Avoid mixing flock and fcntl locks on the same file as they don’t interact with each other.
⚙️ Internals
: {{The Linux Kernel/include|linux/filelock.h}}
: {{The Linux Kernel/source|fs/locks.c}} – POSIX and flock file locking
: {{The Linux Kernel/include|trace/events/filelock.h}}
💾 ''Historical: [https://elixir.bootlin.com/linux/v5.14/K/ident/CONFIG_MANDATORY_FILE_LOCKING Mandatory locking] feature is no longer supported at all in Linux 5.15 and above because the implementation is unreliable.''
=== Asynchronous I/O ===
🚀 advanced features
'''AIO'''
: https://lwn.net/Kernel/Index/#Asynchronous_IO
: {{The Linux Kernel/man|2|io_submit}} {{The Linux Kernel/man|2|io_setup}} {{The Linux Kernel/man|2|io_cancel}} {{The Linux Kernel/man|2|io_destroy}} {{The Linux Kernel/man|2|io_getevents}}
: {{The Linux Kernel/include|uapi/linux/aio_abi.h}}
: {{The Linux Kernel/source|fs/aio.c}} – async I/O implementation
: {{The Linux Kernel/ltp|kernel|io/aio}}
'''{{w|io_uring}}'''
🌱 ''New since release 5.1 in May 2019''
: https://blogs.oracle.com/linux/an-introduction-to-the-io_uring-asynchronous-io-framework
: https://thenewstack.io/how-io_uring-and-ebpf-will-revolutionize-programming-in-linux/
: {{The Linux Kernel/id|io_uring_enter}} {{The Linux Kernel/id|io_uring_setup}} {{The Linux Kernel/id|io_uring_register}}
: {{The Linux Kernel/include|linux/io_uring.h}}
: {{The Linux Kernel/include|uapi/linux/io_uring.h}}
: {{The Linux Kernel/source|io_uring}}
: https://lwn.net/Kernel/Index/#io_uring
:: [https://lwn.net/Articles/779472/ io_uring, SCM_RIGHTS, and reference-count cycles]
:: [https://lwn.net/Articles/810414/ The rapid growth of io_uring]
:: [https://lwn.net/Articles/815491/ Automatic buffer selection for io_uring]
:: [https://lwn.net/Articles/826053/ Operations restrictions for io_uring]
:: [https://lwn.net/Articles/779472/ io_uring, SCM_RIGHTS, and reference-count cycles]
:: [https://lwn.net/Articles/803070/ Redesigned workqueues for io_uring]
: {{The Linux Kernel/ltp|kernel/syscalls|io_uring}}
=== {{w|Asynchronous_I/O#Forms|Non-blocking I/O}} ===
Allow non-blocking access to multiple file descriptors.
'''Efficient event polling {{w|epoll}}'''
⚲ API:
: {{The Linux Kernel/include|uapi/linux/eventpoll.h}}
: {{The Linux Kernel/man|7|epoll}}
: {{The Linux Kernel/man|2|epoll_create}} ↪ {{The Linux Kernel/id|do_epoll_create}}
: {{The Linux Kernel/man|2|epoll_ctl}} ↪ {{The Linux Kernel/id|do_epoll_ctl}}
: {{The Linux Kernel/man|2|epoll_wait}} ↪ {{The Linux Kernel/id|do_epoll_wait}}
⚙️ Internals:
: {{The Linux Kernel/source|fs/eventpoll.c}} – efficient event polling (epoll)
'''{{w|Select (Unix)|select}} and {{w|poll (Unix)|poll}}'''
💾 ''Historical: Select and poll system calls are derived from UNIX''
⚲ API:
: {{The Linux Kernel/man|2|poll}} ↪ {{The Linux Kernel/id|do_sys_poll}}
: {{The Linux Kernel/man|2|select}} ↪ {{The Linux Kernel/id|kern_select}}
⚙️ Internals:
: {{The Linux Kernel/source|fs/select.c}} – select and poll implementation
=== Vectored I/O ===
🚀 advanced feature
{{w|Vectored I/O}}, also known as scatter/gather I/O, is a method of input and output by which a single procedure call sequentially reads data from multiple buffers and writes it to a single data stream, or reads data from a data stream and writes it to multiple buffers, as defined in a vector of buffers. Scatter/gather refers to the process of gathering data from, or scattering data into, the given set of buffers. Vectored I/O can operate synchronously or asynchronously. The main reasons for using vectored I/O are efficiency and convenience.
⚲ API:
: {{The Linux Kernel/include|uapi/linux/uio.h}}
: {{The Linux Kernel/include|linux/uio.h}}
: {{The Linux Kernel/id|iovec}}
: {{The Linux Kernel/man|2|readv}} ↪ {{The Linux Kernel/id|do_readv}}
: {{The Linux Kernel/man|2|writev}} ↪ {{The Linux Kernel/id|do_writev}}
⚙️ Internals:
: {{The Linux Kernel/id|iov_iter}}
: {{The Linux Kernel/id|do_readv}} ↯ call hierarchy:
:: {{The Linux Kernel/id|vfs_readv}}
::: {{The Linux Kernel/id|import_iovec}}
::: {{The Linux Kernel/id|ext4_file_read_iter}}
: {{The Linux Kernel/source|lib/iov_iter.c}} – I/O vector iterator operations
=== ... ===
📖 References
: [https://www.gnu.org/software/libc/manual/html_node/Scatter_002dGather.html Fast Scatter-Gather I/O, The GNU C Library]
: https://lwn.net/Kernel/Index/#Vectored_IO
: https://lwn.net/Kernel/Index/#Scattergather_chaining
📚 Further reading
: https://deepwiki.com/torvalds/linux/4-filesystems
== Virtual File System ==
The {{w|virtual file system}} (VFS) is an abstract layer on top of a concrete logical file system.
The purpose of a VFS is to allow client applications to access different types of logical file systems in a uniform way.
A VFS can, for example, be used to access local and [[../Networking#Network_storage|network storage]] devices transparently without the client application noticing the difference.
It can be used to bridge the differences in Windows, classic Mac OS/macOS and Unix filesystems, so that applications can access files on local file systems of those types without having to know what type of file system they are accessing.
A VFS specifies an interface (or a "contract") between the kernel and a logical file system.
Therefore, it is easy to add support for new file system types to the kernel simply by fulfilling the contract.
🔧 TODO: {{The Linux Kernel/id|vfsmount}}, {{The Linux Kernel/id|vfs_create}}, {{The Linux Kernel/id|vfs_read}}, {{The Linux Kernel/id|vfs_write}}
📚 VFS References
: {{The Linux Kernel/doc|VFS|filesystems/#core-vfs-documentation}}
: [https://tldp.org/LDP/lki/lki-3.html VFS in Linux Kernel 2.4 Internals]
== Logical file systems ==
A {{w|file system}} (or ''filesystem'') is used to control how data is stored and retrieved.
Without a file system, information placed in a storage area would be one large body of data with no way to tell where one piece of information stops and the next begins.
By separating the data into individual pieces, and giving each piece a name, the information is easily separated and identified.
Each group of data is called a "file".
The structure and logic rules used to manage the groups of information and their names is called a "file system".
There are many different kinds of file systems.
Each one has different structure and logic, properties of speed, flexibility, security, size and more.
Some file systems have been designed to be used for specific applications.
For example, the ISO 9660 file system is designed specifically for optical discs.
File systems can be used on many different kinds of storage devices.
Each storage device uses a different kind of media.
The most common storage device in use today is a {{w|SSD}}.
Other media that was used are hard disk, magnetic tape and optical disc.
In some cases, the computer's main memory (RAM) is used to create a temporary file system for short-term use.
Raw storage is called a block device.
Linux supports many different file systems, but common choices for the system disk on a block device include the ext* family (such as {{w|ext2}}, {{w|ext3}} and {{w|ext4}}), {{w|XFS}}, {{w|ReiserFS}} and {{w|btrfs}}.
For raw Flash without a {{w|flash translation layer}} (FTL) or {{w|Memory Technology Device}} (MTD), there is {{w|UBIFS}}, {{w|JFFS2}}, and {{w|YAFFS}}, among others. {{w|SquashFS}} is a common compressed read-only file system.
NFS and other network FS are described further in paragraph [[../Networking#Network_storage|Network storage]].
⚲ Shell interfaces:
: cat /proc/filesystems
: ls /sys/fs/
: {{The Linux Kernel/man|8|mount}}
: {{The Linux Kernel/man|8|umount}}
: {{The Linux Kernel/man|8|findmnt}}
: {{The Linux Kernel/man|1|mountpoint}}
: {{The Linux Kernel/man|1|df}}
Infrastructure ⚲ API function {{The Linux Kernel/id|register_filesystem}} registers structs {{The Linux Kernel/id|file_system_type}} and stores them in linked list ⚙️ {{The Linux Kernel/id|file_systems}}.
Function {{The Linux Kernel/id|ext4_init_fs}} registers {{The Linux Kernel/id|ext4_fs_type}}.
Operation of ''file system opening'' is called mounting: {{The Linux Kernel/id|ext4_get_tree}}
⚙️ Internals:
: {{The Linux Kernel/source|fs/namespace.c}} – mount and namespace operations
:: {{The Linux Kernel/man|2|mount}}
::: {{The Linux Kernel/id|do_mount}}
: {{The Linux Kernel/include|linux/buffer_head.h}}
:: {{The Linux Kernel/id|super_block}}
:: {{The Linux Kernel/id|sb_bread}}
: {{The Linux Kernel/source|fs}} – filesystem implementations
:: {{The Linux Kernel/source|fs/ext4/ext4.h}} – ext4 on-disk format and internal structures
::: {{The Linux Kernel/id|ext4_sb_bread}}
Other notable filesystems:
: {{w|FUSE (filesystem)|FUSE}} – {{The Linux Kernel/source|fs/fuse}} – filesystem in userspace
: {{w|OverlayFS}} – {{The Linux Kernel/source|fs/overlayfs}} – union mount filesystem, used by containers
: {{w|Btrfs}} – {{The Linux Kernel/source|fs/btrfs}}
: {{w|XFS}} – {{The Linux Kernel/source|fs/xfs}}
📚 References:
: {{The Linux Kernel/doc|filesystems|filesystems/#filesystems}}
== Page cache ==
A page cache or disk cache is a transparent cache for the memory pages originating from a secondary storage device such as a hard disk drive.
The operating system keeps a page cache in otherwise unused portions of the main memory, resulting in quicker access to the contents of cached pages and overall performance improvements.
The page cache is implemented by the kernel, and is mostly transparent to applications.
Usually, all physical memory not directly allocated to applications is used by the operating system for the page cache.
Since the memory would otherwise be idle and is easily reclaimed when applications request it, there is generally no associated performance penalty and the operating system might even report such memory as "free" or "available".
The page cache also aids in writing to a disk.
Pages in the main memory that have been modified during writing data to disk are marked as "dirty" and have to be flushed to disk before they can be freed.
When a file write occurs, the page backing the particular block is looked up.
If it is already found in the page cache, the write is done to that page in the main memory.
Otherwise, when the write perfectly falls on page size boundaries, the page is not even read from disk, but allocated and immediately marked dirty.
Otherwise, the page(s) are fetched from disk and requested modifications are done.
Not all cached pages can be written to as program code is often mapped as read-only or copy-on-write; in the latter case, modifications to code will only be visible to the process itself and will not be written to disk.
⚲ API:
: {{The Linux Kernel/man|2|fsync}} ↪ {{The Linux Kernel/id|do_fsync}}
: {{The Linux Kernel/man|2|sync_file_range}} ↪ {{The Linux Kernel/id|ksys_sync_file_range}}
: {{The Linux Kernel/man|2|syncfs}} ↪ {{The Linux Kernel/id|sync_filesystem}}
📚 References
: {{The Linux Kernel/id|wb_workfn}}
: {{The Linux Kernel/id|address_space}}
: {{The Linux Kernel/id|do_writepages}}
: {{The Linux Kernel/include|linux/writeback.h}}
: {{The Linux Kernel/source|mm/page-writeback.c}} – dirty page writeback throttling
: {{w|Page cache}}
More
: [https://lwn.net/Articles/717953/ The future of DAX ] - direct access bypassing the cache
: [https://tldp.org/LDP/lki/lki-4.html Linux Page Cache in Linux Kernel 2.4 Internals]
== Zero-copy ==
🚀 advanced features
Writing data to storage and reading are very resource consuming operations.
Copying memory is time and CPU consuming operation too.
Set of methods to avoid copying operations is called {{w|zero-copy}}.
The goal of zero-copy methods is a fast and efficient data transfer within the system.
The first and simplest method is {{w|Pipeline (Unix)|Pipeline}}, invoked by operator "|" in shells.
Instead of writing data into temporary file and reading, the data is passed efficiently via a pipe bypassing a storage.
The second method is {{w|Tee_(command)|tee}}.
⚲ Syscalls:
: {{The Linux Kernel/man|2|pipe2}}
: {{The Linux Kernel/man|2|tee}}, {{The Linux Kernel/man|1|tee}}
: {{The Linux Kernel/man|2|sendfile}}
: {{The Linux Kernel/man|2|copy_file_range}}
: {{The Linux Kernel/man|2|splice}}
: {{The Linux Kernel/man|2|vmsplice}}
⚲ API and ⚙️ Internals:
: '''{{The Linux Kernel/man|2|pipe2}}''' ↪ {{The Linux Kernel/id|do_pipe2}} - creates pipe
:: uses {{The Linux Kernel/id|pipe_fs_type}}, {{The Linux Kernel/id|pipefifo_fops}}
: '''{{The Linux Kernel/man|2|tee}}''' ↪ {{The Linux Kernel/id|do_tee}} - duplicates pipe content
:: calls {{The Linux Kernel/id|link_pipe}}
: '''{{The Linux Kernel/man|2|sendfile}}''' ↪ {{The Linux Kernel/id|do_sendfile}} - transfers data between file descriptors, the output can be a socket. Used in [[../Networking#Network_storage|network storage]] and servers.
:: Calls: {{The Linux Kernel/id|do_splice_direct}}, {{The Linux Kernel/id|splice_direct_to_actor}}
: '''{{The Linux Kernel/man|2|copy_file_range}}''' ↪ {{The Linux Kernel/id|vfs_copy_file_range}} - transfers data between files
:: calls custom {{The Linux Kernel/id|remap_file_range}} like {{The Linux Kernel/id|nfs42_remap_file_range}}
:: or custom {{The Linux Kernel/id|copy_file_range}} like {{The Linux Kernel/id|fuse_copy_file_range}}
:: or {{The Linux Kernel/id|do_splice_direct}}
: '''{{The Linux Kernel/man|2|splice}}''' ↪ {{The Linux Kernel/id|do_splice}} - splices data to/from a pipe.
:: There are three cases regarding which end being a pipe:
:# {{The Linux Kernel/id|do_splice_from}} - pipe → file
:#: Calls custom {{The Linux Kernel/id|splice_write}} or {{The Linux Kernel/id|iter_file_splice_write}}
:# {{The Linux Kernel/id|do_splice_read}} - file → pipe
:#: Calls custom {{The Linux Kernel/id|splice_read}} or {{The Linux Kernel/id|copy_splice_read}}
:# {{The Linux Kernel/id|splice_pipe_to_pipe}} - both are pipes
: '''{{The Linux Kernel/man|2|vmsplice}}''' ↪
:: {{The Linux Kernel/id|vmsplice_to_pipe}} – splices user pages to a pipe
:: {{The Linux Kernel/id|vmsplice_to_user}} – splices a pipe to user pages
⚲ API
: {{The Linux Kernel/include|linux/splice.h}}
⚙️ Internals:
: {{The Linux Kernel/source|fs/pipe.c}} – pipe and FIFO implementation
: {{The Linux Kernel/source|fs/splice.c}} – splice data transfer between file descriptors
🔧 TODO:
{{The Linux Kernel/id|zerocopy_sg_from_iter}} builds a zerocopy skb datagram from an iov_iter. Used in {{The Linux Kernel/id|tap_get_user}} and {{The Linux Kernel/id|tun_get_user}}.
{{The Linux Kernel/id|skb_zerocopy}}
{{The Linux Kernel/id|skb_zerocopy_iter_dgram}}
📚 References
: {{The Linux Kernel/man|7|pipe}}
: {{The Linux Kernel/man|7|fifo}}
: {{The Linux Kernel/doc|splice and pipes|filesystems/splice.html}}
:: {{The Linux Kernel/doc|Pipes API|filesystems/splice.html#pipes-api}}
: {{w|splice (system call)}}
: LTP: {{The Linux Kernel/ltp|kernel/syscalls|pipe}}, {{The Linux Kernel/ltp|kernel/syscalls|pipe2}}, {{The Linux Kernel/ltp|kernel/syscalls|tee}}, {{The Linux Kernel/ltp|kernel/syscalls|sendfile}}, {{The Linux Kernel/ltp|kernel/syscalls|copy_file_range}}, {{The Linux Kernel/ltp|kernel/syscalls|splice}}, {{The Linux Kernel/ltp|kernel/syscalls|vmsplice}}
== Block device layer ==
The block device layer in Linux provides an abstraction for accessing storage devices,
such as SSDs and USB drives, by presenting them as a series of fixed-size blocks.
It sits between the hardware and the file system,
allowing applications and file systems to perform read and write operations efficiently
without needing to know the specifics of the underlying hardware.
Key components include block drivers, the I/O scheduler,
and buffer management, which work together to handle requests,
optimize access patterns, and ensure data integrity.
This layer supports essential features like caching, partition management,
and queueing mechanisms to balance performance and reliability.
⚲ Interfaces:
: {{The Linux Kernel/include|linux/blk_types.h}}
:: {{The Linux Kernel/id|bio}} – main unit of I/O for the block layer and lower layers
:: {{The Linux Kernel/id|req_op}} – operations common to the bio and request structures
: {{The Linux Kernel/include|linux/bio.h}}
: {{The Linux Kernel/id|block_device}}
:: {{The Linux Kernel/id|block_size}}
: {{The Linux Kernel/id|blk_alloc_disk}} allocates {{The Linux Kernel/id|gendisk}}
: {{The Linux Kernel/id|add_disk}}
:: {{The Linux Kernel/id|device_add_disk}}
: {{The Linux Kernel/id|block_device_operations}}
: {{The Linux Kernel/include|linux/blkdev.h}}
:: {{The Linux Kernel/id|gendisk}}
::: {{The Linux Kernel/id|dev_to_disk}}, {{The Linux Kernel/id|disk_to_dev}}
:: {{The Linux Kernel/id|block_class}} – block devices Driver Model class
:: {{The Linux Kernel/id|register_blkdev}}
:: {{The Linux Kernel/id|request}}
:: {{The Linux Kernel/id|request_queue}}
⚙️ Internals.
: {{The Linux Kernel/source|block}} – block layer core
: {{The Linux Kernel/source|fs/iomap}} – modern filesystem I/O mapping layer (used by xfs, ext4, btrfs)
: {{The Linux Kernel/id|block_class}}
👁 Examples:
: {{The Linux Kernel/source|drivers/block/brd.c}} - small RAM backed block device driver
: {{The Linux Kernel/source|drivers/block/null_blk}} – null block test device
=== Device mapper ===
The ''device mapper'' is a framework provided by the kernel for mapping physical block devices onto higher-level "virtual block devices".
It forms the foundation of LVM2, software RAIDs and dm-crypt disk encryption, and offers additional features such as file system snapshots.
Device mapper works by passing data from a virtual block device, which is provided by the device mapper itself, to another block device.
Data can be also modified in transition, which is performed, for example, in the case of device mapper providing disk encryption.
User space applications that need to create new mapped devices talk to the device mapper via the <code>libdevmapper.so</code> shared library, which in turn issues ioctls to the <code>/dev/mapper/control</code> device node.
Functions provided by the device mapper include linear, striped and error ''mappings,'' as well as crypt and multipath ''targets.''
For example, two disks may be concatenated into one logical volume with a pair of ''linear'' mappings, one for each disk.
As another example, ''crypt'' target encrypts the data passing through the specified device, by using the Linux kernel's Crypto API.
The following mapping targets are available:
: ''cache'' - allows the creation of hybrid volumes, by using solid-state drives (SSDs) as caches for hard disk drives (HDDs)
: ''crypt'' - provides data encryption, by using the Linux kernel's Crypto API
: ''delay'' - delays reads and/or writes to different devices (used for testing)
: ''era'' - behaves in a way similar to the linear target, while it keeps track of blocks that were written to within a user-defined period of time
: ''error'' - simulates I/O errors for all mapped blocks (used for testing)
: ''flakey'' - simulates periodic unreliable behaviour (used for testing)
: ''linear'' - maps a continuous range of blocks onto another block device
: ''mirror'' - maps a mirrored logical device, while providing data redundancy
: ''multipath'' - supports the mapping of multipathed devices, through usage of their path groups
: ''raid'' - offers an interface to the Linux kernel's software RAID driver (md)
: ''snapshot'' and ''snapshot-origin'' - used for creation of LVM snapshots, as part of the underlining copy-on-write scheme
: ''striped'' - strips the data across physical devices, with the number of stripes and the striping chunk size as parameters
: ''zero'' - an equivalent of <code>/dev/zero</code>, all reads return blocks of zeros, and writes are discarded
📚 References
: {{w|Device mapper}}
: {{The Linux Kernel/doc|Device mapper|admin-guide/device-mapper}}
: {{The Linux Kernel/include|linux/device-mapper.h}}
: {{The Linux Kernel/source|drivers/md}} – device mapper and software RAID
: https://lwn.net/Kernel/Index/#Device_mapper
=== Multi-Queue Block IO Queueing ===
The blk-mq API enhances IO performance
by leveraging multiple queues for parallel processing,
addressing bottlenecks from traditional single-queue designs.
It uses software queues for scheduling,
merging, and reordering requests,
and hardware queues to interface directly with devices.
If hardware resources are limited,
requests are temporarily queued for later dispatch.
⚲ Interfaces:
: /sys/devices/.../mq/
: {{The Linux Kernel/include|linux/blk-mq.h}}
:: Structures:
::: {{The Linux Kernel/id|blk_mq_hw_ctx}} – hardware dispatch queue context
::: {{The Linux Kernel/id|blk_mq_tag_set}} – shared between request queues
:::: {{The Linux Kernel/id|blk_mq_ops}}
:::: {{The Linux Kernel/id|blk_mq_tags}}
:::: {{The Linux Kernel/id|blk_mq_queue_map}} – map software queues to hardware queues
::: {{The Linux Kernel/id|request}}
👁️ Example
: {{The Linux Kernel/source|drivers/block/null_blk}} – multi-queue aware block test driver
⚙️ Internals
: /sys/kernel/debug/block/*/hctx*
: {{The Linux Kernel/source|block/blk-mq.h}} – blk-mq internal definitions
:: {{The Linux Kernel/id|blk_mq_ctx}} – software staging queue context
: {{The Linux Kernel/source|block/blk-mq.c}} – block multi-queue core code
: {{The Linux Kernel/source|block/blk-mq-tag.c}} – tag allocation using scalable bitmaps
: ...
📖 References
: {{The Linux Kernel/doc|Multi-Queue Block IO Queueing Mechanism (blk-mq)|block/blk-mq.html}}
=== I/O scheduler ===
I/O scheduling (or disk scheduling) is the method chosen by the kernel to decide in which order the block I/O operations will be submitted to the storage volumes.
I/O scheduling usually has to work with hard disk drives that have long access times for requests placed far away from the current position of the disk head (this operation is called a seek).
To minimize the effect this has on system performance, most I/O schedulers implement a variant of the elevator algorithm that reorders the incoming randomly ordered requests so the associated data would be accessed with minimal arm/head movement.
The particular I/O scheduler used with certain block device can be switched at run time by modifying the corresponding <code>/sys/block/<block_device>/queue/scheduler</code> file in the sysfs filesystem.
Some I/O schedulers also have tunable parameters that can be set through files in <code>/sys/block/<block_device>/queue/iosched/</code>.
⚲ Interfaces:
: {{The Linux Kernel/man|1|ionice}} – set or get process I/O scheduling class and priority
:: {{The Linux Kernel/man|2|ioprio_get}}, ioprio_set
: {{The Linux Kernel/include|linux/elevator.h}}
: Function {{The Linux Kernel/id|elv_register}} registers struct {{The Linux Kernel/id|elevator_type}}.
: {{The Linux Kernel/id|elevator_queue}}
⚙️ Internals:
: {{The Linux Kernel/source|block/ioprio.c}} – I/O priority system call
: {{The Linux Kernel/source|block/elevator.c}} – I/O scheduler framework
: {{The Linux Kernel/source|block/Kconfig.iosched}} – I/O scheduler Kconfig options
: {{The Linux Kernel/source|block/bfq-iosched.c}} – Budget Fair Queueing scheduler
: {{The Linux Kernel/source|block/kyber-iosched.c}} – Kyber multiqueue scheduler
: {{The Linux Kernel/source|block/mq-deadline.c}} – deadline multiqueue scheduler
: {{The Linux Kernel/include|trace/events/block.h}}
📖 References:
: {{w|I/O scheduling}}
: {{w|Elevator algorithm}}
: {{The Linux Kernel/doc|Switching Scheduler|block/switching-sched.html}}
: {{The Linux Kernel/doc|BFQ - Budget Fair Queueing|block/bfq-iosched.html}}
: {{The Linux Kernel/doc|Deadline IO scheduler tunables|deadline-iosched.html}}
: https://www.cloudbees.com/blog/linux-io-scheduler-tuning/
: https://wiki.ubuntu.com/Kernel/Reference/IOSchedulers
=== ... ===
📖 References
: {{The Linux Kernel/doc|Block devices|block}}
:: {{The Linux Kernel/doc|Switching Scheduler|block/switching-sched.html}}
::: {{The Linux Kernel/doc|BFQ - Budget Fair Queueing|block/bfq-iosched.html}}
::: {{The Linux Kernel/doc|Deadline IO scheduler tunables|block/deadline-iosched.html}}
::: {{The Linux Kernel/doc|Kyber I/O scheduler tunables|block/kyber-iosched.html}}
:: {{The Linux Kernel/doc|Multi-Queue Block IO Queueing Mechanism (blk-mq)|block/blk-mq.html}}
📚 Further reading
: /sys/kernel/debug/block/*/
: https://lwn.net/Kernel/Index/#Block_layer
: [https://lore.kernel.org/linux-block/ block devices ML]
: [http://lwn.net/images/pdf/LDD3/ch16.pdf LDD3:Block Drivers]
: [http://www.xml.com/ldd/chapter/book/ch12.html LDD1:Loading Block Drivers]
: [https://www.oreilly.com/library/view/understanding-the-linux/0596005652/ch14.html ULK3 Chapter 14. Block Device Drivers]
: [https://sg.danny.cz/sg/The Linux SCSI Generic (sg) Driver]
:: [https://sg.danny.cz/sg/scsi_debug.html Scsi_debug adapter driver for Linux]
:: https://github.com/doug-gilbert/sg3_utils
== {{w|Computer data storage|Storage}} drivers ==
🔧 TODO
⚙️ Internals
: {{The Linux Kernel/source|drivers/nvmem}} – {{w|Non-volatile memory}}
: {{The Linux Kernel/source|drivers/sdio}} – {{w|Secure Digital#SDIO cards|Secure Digital Input Output}}
: {{The Linux Kernel/source|drivers/scsi}} – {{w|SCSI|Small Computer System Interface}}
: {{The Linux Kernel/source|drivers/virtio}} – virtio guest drivers
: {{The Linux Kernel/source|drivers/mtd}} – {{w|Memory Technology Device}} for 🤖 embedded devices
=== NVMe ===
{{w|NVM Express}} drivers provide accesses a computer's {{w|non-volatile storage}}.
Local storage is attached via {{w|PCIe|PCI Express}} bus.
PCI NVMe device driver entry point is {{The Linux Kernel/id|nvme_init}}.
Remote storage driver is called target and local {{w|Proxy_pattern|proxy}} driver is called host. {{w|Switched fabric|Fabrics}} connect remote targets with local host.
A fabric can be based on {{w|Remote direct memory access|RDMA}}, {{w|Transmission Control Protocol|TCP}} or {{w|Fibre Channel}} protocols.
⚲ API:
: [https://github.com/linux-nvme/nvme-cli nvme-cli]
: {{The Linux Kernel/include|uapi/linux/nvme_ioctl.h}}
: {{The Linux Kernel/include|linux/nvme.h}}
⚙️ '''Internals:'''
: {{The Linux Kernel/source|drivers/nvme}} – NVMe drivers
'''Host''' {{The Linux Kernel/source|drivers/nvme/host}}:
⚲ Interfaces:
: {{The Linux Kernel/source|drivers/nvme/host/nvme.h}} – NVMe host common definitions
:: {{The Linux Kernel/id|nvme_init_ctrl}} initializes a NVMe controller structures {{The Linux Kernel/id|nvme_ctrl}} with operations {{The Linux Kernel/id|nvme_ctrl_ops}}
::: a subroutine of {{The Linux Kernel/id|nvme_scan_work}} adds a new disk with {{The Linux Kernel/id|device_add_disk}}
: {{The Linux Kernel/id|nvme_init}} - local PCI nvme module init
:: {{The Linux Kernel/id|nvme_probe}}
::: {{The Linux Kernel/id|nvme_init_ctrl}} ...
::: {{The Linux Kernel/id|nvme_pci_ctrl_ops}}
: {{The Linux Kernel/id|nvme_core_init}} - module init
'''Fabrics'''
⚲ interfaces:
: {{The Linux Kernel/source|drivers/nvme/host/fabrics.h}} – NVMe over Fabrics host common definitions
:: {{The Linux Kernel/id|nvmf_register_transport}} registers {{The Linux Kernel/id|nvmf_transport_ops}}
: {{The Linux Kernel/id|nvmf_init}} - fabrics module init
⚙️ internals:
: {{The Linux Kernel/id|nvmf_init}} - fabrics module init
:: {{The Linux Kernel/id|nvmf_misc}}
::: {{The Linux Kernel/id|nvmf_dev_fops}}
:::: {{The Linux Kernel/id|nvmf_dev_write}}
::::: {{The Linux Kernel/id|nvmf_create_ctrl}} binds {{The Linux Kernel/id|nvmf_transport_ops}}
'''Target''' {{The Linux Kernel/source|drivers/nvme/target}}:
⚲ Interfaces: {{The Linux Kernel/source|drivers/nvme/target/nvmet.h}}
: {{The Linux Kernel/id|nvmet_register_transport}} registers {{The Linux Kernel/id|nvmet_fabrics_ops}}
: {{The Linux Kernel/id|nvmet_init}} - module init
: {{The Linux Kernel/id|fcloop_init}} - loopback test module init which can be useful to test NVMe-FC transport interfaces.
{| class="wikitable"
|-
!
! colspan="3" |NVMe over {{w|Switched fabric|Fabrics}}
|-
!<div style='text-align:left'>Layers</div>
!{{w|Transmission Control Protocol|TCP}}
![[../Networking#RDMA|RDMA]]
!{{w|Fibre Channel}}
|-
!<div style='text-align:left'>Host modules</div>
|{{The Linux Kernel/id|nvme_tcp_init_module}}
|{{The Linux Kernel/id|nvme_rdma_init_module}}
|{{The Linux Kernel/id|nvme_fc_init_module}}
|-
!<div style='text-align:left'>Fabrics protocols</div>
|{{The Linux Kernel/include|linux/nvme-tcp.h}}
|{{The Linux Kernel/include|linux/nvme-rdma.h}}
|{{The Linux Kernel/include|linux/nvme-fc.h}}
{{The Linux Kernel/include|linux/nvme-fc-driver.h}}
|-
!<div style='text-align:left'>Target modules</div>
|{{The Linux Kernel/id|nvmet_tcp_init}}
|{{The Linux Kernel/id|nvmet_rdma_init}}
|{{The Linux Kernel/id|nvmet_fc_init_module}}
|}
👁 Example: {{The Linux Kernel/id|nvme_loop_init_module}} nvme loopback
: {{The Linux Kernel/id|nvme_loop_transport}} - fabrics operations
:: {{The Linux Kernel/id|nvme_loop_create_ctrl}}
::: {{The Linux Kernel/id|nvme_loop_create_io_queues}}
: {{The Linux Kernel/id|nvme_loop_ops}} - target operation
:: {{The Linux Kernel/id|nvme_loop_add_port}}
:: {{The Linux Kernel/id|nvme_loop_queue_response}}
== ... ==
🚀 Advanced
: {{The Linux Kernel/man|1|pidstat}} – reports task statistics
: /proc/self/io – I/O statistics for the process (see {{The Linux Kernel/man|5|proc}})
💾 Historical storage drivers
: {{The Linux Kernel/source|drivers/ata}} - {{w|Parallel ATA}}
📖 Further reading about storage
: [https://github.com/iovisor/bcc/blob/master/README.md#storage-and-filesystems-tools bcc/ebpf storage and filesystems tools]
{{BookCat}}
q77amk8y0hzno2n655672ct7aglod75
The Linux Kernel/Networking
0
226986
4640212
4632255
2026-06-13T17:19:28Z
Conan
3188
add brief descriptions to source file references
4640212
wikitext
text/x-wiki
<noinclude>{{DISPLAYTITLE:Network functionality}}</noinclude>
{|style="width: 25%; float: right; text-align:center;border-spacing: 0; color:black; margin:auto;" cellpadding=5pc
! bgcolor="#dff" |networking
|-
| bgcolor="#bff" |[[#Sockets|sockets access]]
|-
| bgcolor="#adf" |[[#Address_families|address families: inet, unix, ...]]
|-
| bgcolor="#9cd" |[[#Network_storage|network storage]]
|-
| bgcolor="#8bb" |[[#Protocols|protocols]]
|-
| bgcolor="#7a9" |[[#Network_device_interfaces|network interfaces]]
|-
| bgcolor="#798" |[[#Network_drivers|network drivers]]
|}
Linux kernel network functionality spans from sockets interface through protocols to network cards.
⚲ Shell interfaces:
: {{The Linux Kernel/man|8|netstat}} prints network connections, routing tables, interface statistics and other details
: {{The Linux Kernel/man|8|ip}} shows and configures routing, network devices, interfaces and tunnels
: {{The Linux Kernel/man|8|ss}} - socket statistics utility
== Sockets ==
⚲ API:
[https://man7.org/linux/man-pages/man0/sys_socket.h.0p.html sys/socket.h – main user mode sockets header]
Basic common and client side interface:
: {{The Linux Kernel/man|2|socket}} ↪ {{The Linux Kernel/id|__sys_socket}} creates an endpoint for communication
: struct {{The Linux Kernel/id|sockaddr}} - abstract socket address
: {{The Linux Kernel/man|2|connect}} ↪ {{The Linux Kernel/id|__sys_connect}};
: {{The Linux Kernel/man|2|shutdown}} shuts down part of a full-duplex connection
: {{The Linux Kernel/man|2|send}} ↪ {{The Linux Kernel/id|__sys_sendto}} sends a message on a socket
: {{The Linux Kernel/man|2|recv}} ↪ {{The Linux Kernel/id|__sys_recvfrom}}, {{The Linux Kernel/id|__sys_recvmsg}} receives a message from a socket
Additional server side interface:
: {{The Linux Kernel/man|2|bind}} ↪ {{The Linux Kernel/id|__sys_bind}} - binds a sockaddr to a socket
: {{The Linux Kernel/man|2|listen}} ↪ {{The Linux Kernel/id|__sys_listen}} - listens for connections on a socket
: {{The Linux Kernel/man|2|accept}} ↪ {{The Linux Kernel/id|__sys_accept4}} - accepts a connection on a socket
⚙️ Internals
: struct '''{{The Linux Kernel/id|socket}}''' @ {{The Linux Kernel/include|linux/net.h}} contains
:: struct {{The Linux Kernel/id|proto_ops}} - abstract protocols interface
:: struct {{The Linux Kernel/id|sock}} - network layer representation of sockets {{The Linux Kernel/include|net/sock.h}}
: '''{{The Linux Kernel/id|__sys_socket}}''' ↯ call hierarchy:
:: {{The Linux Kernel/id|sock_create}}
::: {{The Linux Kernel/id|__sock_create}}
:::: {{The Linux Kernel/id|security_socket_create}}
:::: {{The Linux Kernel/id|sock_alloc}}
::::: {{The Linux Kernel/id|net_proto_family}}->create.
:::::: for example {{The Linux Kernel/id|inet_create}}. See [[#Address_families|Address families]] for another options.
: '''{{The Linux Kernel/id|__sys_connect}}''' ↯ call hierarchy:
:: {{The Linux Kernel/id|move_addr_to_kernel}}
::: {{The Linux Kernel/id|audit_sockaddr}}
::: {{The Linux Kernel/id|__sys_connect_file}}
:::: {{The Linux Kernel/id|sock_from_file}}
:::: {{The Linux Kernel/id|security_socket_connect}}
:::: {{The Linux Kernel/id|proto_ops}}->connect.
::::: for example {{The Linux Kernel/id|inet_stream_connect}}. See [[#Protocols|Protocols]] for another options.
: {{The Linux Kernel/source|net/socket.c}} – socket system calls implementation
📚 References
: {{The Linux Kernel/man|7|socket}}
: {{The Linux Kernel/include|linux/socket.h}}
: {{w|Berkeley sockets}}
== Network storage ==
🚀 advanced topic
🔧 TODO
⚲ API:
: {{The Linux Kernel/man|2|sendfile}} ↪ {{The Linux Kernel/id|do_sendfile}}.
See also [[../Storage#Zero-copy|Zero-copy between file descriptors]]
:{{w|Application layer|Application layer}}: {{w|Network File System}}
: {{The Linux Kernel/doc|NFS|filesystems/nfs}}
:: {{The Linux Kernel/id|init_nfs_fs}}, {{The Linux Kernel/id|nfs4_fs_type}}, {{The Linux Kernel/id|nfs_fs_type}},
:: {{The Linux Kernel/id|init_nfsd}}, {{The Linux Kernel/id|nfsd_fs_type}}
: {{The Linux Kernel/doc|CIFS|admin-guide/cifs}}
:: {{The Linux Kernel/id|init_cifs}}
:: {{The Linux Kernel/id|cifs_fs_type}}, {{The Linux Kernel/id|smb3_fs_type}} {{The Linux Kernel/id|cifs_smb3_do_mount}}
: {{The Linux Kernel/doc|target and iSCSI Interfaces Guide|driver-api/target.html}}
📚 Further reading
: https://deepwiki.com/torvalds/linux/4.3-network-filesystems-(cifssmb)
== Transport and Network ==
=== Names ===
⚲ API: {{The Linux Kernel/man|2|uname}}, {{The Linux Kernel/man|2|sethostname}}, {{The Linux Kernel/man|2|gethostname}}, {{The Linux Kernel/man|2|setdomainname}} {{The Linux Kernel/man|2|getdomainname}}
: ↪ {{The Linux Kernel/id|utsname}}
⚙️ Details
: {{The Linux Kernel/id|utsname}} returns writable pointer to {{The Linux Kernel/id|new_utsname}} from {{The Linux Kernel/id|uts_namespace}} from {{The Linux Kernel/id|nsproxy}} from {{The Linux Kernel/id|current}} {{The Linux Kernel/id|task_struct}}.
: {{The Linux Kernel/id|CLONE_NEWUTS}}, {{The Linux Kernel/id|setns}}
: {{The Linux Kernel/source|kernel/utsname.c}} – UTS namespace management
📚 References:
: {{The Linux Kernel/man|7|namespaces}}
: {{The Linux Kernel/man|7|network_namespaces}}
: {{The Linux Kernel/man|7|uts_namespaces}}
=== Address families ===
⚲ API
: {{The Linux Kernel/man|2|getsockname}}
: {{The Linux Kernel/man|2|getpeername}}
: Address Family (AF) <big>domain</big> defines address format and address length <big>socklen_t</big>.
: {{The Linux Kernel/man|3|inet_ntop}}, {{The Linux Kernel/man|3|inet_pton}} (derive socklen_t from AF)
Common AF: {{The Linux Kernel/id|AF_UNIX}}, {{The Linux Kernel/id|AF_INET}}, {{The Linux Kernel/id|AF_NETLINK}}.
''PF - Protocol Family index ({{The Linux Kernel/id|PF_MAX}}) actually is the same as Address Family index (AF).''
⚙️ Internals of some AF
: {{The Linux Kernel/man|7|unix}} ↪ {{The Linux Kernel/id|unix_family_ops}} - sockets for local IPC
:: {{The Linux Kernel/id|unix_create}}
: {{The Linux Kernel/man|7|ip}} ↪ {{The Linux Kernel/id|inet_family_ops}} - IPv4
:: {{The Linux Kernel/id|inet_create}}
: {{The Linux Kernel/man|7|netlink}} ↪ {{The Linux Kernel/id|netlink_family_ops}} - communication between kernel and user space
:: {{The Linux Kernel/id|netlink_create}}
: {{The Linux Kernel/man|7|vsock}} ↪ {{The Linux Kernel/id|vsock_family_ops}} - communication between VM and hypervisor
:: {{The Linux Kernel/id|vsock_create}}
: {{The Linux Kernel/man|7|packet}} ↪ {{The Linux Kernel/id|packet_family_ops}} - device level interface
:: {{The Linux Kernel/id|packet_create}}
: {{The Linux Kernel/id|bt_sock_family_ops}} - Bluetooth
:: {{The Linux Kernel/id|bt_sock_create}}
Totally there are more than 40 AFs (see {{The Linux Kernel/id|AF_MAX}})
⚙️ Internals
: {{The Linux Kernel/id|sock_register}} - registers {{The Linux Kernel/id|net_proto_family}}. See references to this identifiers to find more than 30 protocol families.
: {{The Linux Kernel/id|__sock_create}}
📚 Further reading
: {{The Linux Kernel/man|8|ip-address}} – protocol address management
: {{w|Internet layer}}
: {{The Linux Kernel/man|7|address_families}}
=== Protocols ===
Each Protocol Family (PF, ''same index as Address Family AF'') consists of several protocol implementations.
Directory /proc/net contains various files and subdirectories containing information about the networking layer.
File /proc/net/protocols lists available and used protocols.
In each PF protocols are classified to different types {{The Linux Kernel/id|sock_type}}, for example stream, datagram and raw socket.
TCP is type of stream, UDP is type of datagram, raw and ping are type of raw.
: {{The Linux Kernel/id|proto_register}} - registers struct {{The Linux Kernel/id|proto}} - protocol implementations:
: In {{The Linux Kernel/id|inet_init}} initcall, {{The Linux Kernel/id|inetsw_array}}, {{The Linux Kernel/id|proto_ops}} and {{The Linux Kernel/id|proto}} :
:: {{The Linux Kernel/id|inet_stream_ops}} & {{The Linux Kernel/id|tcp_prot}} {{The Linux Kernel/id|tcp_sendmsg}} ...
:: {{The Linux Kernel/id|inet_dgram_ops}} & {{The Linux Kernel/id|udp_prot}} {{The Linux Kernel/id|udp_sendmsg}} ...
:: {{The Linux Kernel/id|inet_sockraw_ops}}
::: {{The Linux Kernel/id|raw_prot}} {{The Linux Kernel/id|raw_sendmsg}} ...
::: {{The Linux Kernel/id|ping_prot}} {{The Linux Kernel/id|ping_v4_sendmsg}} ...
: In {{The Linux Kernel/id|af_unix_init}} initcall:
:: {{The Linux Kernel/id|unix_family_ops}}
::: {{The Linux Kernel/id|unix_create}}
:::: {{The Linux Kernel/id|unix_stream_ops}} {{The Linux Kernel/id|unix_stream_sendmsg}} ...
:::: {{The Linux Kernel/id|unix_dgram_ops}} {{The Linux Kernel/id|unix_dgram_sendmsg}} ...
:::: {{The Linux Kernel/id|unix_seqpacket_ops}} {{The Linux Kernel/id|unix_seqpacket_sendmsg}} ...
📚 References:
: {{The Linux Kernel/man|7|tcp}}
: {{The Linux Kernel/man|7|udp}}
: {{The Linux Kernel/man|7|raw}}
:[[w:Transport layer|Transport layer]] and [[w:Transmission_Control_Protocol|TCP]]
=== RDMA ===
🚀 advanced topic
🗝️ Acronyms:
: IB — {{w|InfiniBand}}, an interconnect standard, competes with {{w|Ethernet}}, {{w|Fibre Channel}}
: IPoIB — IP network emulation layer over InfiniBand networks
: SRP — {{w|SCSI RDMA Protocol}}
: ULP — Upper-layer protocols
: iSER — {{w|iSCSI Extensions for RDMA}}
⚲ Interfaces:
: https://github.com/linux-rdma/rdma-core
: {{The Linux Kernel/man|8|rdma}}
: {{The Linux Kernel/man|7|rdma_cm}} — RDMA communication manager
: {{The Linux Kernel/source|include/uapi/rdma}} – user-space RDMA API definitions
: {{The Linux Kernel/source|include/rdma}} – kernel RDMA API definitions
⚙️ Internals:
: {{The Linux Kernel/source|drivers/infiniband}} – InfiniBand core and drivers
:: {{The Linux Kernel/source|drivers/infiniband/ulp}} — Upper-layer protocols
:: {{The Linux Kernel/source|drivers/infiniband/sw}} — software drivers
:: {{The Linux Kernel/source|drivers/infiniband/hw}} — hardware device drivers
📚 References:
: {{The Linux Kernel/doc|InfiniBand|infiniband}}
: {{The Linux Kernel/doc|InfiniBand and RDMA Interfaces|driver-api/infiniband.html}}
== {{w|Netfilter}} ==
🚀 advanced topic
⚲ Interface:
: {{The Linux Kernel/man|8|ebtables-nft}}
: {{The Linux Kernel/man|8|arptables-nft}}
: {{The Linux Kernel/man|8|xtables-nft}}
: {{The Linux Kernel/man|8|iptables}}
: {{The Linux Kernel/man|8|ip6tables}}
: {{The Linux Kernel/man|8|ebtables}}
: {{The Linux Kernel/man|8|arptables}}
: ipset
: {{The Linux Kernel/include|linux/netfilter.h}}
: {{The Linux Kernel/include|uapi/linux/netfilter}}
: {{The Linux Kernel/include|net/netfilter}}
: {{The Linux Kernel/include|net/netns/netfilter.h}}
: {{The Linux Kernel/include|linux/netfilter}}
⚙️ Internals:
: {{The Linux Kernel/source|net/netfilter}} – packet filtering framework
📚 References:
: {{The Linux Kernel/doc|Netfilter Sysfs variables|networking/netfilter-sysctl.html}}
: {{The Linux Kernel/doc|Netfilter Conntrack Sysfs variables|networking/nf_conntrack-sysctl.html}}
: {{The Linux Kernel/doc|Netfilter’s flowtable infrastructure|networking/nf_flowtable.html}}
: {{w|nftables}}
: https://wiki.nftables.org/
: https://lwn.net/Kernel/Index/#Networking-Packet_filtering
== Network device {{w|Network interface|interfaces}} ==
⚲ Interfaces
: <code>ip -brief link show</code>
: <code>ls -l /sys/class/net</code>
: {{The Linux Kernel/id|devm_register_netdev}} registers {{The Linux Kernel/id|net_device}}, net_device_ops
: {{The Linux Kernel/id|sk_buff}} socket buffer (skb)
:: {{The Linux Kernel/id|dev_queue_xmit}} queues socket buffers into transmit queue
: {{The Linux Kernel/include|linux/netdevice.h}}
: {{The Linux Kernel/include|linux/skbuff.h}}
👁 Example: {{The Linux Kernel/source|drivers/net/loopback.c}} - the most famous and simple interface '''lo'''
⚙️ Internals
: {{The Linux Kernel/source|net/core/dev.c}} – network device operations core
: function {{The Linux Kernel/id|loopback_xmit}} receives skb and passes it back with {{The Linux Kernel/id|netif_rx}}
📚 Further reading
: {{The Linux Kernel/man|8|ip-link}} – network device configuration
: {{The Linux Kernel/man|8|ip-stats}} – manage and show interface statistics
: {{The Linux Kernel/man|7|netdevice}} – low-level access to Linux network devices
: {{The Linux Kernel/man|7|packet}} – packet interface on device level
: [https://www.coverfire.com/articles/queueing-in-the-linux-network-stack/ Queueing in the Linux Network Stack]
💾 Historical
: [http://www.tldp.org/LDP/tlk/net/net.html LDP TLK Chapter 10 Networks]
== Network drivers==
:{{The Linux Kernel/include|linux/etherdevice.h}}
: {{The Linux Kernel/id|netif_rx}} - before NAPI
: {{The Linux Kernel/id|input_pkt_queue}}
: {{w|New_API|NAPI}}
: [https://wiki.linuxfoundation.org/networking/napi NAPI Driver design]
:: ⚲ API:
::: {{The Linux Kernel/id|netif_napi_add}} adds {{The Linux Kernel/id|napi_struct}}
::: {{The Linux Kernel/id|napi_schedule}} - called by an IRQ handler to schedule a poll
::: {{The Linux Kernel/id|netif_receive_skb}} - instead netif_rx, finally calls {{The Linux Kernel/id|ip_rcv}}
::: {{The Linux Kernel/id|napi_complete_done}} - called from custom napi->poll()
:: ⚙️ Internals:
::: {{The Linux Kernel/id|net_dev_init}}
:::: {{The Linux Kernel/id|net_rx_action}}
::::: {{The Linux Kernel/id|napi_poll}} calls custom napi->poll()
:: 👁 example
::: {{The Linux Kernel/id|e1000_intr}} calls {{The Linux Kernel/id|__napi_schedule}}
::: custom napi->poll() {{The Linux Kernel/id|e1000e_poll}} calls {{The Linux Kernel/id|napi_complete_done}}
: {{The Linux Kernel/id|ether_setup}} setups Ethernet network device
: 👁 An example of Ethernet driver: {{The Linux Kernel/id|e1000_probe}}
⚙️ Internals:
: {{The Linux Kernel/source|drivers/net}} – network device drivers
: {{The Linux Kernel/source|drivers/net/wireless}} – wireless drivers
: {{The Linux Kernel/source|drivers/net/ethernet}} – Ethernet drivers
📚 References:
: {{The Linux Kernel/man|8|ethtool}} – query or control network driver and hardware settings
: [[w:Data link layer|Data link layer]]: [[w:Ethernet|Ethernet]]
: [https://lwn.net/Articles/358910/ GRO - Generic Receive Offload]
: {{The Linux Kernel/doc|Segmentation Offloads|networking/segmentation-offloads.html}}
: https://wireless.wiki.kernel.org
<hr>
💾 ''Historical'':
: [http://www.xml.com/ldd/chapter/book/ch14.html LDD2:Network Drivers]
: [http://lwn.net/images/pdf/LDD3/ch17.pdf LDD3:Network Drivers]
: [http://www.tldp.org/HOWTO/KernelAnalysis-HOWTO-8.html Kernel Analysis: Networking, 2003]
: [https://web.archive.org/web/20111030030517/http://www.linuxfoundation.org/collaborate/workgroups/networking/networkoverview network_overview]
📖 Further reading about networking
: {{The Linux Kernel/doc|Networking interfaces|subsystem-apis.html#networking-interfaces}}
:: {{The Linux Kernel/doc|Networking|networking}}
: https://lwn.net/Kernel/Index/#Networking
: https://lartc.org/ – Linux Advanced Routing & Traffic Control
: {{The Linux Kernel/man|8|ip}} – show / manipulate routing, network devices, interfaces and tunnels
: {{The Linux Kernel/man|8|tc}} – show / manipulate traffic control settings
: [https://github.com/iovisor/bcc/blob/master/README.md#network-and-sockets-tools bcc/ebpf networking tools]
: [https://github.com/cilium/cilium eBPF-based Networking, Security, and Observability]
: [https://retis.readthedocs.io/ Retis – tracing packets in the Linux networking stack & friends]
{{BookCat}}
2pu7b0jdu2reves6q7ttt9fpyd106ii
4640236
4640212
2026-06-13T19:15:12Z
Conan
3188
fix grammar: another options -> other options, extra space
4640236
wikitext
text/x-wiki
<noinclude>{{DISPLAYTITLE:Network functionality}}</noinclude>
{|style="width: 25%; float: right; text-align:center;border-spacing: 0; color:black; margin:auto;" cellpadding=5pc
! bgcolor="#dff" |networking
|-
| bgcolor="#bff" |[[#Sockets|sockets access]]
|-
| bgcolor="#adf" |[[#Address_families|address families: inet, unix, ...]]
|-
| bgcolor="#9cd" |[[#Network_storage|network storage]]
|-
| bgcolor="#8bb" |[[#Protocols|protocols]]
|-
| bgcolor="#7a9" |[[#Network_device_interfaces|network interfaces]]
|-
| bgcolor="#798" |[[#Network_drivers|network drivers]]
|}
Linux kernel network functionality spans from sockets interface through protocols to network cards.
⚲ Shell interfaces:
: {{The Linux Kernel/man|8|netstat}} prints network connections, routing tables, interface statistics and other details
: {{The Linux Kernel/man|8|ip}} shows and configures routing, network devices, interfaces and tunnels
: {{The Linux Kernel/man|8|ss}} - socket statistics utility
== Sockets ==
⚲ API:
[https://man7.org/linux/man-pages/man0/sys_socket.h.0p.html sys/socket.h – main user mode sockets header]
Basic common and client side interface:
: {{The Linux Kernel/man|2|socket}} ↪ {{The Linux Kernel/id|__sys_socket}} creates an endpoint for communication
: struct {{The Linux Kernel/id|sockaddr}} - abstract socket address
: {{The Linux Kernel/man|2|connect}} ↪ {{The Linux Kernel/id|__sys_connect}};
: {{The Linux Kernel/man|2|shutdown}} shuts down part of a full-duplex connection
: {{The Linux Kernel/man|2|send}} ↪ {{The Linux Kernel/id|__sys_sendto}} sends a message on a socket
: {{The Linux Kernel/man|2|recv}} ↪ {{The Linux Kernel/id|__sys_recvfrom}}, {{The Linux Kernel/id|__sys_recvmsg}} receives a message from a socket
Additional server side interface:
: {{The Linux Kernel/man|2|bind}} ↪ {{The Linux Kernel/id|__sys_bind}} - binds a sockaddr to a socket
: {{The Linux Kernel/man|2|listen}} ↪ {{The Linux Kernel/id|__sys_listen}} - listens for connections on a socket
: {{The Linux Kernel/man|2|accept}} ↪ {{The Linux Kernel/id|__sys_accept4}} - accepts a connection on a socket
⚙️ Internals
: struct '''{{The Linux Kernel/id|socket}}''' @ {{The Linux Kernel/include|linux/net.h}} contains
:: struct {{The Linux Kernel/id|proto_ops}} - abstract protocols interface
:: struct {{The Linux Kernel/id|sock}} - network layer representation of sockets {{The Linux Kernel/include|net/sock.h}}
: '''{{The Linux Kernel/id|__sys_socket}}''' ↯ call hierarchy:
:: {{The Linux Kernel/id|sock_create}}
::: {{The Linux Kernel/id|__sock_create}}
:::: {{The Linux Kernel/id|security_socket_create}}
:::: {{The Linux Kernel/id|sock_alloc}}
::::: {{The Linux Kernel/id|net_proto_family}}->create.
:::::: for example {{The Linux Kernel/id|inet_create}}. See [[#Address_families|Address families]] for other options.
: '''{{The Linux Kernel/id|__sys_connect}}''' ↯ call hierarchy:
:: {{The Linux Kernel/id|move_addr_to_kernel}}
::: {{The Linux Kernel/id|audit_sockaddr}}
::: {{The Linux Kernel/id|__sys_connect_file}}
:::: {{The Linux Kernel/id|sock_from_file}}
:::: {{The Linux Kernel/id|security_socket_connect}}
:::: {{The Linux Kernel/id|proto_ops}}->connect.
::::: for example {{The Linux Kernel/id|inet_stream_connect}}. See [[#Protocols|Protocols]] for other options.
: {{The Linux Kernel/source|net/socket.c}} – socket system calls implementation
📚 References
: {{The Linux Kernel/man|7|socket}}
: {{The Linux Kernel/include|linux/socket.h}}
: {{w|Berkeley sockets}}
== Network storage ==
🚀 advanced topic
🔧 TODO
⚲ API:
: {{The Linux Kernel/man|2|sendfile}} ↪ {{The Linux Kernel/id|do_sendfile}}.
See also [[../Storage#Zero-copy|Zero-copy between file descriptors]]
:{{w|Application layer|Application layer}}: {{w|Network File System}}
: {{The Linux Kernel/doc|NFS|filesystems/nfs}}
:: {{The Linux Kernel/id|init_nfs_fs}}, {{The Linux Kernel/id|nfs4_fs_type}}, {{The Linux Kernel/id|nfs_fs_type}},
:: {{The Linux Kernel/id|init_nfsd}}, {{The Linux Kernel/id|nfsd_fs_type}}
: {{The Linux Kernel/doc|CIFS|admin-guide/cifs}}
:: {{The Linux Kernel/id|init_cifs}}
:: {{The Linux Kernel/id|cifs_fs_type}}, {{The Linux Kernel/id|smb3_fs_type}} {{The Linux Kernel/id|cifs_smb3_do_mount}}
: {{The Linux Kernel/doc|target and iSCSI Interfaces Guide|driver-api/target.html}}
📚 Further reading
: https://deepwiki.com/torvalds/linux/4.3-network-filesystems-(cifssmb)
== Transport and Network ==
=== Names ===
⚲ API: {{The Linux Kernel/man|2|uname}}, {{The Linux Kernel/man|2|sethostname}}, {{The Linux Kernel/man|2|gethostname}}, {{The Linux Kernel/man|2|setdomainname}} {{The Linux Kernel/man|2|getdomainname}}
: ↪ {{The Linux Kernel/id|utsname}}
⚙️ Details
: {{The Linux Kernel/id|utsname}} returns writable pointer to {{The Linux Kernel/id|new_utsname}} from {{The Linux Kernel/id|uts_namespace}} from {{The Linux Kernel/id|nsproxy}} from {{The Linux Kernel/id|current}} {{The Linux Kernel/id|task_struct}}.
: {{The Linux Kernel/id|CLONE_NEWUTS}}, {{The Linux Kernel/id|setns}}
: {{The Linux Kernel/source|kernel/utsname.c}} – UTS namespace management
📚 References:
: {{The Linux Kernel/man|7|namespaces}}
: {{The Linux Kernel/man|7|network_namespaces}}
: {{The Linux Kernel/man|7|uts_namespaces}}
=== Address families ===
⚲ API
: {{The Linux Kernel/man|2|getsockname}}
: {{The Linux Kernel/man|2|getpeername}}
: Address Family (AF) <big>domain</big> defines address format and address length <big>socklen_t</big>.
: {{The Linux Kernel/man|3|inet_ntop}}, {{The Linux Kernel/man|3|inet_pton}} (derive socklen_t from AF)
Common AF: {{The Linux Kernel/id|AF_UNIX}}, {{The Linux Kernel/id|AF_INET}}, {{The Linux Kernel/id|AF_NETLINK}}.
''PF - Protocol Family index ({{The Linux Kernel/id|PF_MAX}}) actually is the same as Address Family index (AF).''
⚙️ Internals of some AF
: {{The Linux Kernel/man|7|unix}} ↪ {{The Linux Kernel/id|unix_family_ops}} - sockets for local IPC
:: {{The Linux Kernel/id|unix_create}}
: {{The Linux Kernel/man|7|ip}} ↪ {{The Linux Kernel/id|inet_family_ops}} - IPv4
:: {{The Linux Kernel/id|inet_create}}
: {{The Linux Kernel/man|7|netlink}} ↪ {{The Linux Kernel/id|netlink_family_ops}} - communication between kernel and user space
:: {{The Linux Kernel/id|netlink_create}}
: {{The Linux Kernel/man|7|vsock}} ↪ {{The Linux Kernel/id|vsock_family_ops}} - communication between VM and hypervisor
:: {{The Linux Kernel/id|vsock_create}}
: {{The Linux Kernel/man|7|packet}} ↪ {{The Linux Kernel/id|packet_family_ops}} - device level interface
:: {{The Linux Kernel/id|packet_create}}
: {{The Linux Kernel/id|bt_sock_family_ops}} - Bluetooth
:: {{The Linux Kernel/id|bt_sock_create}}
Totally there are more than 40 AFs (see {{The Linux Kernel/id|AF_MAX}})
⚙️ Internals
: {{The Linux Kernel/id|sock_register}} - registers {{The Linux Kernel/id|net_proto_family}}. See references to this identifiers to find more than 30 protocol families.
: {{The Linux Kernel/id|__sock_create}}
📚 Further reading
: {{The Linux Kernel/man|8|ip-address}} – protocol address management
: {{w|Internet layer}}
: {{The Linux Kernel/man|7|address_families}}
=== Protocols ===
Each Protocol Family (PF, ''same index as Address Family AF'') consists of several protocol implementations.
Directory /proc/net contains various files and subdirectories containing information about the networking layer.
File /proc/net/protocols lists available and used protocols.
In each PF protocols are classified to different types {{The Linux Kernel/id|sock_type}}, for example stream, datagram and raw socket.
TCP is type of stream, UDP is type of datagram, raw and ping are type of raw.
: {{The Linux Kernel/id|proto_register}} - registers struct {{The Linux Kernel/id|proto}} - protocol implementations:
: In {{The Linux Kernel/id|inet_init}} initcall, {{The Linux Kernel/id|inetsw_array}}, {{The Linux Kernel/id|proto_ops}} and {{The Linux Kernel/id|proto}} :
:: {{The Linux Kernel/id|inet_stream_ops}} & {{The Linux Kernel/id|tcp_prot}} {{The Linux Kernel/id|tcp_sendmsg}} ...
:: {{The Linux Kernel/id|inet_dgram_ops}} & {{The Linux Kernel/id|udp_prot}} {{The Linux Kernel/id|udp_sendmsg}} ...
:: {{The Linux Kernel/id|inet_sockraw_ops}}
::: {{The Linux Kernel/id|raw_prot}} {{The Linux Kernel/id|raw_sendmsg}} ...
::: {{The Linux Kernel/id|ping_prot}} {{The Linux Kernel/id|ping_v4_sendmsg}} ...
: In {{The Linux Kernel/id|af_unix_init}} initcall:
:: {{The Linux Kernel/id|unix_family_ops}}
::: {{The Linux Kernel/id|unix_create}}
:::: {{The Linux Kernel/id|unix_stream_ops}} {{The Linux Kernel/id|unix_stream_sendmsg}} ...
:::: {{The Linux Kernel/id|unix_dgram_ops}} {{The Linux Kernel/id|unix_dgram_sendmsg}} ...
:::: {{The Linux Kernel/id|unix_seqpacket_ops}} {{The Linux Kernel/id|unix_seqpacket_sendmsg}} ...
📚 References:
: {{The Linux Kernel/man|7|tcp}}
: {{The Linux Kernel/man|7|udp}}
: {{The Linux Kernel/man|7|raw}}
:[[w:Transport layer|Transport layer]] and [[w:Transmission_Control_Protocol|TCP]]
=== RDMA ===
🚀 advanced topic
🗝️ Acronyms:
: IB — {{w|InfiniBand}}, an interconnect standard, competes with {{w|Ethernet}}, {{w|Fibre Channel}}
: IPoIB — IP network emulation layer over InfiniBand networks
: SRP — {{w|SCSI RDMA Protocol}}
: ULP — Upper-layer protocols
: iSER — {{w|iSCSI Extensions for RDMA}}
⚲ Interfaces:
: https://github.com/linux-rdma/rdma-core
: {{The Linux Kernel/man|8|rdma}}
: {{The Linux Kernel/man|7|rdma_cm}} — RDMA communication manager
: {{The Linux Kernel/source|include/uapi/rdma}} – user-space RDMA API definitions
: {{The Linux Kernel/source|include/rdma}} – kernel RDMA API definitions
⚙️ Internals:
: {{The Linux Kernel/source|drivers/infiniband}} – InfiniBand core and drivers
:: {{The Linux Kernel/source|drivers/infiniband/ulp}} — Upper-layer protocols
:: {{The Linux Kernel/source|drivers/infiniband/sw}} — software drivers
:: {{The Linux Kernel/source|drivers/infiniband/hw}} — hardware device drivers
📚 References:
: {{The Linux Kernel/doc|InfiniBand|infiniband}}
: {{The Linux Kernel/doc|InfiniBand and RDMA Interfaces|driver-api/infiniband.html}}
== {{w|Netfilter}} ==
🚀 advanced topic
⚲ Interface:
: {{The Linux Kernel/man|8|ebtables-nft}}
: {{The Linux Kernel/man|8|arptables-nft}}
: {{The Linux Kernel/man|8|xtables-nft}}
: {{The Linux Kernel/man|8|iptables}}
: {{The Linux Kernel/man|8|ip6tables}}
: {{The Linux Kernel/man|8|ebtables}}
: {{The Linux Kernel/man|8|arptables}}
: ipset
: {{The Linux Kernel/include|linux/netfilter.h}}
: {{The Linux Kernel/include|uapi/linux/netfilter}}
: {{The Linux Kernel/include|net/netfilter}}
: {{The Linux Kernel/include|net/netns/netfilter.h}}
: {{The Linux Kernel/include|linux/netfilter}}
⚙️ Internals:
: {{The Linux Kernel/source|net/netfilter}} – packet filtering framework
📚 References:
: {{The Linux Kernel/doc|Netfilter Sysfs variables|networking/netfilter-sysctl.html}}
: {{The Linux Kernel/doc|Netfilter Conntrack Sysfs variables|networking/nf_conntrack-sysctl.html}}
: {{The Linux Kernel/doc|Netfilter’s flowtable infrastructure|networking/nf_flowtable.html}}
: {{w|nftables}}
: https://wiki.nftables.org/
: https://lwn.net/Kernel/Index/#Networking-Packet_filtering
== Network device {{w|Network interface|interfaces}} ==
⚲ Interfaces
: <code>ip -brief link show</code>
: <code>ls -l /sys/class/net</code>
: {{The Linux Kernel/id|devm_register_netdev}} registers {{The Linux Kernel/id|net_device}}, net_device_ops
: {{The Linux Kernel/id|sk_buff}} socket buffer (skb)
:: {{The Linux Kernel/id|dev_queue_xmit}} queues socket buffers into transmit queue
: {{The Linux Kernel/include|linux/netdevice.h}}
: {{The Linux Kernel/include|linux/skbuff.h}}
👁 Example: {{The Linux Kernel/source|drivers/net/loopback.c}} - the most famous and simple interface '''lo'''
⚙️ Internals
: {{The Linux Kernel/source|net/core/dev.c}} – network device operations core
: function {{The Linux Kernel/id|loopback_xmit}} receives skb and passes it back with {{The Linux Kernel/id|netif_rx}}
📚 Further reading
: {{The Linux Kernel/man|8|ip-link}} – network device configuration
: {{The Linux Kernel/man|8|ip-stats}} – manage and show interface statistics
: {{The Linux Kernel/man|7|netdevice}} – low-level access to Linux network devices
: {{The Linux Kernel/man|7|packet}} – packet interface on device level
: [https://www.coverfire.com/articles/queueing-in-the-linux-network-stack/ Queueing in the Linux Network Stack]
💾 Historical
: [http://www.tldp.org/LDP/tlk/net/net.html LDP TLK Chapter 10 Networks]
== Network drivers==
:{{The Linux Kernel/include|linux/etherdevice.h}}
: {{The Linux Kernel/id|netif_rx}} - before NAPI
: {{The Linux Kernel/id|input_pkt_queue}}
: {{w|New_API|NAPI}}
: [https://wiki.linuxfoundation.org/networking/napi NAPI Driver design]
:: ⚲ API:
::: {{The Linux Kernel/id|netif_napi_add}} adds {{The Linux Kernel/id|napi_struct}}
::: {{The Linux Kernel/id|napi_schedule}} - called by an IRQ handler to schedule a poll
::: {{The Linux Kernel/id|netif_receive_skb}} - instead netif_rx, finally calls {{The Linux Kernel/id|ip_rcv}}
::: {{The Linux Kernel/id|napi_complete_done}} - called from custom napi->poll()
:: ⚙️ Internals:
::: {{The Linux Kernel/id|net_dev_init}}
:::: {{The Linux Kernel/id|net_rx_action}}
::::: {{The Linux Kernel/id|napi_poll}} calls custom napi->poll()
:: 👁 example
::: {{The Linux Kernel/id|e1000_intr}} calls {{The Linux Kernel/id|__napi_schedule}}
::: custom napi->poll() {{The Linux Kernel/id|e1000e_poll}} calls {{The Linux Kernel/id|napi_complete_done}}
: {{The Linux Kernel/id|ether_setup}} setups Ethernet network device
: 👁 An example of Ethernet driver: {{The Linux Kernel/id|e1000_probe}}
⚙️ Internals:
: {{The Linux Kernel/source|drivers/net}} – network device drivers
: {{The Linux Kernel/source|drivers/net/wireless}} – wireless drivers
: {{The Linux Kernel/source|drivers/net/ethernet}} – Ethernet drivers
📚 References:
: {{The Linux Kernel/man|8|ethtool}} – query or control network driver and hardware settings
: [[w:Data link layer|Data link layer]]: [[w:Ethernet|Ethernet]]
: [https://lwn.net/Articles/358910/ GRO - Generic Receive Offload]
: {{The Linux Kernel/doc|Segmentation Offloads|networking/segmentation-offloads.html}}
: https://wireless.wiki.kernel.org
<hr>
💾 ''Historical'':
: [http://www.xml.com/ldd/chapter/book/ch14.html LDD2:Network Drivers]
: [http://lwn.net/images/pdf/LDD3/ch17.pdf LDD3:Network Drivers]
: [http://www.tldp.org/HOWTO/KernelAnalysis-HOWTO-8.html Kernel Analysis: Networking, 2003]
: [https://web.archive.org/web/20111030030517/http://www.linuxfoundation.org/collaborate/workgroups/networking/networkoverview network_overview]
📖 Further reading about networking
: {{The Linux Kernel/doc|Networking interfaces|subsystem-apis.html#networking-interfaces}}
:: {{The Linux Kernel/doc|Networking|networking}}
: https://lwn.net/Kernel/Index/#Networking
: https://lartc.org/ – Linux Advanced Routing & Traffic Control
: {{The Linux Kernel/man|8|ip}} – show / manipulate routing, network devices, interfaces and tunnels
: {{The Linux Kernel/man|8|tc}} – show / manipulate traffic control settings
: [https://github.com/iovisor/bcc/blob/master/README.md#network-and-sockets-tools bcc/ebpf networking tools]
: [https://github.com/cilium/cilium eBPF-based Networking, Security, and Observability]
: [https://retis.readthedocs.io/ Retis – tracing packets in the Linux networking stack & friends]
{{BookCat}}
ceq505c0ppbrxo59secl09wgq1qli53
4640252
4640236
2026-06-13T20:25:30Z
Conan
3188
fix awkward phrasing in AF count
4640252
wikitext
text/x-wiki
<noinclude>{{DISPLAYTITLE:Network functionality}}</noinclude>
{|style="width: 25%; float: right; text-align:center;border-spacing: 0; color:black; margin:auto;" cellpadding=5pc
! bgcolor="#dff" |networking
|-
| bgcolor="#bff" |[[#Sockets|sockets access]]
|-
| bgcolor="#adf" |[[#Address_families|address families: inet, unix, ...]]
|-
| bgcolor="#9cd" |[[#Network_storage|network storage]]
|-
| bgcolor="#8bb" |[[#Protocols|protocols]]
|-
| bgcolor="#7a9" |[[#Network_device_interfaces|network interfaces]]
|-
| bgcolor="#798" |[[#Network_drivers|network drivers]]
|}
Linux kernel network functionality spans from sockets interface through protocols to network cards.
⚲ Shell interfaces:
: {{The Linux Kernel/man|8|netstat}} prints network connections, routing tables, interface statistics and other details
: {{The Linux Kernel/man|8|ip}} shows and configures routing, network devices, interfaces and tunnels
: {{The Linux Kernel/man|8|ss}} - socket statistics utility
== Sockets ==
⚲ API:
[https://man7.org/linux/man-pages/man0/sys_socket.h.0p.html sys/socket.h – main user mode sockets header]
Basic common and client side interface:
: {{The Linux Kernel/man|2|socket}} ↪ {{The Linux Kernel/id|__sys_socket}} creates an endpoint for communication
: struct {{The Linux Kernel/id|sockaddr}} - abstract socket address
: {{The Linux Kernel/man|2|connect}} ↪ {{The Linux Kernel/id|__sys_connect}};
: {{The Linux Kernel/man|2|shutdown}} shuts down part of a full-duplex connection
: {{The Linux Kernel/man|2|send}} ↪ {{The Linux Kernel/id|__sys_sendto}} sends a message on a socket
: {{The Linux Kernel/man|2|recv}} ↪ {{The Linux Kernel/id|__sys_recvfrom}}, {{The Linux Kernel/id|__sys_recvmsg}} receives a message from a socket
Additional server side interface:
: {{The Linux Kernel/man|2|bind}} ↪ {{The Linux Kernel/id|__sys_bind}} - binds a sockaddr to a socket
: {{The Linux Kernel/man|2|listen}} ↪ {{The Linux Kernel/id|__sys_listen}} - listens for connections on a socket
: {{The Linux Kernel/man|2|accept}} ↪ {{The Linux Kernel/id|__sys_accept4}} - accepts a connection on a socket
⚙️ Internals
: struct '''{{The Linux Kernel/id|socket}}''' @ {{The Linux Kernel/include|linux/net.h}} contains
:: struct {{The Linux Kernel/id|proto_ops}} - abstract protocols interface
:: struct {{The Linux Kernel/id|sock}} - network layer representation of sockets {{The Linux Kernel/include|net/sock.h}}
: '''{{The Linux Kernel/id|__sys_socket}}''' ↯ call hierarchy:
:: {{The Linux Kernel/id|sock_create}}
::: {{The Linux Kernel/id|__sock_create}}
:::: {{The Linux Kernel/id|security_socket_create}}
:::: {{The Linux Kernel/id|sock_alloc}}
::::: {{The Linux Kernel/id|net_proto_family}}->create.
:::::: for example {{The Linux Kernel/id|inet_create}}. See [[#Address_families|Address families]] for other options.
: '''{{The Linux Kernel/id|__sys_connect}}''' ↯ call hierarchy:
:: {{The Linux Kernel/id|move_addr_to_kernel}}
::: {{The Linux Kernel/id|audit_sockaddr}}
::: {{The Linux Kernel/id|__sys_connect_file}}
:::: {{The Linux Kernel/id|sock_from_file}}
:::: {{The Linux Kernel/id|security_socket_connect}}
:::: {{The Linux Kernel/id|proto_ops}}->connect.
::::: for example {{The Linux Kernel/id|inet_stream_connect}}. See [[#Protocols|Protocols]] for other options.
: {{The Linux Kernel/source|net/socket.c}} – socket system calls implementation
📚 References
: {{The Linux Kernel/man|7|socket}}
: {{The Linux Kernel/include|linux/socket.h}}
: {{w|Berkeley sockets}}
== Network storage ==
🚀 advanced topic
🔧 TODO
⚲ API:
: {{The Linux Kernel/man|2|sendfile}} ↪ {{The Linux Kernel/id|do_sendfile}}.
See also [[../Storage#Zero-copy|Zero-copy between file descriptors]]
:{{w|Application layer|Application layer}}: {{w|Network File System}}
: {{The Linux Kernel/doc|NFS|filesystems/nfs}}
:: {{The Linux Kernel/id|init_nfs_fs}}, {{The Linux Kernel/id|nfs4_fs_type}}, {{The Linux Kernel/id|nfs_fs_type}},
:: {{The Linux Kernel/id|init_nfsd}}, {{The Linux Kernel/id|nfsd_fs_type}}
: {{The Linux Kernel/doc|CIFS|admin-guide/cifs}}
:: {{The Linux Kernel/id|init_cifs}}
:: {{The Linux Kernel/id|cifs_fs_type}}, {{The Linux Kernel/id|smb3_fs_type}} {{The Linux Kernel/id|cifs_smb3_do_mount}}
: {{The Linux Kernel/doc|target and iSCSI Interfaces Guide|driver-api/target.html}}
📚 Further reading
: https://deepwiki.com/torvalds/linux/4.3-network-filesystems-(cifssmb)
== Transport and Network ==
=== Names ===
⚲ API: {{The Linux Kernel/man|2|uname}}, {{The Linux Kernel/man|2|sethostname}}, {{The Linux Kernel/man|2|gethostname}}, {{The Linux Kernel/man|2|setdomainname}} {{The Linux Kernel/man|2|getdomainname}}
: ↪ {{The Linux Kernel/id|utsname}}
⚙️ Details
: {{The Linux Kernel/id|utsname}} returns writable pointer to {{The Linux Kernel/id|new_utsname}} from {{The Linux Kernel/id|uts_namespace}} from {{The Linux Kernel/id|nsproxy}} from {{The Linux Kernel/id|current}} {{The Linux Kernel/id|task_struct}}.
: {{The Linux Kernel/id|CLONE_NEWUTS}}, {{The Linux Kernel/id|setns}}
: {{The Linux Kernel/source|kernel/utsname.c}} – UTS namespace management
📚 References:
: {{The Linux Kernel/man|7|namespaces}}
: {{The Linux Kernel/man|7|network_namespaces}}
: {{The Linux Kernel/man|7|uts_namespaces}}
=== Address families ===
⚲ API
: {{The Linux Kernel/man|2|getsockname}}
: {{The Linux Kernel/man|2|getpeername}}
: Address Family (AF) <big>domain</big> defines address format and address length <big>socklen_t</big>.
: {{The Linux Kernel/man|3|inet_ntop}}, {{The Linux Kernel/man|3|inet_pton}} (derive socklen_t from AF)
Common AF: {{The Linux Kernel/id|AF_UNIX}}, {{The Linux Kernel/id|AF_INET}}, {{The Linux Kernel/id|AF_NETLINK}}.
''PF - Protocol Family index ({{The Linux Kernel/id|PF_MAX}}) actually is the same as Address Family index (AF).''
⚙️ Internals of some AF
: {{The Linux Kernel/man|7|unix}} ↪ {{The Linux Kernel/id|unix_family_ops}} - sockets for local IPC
:: {{The Linux Kernel/id|unix_create}}
: {{The Linux Kernel/man|7|ip}} ↪ {{The Linux Kernel/id|inet_family_ops}} - IPv4
:: {{The Linux Kernel/id|inet_create}}
: {{The Linux Kernel/man|7|netlink}} ↪ {{The Linux Kernel/id|netlink_family_ops}} - communication between kernel and user space
:: {{The Linux Kernel/id|netlink_create}}
: {{The Linux Kernel/man|7|vsock}} ↪ {{The Linux Kernel/id|vsock_family_ops}} - communication between VM and hypervisor
:: {{The Linux Kernel/id|vsock_create}}
: {{The Linux Kernel/man|7|packet}} ↪ {{The Linux Kernel/id|packet_family_ops}} - device level interface
:: {{The Linux Kernel/id|packet_create}}
: {{The Linux Kernel/id|bt_sock_family_ops}} - Bluetooth
:: {{The Linux Kernel/id|bt_sock_create}}
There are more than 40 AFs in total (see {{The Linux Kernel/id|AF_MAX}})
⚙️ Internals
: {{The Linux Kernel/id|sock_register}} - registers {{The Linux Kernel/id|net_proto_family}}. See references to this identifiers to find more than 30 protocol families.
: {{The Linux Kernel/id|__sock_create}}
📚 Further reading
: {{The Linux Kernel/man|8|ip-address}} – protocol address management
: {{w|Internet layer}}
: {{The Linux Kernel/man|7|address_families}}
=== Protocols ===
Each Protocol Family (PF, ''same index as Address Family AF'') consists of several protocol implementations.
Directory /proc/net contains various files and subdirectories containing information about the networking layer.
File /proc/net/protocols lists available and used protocols.
In each PF protocols are classified to different types {{The Linux Kernel/id|sock_type}}, for example stream, datagram and raw socket.
TCP is type of stream, UDP is type of datagram, raw and ping are type of raw.
: {{The Linux Kernel/id|proto_register}} - registers struct {{The Linux Kernel/id|proto}} - protocol implementations:
: In {{The Linux Kernel/id|inet_init}} initcall, {{The Linux Kernel/id|inetsw_array}}, {{The Linux Kernel/id|proto_ops}} and {{The Linux Kernel/id|proto}} :
:: {{The Linux Kernel/id|inet_stream_ops}} & {{The Linux Kernel/id|tcp_prot}} {{The Linux Kernel/id|tcp_sendmsg}} ...
:: {{The Linux Kernel/id|inet_dgram_ops}} & {{The Linux Kernel/id|udp_prot}} {{The Linux Kernel/id|udp_sendmsg}} ...
:: {{The Linux Kernel/id|inet_sockraw_ops}}
::: {{The Linux Kernel/id|raw_prot}} {{The Linux Kernel/id|raw_sendmsg}} ...
::: {{The Linux Kernel/id|ping_prot}} {{The Linux Kernel/id|ping_v4_sendmsg}} ...
: In {{The Linux Kernel/id|af_unix_init}} initcall:
:: {{The Linux Kernel/id|unix_family_ops}}
::: {{The Linux Kernel/id|unix_create}}
:::: {{The Linux Kernel/id|unix_stream_ops}} {{The Linux Kernel/id|unix_stream_sendmsg}} ...
:::: {{The Linux Kernel/id|unix_dgram_ops}} {{The Linux Kernel/id|unix_dgram_sendmsg}} ...
:::: {{The Linux Kernel/id|unix_seqpacket_ops}} {{The Linux Kernel/id|unix_seqpacket_sendmsg}} ...
📚 References:
: {{The Linux Kernel/man|7|tcp}}
: {{The Linux Kernel/man|7|udp}}
: {{The Linux Kernel/man|7|raw}}
:[[w:Transport layer|Transport layer]] and [[w:Transmission_Control_Protocol|TCP]]
=== RDMA ===
🚀 advanced topic
🗝️ Acronyms:
: IB — {{w|InfiniBand}}, an interconnect standard, competes with {{w|Ethernet}}, {{w|Fibre Channel}}
: IPoIB — IP network emulation layer over InfiniBand networks
: SRP — {{w|SCSI RDMA Protocol}}
: ULP — Upper-layer protocols
: iSER — {{w|iSCSI Extensions for RDMA}}
⚲ Interfaces:
: https://github.com/linux-rdma/rdma-core
: {{The Linux Kernel/man|8|rdma}}
: {{The Linux Kernel/man|7|rdma_cm}} — RDMA communication manager
: {{The Linux Kernel/source|include/uapi/rdma}} – user-space RDMA API definitions
: {{The Linux Kernel/source|include/rdma}} – kernel RDMA API definitions
⚙️ Internals:
: {{The Linux Kernel/source|drivers/infiniband}} – InfiniBand core and drivers
:: {{The Linux Kernel/source|drivers/infiniband/ulp}} — Upper-layer protocols
:: {{The Linux Kernel/source|drivers/infiniband/sw}} — software drivers
:: {{The Linux Kernel/source|drivers/infiniband/hw}} — hardware device drivers
📚 References:
: {{The Linux Kernel/doc|InfiniBand|infiniband}}
: {{The Linux Kernel/doc|InfiniBand and RDMA Interfaces|driver-api/infiniband.html}}
== {{w|Netfilter}} ==
🚀 advanced topic
⚲ Interface:
: {{The Linux Kernel/man|8|ebtables-nft}}
: {{The Linux Kernel/man|8|arptables-nft}}
: {{The Linux Kernel/man|8|xtables-nft}}
: {{The Linux Kernel/man|8|iptables}}
: {{The Linux Kernel/man|8|ip6tables}}
: {{The Linux Kernel/man|8|ebtables}}
: {{The Linux Kernel/man|8|arptables}}
: ipset
: {{The Linux Kernel/include|linux/netfilter.h}}
: {{The Linux Kernel/include|uapi/linux/netfilter}}
: {{The Linux Kernel/include|net/netfilter}}
: {{The Linux Kernel/include|net/netns/netfilter.h}}
: {{The Linux Kernel/include|linux/netfilter}}
⚙️ Internals:
: {{The Linux Kernel/source|net/netfilter}} – packet filtering framework
📚 References:
: {{The Linux Kernel/doc|Netfilter Sysfs variables|networking/netfilter-sysctl.html}}
: {{The Linux Kernel/doc|Netfilter Conntrack Sysfs variables|networking/nf_conntrack-sysctl.html}}
: {{The Linux Kernel/doc|Netfilter’s flowtable infrastructure|networking/nf_flowtable.html}}
: {{w|nftables}}
: https://wiki.nftables.org/
: https://lwn.net/Kernel/Index/#Networking-Packet_filtering
== Network device {{w|Network interface|interfaces}} ==
⚲ Interfaces
: <code>ip -brief link show</code>
: <code>ls -l /sys/class/net</code>
: {{The Linux Kernel/id|devm_register_netdev}} registers {{The Linux Kernel/id|net_device}}, net_device_ops
: {{The Linux Kernel/id|sk_buff}} socket buffer (skb)
:: {{The Linux Kernel/id|dev_queue_xmit}} queues socket buffers into transmit queue
: {{The Linux Kernel/include|linux/netdevice.h}}
: {{The Linux Kernel/include|linux/skbuff.h}}
👁 Example: {{The Linux Kernel/source|drivers/net/loopback.c}} - the most famous and simple interface '''lo'''
⚙️ Internals
: {{The Linux Kernel/source|net/core/dev.c}} – network device operations core
: function {{The Linux Kernel/id|loopback_xmit}} receives skb and passes it back with {{The Linux Kernel/id|netif_rx}}
📚 Further reading
: {{The Linux Kernel/man|8|ip-link}} – network device configuration
: {{The Linux Kernel/man|8|ip-stats}} – manage and show interface statistics
: {{The Linux Kernel/man|7|netdevice}} – low-level access to Linux network devices
: {{The Linux Kernel/man|7|packet}} – packet interface on device level
: [https://www.coverfire.com/articles/queueing-in-the-linux-network-stack/ Queueing in the Linux Network Stack]
💾 Historical
: [http://www.tldp.org/LDP/tlk/net/net.html LDP TLK Chapter 10 Networks]
== Network drivers==
:{{The Linux Kernel/include|linux/etherdevice.h}}
: {{The Linux Kernel/id|netif_rx}} - before NAPI
: {{The Linux Kernel/id|input_pkt_queue}}
: {{w|New_API|NAPI}}
: [https://wiki.linuxfoundation.org/networking/napi NAPI Driver design]
:: ⚲ API:
::: {{The Linux Kernel/id|netif_napi_add}} adds {{The Linux Kernel/id|napi_struct}}
::: {{The Linux Kernel/id|napi_schedule}} - called by an IRQ handler to schedule a poll
::: {{The Linux Kernel/id|netif_receive_skb}} - instead netif_rx, finally calls {{The Linux Kernel/id|ip_rcv}}
::: {{The Linux Kernel/id|napi_complete_done}} - called from custom napi->poll()
:: ⚙️ Internals:
::: {{The Linux Kernel/id|net_dev_init}}
:::: {{The Linux Kernel/id|net_rx_action}}
::::: {{The Linux Kernel/id|napi_poll}} calls custom napi->poll()
:: 👁 example
::: {{The Linux Kernel/id|e1000_intr}} calls {{The Linux Kernel/id|__napi_schedule}}
::: custom napi->poll() {{The Linux Kernel/id|e1000e_poll}} calls {{The Linux Kernel/id|napi_complete_done}}
: {{The Linux Kernel/id|ether_setup}} setups Ethernet network device
: 👁 An example of Ethernet driver: {{The Linux Kernel/id|e1000_probe}}
⚙️ Internals:
: {{The Linux Kernel/source|drivers/net}} – network device drivers
: {{The Linux Kernel/source|drivers/net/wireless}} – wireless drivers
: {{The Linux Kernel/source|drivers/net/ethernet}} – Ethernet drivers
📚 References:
: {{The Linux Kernel/man|8|ethtool}} – query or control network driver and hardware settings
: [[w:Data link layer|Data link layer]]: [[w:Ethernet|Ethernet]]
: [https://lwn.net/Articles/358910/ GRO - Generic Receive Offload]
: {{The Linux Kernel/doc|Segmentation Offloads|networking/segmentation-offloads.html}}
: https://wireless.wiki.kernel.org
<hr>
💾 ''Historical'':
: [http://www.xml.com/ldd/chapter/book/ch14.html LDD2:Network Drivers]
: [http://lwn.net/images/pdf/LDD3/ch17.pdf LDD3:Network Drivers]
: [http://www.tldp.org/HOWTO/KernelAnalysis-HOWTO-8.html Kernel Analysis: Networking, 2003]
: [https://web.archive.org/web/20111030030517/http://www.linuxfoundation.org/collaborate/workgroups/networking/networkoverview network_overview]
📖 Further reading about networking
: {{The Linux Kernel/doc|Networking interfaces|subsystem-apis.html#networking-interfaces}}
:: {{The Linux Kernel/doc|Networking|networking}}
: https://lwn.net/Kernel/Index/#Networking
: https://lartc.org/ – Linux Advanced Routing & Traffic Control
: {{The Linux Kernel/man|8|ip}} – show / manipulate routing, network devices, interfaces and tunnels
: {{The Linux Kernel/man|8|tc}} – show / manipulate traffic control settings
: [https://github.com/iovisor/bcc/blob/master/README.md#network-and-sockets-tools bcc/ebpf networking tools]
: [https://github.com/cilium/cilium eBPF-based Networking, Security, and Observability]
: [https://retis.readthedocs.io/ Retis – tracing packets in the Linux networking stack & friends]
{{BookCat}}
rqy4ngyapyyhgjzcyf2tes15xkzvhko
4640285
4640252
2026-06-14T09:29:51Z
Conan
3188
add net/ipv4, ipv6, tls, xdp, sched, unix, netlink source refs
4640285
wikitext
text/x-wiki
<noinclude>{{DISPLAYTITLE:Network functionality}}</noinclude>
{|style="width: 25%; float: right; text-align:center;border-spacing: 0; color:black; margin:auto;" cellpadding=5pc
! bgcolor="#dff" |networking
|-
| bgcolor="#bff" |[[#Sockets|sockets access]]
|-
| bgcolor="#adf" |[[#Address_families|address families: inet, unix, ...]]
|-
| bgcolor="#9cd" |[[#Network_storage|network storage]]
|-
| bgcolor="#8bb" |[[#Protocols|protocols]]
|-
| bgcolor="#7a9" |[[#Network_device_interfaces|network interfaces]]
|-
| bgcolor="#798" |[[#Network_drivers|network drivers]]
|}
Linux kernel network functionality spans from sockets interface through protocols to network cards.
⚲ Shell interfaces:
: {{The Linux Kernel/man|8|netstat}} prints network connections, routing tables, interface statistics and other details
: {{The Linux Kernel/man|8|ip}} shows and configures routing, network devices, interfaces and tunnels
: {{The Linux Kernel/man|8|ss}} - socket statistics utility
== Sockets ==
⚲ API:
[https://man7.org/linux/man-pages/man0/sys_socket.h.0p.html sys/socket.h – main user mode sockets header]
Basic common and client side interface:
: {{The Linux Kernel/man|2|socket}} ↪ {{The Linux Kernel/id|__sys_socket}} creates an endpoint for communication
: struct {{The Linux Kernel/id|sockaddr}} - abstract socket address
: {{The Linux Kernel/man|2|connect}} ↪ {{The Linux Kernel/id|__sys_connect}};
: {{The Linux Kernel/man|2|shutdown}} shuts down part of a full-duplex connection
: {{The Linux Kernel/man|2|send}} ↪ {{The Linux Kernel/id|__sys_sendto}} sends a message on a socket
: {{The Linux Kernel/man|2|recv}} ↪ {{The Linux Kernel/id|__sys_recvfrom}}, {{The Linux Kernel/id|__sys_recvmsg}} receives a message from a socket
Additional server side interface:
: {{The Linux Kernel/man|2|bind}} ↪ {{The Linux Kernel/id|__sys_bind}} - binds a sockaddr to a socket
: {{The Linux Kernel/man|2|listen}} ↪ {{The Linux Kernel/id|__sys_listen}} - listens for connections on a socket
: {{The Linux Kernel/man|2|accept}} ↪ {{The Linux Kernel/id|__sys_accept4}} - accepts a connection on a socket
⚙️ Internals
: struct '''{{The Linux Kernel/id|socket}}''' @ {{The Linux Kernel/include|linux/net.h}} contains
:: struct {{The Linux Kernel/id|proto_ops}} - abstract protocols interface
:: struct {{The Linux Kernel/id|sock}} - network layer representation of sockets {{The Linux Kernel/include|net/sock.h}}
: '''{{The Linux Kernel/id|__sys_socket}}''' ↯ call hierarchy:
:: {{The Linux Kernel/id|sock_create}}
::: {{The Linux Kernel/id|__sock_create}}
:::: {{The Linux Kernel/id|security_socket_create}}
:::: {{The Linux Kernel/id|sock_alloc}}
::::: {{The Linux Kernel/id|net_proto_family}}->create.
:::::: for example {{The Linux Kernel/id|inet_create}}. See [[#Address_families|Address families]] for other options.
: '''{{The Linux Kernel/id|__sys_connect}}''' ↯ call hierarchy:
:: {{The Linux Kernel/id|move_addr_to_kernel}}
::: {{The Linux Kernel/id|audit_sockaddr}}
::: {{The Linux Kernel/id|__sys_connect_file}}
:::: {{The Linux Kernel/id|sock_from_file}}
:::: {{The Linux Kernel/id|security_socket_connect}}
:::: {{The Linux Kernel/id|proto_ops}}->connect.
::::: for example {{The Linux Kernel/id|inet_stream_connect}}. See [[#Protocols|Protocols]] for other options.
: {{The Linux Kernel/source|net/socket.c}} – socket system calls implementation
📚 References
: {{The Linux Kernel/man|7|socket}}
: {{The Linux Kernel/include|linux/socket.h}}
: {{w|Berkeley sockets}}
== Network storage ==
🚀 advanced topic
🔧 TODO
⚲ API:
: {{The Linux Kernel/man|2|sendfile}} ↪ {{The Linux Kernel/id|do_sendfile}}.
See also [[../Storage#Zero-copy|Zero-copy between file descriptors]]
:{{w|Application layer|Application layer}}: {{w|Network File System}}
: {{The Linux Kernel/doc|NFS|filesystems/nfs}}
:: {{The Linux Kernel/id|init_nfs_fs}}, {{The Linux Kernel/id|nfs4_fs_type}}, {{The Linux Kernel/id|nfs_fs_type}},
:: {{The Linux Kernel/id|init_nfsd}}, {{The Linux Kernel/id|nfsd_fs_type}}
: {{The Linux Kernel/doc|CIFS|admin-guide/cifs}}
:: {{The Linux Kernel/id|init_cifs}}
:: {{The Linux Kernel/id|cifs_fs_type}}, {{The Linux Kernel/id|smb3_fs_type}} {{The Linux Kernel/id|cifs_smb3_do_mount}}
: {{The Linux Kernel/doc|target and iSCSI Interfaces Guide|driver-api/target.html}}
📚 Further reading
: https://deepwiki.com/torvalds/linux/4.3-network-filesystems-(cifssmb)
== Transport and Network ==
=== Names ===
⚲ API: {{The Linux Kernel/man|2|uname}}, {{The Linux Kernel/man|2|sethostname}}, {{The Linux Kernel/man|2|gethostname}}, {{The Linux Kernel/man|2|setdomainname}} {{The Linux Kernel/man|2|getdomainname}}
: ↪ {{The Linux Kernel/id|utsname}}
⚙️ Details
: {{The Linux Kernel/id|utsname}} returns writable pointer to {{The Linux Kernel/id|new_utsname}} from {{The Linux Kernel/id|uts_namespace}} from {{The Linux Kernel/id|nsproxy}} from {{The Linux Kernel/id|current}} {{The Linux Kernel/id|task_struct}}.
: {{The Linux Kernel/id|CLONE_NEWUTS}}, {{The Linux Kernel/id|setns}}
: {{The Linux Kernel/source|kernel/utsname.c}} – UTS namespace management
📚 References:
: {{The Linux Kernel/man|7|namespaces}}
: {{The Linux Kernel/man|7|network_namespaces}}
: {{The Linux Kernel/man|7|uts_namespaces}}
=== Address families ===
⚲ API
: {{The Linux Kernel/man|2|getsockname}}
: {{The Linux Kernel/man|2|getpeername}}
: Address Family (AF) <big>domain</big> defines address format and address length <big>socklen_t</big>.
: {{The Linux Kernel/man|3|inet_ntop}}, {{The Linux Kernel/man|3|inet_pton}} (derive socklen_t from AF)
Common AF: {{The Linux Kernel/id|AF_UNIX}}, {{The Linux Kernel/id|AF_INET}}, {{The Linux Kernel/id|AF_NETLINK}}.
''PF - Protocol Family index ({{The Linux Kernel/id|PF_MAX}}) actually is the same as Address Family index (AF).''
⚙️ Internals of some AF
: {{The Linux Kernel/man|7|unix}} ↪ {{The Linux Kernel/id|unix_family_ops}} - sockets for local IPC, {{The Linux Kernel/source|net/unix}}
:: {{The Linux Kernel/id|unix_create}}
: {{The Linux Kernel/man|7|ip}} ↪ {{The Linux Kernel/id|inet_family_ops}} - IPv4
:: {{The Linux Kernel/id|inet_create}}
: {{The Linux Kernel/man|7|netlink}} ↪ {{The Linux Kernel/id|netlink_family_ops}} - communication between kernel and user space, {{The Linux Kernel/source|net/netlink}}
:: {{The Linux Kernel/id|netlink_create}}
: {{The Linux Kernel/man|7|vsock}} ↪ {{The Linux Kernel/id|vsock_family_ops}} - communication between VM and hypervisor
:: {{The Linux Kernel/id|vsock_create}}
: {{The Linux Kernel/man|7|packet}} ↪ {{The Linux Kernel/id|packet_family_ops}} - device level interface
:: {{The Linux Kernel/id|packet_create}}
: {{The Linux Kernel/id|bt_sock_family_ops}} - Bluetooth
:: {{The Linux Kernel/id|bt_sock_create}}
There are more than 40 AFs in total (see {{The Linux Kernel/id|AF_MAX}})
⚙️ Internals
: {{The Linux Kernel/id|sock_register}} - registers {{The Linux Kernel/id|net_proto_family}}. See references to this identifiers to find more than 30 protocol families.
: {{The Linux Kernel/id|__sock_create}}
📚 Further reading
: {{The Linux Kernel/man|8|ip-address}} – protocol address management
: {{w|Internet layer}}
: {{The Linux Kernel/man|7|address_families}}
=== Protocols ===
Each Protocol Family (PF, ''same index as Address Family AF'') consists of several protocol implementations.
Directory /proc/net contains various files and subdirectories containing information about the networking layer.
File /proc/net/protocols lists available and used protocols.
In each PF protocols are classified to different types {{The Linux Kernel/id|sock_type}}, for example stream, datagram and raw socket.
TCP is type of stream, UDP is type of datagram, raw and ping are type of raw.
: {{The Linux Kernel/id|proto_register}} - registers struct {{The Linux Kernel/id|proto}} - protocol implementations:
: In {{The Linux Kernel/id|inet_init}} initcall, {{The Linux Kernel/id|inetsw_array}}, {{The Linux Kernel/id|proto_ops}} and {{The Linux Kernel/id|proto}} :
:: {{The Linux Kernel/id|inet_stream_ops}} & {{The Linux Kernel/id|tcp_prot}} {{The Linux Kernel/id|tcp_sendmsg}} ...
:: {{The Linux Kernel/id|inet_dgram_ops}} & {{The Linux Kernel/id|udp_prot}} {{The Linux Kernel/id|udp_sendmsg}} ...
:: {{The Linux Kernel/id|inet_sockraw_ops}}
::: {{The Linux Kernel/id|raw_prot}} {{The Linux Kernel/id|raw_sendmsg}} ...
::: {{The Linux Kernel/id|ping_prot}} {{The Linux Kernel/id|ping_v4_sendmsg}} ...
: In {{The Linux Kernel/id|af_unix_init}} initcall:
:: {{The Linux Kernel/id|unix_family_ops}}
::: {{The Linux Kernel/id|unix_create}}
:::: {{The Linux Kernel/id|unix_stream_ops}} {{The Linux Kernel/id|unix_stream_sendmsg}} ...
:::: {{The Linux Kernel/id|unix_dgram_ops}} {{The Linux Kernel/id|unix_dgram_sendmsg}} ...
:::: {{The Linux Kernel/id|unix_seqpacket_ops}} {{The Linux Kernel/id|unix_seqpacket_sendmsg}} ...
⚙️ Internals:
: {{The Linux Kernel/source|net/ipv4}} – IPv4 protocol stack
: {{The Linux Kernel/source|net/ipv6}} – IPv6 protocol stack
: {{The Linux Kernel/source|net/tls}} – kernel TLS (since 4.13)
: {{The Linux Kernel/source|net/xdp}} – {{w|Express Data Path}} fast packet processing (since 4.8)
: {{The Linux Kernel/source|net/sched}} – traffic control and QoS
📚 References:
: {{The Linux Kernel/man|7|tcp}}
: {{The Linux Kernel/man|7|udp}}
: {{The Linux Kernel/man|7|raw}}
: {{The Linux Kernel/man|8|tc}} – traffic control
: {{w|Transport layer}} and {{w|Transmission_Control_Protocol|TCP}}
=== RDMA ===
🚀 advanced topic
🗝️ Acronyms:
: IB — {{w|InfiniBand}}, an interconnect standard, competes with {{w|Ethernet}}, {{w|Fibre Channel}}
: IPoIB — IP network emulation layer over InfiniBand networks
: SRP — {{w|SCSI RDMA Protocol}}
: ULP — Upper-layer protocols
: iSER — {{w|iSCSI Extensions for RDMA}}
⚲ Interfaces:
: https://github.com/linux-rdma/rdma-core
: {{The Linux Kernel/man|8|rdma}}
: {{The Linux Kernel/man|7|rdma_cm}} — RDMA communication manager
: {{The Linux Kernel/source|include/uapi/rdma}} – user-space RDMA API definitions
: {{The Linux Kernel/source|include/rdma}} – kernel RDMA API definitions
⚙️ Internals:
: {{The Linux Kernel/source|drivers/infiniband}} – InfiniBand core and drivers
:: {{The Linux Kernel/source|drivers/infiniband/ulp}} — Upper-layer protocols
:: {{The Linux Kernel/source|drivers/infiniband/sw}} — software drivers
:: {{The Linux Kernel/source|drivers/infiniband/hw}} — hardware device drivers
📚 References:
: {{The Linux Kernel/doc|InfiniBand|infiniband}}
: {{The Linux Kernel/doc|InfiniBand and RDMA Interfaces|driver-api/infiniband.html}}
== {{w|Netfilter}} ==
🚀 advanced topic
⚲ Interface:
: {{The Linux Kernel/man|8|ebtables-nft}}
: {{The Linux Kernel/man|8|arptables-nft}}
: {{The Linux Kernel/man|8|xtables-nft}}
: {{The Linux Kernel/man|8|iptables}}
: {{The Linux Kernel/man|8|ip6tables}}
: {{The Linux Kernel/man|8|ebtables}}
: {{The Linux Kernel/man|8|arptables}}
: ipset
: {{The Linux Kernel/include|linux/netfilter.h}}
: {{The Linux Kernel/include|uapi/linux/netfilter}}
: {{The Linux Kernel/include|net/netfilter}}
: {{The Linux Kernel/include|net/netns/netfilter.h}}
: {{The Linux Kernel/include|linux/netfilter}}
⚙️ Internals:
: {{The Linux Kernel/source|net/netfilter}} – packet filtering framework
📚 References:
: {{The Linux Kernel/doc|Netfilter Sysfs variables|networking/netfilter-sysctl.html}}
: {{The Linux Kernel/doc|Netfilter Conntrack Sysfs variables|networking/nf_conntrack-sysctl.html}}
: {{The Linux Kernel/doc|Netfilter’s flowtable infrastructure|networking/nf_flowtable.html}}
: {{w|nftables}}
: https://wiki.nftables.org/
: https://lwn.net/Kernel/Index/#Networking-Packet_filtering
== Network device {{w|Network interface|interfaces}} ==
⚲ Interfaces
: <code>ip -brief link show</code>
: <code>ls -l /sys/class/net</code>
: {{The Linux Kernel/id|devm_register_netdev}} registers {{The Linux Kernel/id|net_device}}, net_device_ops
: {{The Linux Kernel/id|sk_buff}} socket buffer (skb)
:: {{The Linux Kernel/id|dev_queue_xmit}} queues socket buffers into transmit queue
: {{The Linux Kernel/include|linux/netdevice.h}}
: {{The Linux Kernel/include|linux/skbuff.h}}
👁 Example: {{The Linux Kernel/source|drivers/net/loopback.c}} - the most famous and simple interface '''lo'''
⚙️ Internals
: {{The Linux Kernel/source|net/core/dev.c}} – network device operations core
: function {{The Linux Kernel/id|loopback_xmit}} receives skb and passes it back with {{The Linux Kernel/id|netif_rx}}
📚 Further reading
: {{The Linux Kernel/man|8|ip-link}} – network device configuration
: {{The Linux Kernel/man|8|ip-stats}} – manage and show interface statistics
: {{The Linux Kernel/man|7|netdevice}} – low-level access to Linux network devices
: {{The Linux Kernel/man|7|packet}} – packet interface on device level
: [https://www.coverfire.com/articles/queueing-in-the-linux-network-stack/ Queueing in the Linux Network Stack]
💾 Historical
: [http://www.tldp.org/LDP/tlk/net/net.html LDP TLK Chapter 10 Networks]
== Network drivers==
:{{The Linux Kernel/include|linux/etherdevice.h}}
: {{The Linux Kernel/id|netif_rx}} - before NAPI
: {{The Linux Kernel/id|input_pkt_queue}}
: {{w|New_API|NAPI}}
: [https://wiki.linuxfoundation.org/networking/napi NAPI Driver design]
:: ⚲ API:
::: {{The Linux Kernel/id|netif_napi_add}} adds {{The Linux Kernel/id|napi_struct}}
::: {{The Linux Kernel/id|napi_schedule}} - called by an IRQ handler to schedule a poll
::: {{The Linux Kernel/id|netif_receive_skb}} - instead netif_rx, finally calls {{The Linux Kernel/id|ip_rcv}}
::: {{The Linux Kernel/id|napi_complete_done}} - called from custom napi->poll()
:: ⚙️ Internals:
::: {{The Linux Kernel/id|net_dev_init}}
:::: {{The Linux Kernel/id|net_rx_action}}
::::: {{The Linux Kernel/id|napi_poll}} calls custom napi->poll()
:: 👁 example
::: {{The Linux Kernel/id|e1000_intr}} calls {{The Linux Kernel/id|__napi_schedule}}
::: custom napi->poll() {{The Linux Kernel/id|e1000e_poll}} calls {{The Linux Kernel/id|napi_complete_done}}
: {{The Linux Kernel/id|ether_setup}} setups Ethernet network device
: 👁 An example of Ethernet driver: {{The Linux Kernel/id|e1000_probe}}
⚙️ Internals:
: {{The Linux Kernel/source|drivers/net}} – network device drivers
: {{The Linux Kernel/source|drivers/net/wireless}} – wireless drivers
: {{The Linux Kernel/source|drivers/net/ethernet}} – Ethernet drivers
📚 References:
: {{The Linux Kernel/man|8|ethtool}} – query or control network driver and hardware settings
: [[w:Data link layer|Data link layer]]: [[w:Ethernet|Ethernet]]
: [https://lwn.net/Articles/358910/ GRO - Generic Receive Offload]
: {{The Linux Kernel/doc|Segmentation Offloads|networking/segmentation-offloads.html}}
: https://wireless.wiki.kernel.org
<hr>
💾 ''Historical'':
: [http://www.xml.com/ldd/chapter/book/ch14.html LDD2:Network Drivers]
: [http://lwn.net/images/pdf/LDD3/ch17.pdf LDD3:Network Drivers]
: [http://www.tldp.org/HOWTO/KernelAnalysis-HOWTO-8.html Kernel Analysis: Networking, 2003]
: [https://web.archive.org/web/20111030030517/http://www.linuxfoundation.org/collaborate/workgroups/networking/networkoverview network_overview]
📖 Further reading about networking
: {{The Linux Kernel/doc|Networking interfaces|subsystem-apis.html#networking-interfaces}}
:: {{The Linux Kernel/doc|Networking|networking}}
: https://lwn.net/Kernel/Index/#Networking
: https://lartc.org/ – Linux Advanced Routing & Traffic Control
: {{The Linux Kernel/man|8|ip}} – show / manipulate routing, network devices, interfaces and tunnels
: {{The Linux Kernel/man|8|tc}} – show / manipulate traffic control settings
: [https://github.com/iovisor/bcc/blob/master/README.md#network-and-sockets-tools bcc/ebpf networking tools]
: [https://github.com/cilium/cilium eBPF-based Networking, Security, and Observability]
: [https://retis.readthedocs.io/ Retis – tracing packets in the Linux networking stack & friends]
{{BookCat}}
gkx6mb9wc9iti5gq592r34z9aqd1jya
Talk:Main Page/Wikijunior
1
227631
4640182
3822258
2026-06-13T16:09:33Z
ShakespeareFan00
46022
4640182
wikitext
text/x-wiki
== Category sort key ==
{{tl|editprotected}}
The [[:Category:Main page]] sort key for this page should be "Wikijunior". (It's now "Recipe".) --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 18:59, 25 May 2010 (UTC)
:[[Image:Yes_check.svg|15px| ]] '''Done'''. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 19:05, 25 May 2010 (UTC)
== Always the same book? ==
Maybe it's a caching problem with my browser but every time I load the template or the main page it just shows the Wikijunior:Biology book. Never anything else. Anyone else have this issue?--[[User:Xania|ЗAНИA]] [[Image:Flag_of_Estonia.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 00:42, 16 May 2014 (UTC)
: Increasingly aggressive server-side caching has been reducing the ability to use wikitext to dynamically change anything with each page load. action=purge can be used, but javascript to dynamically change things appears to be the recommended solution. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 01:05, 16 May 2014 (UTC)
== Missing end tag ==
{{edit protected|answered=yes}}
Line:5
Code: <syntaxhighlight lang="html"> </noinclude><div style="text-align:center; margin-bottom:10px;">'''[[Wikijunior|More featured children's books »]]</div></syntaxhighlight>
Repaired:<syntaxhighlight lang="html"> </noinclude><div style="text-align:center; margin-bottom:10px;">'''[[Wikijunior|More featured children's books »]]''</div></syntaxhighlight>
[[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|discuss]] • [[Special:Contributions/ShakespeareFan00|contribs]]) 18:46, 29 March 2021 (UTC)
: {{done}} [[User:Leaderboard|Leaderboard]] ([[User talk:Leaderboard|discuss]] • [[Special:Contributions/Leaderboard|contribs]]) 19:04, 29 March 2021 (UTC)
sn13kctfahp4jvsc744zw9bolsfwh0r
Template talk:Nld
11
233825
4640072
4415597
2026-06-13T12:40:42Z
ShakespeareFan00
46022
4640072
wikitext
text/x-wiki
{{permprot}}
== Substitution ==
{{editprotected|answered=yes}}
Please do a 'similar' edit like I did [http://en.wikibooks.org/w/index.php?title=Template:Please_stop&curid=54547&diff=2364195&oldid=2054538 on this template]: The documentation needs an "hint" that this template needs to be substituted! Regards, <small style="font: 12px Courier New;display:inline;border:#009 1px dashed;padding:1px 6px 2px 7px;white-space:nowrap">[[User talk:Mabdul|<span style="color:#000">mabdul</span>]]</small> 15:26, 15 June 2012 (UTC)
:I've changed the protection to semi-protection - there was no need for it to be fully protected. So you can make the edit yourself please! Thanks. [[User:QuiteUnusual|<span style="color:"#E66C2C">'''QU'''</span>]] <sup>[[User talk:QuiteUnusual|<span style="color:#306754">TalkQu</span>]]</sup> 15:48, 15 June 2012 (UTC)
padpedw52ycssz9g914lfk7vhlzgvd1
Template talk:Tlx
11
233827
4640063
4415605
2026-06-13T12:31:37Z
ShakespeareFan00
46022
4640063
wikitext
text/x-wiki
{{permprot}}
== Tlx failed to subst properly ==
Tlx and I are old friends, and it just bombed [//en.wikibooks.org/w/index.php?title=User_talk%3AÞorsHammer&diff=2533432&oldid=2533431 badly here] in that welcome message when I subst'd it. As can be seen it expanded with categories, but totally lost the template example text. Regards, // [[User:Fabartus|Fra]][[User talk:Fabartus|<span style="color:green">nkB</span>]] 02:11, 7 June 2013 (UTC)
: Should be fixed now [[User:Fabartus|FrankB]]. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 04:30, 12 May 2014 (UTC)
:: LOL, glad to see someone else apparently has a long to-do list! // [[User:Fabartus|Fra]][[User talk:Fabartus|<span style="color:green">nkB</span>]] 04:33, 12 May 2014 (UTC)
7k0oj38ufor57m9u8relpppb10mqi77
Template talk:Free screenshot
11
233841
4640078
4415591
2026-06-13T12:44:30Z
ShakespeareFan00
46022
4640078
wikitext
text/x-wiki
{{permprot|doc=no}}
== edit protected ==
Please add a maintenance category for tracking images with a missing {{{template}}} parameter.
This should be easily achieved through a
<nowiki> {{#ifeq:{{{template|}}}|[[Category:Wikibooks free screenshots with a missing license]]}}</nowiki>
in the includeonly parameter. Feel free to correct the category name. Although this template isn't transcluded that often, and I will likely go through all images, this can be a help. Regards, <small style="font: 12px Courier New;display:inline;border:#009 1px dashed;padding:1px 6px 2px 7px;white-space:nowrap">[[User talk:Mabdul|<span style="color:#000">mabdul</span>]]</small> 17:51, 28 May 2012 (UTC)
:This has been done by MediaWiki: [[:Category:Files with no machine-readable license]]. [[User:JackPotte|JackPotte]] ([[User talk:JackPotte|discuss]] • [[Special:Contributions/JackPotte|contribs]]) 23:25, 12 June 2017 (UTC)
a9yv7v9ii3rc7oe7tcmt6ji5ugf9y2l
Template talk:CheckUser block
11
233895
4640079
4592859
2026-06-13T12:45:00Z
ShakespeareFan00
46022
4640079
wikitext
text/x-wiki
{{permprot}}
== edit request June 2012 ==
{{editprotected|answered=yes}}
This template should be included to [[:Category:Checkuser templates]]. Regards, <small style="font: 12px Courier New;display:inline;border:#009 1px dashed;padding:1px 6px 2px 7px;white-space:nowrap">[[User talk:Mabdul|<span style="color:#000">mabdul</span>]]</small> 09:26, 13 June 2012 (UTC)
:You're aware that the documentation page is freely editable? But [[:Category:Checkuser templates]] was intended for templates that add an image next to a comment; keep in mind that this is in the category for user block templates. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 18:36, 17 June 2012 (UTC)
== Edit request 13 July 2025 ==
{{edit protected|answered=yes}}
Original: however a CheckUser will review the block.
Proposed: however a CheckUser will review the unblock request and original block.
Adding phrasing about the unblock request since the area in question is talking about an unblock request, not the block itself. [[User:EggRoll97|EggRoll97]] ([[User talk:EggRoll97|discuss]] • [[Special:Contributions/EggRoll97|contribs]]) 21:46, 13 July 2025 (UTC)
:{{done}}. <span style="font-family:Verdana">[[User:Codename Noreste|<span style="color:#0024FF">'''''Codename Noreste'''''</span>]] ([[User talk:Codename Noreste|<span style="color:#A1000E">talk</span>]])</span> 15:06, 4 September 2025 (UTC)
13lewlairpjb0o3opzx7wt9q64vmgvq
Wikibooks:Reading room/Archives/2007/March
4
236124
4640051
4639423
2026-06-13T12:18:58Z
ShakespeareFan00
46022
4640051
wikitext
text/x-wiki
{{talk archive}}
== Habermas Commentary ==
Beginning with the link to "Habermas Commentary" on http://en.wikibooks.org/wiki/Communication_Theory, I have taken a few fledgling steps toward creating a wikibook. If someone has time to comment, repair, or otherwise render constructive advice or assistance, I would appreciate it. <small>—The preceding unsigned comment was added by [[User:Raywood|Raywood]] ([[User talk:Raywood|talk]] • [[Special:Contributions/Raywood|contribs]]) 04:29, 1 Mar 2007 (UTC{{{3|}}})</small><!-- Template:Unsigned2 -->
: The text looks fascinating. One suggestion: please read our [[Wikibooks:Naming policy]]. I noticed that the subpages you created are not in a "subpage" system. That's no big problem; just click "move" at the top of each subpage (being the "contents," each "volume," "section," etc. page) and move it into a name that is more appropriate. If you have questions, feel free to come back. BTW, I really appreciate your notice ''Note: do not post excerpts directly from Habermas's writings. They will continue to be protected by copyright for some years to come. Instead, just refer to specific pages and indicate the text on which you are offering commentary.'' I have dealt with many copyright issues on Wikibooks, so I heartily approve! :) Finally, nice to see a new contributor! --[[User:Iamunknown|Iamunknown]] 16:44, 1 March 2007 (UTC)
Thanks for your kind words, and also for your patience. Sorry for the first of my many anticipated errors (saving faux pas and gaffes, which begin with F and G, for later). I see the notice on http://en.wikibooks.org/wiki/Habermas_Commentary telling me that I use deprecated naming policy, but I don't know what that means. (There's no reference to "deprecate" on the [[Wikibooks:Naming policy]] page. But I assume it just means unapproved.) But I did find a link to the Harry Potter thing, whose deep hierarchical structure appears most suited for this project. I'm not sure how to delete pages. I've got duds at:
: http://en.wikibooks.org/wiki/Contents<br>
: http://en.wikibooks.org/w/index.php?title=Vol._2:_Lifeworld_and_System<br>
: http://en.wikibooks.org/wiki/V._The_Paradigm_Shift_in_Mead_and_Durkheim<br>
: http://en.wikibooks.org/wiki/3._Rational_Structure_of_the_Linguistification_of_the_Sacred<br>
: http://en.wikibooks.org/wiki/Linguistification_of_the_Sacred<br>
And now I see I've created new pages without putting "Habermas Commentary" in the file name. I don't know how to fix that. Also, my new page titles are terrible. "2/5/3." Whatever! But I've got to knock off for the night.
Thanks again.
: --[[User:raywood|raywood]]
No problemo. :) I didn't realize Wikibooks:Naming policy didn't have a mention of now-obsolete naming conventions. See [[Wikibooks:Naming conventions#Naming conventions for existing_books]] for examples of obsolete conventions. (It doesn't mention there that they are obsolete, but mentions at the top the whole page is obsolete ... and those conventions are obsolete nonetheless.)
For your "dud" pages (also called "orphan" pages), if you do not need them anymore, just tag them with <nowiki>{{db|Deletion requested by author}}</nowiki><!--NOTE: If you are looking at this, do not include the text <nowiki> or </nowiki>. Instead start with the left-most bracket { and end with the right-most bracket }.--> Also, if you create a page (often called a "[[WB:MODULE|module]]") and you want to rename it, just click "move" at the top of the webpage and type the new name you want to use.
So for [[TCA2/5]] and [[TCA2/5/3]], go those modules, at the top of the webpage click the tab that says "move," and change the name for the "To new title:" box from ''TCA/2/5'' to ''Habermas Commentary/TCA/2/5'' and change ''TCA/2/5/3'' to ''Habermas Commentary/TCA/2/5/3''<!--NOTE: If you are looking at this, do not include the apostrophe marks.-->
Finally, you can sign your posts with four tildes <nowiki>~~~~</nowiki><!--NOTE: Again, don't type <nowiki> or </nowiki>-->. Where you would normal type "--<nowiki>[[User:raywood|raywood]]", just type "--~~~~"</nowiki>
Hope this helps! Come back if you have any more questions. --[[User:Iamunknown|Iamunknown]] 06:37, 3 March 2007 (UTC)
* All very helpful. Thanks! Now a new question. How can I change the title of a page? For example, I might want the title of http://en.wikibooks.org/wiki/Habermas_Commentary/Books/TCA1 to be "Theory of Communicative Action, Vol. 1" -- [[User:Raywood|Raywood]]
::To change the title of the page, you click the "move" tab at the top of teh page, and type in the new page title in the box. For instance, in your example above, you would type "Theory of Communicative Action/Vol 1", and then click the button to move. If you have trouble with this, please let me know. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 00:05, 6 March 2007 (UTC)
* Two questions:
* (1) I want my pages to have short relatively URLs. Example: http://en.wikibooks.org/wiki/Habermas_Commentary/Books/TCA2. This is what the wiki automatically presents as the title for the page, on the first line of the visible page. It's a beautiful URL, but it's a lousy title. What I would actually like readers to see, on the first line of the visible page, would include the full name of the book under discussion. That is, instead of TCA, the visible title should say, "The Theory of Communicative Action, volume 1: Reason and the Rationalization of Society." My question is, how can I change the visible title to this longer version, without simultaneously making the URL much longer?
* (2) A reader tells me that the tables I have posted on http://en.wikibooks.org/wiki/Habermas_Commentary/Books/TCA1, or possibly TCA2, are not displaying properly. I can't figure out why not. I did have a problem seeing those tables initially, but now I'm not -- so I can't proofread them. Could someone talk a look and tell me what I'm doing wrong?
Thanks! [[User:Raywood|Raywood]]
: Regarding point (2), the first table on TCA1 had an errant extra cell in the first data row; removed. [[User:Webaware|Webaware]] <sup>[[User_talk:Webaware|talk]]</sup> 23:03, 6 March 2007 (UTC)
== Adding "Featured Book" or restarting Book of the Month ==
I know there was some opposition to the book of the month feature, but it seems like the rationale for removing it from the front page was mainly to encourage building some more infrastructure to Wikibooks instead of concentrating on just content development. I believe that we need to focus back onto that content development instead. The real question here, then, is what should we do to "feature" a particularly good Wikibook, and how can those be identified?
I will accept that the collaboration of the month tended to be "Book of the Month II", and that may be quite a bit more legitmately left alone.
I also understand that, realistically, there are only a few Wikibooks that are really of outstanding quality and really deserve some sort of feature status on the main page.
Here are some proposals to featuring good books:
*Simply restarting and resuming the "Book of the Month" such as we had going most of last year. One positive aspect of this is that it did help in identifying some relatively obscure Wikibooks that otherwise would have gone unnoticed. It was also very "democratic" in the sense that it was chosen by regular Wikibookians and not some exclusive committee.
*Putting on a rotating "Book of the day" that would repeat itself every week. This would eliminate the need to constantly struggle to get the main page fixed on the first day of the month (a serious problem with the BotM feature), but still allow a significant feature and have the content of the main page to be fresh when new users come and visit Wikibooks. The rotating templates could be updated or changed depending on new Wikibooks that have reached a certain level of quality, and it could be expanded potentially to a new book for every day in the month, if there are that many Wikibooks to display.
I would like to see some additional suggestions here, but focusing in on one book would be a good thing, from my perspective. --[[User:Robert Horning|Rob Horning]] 20:51, 2 March 2007 (UTC)
:The new proposed layout of the main page at [[Main Page/test]] has something similar, where good books will be featured using rotating templates. I've proposed the use of a new {{tl|goodbook}} template to display books in this format. People can use this template to highlight books right on the relevant bookshelf (as I have already done on [[B:ENGR|the engineering bookshelf]] with two books). Once the templates are filled out, it would be a trivial task for a wikibookian (or even a bot) to find them and add them to the rotation for the main page.
:The best method that I think we have for keeping track of good books is the [[Wikibooks:Featured books]] page, although that page could also stand to be cleaned up (perhaps with a set of rotating templates of it's own?). Unlike BOTM, books can be added to the featured books page at any time, not just at the beginning of a month.
:I've created a general set of guidelines at [[Wikibooks:Good books]] that we can use to help with the selection and judging process. At the moment that page is formatted like a "wikiproject", but it would be a simple enough matter to make it a proposal for a new guideline instead, if that's what the community wanted (otherwise people can just join the wikiproject!). --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 21:13, 2 March 2007 (UTC)
::One thing that might be useful here to also help out is to restart our book quality classification system. Wikipedia is using the "FA,A,B,C,Start,Stub" system with some very high standards to be considered either "A-class" or "FA-class" (with FA class meaning it has appeared on the front page of Wikipedia). Some of the early FA articles have even been downgraded afterward to drive the point home.
::Here on Wikibooks we have been using the per cent (%) complete icons that were used along a similar line of thought, but it has been some time since these have been seriously reviewed, particularly since the massive list of Wikibooks was taken off of the front page. Perhaps adding a template to the "main page" of each Wikibook and have that template automatically add these books to various categories? --[[User:Robert Horning|Rob Horning]] 22:20, 2 March 2007 (UTC)
:::[[User:Darklama]] has developed a series of templates that change over time. the system isn't perfect because of cache performance, but if we were talking about changes over months it would be less of a problem. We could have a template that would mark a book as being a "good book" (similar to the old {{tl|botm}} template), and have the status expire after 12 months so that old books would have to maintain the same standards as new books. FA, A, B and C designations might not work great here, because it is difficult to give a book a single measure of it's quality. We could, however, comeup with a label system similar to the Jung topology test: FROP would be '''f'''eatured, good p'''r'''ose, good f'''o'''rmatting, and a '''P'''DF version. This is a very slipshod example, of course, but the effect is well-illustrated. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 22:31, 2 March 2007 (UTC)
:::As an addendum, a series of small icons, similar (if not the same) as those used in the {{tl|infobox}} template could be used as a quick and graphical way to express the merits of a particular book. The same {{tl|stage}} graphics that we have been using could easily be incorporated into such a scheme. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 23:30, 2 March 2007 (UTC)
::::I think BOTM was abandoned because there wasn't enough community involvement, not because there were "more important things to do". I'd like to see it revived, but I'm not sure how we can get more people involved. Maybe that's what we should be thinking about? --[[User:SBJohnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color:green">talk</span>]]</sup> 23:35, 2 March 2007 (UTC)
:::::I disagree. BOTM was good when it was created, but wikibooks is large enough now to be beyond such a slow and rigid system. Books that are quality should not have to wait for the next month to be recognized as such, and books which are genuinely good should not be put head-to-head in a vote, but instead all accepted at once. If there are no good books to promote, we shouldnt be promoting any. Likewise, if there are 10 good books worth of recognition, we should list them all. I envision a system similar to RFA, where quality books can be nominated, voted on by the community, and then promoted without any arbitrary timeframes, and without saying "Well, X was promoted, so Y cannot be". If we put the effort into revamping [[Wikibooks:Featured books]] and stabilizing [[Wikibooks:Good books]] that we would waste on reviving BOTM (or creating a close analog), we would all be much better off. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 23:40, 2 March 2007 (UTC)
::::::What we are trying to avoid doing on the "Main Page", however, is to avoid getting it cluttered up again. This has been a recurring issue where as the project grows we end up having a very real manifestation of "instruction creep" that is obviously displayed on this page. If we do have a featured book, only one should be displayed at a time, even if we do put it into some sort of rotation system as I mentioned above. Still, I like your system you are proposing where a book would go before a featured book review (or a positive version of the VfD page) where interested Wikibookians could give a positive or negative review on that book. It still has the potential of sock puppetry becoming an issue, but I think that can be kept under control for the most part. There certainly are a small handful of books I would consider to be worthy of this sort of attention right now, and it will act as a platform to raise standards, where books which havn't been improved for some time could be "re-examined" to see if they fit the new higher standards. --[[User:Robert Horning|Rob Horning]] 00:06, 3 March 2007 (UTC)
: (reset) I dont think sockpuppetry would be that big an issue here as it was on occasion with BOTM. People had to get high numbers of votes on BOTM, or risk losing the title for an entire month or more. Here, there would be no restrictions on time, so there would be less urgency for a particular book community to "push through" a particular book. It would serve as an excellent counterpoint to VfD discussions. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 00:10, 3 March 2007 (UTC)
== Climatology online text ==
Is there wikipedia online text covering the science of climatology as well or instead of the politics of global warming?
[[User:69.145.72.216|69.145.72.216]] 19:57, 3 March 2007 (UTC)
==Back / Next==
Is there a specific method to adding Back/Next links for pages. I've seen it a couple different ways; Some pages have them at the top, some on the bottom, both for others, and some are completely different. Are they even required - I searched the guides but can't seem to find anything on the subject... --[[User:Jimmyatic|Jimmyatic]] 21:26, 3 March 2007 (UTC)
:There is no specific method of doing this, as you have already seen each book tends to do it a little differently. There are a list of usable templates at [[Wikibooks:Template_messages/Navigation]], or you can feel free to create your own templates for each book. If you are unsure about how to make your own template, or if you dont want to spend the effort, you can certainly use one of the generic ones. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 23:32, 4 March 2007 (UTC)
== [[Wikibooks:Assume good faith]] ==
I did not realize until recently that this was only a proposal, and not an actual guideline. I can see no reason why the current text of this proposal should not be made into an official guideline. We already follow this rule, so it should not be that big of a leap. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 00:06, 5 March 2007 (UTC)
:Seems like a good candidate for tightening up the prose to me. It seems too long and mentions a lot of things that are only peripherally related to assuming good faith. I would start by scratching all of the bullet points. --[[User:Xixtas|<span style="color:turquoise">xixtas</span>]] <sup>[[User_Talk:Xixtas|<span style="color:magenta">talk</span>]]</sup> 00:17, 5 March 2007 (UTC)
::And here I was thinking that formalizing this would not be that big of a deal! If people really want to make improvements to it, i won't say no. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 00:19, 5 March 2007 (UTC)
== [[WB:RFA]] Nominations ==
I have nominated 4 new users for adminship, [[User:Iamunknown]], [[User:Xixtas]], [[User:Jomegat]], and [[User:Webaware]]. I dont feel that we've had any nominations in a long time, and we need to ensure a constant inflow of new admins to fill the ranks as old admins get fed up and leave this place. I encourage these 4 nominees to either accept or decline their nominations (hopefully accept), and then I encourage all wikibookians to cast votes in these discussions. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 00:53, 5 March 2007 (UTC)
== Unnecessary input ==
In the book category of "Religion and Their Sources" ch.6 stuff is written that denotes someone's opinion "My dissaticfaction..." and I believe it shouldn't be there. No matter how anyone feels in their convictions or "dissatisfactions" about certian things the articles written in Wikibooks are there to inform the reader of what life is. Anyone can write the same things about other things on this web site. I have a "dissatisfaction" with a lot of Rock and Roll celebreties that are ruining the minds of our youth but that doesn't change the course of history and I can't stop the World Wide Web from printing stuff about them on their sites.
:'''[[wikibooks:Be bold|Be Bold]]'''. If you see something you don't like, change it! If you need help knowing how to edit articles let me know. Regards, [[User:Mattb112885|Mattb112885]] 03:45, 5 March 2007 (UTC)
== Linking contents listing to recipe ==
How do I link the contents to the new section & recipe I just entered?
Vis; Cookbook, contents; Figgie obbin. (new section) cakes (new recipe) Figgie obbin recipe.
I think I'm missing something obvious
--[[User:Archolman|Archolman]] 03:00, 6 March 2007 (UTC)
:G'day, I've moved the page into the Cookbook: namespace, under the name of the recipe, so you will now find it as [[Cookbook:Figgie 'obbin]]. I also tagged it as a recipe with {{tl|recipe}}, and put it into a couple of recipe categories so that people will find it. If you go back to it now and click on the "edit this page" link, you'll see how I've done all that.
:Incidentally, you'll often get the attention of another Cookbook editor by asking on the [[Cookbook talk:Table of Contents|Cookbook talk page]]; just click on "Cookbook" in the navigation links on the left, and go to "discussion" at the top of the Cookbook front page. cheers, [[User:Webaware|Webaware]] <sup>[[User_talk:Webaware|talk]]</sup> 12:37, 6 March 2007 (UTC)
== [[Wikibooks:Featured books/Nominations]] ==
I'm seeking community acceptance of the policies that I created on this page. I think I captured the essence of what was said previously about trying to get a series of featured books that could be voted upon by the rank and file of Wikibookians, but get rid of some of the problems that the "Book of the Month" feature created.
I am not saying that these procedures are graven in stone at the moment, and since this is a whole new concept perhaps other ways of dealing with this can be created. Still, I think this is the next step for putting some sort of featured content back onto the main page, and help to keep this from becoming some cabalistic editorial board.
In the next couple of days, I would like to put some of the first of these books onto the main page, unless there is a serious objection. I will be seeding this list with mainly books that have achieved the "Book of the Month" status previou. sly unless there are already several ready to go on this nomination page. Books that have already been added to other "featured books" lists would also be eligible for rapid acceptance to those books which have ths featured book status.
For now, all I'm suggesting here is that a Wikibook is either "Featured" or "Not Featured", although we can come up with more "grades" to classify Wikibooks in the future including some of the current systems. --[[User:Robert Horning|Rob Horning]] 22:16, 6 March 2007 (UTC)
:BTW, I've also created [[:Template:Featured Books]] that would be used to help with the rotation of Wikibooks. At the moment, I'm using the current day of the month to determine which book will be featured, and an addtional template, [[:Template:FEATURENUM]] which is being used to count (manually) the number of featured books and can be treated like a [[meta:Help:Variable|variable]]. I would appreciate helping with some of the other formatting of this template to match a little closer what the theme is on the [[Main Page]], but it is a start.
:I chose this method so we could grow the number of featured books and not have to worry about running out of days of the week, or having to have a specific number of books. Ideally, I would like to see perhaps a [[w:Julian Date|Julian Date]] to be used, but that is going to require a Bugzilla request as that number is not currently calculated by MediaWiki. I don't think anybody has even thought of the idea in the past to use templates in this way. --[[User:Robert Horning|Rob Horning]] 23:54, 6 March 2007 (UTC)
::The nominations page and the template are nice, and I think they will work well. A good starting point for us will be to do quick reviews of the books already listed at [[Wikibooks:Featured books]]. There is no sense in nominating books that are already on the list, but at the same time we can prune books off that don't meet the criteria any longer. I agree with the binary designation, I dont think there are many good ways to "grade" books beyond that.
::As an aside, the [[Wikibooks:Editorial board]] that I proposed wouldn't really have dealt with this kind of issue, instead focusing on publishing and distributing books (so the term "publishing board" might have been a better name). --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 00:23, 7 March 2007 (UTC)
:::BTW, I really like the idea of a group of Wikibooks users that are perhaps a little more proficient at doing content editing as opposed to content writing. That is two very different skills, and a good book editor is something that can make or break a book perhaps even more than the author in the first place... and the editor is usually unmentioned as well in most cases. I was more trying to discourage something like an editorial board found in a newspaper office that has control over content regarding what can or can't be seen. That idea, the strong central control board, doesn't belong on a Wiki such as this which openly encourages people to join in and contribute, where the distinctions between one user and another ought to be minimal. --[[User:Robert Horning|Rob Horning]] 01:08, 7 March 2007 (UTC)
::::Okay, thank you for the clarification. I had tried to make the [[Wikibooks:Good books]] a "wikiproject" in an attempt to drive up interest. Needless to say, that didn't work. If people would vote without making any other committments, as a wikiproject would have required, that i think will get the most people involved. Of course, we run the risk that this is something that maybe this is something nobody cares about. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 02:05, 7 March 2007 (UTC)
== Your site ==
Love your site! It's very resourceful. Thank you for making it available. <small>—The preceding unsigned comment was added by [[User:209.130.203.190|209.130.203.190]] ([[User talk:209.130.203.190|talk]] • [[Special:Contributions/209.130.203.190|contribs]]) 13:49, 8 Mar 2007 (UTC{{{3|}}})</small><!-- Template:Unsigned2 -->
: Glad you like it, feel free to edit it as you see fit! [[User:Mattb112885|Mattb112885]] <small>([[User talk:Mattb112885|talk]]) </small> 14:20, 8 March 2007 (UTC)
== Advantages and Disadvantages of Wikibooks vs. Publishing ==
I'm writing another book. This time it's on the Internet instead of a paperback. http://en.wikibooks.org/wiki/Wireless_Mesh_Networks
I've debated the merits of writing a book collaboratively online versus writing it for a publisher with a co-author for a while. However, there are a couple of factors that convinced me to try writing a wikibook:
1) Time to market - by the time a technical book from a publisher hits the shelf, it's almost obsolete.
With a wikibook, people can start reading material as soon as it hits the Internet.
2) There are no easy way to correct books in print, or update them.
With a wikibook, it can be fixed quickly and acurately.
3) With a really popular technical book, you might only sell about 10,000 - 50,000 copies. The
money is not all that big. The royalties are only a couple of bucks out of the big $50 shelf price. While the royalties are a little incentive, I believe that getting something out in circulation is much more important. Dissemination of knowledge is more important that cash sometimes.
4) With a publisher, your copyrights are signed away. You don't have the right over your own material once it's published. You can't take your own work and modify it to fit into another book.
With wikibooks, your rights are preserved with copyleft schemes such as GNU Free Documentation Licence and Creative Commons. There is also something to be said about the Public Domain. But the best part, you have the right to stand on someone else's shoulders - to build on someone else's work.
5) A published book is on paper. If you are teaching a class, all students will all have an identical copy. Actually not. I've sat through many classes where half of the class had a used older edition and handouts had to made for the corrections. Also, the bookstore ran out of the books, so if you did not buy early, it was not available and had to be special ordered from the bookstore.
With a wikibook, if it's needed on paper for teaching a class or something, it can be published by www.lulu.com, kinkos, staples or a dozen other places. Maybe wikibooks can offer such a service to print books to help defray the cost of running the online library.
The only misgiving I have is that wikibooks may not be an accepted way of publishing anything for the sake of a resume. Essentially, a URL may not be as good of a calling card in some people's mind as an ISBN number. Once the work is published in a hard medium - paper, CD... it gets an ISBN anyway. Maybe that's one of the incentives.
Am I missing something?
[[User:kgrr|<span style="background: lightblue"> kgrr</span >]] [[User talk:kgrr|<sup><b>talk</b></sup>]]15:30, 8 March 2007 (UTC)
:I think you hit it square on here. And as you mentioned, writing content here on Wikibooks does not stop you from republishing this content elsewhere. And if you only stick to contributions you make, or with agreement of others that work with you, you can even republish this under licenses other than the GFDL, including things as nearly opposite like the Microsoft EULA. As you mention here, this is a freedom that normally doesn't exist in the traditional book publishing world.
:On the flip side, I would warn people that try to publish here first that a traditional publisher may treat some of what we do here with either bewilderment due to its novelty, or even out right hostility. Certainly this is something that directly threatens many publishing business models, and there are economic reasons to try and oppose content creation such as does occur on Wikimedia projects. While we strive to remove this stigma, some publishers may look upon Wikibooks as a sort of [[w:vanity publisher|vanity publisher]], with the view that such authors are tainted and not worth serious consideration. This may or may not be an issue for some people trying to get involved here.
:As far as the physical publication of Wikibooks content, this is something that requires some fairly substantial up front capital in order to make Wikibooks to be comparable or cheaper than traditional books. This is something I have spent quite a bit of time and effort in trying to work on, and it hasn't been easy. Nothing personal against Lulu, Kinkos, or other publishers, but for low volume print runs their prices are too high and discourage people from taking risks. If you want to have a personal copy of a Wikibook that you have labored over and spending $40-$50 USD for a single copy, they aren't a bad place to start. But when competing against major publishers who through high volume sales can reduce a price of their books of similar quality and content to about $5-$10 USD per book (and make a profit!), it is very difficult for us to compete.
:We are currently in a chicken or egg situation where neither the egg has been laid nor the chicken is around. Somehow we need to be able to take some of the already outstanding content and turn this into something that can be handed to actual readers. The efforts to create PDF files for several Wikibooks are certainly one very significant step in this direction, but the next step, of distributing the content outside of the circle of internet websites, is going to be a little bit harder. About the only benchmark we have to compare what the potential market for Wikibooks might be is to use the Alexa web page ratings (or something similar that counts the number of visitors to Wikibooks). The Alexa rating has stagnated with Wikibooks ranking somewhere in the range of being in the [http://www.alexa.com/data/details/traffic_details?url=www.wikibooks.org top 3000-4000 websites] in the world (with usual disclaimers about Alexa ratings). This is not the Wikipedia and other Wikimedia projects combined, but just Wikibooks including all other language editions of Wikibooks.
:BTW, in regards to the ISBN numbers..... hold on. This is something that will happen shortly for Wikibooks in a big way, but it is going to be something that may take some patience. If there is an educational philanthropy organization that may be wanting to help out with getting published books derived from Wikibooks, it would be useful to note that here on the Staff Lounge. Supposedly we did have such a grant for the Wikijunior books, but I have not recieved any accounting of where the money actually went, other than into the huge abyss of the Wikimedia server farm. I'm not saying that the Wikimedia Foundation is corrupt, nor that the need for maintaining the servers is cheap (it isn't!), but some things were promised back elsewhen that have unfortunately hurt the physical publishing effort. --[[User:Robert Horning|Rob Horning]] 16:36, 8 March 2007 (UTC)
::Thanks Rob. Remember eggs existed before chickens! (Dinosaurs had eggs) In the same way, you have to have content to publish before you can publish. I will work on some useful content. Perhaps someday it will be easy to order books in print from Wikibooks.[[User:kgrr|<span style="background: lightblue"> kgrr</span>]] [[User talk:kgrr|<sup><b>talk</b></sup>]]21:17, 8 March 2007 (UTC)
== Image_needed image ==
Does anyone know of an image on the commons that would say something like "Image Needed"? In several chapters of [[Adventist Youth Honors Answer Book]] - such as [[Adventist Youth Honors Answer Book/Nature/Poultry]], I have a section where I used a Breed_id template which is something like a Wikipedia taxobox, but more tailored to my needs.
I have not been able to find appropriately licensed images of some of the chicken breeds that are called for. Instead of having an image, the best I could do (short of buying a Wyandotte chicken and photographing it myself) is provide links to web sites that ''do'' have the images. However, this is far from satisfying.
What would be better than just having links to unusable images is to have an image that petitions the reader - something to the effect of "We need an image of this - if you have one, please upload it." That would be useful on Wikipedia as well - such as in a taxobox with no image. As a bonus, a "what links here" page for that image could be placed somewhere prominent so that people who just want to be helpful (perhaps by buying and photographing chickens) would have a place to check for requests. -- [[User:Jomegat|Jim Thomas]] 03:14, 9 March 2007 (UTC)
: I found one on the commons similar to what I was asking for:
[[image:Image needed LHB.png|thumb|(see the [[commons:Commons:Licensing|Wikimedia Licensing Policy]] before uploading an image)]]
: I might start using it - but I still think it'd be better to make the plea more explicit, and I don't really want a picture of a ladybug in the background. I think whoever made this was facing a situation very similar to mine. I do think that having a generic image like this would be useful - especially with a "what links here" page. -- [[User:Jomegat|Jim Thomas]] 03:45, 9 March 2007 (UTC)
::I would change the wording to emphasise the need for freely licensed images.Otherwise people will just go to google images and replace it with whatever copyvio they find. [[User:Pfctdayelise|pfctdayelise]] 00:02, 10 March 2007 (UTC)
::: That's a good point. I have not yet attempted to wordsmith the message, but I agree that licensing should be a part of it. I'm still astounded by the amount of copyvio ''text'' I get "contributed" to my projects - in spite of the bold text above every "Save page" button. Should this "image needed" idea go on meta.wikimedia.org where it would have a more global impact? -- [[User:Jomegat|Jim Thomas]] 00:14, 10 March 2007 (UTC)
::::I added a caption to the image above... would that help? --[[User:SBJohnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color:green">talk</span>]]</sup> 14:03, 10 March 2007 (UTC)
== Persian Language Learning Template ==
I was wondering if anyone would be kind enough to help create the Lessons navigation template for the Persian Language Wikibook please. I can't get the two rows to sit directy above one another, one aligns left and the other right. Can anyone tell me what is going wrong? It's at [[Template:Persian]]. Thanks :-D [[User:Poppy|Poppy]] 22:18, 8 March 2007 (UTC)
:Try now. [[User:Webaware|Webaware]] <sup>[[User_talk:Webaware|talk]]</sup> 22:56, 8 March 2007 (UTC)
Thanks! It's like magic. :-D [[User:Poppy|Poppy]] 23:02, 8 March 2007 (UTC)
== A Puzzle for the Mathamatically Inclined ==
I have an interesting challenge for those Wikibookians who want to try and come up with an interesting algorithm that can be used for the rotation of featured Wikibooks:
Right now, I'm using the formula of
{{tl|JULIANDATE}} mod {{tl|FEATURENUM}}
to determine what Wikibook will appear as the current featured book of the day.
Here is the dilemma. When the value in FEATURENUM is modified (due to adding new books into the rotation), the resulting calculation will reshuffle all of the existing rotation in a seemingly random fashion. BTW, this is nearly the same algorithm that is currently employed for most implementations of [[w:Linear congruential generator|psuedo random number generators]], so there is more than coincidence here that it would seem random when changed.
What would be nice to have is some way to keep the existing featured wikibook when the number of featured books changes, and merely tack on the new featured books onto the end of the rotation. It should also be something that would be of very low maintainence in terms of day to day operations of Wikibooks. The idea here is that if the number of featured Wikibooks changes frequently (more than a couple of times per week, for instance), it is likely that some supposedly "featured Wikibooks" will never make it onto the list just because of holes in the mathamatical sequence that is finally generated by the above algorithm.
The above formula is more than likely going to be sufficient for a limited number of featured books, but I can envision a time in the future where that may not be the case. I would at least like to have somebody else think about some alternative approach to accomplish this same goal. --[[User:Robert Horning|Rob Horning]] 17:36, 8 March 2007 (UTC)
: This would not work if we had to change it manually, but if we can have it done automatically, do we need to have it last for a day? If not we could just do it per hour or something so that the randomness doesn't have as much of an effect, i.e.
(24*juliandate) mod featurenum
: This is, of course, beating around the bush. [[User:Mattb112885|Mattb112885]] <small>([[User talk:Mattb112885|talk]]) </small> 18:08, 8 March 2007 (UTC)
::Since the method of calclation of the JULIANDATE template I created (much simplier than the Wikipedia version) uses the UNIX timestamp for calculations, giving us the [[w:Year 2038 problem]] (we can only hope Wikibooks last that long!), changing this to hours is trivial in this situation. Still, as you said, this only pushes back the timeframe that this would become an issue, not a real solution to the problem. --[[User:Robert Horning|Rob Horning]] 20:47, 8 March 2007 (UTC)
:::I think what he was suggesting is that if we have a lot of books that qualify, rotating every hour would mean that books would have a fair chance of being on there more often, since a random rotation might make 1 out of 100 books only appear every 700 days :). --[[User:SBJohnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color:green">talk</span>]]</sup> 21:12, 8 March 2007 (UTC)
::::I do get the argument about the hourly rotation, as with 100 featured Wikibooks it is unlikely that they would be reshuffled every 100 hours (about 4-5 days) due to new Wikibooks being added, but it may still be an issue eventually. I would have to do a solid mathamatical analysis, but it wouldn't be that even in this case the featured book would appear only once every 700 hours, but rather that some would keep reappearing repeatedly and others wouldn't even be seen at all, just due to their position in the list and the fact that the offset keeps changing. What positions keep repeating and what parts remain hidden is determinstic in nature, but a complex enough problem that it isn't worth worrying about for an individual book.
::::Pushing this from a daily book problem to an hourly problem is just a "hack", and not a proper solution this this issue, or only a short-term fix at best.
::::One possible "solution" would be to reset the start date of the "Julian Date" algorithm to when the sequence began, but this is a bit more "manual editing" that would require an additional "variable" that would have to be updated when new featured books are added. This wouldn't be hard to explain in a protocol document, but it is also one more thing to mess up. --[[User:Robert Horning|Rob Horning]] 14:53, 9 March 2007 (UTC)
== short_stage template ==
The short_stage template was changed today to use svg instead of png graphics. Unfortunately, this broke my book in a very unpleasant way. I was not using the short_stage template EXACTLY as it was supposed to be used. I had created a Now_work.png graphic, which is a 9x9 transparent box. I have been using that as an argument to short_stage to indicate that no work has been done writing ''answers'' for the honors in my [[Adventist Youth Honors Answer Book]], though the honor ''requirements'' are all in place. I use 00% to indicate that less than 25% of the answers have been written, but more than 0%.
On my index pages, (such as [[Adventist Youth Honors Answer Book/Nature]]) I use the No_work graphic to line all the honors up - they ''all'' have a short_stage macro to the left. I made an ill-fated attempt to create a 9x9 transparent svg, but it ended up being more like 256x256. Didn't notice ''that'' until I uploaded the graphic. Now my index pages are completely hosed. Is there anyone out there who can make a transparent 9x9 box as an svg? -- [[User:Jomegat|Jim Thomas]] 02:03, 9 March 2007 (UTC)
:<s>Try [[:Image:Transparent9x9.svg|this one]]. Let me know if I need to modify it at all. [[User:Webaware|Webaware]] <sup>[[User_talk:Webaware|talk]]</sup> 02:18, 9 March 2007 (UTC)</s>
:I've uploaded a 9x9 transparent SVG to commons, over the top of your [[:Image:No work.svg]]. [[User:Webaware|Webaware]] <sup>[[User_talk:Webaware|talk]]</sup> 02:27, 9 March 2007 (UTC)
::And over mine. :) --[[User:Iamunknown|Iamunknown]] 02:29, 9 March 2007 (UTC)
::: Thanks. While I was waiting, I made a stoopid version of stage_short called stage_short_png. I went through a couple of my index pages and replaced all the stage_short templates with the new one (I've reverted again now). Now that it's fixed, maybe someone can delete stage_short_png? And maybe I should adjust the patience threshold. -- [[User:Jomegat|Jim Thomas]] 02:48, 9 March 2007 (UTC)
::::Just tag it with {{tl|delete}} and pass in a reason. Sorry, Iamunknown, the tortoise beats the hare again ;-) [[User:Webaware|Webaware]] <sup>[[User_talk:Webaware|talk]]</sup> 02:55, 9 March 2007 (UTC)
== Bird_id Template troubles ==
Hi everyone,
I have written a template [[Template:Bird id]] that I'm having a bit of trouble with. There is a named parameter called "description", and no matter what I do, the template insists on putting the description text in bold.
Here's an example:
{{Bird id
| latin_name = Baeolophus bicolor
| name = Tufted Titmouse
| image_1 = Tufted titmouse perching 2006-11-23.jpg
| caption_1 = Tufted Titmouse
| range_map = Tufted Titmouse-rangemap.gif
| description = These birds have grey upperparts and white underparts with a white face, a grey crest, a dark forehead and a short stout bill; they have rust-colored flanks. The male and female have identical plumage.
| call =
|nocat=x
}}
Another thing I would like to do to this template is conditionally add an icon for an audio file (assuming I can find bird call audio on the commons). I'd ''also'' like to change the layout depending on how many of the four image arguments are included. I have room for image_male, image_female, image_juvenile, and range_map. If all four are specified, I'd like a 2x2 grid of the images. If any two are specified, I'd like them to show up side-by-side. If one or three... I'm undecided and solicit input. Perhaps have the description and an image side-by-side, or perhaps scale the width of the images and have them three-across.
I know that's asking a lot, but I'm trying to put together a mini-field guide, and if we can get this tweaked nicely, I could see building on it for other field guidish modules as well. Thanks for any help you can render! -- [[User:Jomegat|Jim Thomas]] 01:25, 11 March 2007 (UTC)
:You had the description text as a cell heading by starting the line with a bang (!). Now fixed. [[User:Webaware|Webaware]] <sup>[[User_talk:Webaware|talk]]</sup> 01:30, 11 March 2007 (UTC)
::Thanks! -- [[User:Jomegat|Jim Thomas]] 01:48, 11 March 2007 (UTC)
:::Nice template! Some "identification quiz" templates are in use on Wikiversity: [[v:Plant_identification/Symplocarpus_foetidus]]... I can help you make some for animal identification if you're interested. --[[User:SBJohnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color:green">talk</span>]]</sup> 12:13, 11 March 2007 (UTC)
:I'll see what I can do to add to this template to make the changes you talked about. What image do you want to use as an audiofile icon? I'll pick one at random now, and we can work on a better one later. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 00:38, 12 March 2007 (UTC)
::Thanks to everyone who has worked on this. Your efforts are greatly appreciated! WK, the icon you choose is more than sufficient. I'm going to leave it as is. -- [[User:Jomegat|Jim Thomas]] 01:42, 12 March 2007 (UTC)
== wikia.com - wat is the difference between this and wikipedia ! ==
wikia.com << wat is the difference between this and wikipedia !
:Wikia is a commercial wiki project and so features advertising. There are also more specialised categories which makes Wikia suitable for some topics which are currently not allowed on Wikipedia or Wikibooks, etc. (like game guides and fiction). [[User:Xania|Xania]] [[Image:Flag_of_Poland_2.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 19:33, 11 March 2007 (UTC)
:Wikia was started by [[User:Jimbo Wales|Jimbo Wales]], just as Wikipedia was, and there are many people who have been active contributors to Wikimedia projects (like Wikibooks and Wikipedia) who are also very active contributors on Wikia, so I can understand a source of your confusion here. Wikia is also noted for being much more open about creating new Wiki projects, as all you really need to have is just a very good idea and they will likely let you start the project. Things like fiction and original academc research are examples of projects that have been very difficult to start as a Wikimedia project which Wikia didn't even hesitate to get started.
:Since they are not Wikimedia sister projects, there really isn't any special distinction they have over any other Wiki or even conventional website as far as Wikibooks is concerned. We do mention a few Wikia sites explicitly on Wikibooks mainly to suggest alternatives when there are regular sorts of contributors who do show up on Wikibooks asking about specific kinds of content.
:A small portion of what Wikia earns does go back to the Wikimedia Foundation to help support financially this website, and Wikia in the past has also offered technical and server bandwidth to help support the Foundation as well. So there are some additional ties to Wikipedia, but they are more indirect and certainly something that any other group could also do to help this and other Wikimedia projects. --[[User:Robert Horning|Rob Horning]] 20:07, 11 March 2007 (UTC)
::It's like asking what is the difference between Google and Yahoo? different websites with different goals, even if they are both based on "wiki" technology. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 00:33, 12 March 2007 (UTC)
== PDF Versions? ==
These textbooks are great, but suppose I wanted to print out a text book. It'd be nice if we had some type of functionality built into Wikibooks such that when you click "Get PDF Version", it would output the entire Wikibook into PDF form, complete with copyright pages, TOC, index and cover pages. This could be done using standard algorithms that just parsed the mark-up. Cool, eh?! <small>—The preceding [[w:Wikipedia:Sign your posts on talk pages|unsigned]] comment was added by [[User:128.229.113.106|128.229.113.106]] ([[User talk:128.229.113.106|talk]] • [[Special:Contributions/128.229.113.106|contribs]]) {{{2|}}}.</small>
:This is something that perhaps ought to be put on a FAQ page instead. Yes, creating a PDF file directly from Wikisyntax would be a fun and interesting project. Unfortunately, like so many other things, what we do here is done with volunteer labor. And to do a whole Wikibook you would have to do markup for more than just one "module", but to do so for a whole range of modules, and there are other considerations as a PDF file is more or less a way to make a "printed" version as well. There are also legal requirements, such as including the GFDL that would have to be done as well, not to mention a way to scan all of the modules that are included and to try and list all of the authors who have contributed to that content.
:Some of these issues havn't been completely decided yet either. Who is an author of a Wikibook? Certainly somebody who has been very active in content development and has dozens or hundreds of edits would count, but what about people who are good copy editors and have helped clean up grammar and spelling? How about blatant vandals who deliberately try to mangle and deface the pages? How do you identify which type of contributor has made an edit? It may seem obvious to you who are human and can tell the differences, but how do you automate that sort of decision making? It isn't as easy as you may think, and would be a very complicated computer algorithm, especially when dealing with all of the subtle exceptions.
:The other aspect is merely the technical side of even converting HTML to a PDF format. You can do that simply enough, but the resulting document will frankly be something absolutely awful to look at and to read if you use the typical converter programs that are available at the moment. I've done some conversions myself from the Wikibook pages by using Open Office, but when I have imported the web pages, there is still considerable room for reformating that is necessary. And sometimes there are some elements that are specific to the on-line nature of this project that simply don't translate to a printed document easily, if at all. If you edit the imported HTML by hand, you can make these decisions easily enough, but trying to automate that decision making is not trivial.
:Writing a very good Wikisyntax to PDF converter is certainly something that in the long term would be an excellent project to work on. It is also something that will take years and years of effort by very highly trained individuals who have the technical expertise necessary to get this task done and must be done by volunteer contributors. Do you have the skills and the time/money necessary to help out here? --[[User:Robert Horning|Rob Horning]] 16:09, 9 March 2007 (UTC)
::Well... I agree it is a project that takes time! I'm working on a wiki to pdf converter based on latex to get a good presentation, but it is far from finished ( http://wikipdf.sourceforge.net/ ). In the meantime, you can use Magnus' online tool (http://tools.wikimedia.de/~magnus/wiki2xml/w2x.php ) to do the conversion (you can contribute to wikipdf too if you know python). [[User:CyrilB|CyrilB]] 21:03, 19 March 2007 (UTC)
:::It still looks like a poorly formated webpage that has been transformed in an automated process... at least most versions that I've seen of stuff like this. I am not commenting on this particular software here, but these are two very different formats, and they don't translate too easily from one to the other. I look at this similar to something like an automated machine language translation software: It works reasonably well to give a native speaker of the target language something to work with and clean up without having to know the original laguage of the content.. I certainly wouldn't want to rely upon the machine translation to give you the finished product.
With this regard, having a LaTEX converter would be a good first step to helping clean up the various pages when they are imported into PDF files, but I'm pointing out that at best it is going to some stuff that simply must be edited by hand. --[[User:Robert Horning|Rob Horning]] 06:06, 20 March 2007 (UTC)
== Can I get unique articles of Computer Networking ==
Hi there,
I want to contact with the computer networking writers.
I am looking for help that how can I contact them directly?
Any help will be highly appreciated.
Regards
Bushra
: ''— Answered at the [[Wikibooks:Study help desk]]'' — [[User:Iamunknown|Iamunknown]] 17:42, 9 March 2007 (UTC)
== Proposal for a games policy ==
See [[Wikibooks:Game Books]]. This issue keeps resurfacing every few months, and we never seem to get anywhere on it. Included is a policy about Video Games and RPGs, which are banned on at least some of the other-language Wikibooks projects and have in practice been more or less banned here as well. --[[User:SBJohnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color:green">talk</span>]]</sup> 16:14, 11 March 2007 (UTC)
:Why is a whole new guideline being proposed instead of working with [[Wikibooks:Game textbook guidelines]]? It is an approach to take, and perhaps from a certain perspective it may be useful to try to address the issue from a totally new direction, since the current approach has failed miserably.
:I have specific objections to some aspects of this proposal, but I'll take that up on the appropriate talk page. If this proposal is accepted, I would like to push the original game textbook guidelines as a failed or rejected policy instead, and left as a historical footnote. --[[User:Robert Horning|Rob Horning]] 20:19, 11 March 2007 (UTC)
::Honestly, I didn't even know about that policy. It's apples and oranges though... that policy seems to be more about quality standards, and the trend of late has been to be rather tolerant of stubs. the sentence ''"A useful question to ask is "Will my textbook be useful to non-gamers as well as gamers?". If you can say yes, then that is indicative that the textbook may be able to stay."'' captures a lot, however... I think books about the history, culture, and (perhaps) economics of gaming would be a wonderful addition. --[[User:SBJohnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color:green">talk</span>]]</sup> 20:28, 11 March 2007 (UTC)
:I think alot of people make the assumption that any book about videogames is against policy. This is not the case, we can have plenty of books about videogames (history of, how to make, critical understanding of themes, etc), just not ''how to play'' videogames. Similarly, we could have a book about the history and effects of pornography, but not a simple pornographic book. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 00:26, 12 March 2007 (UTC)
::Yet banning all video game books is precisely what is being proposed here, and what is being said on the Administrator's Noticeboard as well as what has been said on numerous VfD discussions (that it is already policy that there are no video game books allowed). --[[User:Robert Horning|Rob Horning]] 08:30, 12 March 2007 (UTC)
:::I did not realize that change was being made. Under the current text of [[WB:AT]], books ''about videogames'' are allowed in some circumstances:
::::''it may be possible to annotate a motion picture, a video game, or a musical song/album. Such cases might be permitted under this policy if they are shown to be academic and well-written.''
:::Anything being proposed against the fact has a very hard uphill battle ahead of it. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 18:00, 13 March 2007 (UTC)
== Template on discussion page ==
On Wikipedia there is often a template on the discussion pages saying "# Please sign and date your posts by typing four tildes ([[User:Poppy|Poppy]] 17:38, 13 March 2007 (UTC)). # Put new text under old text. Click here to start a new topic.". There is an example of it here: [[http://en.wikipedia.org/wiki/Talk:Jacques_Chirac]]. I was wondering if there is a similar template available for Wikibooks as I saw quite a few comments on the book I was editing with no signature. [[User:Poppy|Poppy]] 17:38, 13 March 2007 (UTC)
==A (northern) springtime update on Wikimedia projects==
As the weather turns to the warmer in the Northern Hemisphere, I wanted to remind everyone of all the wiki-projects out there having to do with plants.
On Wikiversity, there are some budding projects, including the [[v:Bloom Clock|Bloom Clock]] and [[v:Plant identification|Plant Identification]]. The Bloom Clock is a "research project anyone can contribute to", where contributors can record any flowers they see blooming on any particular day and in any particular region, with the eventual goal of creating a database of bloom times that will be informative both about the plants themselves and the regions they grow in. The Plant Identification project is aimed at creating learning materials for students of horticulture, botany, and agriculture by creating quizzes that make use of the vast resource of photographs on Wikimedia Commons.
On Wikimedia Commons, there are always plants needing identification and new images needed. Check in at [[commons:Commons:WikiProject Tree of Life|Commons:WikiProject Tree of Life]] to see what's going on there.
On Wikibooks, [[A Wikimanual of Gardening|A Wikimanual of Gardening]] has been growing by leaps and bounds, thanks in no small part to the Import tool, used to copy articles from Wikipedia. There are hundreds of pages (many needing help).
Last but not least, the [[w:WP:PLANTS|Plants Wikiproject]] on Wikipedia is always active, with plenty of friendly and knowledgeable participants who are happy to help you identify photographs or answer questions.
So, while you might not be able to bring Wikimedia to the woodland, meadow, or garden, there are plenty of ways you can use Wikimedia to learn and teach others about the flowering plants which are so welcome a sight after a long cold winter.--[[User:SBJohnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color:green">talk</span>]]</sup> 18:24, 13 March 2007 (UTC)
== [[History of Wikibooks]] ==
This is a general call for assistance on this project. I've been doing some general research into the very early history of this project... particularly trying to find out what motivated the creation of this project in the first place (would you believe [http://en.wikipedia.org/w/index.php?title=Wikipedia:Votes_for_deletion_archive_May_2004&direction=next&oldid=1019149 a VfD]?)
If there are any amature (or even professional!) historians who want to help me with trying to dig up the original documents and discussions which formed what is today Wikibooks, I would be very grateful for that assistance. Or help in the collaboration of actually writing this book. I don't believe it will be too large (we aren't even four years old yet), but it is something that I think has some general significance to many of the discussions that we have been having here lately.
Thanks in advance for those who might want to help participate with this project. --[[User:Robert Horning|Rob Horning]] 09:30, 18 March 2007 (UTC)
== Cookbook/copyright & links issue ==
A new user {{user|Reever2}} has contributed quite a large number of recipes yesterday. They all have links on to a website and are direct copies of the material on the website. If you look at my talk page (& the user's one) you will see that they appear to be connected with the website and assure me that they have permission to publish the material. I have directed them to Commons licensing to see how Wikimedia need the permission confirmed (OTRS presumably).
However the user has also been warned for placing links to the site on many Wikipedia pages (& was blocked for doing so, unblocked on the understanding that they stopped which they did). Therefore I see another issue of attempting to promote the website via Wikibooks and so, whether the content is licensed or not, the links and promotion of the website are unacceptable to me. I have said that I will seek a broader view (& not delete any pages that are currently copyvios and mostly marked) until this is resolved. Thanks --[[User:Herbythyme|<span style="color:green">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 10:21, 23 March 2007 (UTC)
:I added some comments of my own onto this user's web page that I hope explains the copyright situation in friendly terms, and reinforces your comments here as well, Herby. Ideally, this website should explicitly mention that the text (and possibly the video files too!) are available for redistribution under the terms of the GFDL. I don't know if they are prepared to go that far, as the website doesn't appear to take licensing too seriously. The terms of use are for the most part [http://www.videojug.com/terms/termsofuse "non-commercial use only"]. Since Commons discourages (doesn't completely block) video files from being uploaded, having an external source for videos like this may be complimentary to Wikibooks, but asking them to change to the GFDL may be a bit much to ask. --[[User:Robert Horning|Rob Horning]] 11:42, 23 March 2007 (UTC)
::I think that Robert highlights the only viable path for these recipe pages: either the company in question explicitly permits redistribution of their content under GFDL, or it's all in violation of their copyright. Let's see how the company now responds to your detailed message on Reever2's talk page.
::On the separate but related subject of external links in these recipe pages, I think that if the copyright issue is resolved, the links should stay. External links should be allowed only if they are directly related to the the book/article/page/recipe and provide additional benefit to the reader, and in this instance, they do so by providing a video of the meal being prepared. [[User:Webaware|Webaware]] <sup>[[User_talk:Webaware|talk]]</sup> 05:59, 24 March 2007 (UTC)
: I think as Robert said, there terms of use would have to change to GFDL. Alternatively the the terms of use could allow duel licensing in which GFDL is an acceptable alternative. From what I understand Wikimedia Foundation's position is that "non-commercial use only" is unacceptable. I believe the website to have an even more restrictive policy then that. In addition to obtaining a copy for "non-commercial use only", copying is restricted for "personal use only" and given only for the purpose of obtaining a local copy rather than for redistribution. Which are incompatible with the GFDL. I would say go ahead and delete. If the website later changes their policy to allow their content to be redistributed under the GFDL, than the contents can be readded/undeleted. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[Image:Yin yang.svg|12px]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 12:22, 23 March 2007 (UTC)
::The licensing issue I agree with all said and it can be sorted. However for those it doubt on the intentions regarding the website I think folk should at least look [http://en.wikipedia.org/wiki/User_talk:Reever2 here] and at the contribution log etc, something like 100 links to the website in two days and no edits since they agreed not to place links --[[User:Herbythyme|<span style="color:green">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 12:45, 23 March 2007 (UTC)
:::Actually, this is flat out copyvio since you can't duplicate or redistribute "any material on the VideoJug Site except as is strictly necessary for Your own personal non-commercial home use unless otherwise agreed in writing with VideoJug." We can't fairly demand that others comply to our copyrights if we don't comply with theirs. These are all speedy deletes unless VideoJug releases under a free licence. --[[User:SBJohnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color:green">talk</span>]]</sup> 14:34, 23 March 2007 (UTC)
::::This user claims to be an employee of VideoJug, and it appears that all contributions from people external to that company must transfer copyright ownership to VideoJug before it can be seen on that website. I personally think they would be better off relicensing under the GFDL, but that is not my call to make here. I'll have to see if this individual is going to come back and give us the permission that is needed, as I indicated on his user page. We can decide (or the main contributors to the [[Cookbook]] can decide) if the external links are something that is reasonable. There is some added value to having links to a video on how to make the recipes, so I think there may be some merit to keeping the links... if we can get copyright permission in the first place. --[[User:Robert Horning|Rob Horning]] 18:49, 23 March 2007 (UTC)
::::: I'm not sure how most cases to verify this are handled. The most straight forward method of verification that I can think of, is simply a matter of the website indicating that the contents can be used under the terms of the GFDL. Isn't this something that the Wikimedia Foundation usually takes care of verifying? I think it would be risky for us to assume to be able to verify it independently. I would have to agree with SB_Johnny, that its an out right copyright violation and so must be speedily deleted. When and if, later it is verified than it can be readded or undeleted, but until then deleting it is required by policy. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[Image:Yin yang.svg|12px]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 21:28, 23 March 2007 (UTC)
:::::: Actually, the Wikimedia Foundation does not have responsibility over the content of projects.... or so I'm told repeatedly, even though there are some very contradictory issues here. As the {{tl|copyvio}} template is quite clear about, any formal permission to use the content must be on the talk page of each module that may have some question as to its copyright status. And no, we don't need to work through or with the Wikimedia Foundation on this issue. Certainly if there are any formally signed "copyright permission" letters that have been signed, that they could send them to the Wikimedia Foundation general counsel, but since Brad just resigned I don't know who that might be. I suppose sending such letters to the WMF office or to Anthere directly would work.... but they would only be agents acting on behalf of the Wikibooks community here. We could in theory even set up somebody else to receive these letters or establish other policies here.... although the WMF certainly would be easier to work with in this situation.
::::::As far as verification of copyright... that is completely up to us as a community to decide how that is done and to do the actual verification of copyright status. While a copyvio is a speedy delete, we do have as written policy (again, see the copyvio template) that we will give the person who adds the content at least a week to try and demonstrate that they do have a license to use the content. That week certainly hasn't passed yet for these recipes. This particular individual who is adding this content seems very sincere to me and this is unusual enough that I would like to give him a chance to show he really does have permission to add this stuff. I don't think he has encountered people like us here on Wikibooks (and Wikipedia) that are as paranoid about copyright on a project that allows anybody to edit, and you have to admit that wiki cultures and communities do have their own unique philosophies on stuff like this if you havn't dealt with this kind of situation before. --[[User:Robert Horning|Rob Horning]] 15:10, 24 March 2007 (UTC)
*reset
The person that does the contribution is responsible by the content he adds, if any challenge is given to that contributions by the community the contributor must provide or extend the info as info on the original works is by default required by the GFDL. I personally have done so in 2 distinct times because of the C++ Programming book, one involved a Java book, I moved the GFDL content to Wikibooks at the time to close the subject and another a challenge that even included a VfD, all challenges were drooped, this types of challenges is a way of the community to protect itself but it can still be based on a user intending to cause trouble or as expression of bad intention as such some care must be given on initiating such actions, even if the community can take preventive action, ultimately the original authors of the works are the only ones that can request a pull down on copyright violation charges and the contributor can probably have legal problems based on his actions. --[[User:Panic2k4|Panic]] 15:37, 24 March 2007 (UTC)
=====Cookbook/copyright & links issue continued=====
''(Tabs reset)'' I don't think anyone has deleted yet, have they? In any case, whether or not it's a Foundation issue or a WB issue isn't really the issue, unless we want to make a major change and accept things that aren't free. Our mission is to produce free textbooks, whether on Engineering, Physics, the Culinary Arts, or even Horticulture. While we obviously can't rely completely on PD/GFDL/CC sources (for example, I'd guess that a lot of the out-of-copyright cookbooks use an awful lot of lard, and some of the older garden books I've seen often mention Nicotine sulfate, Arsenic, and Cyanide as being wonderful pest controls), wholesale copying from websites that have clear copyright restrictions on how things are used is not at all a good idea. Speedy removal of such material is also quite important, since anyone who comes along later to improve copyvio material are essentially just wasting their efforts, since "derivative works" of copyrighted materials are still copyvios.
We want good, free content. There's plenty of good content around that's not free of course, but ''we'' are here to provide good, ''free'' content. No matter how good it is, if it's not free, then it's not good for us. --[[User:SBJohnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color:green">talk</span>]]</sup> 15:28, 24 March 2007 (UTC)
: Worst still is if someone were to duplicate the copyvio content somewhere else under the belief its GFDL material. The website clearly states its copyright, so this isn't a question of whether or not its copyvio or not, so it should be deleted. My suggestions/comments are for what might be able to be done to allow it to be here in the future. I have no problems with people working to try to verify that it can be here, but since the webpage states its copyright, until its verified by whatever means, it needs to be deleted, to prevent copyright problems. Discussion on how to verify it and getting it verified should be done after the current problem of being a copyvio is taken care of --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[Image:Yin yang.svg|12px]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 16:07, 24 March 2007 (UTC)
::It has never been project policy to immediately delete content like this. We are supposed to mark it as a copyvio, and work with those who added the content to see if they really do have permission. I've done that and it is something currently being resolved. I actually think in this case (unlike most copyvios) that we may actually have the ability for a very large contribution to Wikibooks. Potentially we could even have a bunch of videos and other multimedia content added here as well. Please don't flame this individual or push him out, and certainly don't ruin this excellent opportunity to significantly expand and improve Wikibooks. This sort of flaming is very counter-productive to actually helping create content. --[[User:Robert Horning|Rob Horning]] 16:17, 24 March 2007 (UTC)
:::Who's flaming? (And who is being flamed?) And since when do we not delete copyvios? --[[User:SBJohnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color:green">talk</span>]]</sup> 22:40, 24 March 2007 (UTC)
::::I never said we do not delete copyvios. We just don't delete them immediately on sight. It is right there on the template, and that has been the defacto policy for Wikibooks since the template was created. And I will immediately undelete any such content which has not had a reasonable chance for the contributor to defend why they added it to Wikibooks. If the contributor doesn't respond (a very typical situation) and some time has passed, it will then be deleted. I just got through deleting a couple of images and other content from the copyvio cat earlier this week. There are legitimate reasons to delete copyvios. I just don't think this one needs to happen immediately. It will not damage the project if we let a copyvio (clearly makred as such) stick around for a month or two. The template suggests a minimum of one week. Is that a problem for you? --[[User:Robert Horning|Rob Horning]] 06:07, 25 March 2007 (UTC)
:::::Robert, calm down. As far as I know, the pages haven't been deleted, but rather we've been discussing whether they should be "speedied". Speedy isn't very speedy around here anyway, and we've been using some other tags ({{tl|qr-em}} for example) ''precisely'' in order to have some step between speedy delete and VfD. Blatant spam and nonsense creates are speedied on sight, but everyone (including Herby, Darklama, and myself) makes an effort to talk to the contributors before removing content (I even make it a point to notify the "fiction" contributors, so they can save the file locally or find another place for it).
:::::Are all the pages marked with {{tl|copyvio}}? If that's the case, then no problem... I doubt anyone will try to work further on the content until those issues are settled in any case.
:::::We do need to be able to talk to a contributor who might not understand the licensing issues, and even stop them in their tracks if they don't respond (I don't know of that ever having been needed here on Wikibooks, but on Commons we ''do'' block people for repeatedly uploading proprietary/unsourced/etc. images without responding to queries (BTW, Herby and I are both Commons administrators, so we deal with this issue a lot more than most admins here), and in fact we even have terrible problems with sockpuppets doing this (particularly with porn)). It's not flaming, it's just an administrator's responsibility to clean up messes that are made, and prevent further messes.--[[User:SBJohnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color:green">talk</span>]]</sup> 15:18, 25 March 2007 (UTC)
::::::I guess I'm not understanding why this part of the thread even came up, and why you said "Speedy removal of such material is also quite important, since anyone who comes along later to improve copyvio material are essentially just wasting their efforts, since 'derivative works' of copyrighted materials are still copyvios. " That this was clearly marked as copyvios is true, and even the context as to why we were deciding to keep this content was also quite clear at the beginning of this discussion. This is not some sort of pornography, and indeed it would be unbelievable that the content we are talking about here would ever be deleted except for the fact that we can clearly identify the original source of this material. This is not vandalism nor tasteless content being added to Wikibooks. And the contributor is very clear that he thinks he has copyright permission to add this content, even if we are questioning it. It is within that framework that I was talking about how we could verify that he is in fact authorized to add this content to Wikibooks. I am not trying to "make a major change and accept things that aren't free", but try to get what is here that we know about and make that free. It is these points I'm responding to, together with the comment that it is "Worst still is if someone were to duplicate the copyvio content somewhere else under the belief its GFDL material. The website clearly states its copyright, so this isn't a question of whether or not its copyvio or not, so it should be deleted." Since this is clearly marked as a copyvio, who is realistically going to modify this and use this elsewhere? The copyvio template sticks out like such a sore thumb that anybody copying content marked as such ought to be chastized, as the template clearly warns anybody that the GFDL is null and void for that content until the copyright status can be resolved...including by deletion as one form of resolution. And while "We do need to be able to talk to a contributor who might not understand the licensing issues, and even stop them in their tracks if they don't respond", this particular individual has responded frequently to the requests of two totally different users, myself and Herby. What we are trying to cover is where to go from here when they think they have copyright permission, which is a totally different situation. That this is a weekend and he is a full-time employee working a normal 9-5 job monday through friday and hasn't responded since he went home for the weekend shouldn't be a reason to complain that he hasn't responded yet. He is actually being very timely on his responses, to be honest. --[[User:Robert Horning|Rob Horning]] 15:47, 25 March 2007 (UTC)
:::::::Well yeah, sure! But this conversation isn't on his/her talk page (where some are talking specifics and working to see what can be done), this is on the Staff lounge (where we've drifted into a more general conversation). Conversation is good. Accusing people of flaming (when they're not) is bad. What you seemed to by saying above (or below, or somewhere) is that we shouldn't insist on the material being free, and perhaps even consider it free regardless of what the site owners say because ''their'' contributors might have ''really'' intended to make it free, but didn't understand that website owner's copyright. That's just unacceptable to me. --[[User:SBJohnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color:green">talk</span>]]</sup> 15:54, 25 March 2007 (UTC)
::::::::Where did I insist "that we shouldn't insist on the material being free, and perhaps even consider it free regardless of what the site owners" said? I said nothing of that nature at all. I just said we didn't need to delete it immediately. The [[w:DMCA|DMCA]], which is the U.S. law (and directly affect Wikibooks because the server is in the USA) that governs this sort of stuff, only requires a removal of the content within 90 days ''after we have been formally notified by a take-down notice''. In this case, a notice of that nature wasn't even given at all, but instead we have gone well above and beyond what is required in normal copyright law for websites and have taken active steps to determine copyright status of this content. We need to insist on the content remaining free, but we also need to assume good faith on new contributors. Last time I checked, one week was substantially less than 90 days. I don't know of any copyvio markup that has ever lasted more than 90 days in the copyright infringement cat. There is no need to hurry on these matters and get them resolved in just a couple of days. --[[User:Robert Horning|Rob Horning]] 19:35, 26 March 2007 (UTC)
:I don't think the dispute here is if it is free content. I just have my reservations that this particular individual {[[User:Reever2]]) has the authority to relicense this content under the terms of the GFDL. And I've tried to make it very clear that we need to have this formal permission. He is just confused about the whole license thing, as the VideoJug website (and other similar websites, I might add) insist on a full copyright transfer to them when you submit stuff to them. This is such a common practice in the entertainment industry that this whole idea of keeping copyright but only granting a license is very strange when coming from that sort of content culture. For example, if you submit a story idea to a popular TV show you like.... the idea becomes property of the producers of that show, or they won't even look at it.
:I am just suggesting a bit of patience here in allowing all of this to soak into the mind of this particular contributor, so he can genuinely understand what it is that we are doing here. And I'm trying to assume good faith in this particular individual, and I'm not trying to change any sort of project policy here at all. We can't have copyright violations, but we can seek to get copyright permission (in the form of a license under the terms of the GFDL), and that has been project policy from day one here on Wikibooks.
:Please, let's not flame this issue to be anything more than it is.... somebody trying to add content here that doesn't understand the issues of licensing and the GFDL. --[[User:Robert Horning|Rob Horning]] 16:12, 24 March 2007 (UTC)
::Agree, If no authorization is claimed and seems that the user has indeed violated the copyright of the work a copyvio tag should be placed on it and an attempt made to contact the website after some time or if no authorization is recognized the book (not only the page) should be reverted to a date previous to the insertion of the material or placed all for VfD. But we have to go by the process... --[[User:Panic2k4|Panic]] 16:24, 24 March 2007 (UTC)
I have clarified my status with an e-mail from my Videojug account to Robert Horning stating that i do work for the Videojug website. Thanks for your responses and I have been reading the discussion on the staff pages since Friday. You are correct- I do work a Monday to Friday job and this is the first time I have had to respond to this particular message and thread. For arguments sake, I am happy for the pages to be deleted until our organisation have made a decision on the 'copyright material', which unfortunately due to a hectic schedule (launch in the US), this is to be put on hold for a couple of days. Once a decision has been made at the Videojug office, I will notify you or another Wikibook contributor to ensure that it can be re-added to the your pages under GFDL copyright. I didn't fully understand the copyright law on Wikibooks, and therefore have caused an untimely argument between the administrators and i'm sorry for that. In view of some of the comments "The user added 100 external links to the website, and then didn't add any more"- basically as I was adding my website's content on Wikipedia I had to provide a referenced source for the material, and therefore when I was told off for spamming, I couldn't add the material without the referenced source i.e. had no content really to provide so didn't add further. So just to clarify, I am happy for the content to be removed from the Wikibooks website until further notification from my company- however the information provided from a Wikipedia administrator I am still a little annoyed over as he has wasted about 2-3 hours of my time by stating that I could add material to the Wikibook's website. Thanks for your responses and I hope that I can be of assistance to your website in the near future
== Moving on policies ==
I am bringing up a comment here from [[User:Withinfocus]] that was made on [[Wikibooks talk:Administrators#Trolling]]. I would add that I can understand the frustration here about trying to get policies written and changed here. On [[Wikibooks:What is Wikibooks/Unstable]], there has been an attempt to try and get a vote going for approval twice, but both times seemed to have failed due to some ongoing discussion about some of the fine points of policy and continuing changes.
In addition, the voting on these policies tends to be rather diffuse and sometimes hard to even find out if there is a vote going on at all. I'm not claiming to have any special magic here, but I would like to point out a page that I worked on ([[User:Garrett]] started it) that may help out: [[Wikibooks:Policies and guidelines/Vote]]
The point here is if we are moving to try and formally ratify some of these policies, that perhaps the voting on them ought to be separated from the discussion about the policy, and that once the decision is made to attempt ratification of the policy, it ought to be "frozen" until it is accepted or rejected.
This also gives the additional ability for users to monitor if new policies are in the works, and if there is any current voting taking place on policies. This isn't really a new thing, as several policies have already been adopted using this system. Unfortunately, it hasn't been used since the deletion policy was passed. I hope this is only because others may not even be aware of its existance. It also provides a central clearing house for what policies are being actively developed.
Certainly we need to get moving on several of these policies, and there is mostly concensus in many of these cases to ratify what is curently written proposed policy. When this voting page was used, we were able to move quickly on several policies that had some long-term consequences to Wikibooks, and do so with few disgruntled feelings either. [[Wikibooks:Policies and guidelines/Vote/Deletion Policy|This is the page]] where the Deletion policy was decided, and it should be noted that substantial community participation did occur here. I hope that something like this may unblock the current logjam that we have to getting any policy passed. --[[User:Robert Horning|Rob Horning]] 19:10, 23 March 2007 (UTC)
That's a fantastic help Robert! I am constantly aware of many different proposed policies but usually have no idea how to find them or where to vote. It would be easier if policies were just written and people votes in support or against. If they have any changes to suggest to the policy then they should vote 'against' and write their own version of the policy. [[User:Xania|Xania]] [[Image:Flag_of_Poland_2.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 21:35, 23 March 2007 (UTC)
Hmm, ok now I'm confused. According to that link there are no current votes on policy. This may explain why people aren't voting on proposed changes to policy - because we have no idea where to look and some policies have a template linking to 'an unstable branch' whatever that means. It's no wonder that people aren't voting as it's impossible to find current votes and the votes are full of lengthy comments rather than simple 'support' or 'oppose' votes. [[User:Xania|Xania]] [[Image:Flag_of_Poland_2.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 21:48, 23 March 2007 (UTC)
:Agree, I think that most people check the staff lounge or the bulletin board nowadays (even with all the redesign), but there is no standard way to place an announcement, any proposal should be stated clearly and publicly. Another problem is on rehashing discussions, for instance discussion is initiated on a policy and posted on the staff lounge, after discussion on the policy tries the policy suffers huge changes or is proposed to be made a guideline or vice-versa or just is polled again and in some cases no announcement is even placed, another problem is people sometime can't or are unable to access Wikibooks a good way to be informed of this types of events would be the mailing list. --[[User:Panic2k4|Panic]] 23:04, 23 March 2007 (UTC)
:Why not a simple update to [[Wikibooks:Policies and guidelines]] and turn it into a <s>guideline</s> policy (making sure no overlap exists with [[WB:DM]]), and start using all the already existing infrastructure [[Wikibooks:Policies and guidelines/Proposed reform]] to state new proposals and status changes and [[Wikibooks:Policies and guidelines/Vote]] etc... --[[User:Panic2k4|Panic]] 23:21, 23 March 2007 (UTC)
:I decided to follown the link and read about 'What is Wikibooks "unstable"' yet discovered that the talk page was much much bigger than the actual proposal being discussed. I had no idea what the hell made the proposal any different from the current policy - surely that should be emphasised. Why can't people just vote on the policy and be done with? There appear to presently be only about 7 or 8 people actually involved in policy discussions (well done for having such patience guys) and it's crucial that more Wikibookians can find out what's happening. [[User:Xania|Xania]] [[Image:Flag_of_Poland_2.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 12:06, 24 March 2007 (UTC)
::I noticed the same problem, Xania. A few weeks ago I started working on a list of policies and their various states in table form in my [[User:Xixtas/Sandbox|sandbox]]. My thought is that we should create a page [[Wikibooks:Policy votes]] and put everything that is currently marked as proposed up there and see what happens. There would probably be consensus to adopt one or two, consensus to reject 3 or 4 and the rest would have some kind of dispute to be ironed out. But that would at least get the process rolling and provide an effective overview of the state of these proposals. As a matter of fact, I'll probably just [[WB:BOLD|Be bold]] and do it this weekend. --[[User:Xixtas|<span style="color:turquoise">xixtas</span>]] <sup>[[User_Talk:Xixtas|<span style="color:magenta">talk</span>]]</sup> 13:34, 24 March 2007 (UTC)
:::I changed your proposed page into a redirect link to the above voting page. I'll also have to create a shortcut of [[WB:PV]] that may make it easier to do this as well. I did some further cleanup of the policy voting page to list a couple of policies I know that are under development, and I think perhaps this page ought to be put into the sidebar as well. It is certainly general enough that it also has an impact upon people who are participating on this project.
:::As far as what the difference on [[WB:WIW]] between the current and unstable versions, the wording of the two versions is incredibly different and does represent the largest change to this policy that I have ever seen ether here on Wikibooks or for that matter on any Wikimedia project that I have ever seen for a similar kind of policy. On a substantive level, however, there really isn't that much change, which was one of the points of the rewrite. Much of the discussion is about what was left out of the newer policy compared to the older policy that was substantive and may still be needed (my arguments were primarily along this line of thought), and how to clean up wording to emphasize some aspects of Wikibooks (such as an increased focus on textbook development) and reduce the emphasis on ''"What Wikibooks is Not"''. Since this is the "foundation" policy that was established at the very beginning of Wikibooks and is essentially the most influential policy document for this whole project, it is a very big deal that this is both being worked on and that many of those who have worked on it seem to feel that it is nearly done with the current round of revisions. It is a compromise of wording from many people, and not everybody (including myself) is completely happy with the way it has turned out, but as a fundimental charter to Wikibooks I think it will be an outstanding policy. By all means if anybody else is reading this wants to get involved with helping to draft this policy, I hope they come to [[Wikibooks talk:What is Wikibooks/Unstable]] and join in the discussion. --[[User:Robert Horning|Rob Horning]] 14:52, 24 March 2007 (UTC)
== Wikimedia licensing policy resolution ==
Many people will remember my last post on the subject of copyrights in reference to an essay posted by Kat. At the time we generally adopted a "wait and see" stance, to see what the wikimedia foundation's official stance on the issue would be.
Well, the wikimedia foundation has finally posted an official resolution on the matter: [http://wikimediafoundation.org/wiki/Resolution:Licensing_policy HERE it is].
Under the terms of this resolution, all uploaded material must be under a free license ''except for a small number of exceptions''. Our project gets to author an "exemption doctrine policy" (EDP) for material that is allowed to be uploaded here that is not under a free license (fair use). Here are some of the limitations:
# "EDPs must be minimal". Important historical items, logos, and information about contempory copyrighted material. This means that screenshots of copyrighted software is allowed.
# Media uploaded under the terms of the EDP must be deleted if a free alternative is provided, or if there is a reasonable expectation that a free alternative could be provided.
# Media uploaded under the EDP must be deleted if the rationale of the exception is not properly expressed. A simple tag on an image of "this is fair use" might very well not be appropriate rationale.
Also, since we do not currently have an official EDP (the fair use policy has never been made "official", despite wide-spread ad-hoc adoption) we are subject to section 6 of the resolution, which I will post in it's entirety here:
:6. For the projects which currently do not have an EDP in place, the following action shall be taken:
::* As of March 23, 2007, any newly uploaded files under an unacceptable license shall be deleted.
::* The Foundation resolves to assist all project communities who wish to develop an EDP with their process of developing it.
::* By March 23, 2008, all existing files under an unacceptable license as per the above must either be accepted under an EDP, or shall be deleted.
By this, basically, any new media that is uploaded here that is not under a free license must be deleted until we officially adopt our [[Wikibooks:Fair use policy]]. This means that any image uploaded under a fair use tag needs to be removed. Also, any existing files that we have here must be covered by our EDP, or they must be deleted also. Even after we adopt the fair use policy, we need to insist that all future fair-use media must have an appropriate "exemption rationale" or they must be deleted.
Everybody should read this resolution, and I think we need to get to work ASAP on our fair use policy. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 00:23, 28 March 2007 (UTC)
:You have so throughally misinterpreted what has been said here by the Wikimedia Foundation that I don't know where to begin. We do not need to immediately delete fair use images off of this project, or to really change anything we have been doing on this project for the past year or more. Yes, we need to be careful about what gets uploaded, and we do need to watch and make sure that all images are tagged for copyright license status clearly. And the WMF board has also said that if we do come up with a formal policy (like [[WB:FUP]]) that they have the "right" to come in and modify this policy.
:But do not use this as a call to arms for deletionists to come in here and start culling even more content here on Wikibooks. This is not the intention of this policy. Trust me that the last word on this policy has not been said, and that when the full implications of this policy are realized (including your suggestion that it implies removal of all current fair use content) that it will be tweaked even more.
:That we should move on trying to decide what would go into a fair use policy is true, and we should use this as an opportunity to review fair use on this project. But we don't need to start making huge changes and waves here that is substantially different than what we have been doing in the past.
:We can allow fair use on this project, and keep in mind that the reason I started the current fair use policy was to ''limit fair use'' on this project, not to expand permitted content. All the WMF is trying to say here is that we need to take this issue seriously, and that for those projects who havn't even given this topic this level of consideration (en.wikibooks was not the target of this policy discussion... but even held out as a good example of a project that was trying to resolve this issue) that perhaps it was time that something of this nature become a part of the conversation of that project.
:I have no idea why there is this very arbitrary deadline that was given, but it seems as though this was something in particular that was not thought through. Let us try to decide as a project what direction we would like to go, and to fit within the guidelines of what is considered an acceptable content license policy for the foundation. I think the current [[WB:FUP]] is certainly within those guidelines, although I would have to say that what the WMF is asking here goes beyond even the scope of this policy and addresses all licenses. There are content licenses that are not fair use which we need to look at as well. --[[User:Robert Horning|Rob Horning]] 13:49, 28 March 2007 (UTC)
== Navigation controls ==
Hi I am new to Wikibooks, and am learning the tricks and ways in navigating through. I have been reading the help and other introductory materials; curiously I haven't yet found out an answer to some basic questions I had in mind.
* '''Q:''' Is there an efficient way to navigate through the chapters of a book? It seems a little bit round about if I go back to the contents and then find and click the next logical chapter.
* '''Q:''' Is there some way to have some sort of a bookmarking system, so that I can easily resume reading from the last section I was reading on a book?
Thanks in advance. --[[User:Hirak 99|Hirak 99]] 07:20, 28 March 2007 (UTC)
:I would like to welcome you to Wikibooks, and thank you for coming here. I hope that you can not only enjoy the content which we have written, but that you would be willing to help us out with some of these issues you have raised here as well.
:As for navigation through chapters of a book, there have been some efforts along those lines for some of our Wikibooks to provide navigation links between each chapter. Unfortunately, that needs to be added manually and is not a universal practice here on Wikibooks. This is one area that your assistance in helping to grow Wikibooks would be very much appreciated. If you would like some further help on how to add some navigation templates to your favorite Wikibooks, I and many others would be very happy to give you some specific details on how to accomplish this task.
:In terms of bookmarking a page, I would suggest at this time to use your web browser to mark where you are at in terms of reading a Wikibook. Still, this is an interesting idea that perhaps could be developed even more and added to the MediaWiki software that is running our website here. I don't think any real consideration has gone into what a bookmarking system might be like.
:One alternative you may consider is to click on the "watch" button at the top each page. While this isn't the intended use for this tool, you can build up a list of your "favorite" pages of Wikibooks and have them available to go back to if you want to remember where you were at. And you can delete pages from this "watchlist" just as easily as you can add them. Doing this doesn't affect any other user.
:Good luck, and if you have any other positive suggestions for Wikibooks, we would be glad to listen to them. --[[User:Robert Horning|Rob Horning]] 14:05, 28 March 2007 (UTC)
==Data collections==
The question has come up on two current Wikipedia AfD discussions, of the proper place for collections of standard data. In one case, the matter under discussion is a summary of part of the LC classification [Wikipedia:Articles_for_deletion/Library_of_Congress_Classification:Class_B]. In the other, it is a portion of an astronomical ephemerides [http://en.wikipedia.org/wiki/Wikipedia:Articles_for_deletion/Aspects_of_Pluto] . Wikisource is apparently not the place, they are clearly oriented around text. Is Wikibooks suitable. (note that in either case these are not research-level or professional-level data -- a professional would use a much more detailed source. Rather, they are convenient summary tables, to use in connection with more general work. It has also been suggested that we need a new Wiki Project for such information. [[User:DGGB|DGGB]] 01:08, 30 March 2007 (UTC)
:It has been the general historical position around here that lists of data are not acceptable for wikibooks. Typically a wikibook should have some sort of instruction or narrative. Tables of astronomical data from wikipedia were moved here in the past, and they were all deleted. Some tables have been integrated into related books, however. Tables of Unicode characters, for instance, were integrated into related programming books as appendices. Such an occurance is typically more the exception then the rule, however. Unfortunately, this data probably just needs to be deleted. I would be willing (or any number of other wikibookians, i'm sure) to address this issue directly on wikipedia, as the question of what precisely belongs here is often called into question. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 01:13, 30 March 2007 (UTC)
== Robot help needed ==
I have a huge task ahead of me that would best be performed by a robot. I was working on the [[Adventist Youth Honors Answer Book/Nature/Birds]] chapter in the [[Adventist Youth Honors Answer Book]], when I realized that I had made a pretty good start on a field guide for birds. I decided that it might be better just to move my work out from under the AYHAB pages and into a field guide in its own right. But when I tried, I found that [[Field Guide/Birds]] already exists. Luckily, all the work I did pretty much applies to eastern North America, and that chapter in the Field Guide was a red link - so I ended up moving the field-guidy part of my book to [[Field Guide/Birds - Eastern US and Canada]].
However, each bird detailed there is on its own page, still under the AYHAB hierarchy. It needs to be moved under the Field Guide/Birds Hierarchy instead. I do think that each bird should be under "Field Guide/Birds/Bird Name" rather than "Field Guide/Bird Name" though, because ''some'' species of animal and plant share a binomial name. Therefore, I don't find it difficult to believe that they could also share a common name as well. I suppose one could argue we should deal with those rare instances as they occur and disambiguate parenthetically.
Does anyone have a robot they could arm to move these pages for me?
I will probably do something similar to the [[Adventist Youth Honors Answer Book/Nature/Edible Wild Plants]] chapter too, so please stay tuned, and I'm ''sure'' there are a few other similar chapters in there too. -- [[User:Jomegat|Jim Thomas (aka Jomegat)]] 02:45, 30 March 2007 (UTC)
:Do you know perl? I've got a bot that could do something like this, so long as we specified a complete list of page source and destination locations. Also, my bot has a strong regular expression engine, so I should be able to convert over any links and templates. Let me know what kinds of things you want, such as inter-page navigation links or navigation templates, page categorization, etc, and I will start writing up a script to do it. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 02:51, 30 March 2007 (UTC)
:: I am not comfortable enough with Perl to risk it (it's a write-only language, no?)
:: Basically, all the pages with a [[Special:Prefixindex/Adventist Youth Honors Answer Book/Nature/Birds/|prefix of "Adventist Youth Honors Answer Book/Nature/Birds/"]] (including that trailing slash) need to have their prefix changed to "Field Guide/Birds/." They should also be added to Category:Field Guide, and Category:Birds. I guess. All of these pages are transcluded in [[Field Guide/Birds - Eastern US and Canada]], so I don't see a need for navigational aids. Many of them will eventually be transcluded in [[Field Guide/Birds - Western US and Canada]] as well, and perhaps in others. That complicates navigational aids, so I say leave 'em off. -- [[User:Jomegat|Jim Thomas (aka Jomegat)]] 03:10, 30 March 2007 (UTC)
:::I'd recommend actualy just splitting into "Field Guide to Birds/Bird Name" rather than going the sub-subpage route... it's an awful lot easier to interlink chapters that way (two ''birds'' won't share the same binomial). I ran into the same thing in the garden book (a genus of moths having the same name as a genus of plants), but there I'm just going to do a parenthetical title ("Pieris (insects)"). There's a guy on meta who has a bot designed for this, but you'd need to come up with a list for the bot to work on in any case (and by the time you made the list, you could have been 1/2 way through the pagemoves). --[[User:SBJohnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color:green">talk</span>]]</sup> 11:31, 30 March 2007 (UTC)
== Where is the old Help Cheat on wiki syntax? ==
I used to rely on a page for wiki syntax that seems to be gone now. It was a single page that had tables where one side showed the sytax and the other side showed what it looked like. Is it still around? [[User:Harriska2|Harriska2]] 14:34, 30 March 2007 (UTC)
: Perhaps your referring to the table at [[Help:Editing#Wiki_markup]]? --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[Image:Yin yang.svg|12px]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 14:57, 30 March 2007 (UTC)
== embed java applets? ==
Is it possible to embed java applets in wikibooks?
Thanks in advance.--[[User:PegasusRoe|PegasusRoe]] 14:35, 31 March 2007 (UTC)
== Working on a New Book [[Wireless_Mesh_Networks]] need a review ==
As a first time Wikibook author, I have worked on the outline of a new book I would like to write here. Could one of you guys take a look and offer some comments? I would like to apply the same structure to two more IT books, but need a good review before I spread the mistakes.
[[User:kgrr|<span style="background: lightblue"> kgrr</span >]] [[User talk:kgrr|<sup><b>talk</b></sup>]]13:57, 5 March 2007 (UTC)
:I had a look yesterday, but to be honest I have no idea what it's about. Maybe an introduction chapter to start? --[[User:SBJohnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color:green">talk</span>]]</sup> 14:28, 5 March 2007 (UTC)
:I know a bit about such networks, so i can give you a quick review. I'll also post links from that page to the [[Communication Systems]] book, and a link back to your book too. This is definately a good start to a book, at least a good outline for one. From what I can see you've put alot of good thought into this before you started writing, and that's one of the biggest keys to success in any book.
:Your style and structure both appear to be good, and if you want to apply this to other books you certainly have my blessing. I dont know if i will be able to contribute to this book much, but I can certainly help serve as an editor and a proof-reader. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 14:36, 5 March 2007 (UTC)
::SB Johhny, Whiteknight - The point was asking for a review of two things - not so much the contents of the outline, but more the structure and to a certain extent style. What I'm looking for in the review is feedback about specific pros and cons of the outline and style I'm using.
::For example, I start with a template that gives the reader the ability to navigate from any page to any other page to browse the book. Is this good, or is it wasteful of wikibooks resources since each book will have its own navigation template?
::Then on the cover page, there is a picture with its credit below. Of course it's licensing is correct - public domain, cc, or gnu, etc. The purpose of it is to provide an appealing cover picture like you have in real books. But is it a waste of space?
::The table of contents follows a pattern:
::1. Acknowledgements Image:00%.png
::2. Introduction Image:00%.png
::3. chapter Image:00%.png
:::1. section
:::2. section
::4. chapter Image:00%.png
:::1. section
:::2. section
:::3. section
::: ...
::30. Conclusion Image:00%.png
::31. References Image:00%.png
::32. Index Image:00%.png
::33. Glossary Image:00%
::34. Appendix A - appendix Image:00%.png
::35. Appendix B - appendix Image:00%.png
::36. Appendix C - appendix Image:00%.png
::37. Appendix D - appendix Image:00%.png
::External links and resources
::Indirectly I was fishing for some constructive criticism that would help me answer a few questions 1) I believe there is benefit in not numbering the chapter and section file names so that one can insert a chapter between two existing chapters or sections. Is there a reason why some people prefer to do it in a rigid matter by including numbers in the chapter and section names? 2) I believe there is a need for all the references in the book to be together in a reference chapter so that they can be referred to within the whole book rather than in one chapter or section at a time, but wikibooks seem to force you into the footnote style with the available tools. Are there tools to collect references into one chapter? 3) I believe an Index is a good thing so that a user can find a section from a list of topics. Are there tools that can help build an index? It's nice to hyperlink the online version, but how do we reference from a key term to a module number inside the book? 4) I believe a glossary is great for people to understand unfamiliar terms. If the book is printed out, hyperlinks can't be counted on. But nevertheless, there should be a table of acronyms and common terms to define them in the context of this book. 5) Is there a page that has all the copyright/copyleft that creates a chapter within a book so that when it's printed out, it's part of the book? 6) Is there a way to letter chapters instead of numbering them with the # sign. My appendix names include the alphabet letter, which keeps me from re-ordering them later.
::Whiteknight, I shamelessly applied the same structure to the book [[CCNA_Certification]]. I've provided an outline that covers most of what's needed to cover for the two exams. But it's open so that if I've left out a topic, it can be inserted. Also, IMHO, it looks much more appealing as a book and will hopefully attract some help to fill-in the topics. My next plans are to provide links to Wikipedia for each chapter. And in Wikipedia, I will put references back to his book. Hopefully, with a little guidance, the book will come to being by osmosis and bring some technical Wikipedians into Wikibooks. By the way, since Wikipedia is open source, I should be able to heist entire more or less stable articles of information and de-wikify them and include transitions to help create the book. Please let me know if I've destroyed [[CCNA_Certification]]. It looks like the project was abandoned and the structure was such that another person could not easily come in and move things around if they needed.[[User:kgrr|<span style="background: lightblue"> kgrr</span >]] [[User talk:kgrr|<sup><b>talk</b></sup>]]15:38, 7 March 2007 (UTC)
== [[Wikibooks:Featured books]] project pages ==
[[User:Robert Horning]] has created a new [[WB:FBN|nominations page]] for good books, and I've updated the text of [[Wikibooks:Featured books]] and [[Wikibooks:Good books]] to point to it. I have changed [[Wikibooks:Good books]] from being a wikiproject to being a proposed guideline.
Now, if you find a good book that you think warrants some kind of recognition, you can nominate it at [[WB:FBN]]. It will run similarly to a VfD discussion, only more positive. Everybody should take a look at these pages and see what's going on. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 22:40, 6 March 2007 (UTC)
== Book about using Wikibooks ==
I'd like to propose a book about using Wikibooks. This book would progress along the same lines that Wikibookians progress:
* The Wikibook Reader
** What Wikibooks is for
** What you can do with a Wikibook
** Solicit reader feedback on the this book's talk page.
* The Wikibook Editor
** How to contribute
** Be bold
** Copyright Policies
** The Advantages of Registering
** Markup help
** Communicating with other Wikibookians
* The Wikibook Writer
** What is Wikibooks, What it is not
** The Sandbox
** Starting a new book
** Naming conventions
** Moving Pages
** Uploading Images
* The Wikibook RC Patroller
** What is an RC Patroller?
** Reverting non-productive edits
** How to report vandalism
** How to fight vandalism (be gentle, assume good intentions unless it's pretty obvious)
* The Wikibook Administrator
** Becoming and Admin
** Importing
** Deleting
** Blocking Users
This could continue, but I think I've sufficiently fleshed out the general idea, and I'm beginning to get out of the area with which I am fairly familiar. This would be a book that would be read linearly - the longer a person hangs out here, the more of this book he (or she) would need and (presumably) read. It always takes you to the next step, and it's all organized in one convenient place instead of scattered about in various help pages, policy pages, etc. Thoughts? -- [[User:Jomegat|Jim Thomas]] 01:46, 14 March 2007 (UTC)
:There was some significant amount of discussion in the past that the entire [[Help:Contents|help namespace]] should be converted into a book. One of the best reasons that was presented for this was that a "help book" would have the added benefit of leading by example. Ie, the help book itself would be a good template for future books to follow. What you are proposing is a very similar idea (if not identical) to the idea of a help book, and if you started it, i would certainly have alot to contribute. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 02:07, 14 March 2007 (UTC)
::OK, I started one. You can find it at [[Using Wikibooks]]. I axed the RC Patroller chapter from the get-go, though if someone else thinks it merits its own chapter, I obviously can't stop you from adding it. Perhaps that belongs in The Wikibook Editor chapter. -- [[User:Jomegat|Jim Thomas]] 02:40, 14 March 2007 (UTC)
::I actually like the idea, however, of writing what amounts to be an entire bookshelf of Wikibooks about editing and working with Wikibooks content. I did get into a major argument with some individuals who felt that any content related to editing or moderating (aka admin stuff) ought to fall completely within the "Help" namespace. I disagree here. I think there is clear room for such books, which is one of the reasons I started [[MediaWiki Administrator's Handbook]]. I even got into a minor edit war here where another user moved this admin handbook to the Help space, and I moved it back to the main namespace.
::Another book is [[Help:MediaWiki Developer's Handbook]], which was I should note another book that was in the main book namespace and then moved, without discussion, into the Help namespace. This is clearly a stand-alone book and does not really need to fit with something in a completely different namespace. In both of these cases, they also don't have to apply strictly to Wikibooks users.
::As far as what to put into the Wikibooks Help namespace: I would like to see things like "how to create a Wikibook" or "Common mistakes of a new Wikibookian". There is plenty of content that could be added that would be of a general nature that wouldn't necessarily be a book. I don't think these pages ought to be so restricted or even so formal.
::Also, it is a pet peeve of mine to take several books and combine them into one mega book (like the [[Programming]] Wikibook) when the only real unifying theme is just that they are all related topics. One of the problems I have with the Meta help pages is that they are so dogmatic and structured that the creativity for going beyond those basic structures is nearly lost. It was also very, very difficult to localize to a specific project, particularly when it was mirrored. This was just a few of the reasons I created the VfD to remove that content when it was mirrored here. I'm not saying that there isn't useful stuff on the Meta help pages, but we can do something very different here. Because "Help" is indeed a seperate namespace, I don't think the normal restrictions of being a textbook would necessarily need to apply here. --[[User:Robert Horning|Rob Horning]] 02:51, 14 March 2007 (UTC)
:::The help namespace, in my opinion, should likely only be used to point people in the direction of more appropriate discussions on the topics. For instance, the help namespace could contain some general rules and basic distillations of policy documents (don't vandalize, etc), while pointing interested readers to the full-text of those documents. Meta already contains a large number of help documents explaining mediawiki including development and administration. However, what meta does not have, is a book on either of those subjects. Help books serve a number of valuable purposes:
:::#Can serve as an example of what a good book should be, not just a description of such.
:::#Can provide a narrative, and a concerted effort to teach the subject, not just present the material in a list or an article.
:::#Enable help materials to be found through a normal wiki search, without having to update your preferences to include the help namespace (which many users in need of help won't know how to do anyway).
:::I think that the following things need to happen:
:::*The new [[Using Wikibooks]] book needs to remain in the main namespace, and be placed on a normal bookshelf (likely the computer software bookshelf).
:::*The MediaWiki Developer's Handbook needs to be moved out of the help namespace, and placed on a normal bookshelf.
:::*The [[MediaWiki Administrator's Handbook]] needs to be put on the same bookshelf as the above two, and not moved to the help namespace.
:::*All three books listed above should be collaborative, that is that they should contain appropriate cross-links where needed.
:::*The current help pages should be mined for information to be used in these three books, and links should be made from the help pages to these books, where needed.
:::If nobody else does it today, i'm going to move the developers handbook out of the help namespace sometime later, and we can get to work on this project full-steam. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 15:12, 14 March 2007 (UTC)
:Someone should finish merging [[MediaWiki Administrator's Handbook]] with [[A Wikimedia Administrator's Handbook]]. Most of it has been done already. I've been meaning to get onto it but I probably won't have the time this week. [[User:Garrett|Garrett]]<sup>[[User talk:Garrett|Talk]]</sup> 19:50, 16 March 2007 (UTC)
== [[Wikibooks:Resolving disputes]] ==
The dispute resolution / resolving disputes policy has been discussed in the past and progress has recently stagnated. Please voice your opinions regarding any changes to the policy on its [[Wikibooks talk:Resolving disputes|talk page]] or be bold and make changes to the text directly. This policy is the first step in developing several other policies including the [[Wikibooks:Editorial board]], [[WB:RFC]], and [[Wikibooks:Arbitration Committee]] and needs to be approved before other progress can occur. There's no point in discussing matters like arbitration if the community doesn't include them in the dispute resolution process. If you disagree or support something, make it known on the resolving disputes page so we can set up a chain of positive updates to our policy system. Thanks. -[[User:Withinfocus|<span style="color:#000000">'''within'''</span>]][[User talk:Withinfocus|<span style="color:#7A7A7A">'''focus'''</span>]] 12:37, 16 March 2007 (UTC)
: Arbitration was removed from resolving disputes, because everything else was a far as people could agree on. I think the resolving disputes proposal should be market as rejected. The decision making policy is the first step in making decisions and how to resolve disputes. There is also a Unstable branch of the Decision making policy which has stagnated too. I believe that would be the better place to reflect the need to be civil and suggestions of mediation when a decision making process has stagnated. I think the editorial board is no longer trying to be a way to resolve disputes and is instead trying to focus efforts to deal with ways to prepare textbooks for publishing in print and related issues. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[Image:Yin yang.svg|12px]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 14:18, 16 March 2007 (UTC)
::I definitely disagree. A policy such as Revolving disputes cannot be rejected as I see it; it's an essential process here. This matter has to be solved and this page definitely covers a different process than Decision making. Decision making is quite general and covers how to achieve objectives here. Resolving disputes is a process for handling disagreements. This page still needs development and once that happens we'll mark it as enforced. -[[User:Withinfocus|<span style="color:#000000">'''within'''</span>]][[User talk:Withinfocus|<span style="color:#7A7A7A">'''focus'''</span>]] 19:40, 16 March 2007 (UTC)
== Translating books into bangla language ==
Hi,
I'm a user of Wikipedia and trying to contribute with the project. The Wikibooks project has attracted my attention and I would love to translate a few of the books into Bangla language, so that the people of Bangla language can be benefited.
Would you please inform me more about this?? I would appreciate your any comment.
Thank you,
Sheikh Tuhin
sheikhtuhin@yahoo.com
:There is a wikibooks project for bangla: http://bn.wikibooks.org. If you want to write books in bangla, you can write them and host them on that project. If you would like to translate books from our project onto that project, you can certainly do that too without requiring any extra permission! --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 20:24, 29 March 2007 (UTC)
== Wikibooks ==
If I wanted to upload screenshots of the Wikibooks website for use in the [[Using Wikibooks]] book, would i be allowed to do this? Is the website interface copyrighted in any way that would prohibit use of screenshots being used in this way? And if not, what copyright tag would be affixed to such screenshots? Thanks. [[User:Urbane User|<span style="color:black"><b>Urbane User</b></span>]] [[User talk:Urbane User|<span style="color:green"><small>(Talk)</small></span>]] [[Special:Contributions/Urbane_User|<span style="color:green"><small>(Contributions)</small></span>]] 13:47, 31 March 2007 (UTC)
:I think it depends what browser you are using. The folks at [[commons:Commons:Village Pump|the Commons Village Pump]] would probably be able to explain it all a lot better than I can. --[[User:SBJohnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color:green">talk</span>]]</sup> 13:56, 31 March 2007 (UTC)
== Auto category ==
Just thought I might mention the Book category template. It is used for saying that a module of a book (say Foo/SomeModule) belongs in a category.
<s><nowiki>{{Book category|Foo}}</nowiki> is equivalent to <nowiki>[[Category:Foo|{{SUBPAGENAME}}]]</nowiki>, which avoids every module getting indexed under the same letter 'F'.</s> The main usage is to categorise all the modules of a given book. Just say <nowiki>{{Book category}}</nowiki> and your module Foo/Module will be placed in category Foo under 'M' for Module. -- [[User:Kowey|Kowey]] 14:00, 18 February 2007 (UTC)
:That's a hot template. Is it new, or is it old? I've certainly never heard of it (but I haven't heard of everything, I'm sure). Either way, it's good to have a template for this, so that our categories can be sorted properly. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 01:27, 19 February 2007 (UTC)
::It's pretty new. I made it for [[Haskell]] and thought it might be useful for the community. Another template which might be interesting is the <nowiki>{{Specific book stub}}</nowiki>, more of a meta-template which you can use to make templates like <nowiki>{{Haskell stub}}</nowiki> -- [[User:Kowey|Kowey]] 09:54, 19 February 2007 (UTC)
:Whoops! I've renamed it from Book category to Auto category to communicate its generality. Could somebody please bot-replace all Book category and Module category by Auto category? -- [[User:Kowey|Kowey]] 14:27, 20 February 2007 (UTC)
::Anyone took action on this ? --[[User:Panic2k4|Panic]] 23:53, 23 March 2007 (UTC)
== Adding [[meta:WikiCharts|WikiCharts]] to en.wikibooks ==
A very interesting tool has been added to the Wikimedia tool server which attempts to calculate page access (not page editing) statistics. It involves partially modifying the [[Special:Allmessages|System messages]] for this project, particularly for the javascript that is used to generate each of these pages.
It does this at a small cost of aditional HTML code that is appended onto each page as it is generated, which makes a quick http request to the tool server for counting stats. This is certainly more efficient than the typical 3rd party image links usually used for stat counting, and it is done entirely within Wikimedia projects in this case.
My question here is if this is something we would like to add to Wikibooks or not. The stats certainly are something interesting, and it would be able to help us to determine if some of our content reorganization efforts are actually having any impact with those who come and stop by to read some Wikibooks content. Until this tool has been available, we havn't been able to obtain these stats as the MediaWiki stat counter has been turned off. --[[User:Robert Horning|Rob Horning]] 14:47, 16 March 2007 (UTC)
:Does it monitor every page access or we can select what pages we wish to generate a "readers" chart ? --[[User:Panic2k4|Panic]] 18:17, 16 March 2007 (UTC)
:If we can use this for the new [[Wikibooks:Top Active]] instead of using [http://stats.wikimedia.org third-party tools] I would be for it. -[[User:Withinfocus|<span style="color:#000000">'''within'''</span>]][[User talk:Withinfocus|<span style="color:#7A7A7A">'''focus'''</span>]] 19:44, 16 March 2007 (UTC)
::What this does is create a log entry for each time the page is accessed. Keep in mind that the '''Top Active''' pages were what pages have been edited the most.... which is a completely different topic. I think there is a role for both pieces of information. This does monitor every page that is accessed, and perhaps as importantly, it is automated so there is no need for any particular user to have to manually edit or scan the stats. The only draw back right now is that the code base for analyzing the stats is still considered experimental. For more details, go to the WikiCharts page that even has an active demo for en.wikiversity and wn.wikipedia. --[[User:Robert Horning|Rob Horning]] 22:02, 16 March 2007 (UTC)
:::Top Active does not have to represent most edits necessarily. It can simply show the most accessed. -[[User:Withinfocus|<span style="color:#000000">'''within'''</span>]][[User talk:Withinfocus|<span style="color:#7A7A7A">'''focus'''</span>]] 00:20, 17 March 2007 (UTC)
:Sounds good to me. It would remove a lot of supposition by providing measurement. [[User:Webaware|Webaware]] <sup>[[User_talk:Webaware|talk]]</sup> 22:29, 16 March 2007 (UTC)
== Something worth imitating? ==
Commons now has the following appearing on their uploads page:
<big><big>It's all about freedom</big></big>
All users of files found on Wikimedia Commons must be given the Four Freedoms:
<div style="float:right;margin-right:0.5em;"><imagemap>
Image:Definition of Free Cultural Works logo notext.svg|75px|Free Culure
rect 0 0 220 220 [[Commons:Licensing]]
desc none
</imagemap></div>
# The freedom to '''use and perform''' the work.
# The freedom to '''study the work and apply the information'''.
# The freedom to '''redistribute copies'''.
# The freedom to '''distribute derivative works'''.
''(From the [http://freedomdefined.org/Definition Definition of Free Cultural Works], inspired by the [http://www.gnu.org/philosophy/free-sw.html Free Software Definition].)''
Traditional copyright law does ''not'' grant these freedoms, and unless noted otherwise, everything you find on the web (including book covers, screenshots, logos, promotional photos, and so on) is copyrighted and '''not permitted here.''' Please only upload files that are in the public domain (author died more than 70 years ago), or those which are explicitly covered by a license which grants the Four Freedoms. See [[Commons:Licensing|the list of acceptable licenses]].
For works which are your own, please use one of the recommended licensing options below ("Own work").
Maybe something like that yould be good for the text appearing on the edit pages here as well? --[[User:SBJohnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color:green">talk</span>]]</sup> 14:32, 17 March 2007 (UTC)
:It is interesting that the text on the bottom of the edit page (it can be modified [[MediaWiki:Copyrightwarning|using this page]]) has been modified substantially by each one of the Wikimedia projects. In fact, Wikibooks has been rather tame and timid in what has been put in here, with only three edits at all from the default, and the default text is nearly identical.
:This is something that certainly can be modified, and there is nothing "sacred" here to keep anybody from editing this content just like any other page on this Wiki. The only difference is that it will appear on the bottom of every page when it is edited.
:I would suggest that any changes try to stay relatively short and get to the point that Wikibooks expects all contributions to be under the GFDL, and that they can also be revised by other Wikibookians. Still, the idea to express some general principles about free/open content development is something that certainly new users ought to be made aware of. --[[User:Robert Horning|Rob Horning]] 15:56, 17 March 2007 (UTC)
::We've updated a few of the mediawiki pages lately, but not so much on that one. I like something along those lines as it goves a more positive explanation of what the contributions mean, the current text seems a bit surly. I do think we could almost just copy that wholesale for our upload dialogue, though actually I'd like to include something there about uploading to commons as a normally better alternative (since presumably some books might get translated to other language wikis someday). --[[User:SBJohnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color:green">talk</span>]]</sup> 16:22, 17 March 2007 (UTC)
:Some projects I think include text above every edit box as well. I think these principals would be better to be placed above then below. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[Image:Yin yang.svg|12px]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 17:13, 17 March 2007 (UTC)
::That would be fine too.--[[User:SBJohnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color:green">talk</span>]]</sup>
== Special Statistics... ==
[[Special:Statistics]] says there is only 25,000 page views, but according to the other data this is not possible. Is this a bug? --[[User:Remi0o|Remi]] 22:59, 17 March 2007 (UTC)
:Yup... I forget why, but I'm pretty sure whatever the problem is isn't going to be fixed (the page view tracking was turned off for some reason). --[[User:SBJohnny|<span style="color:green">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color:green">talk</span>]]</sup> 23:18, 17 March 2007 (UTC)
:Keep in mind that the MediaWiki software has a feature to count page views and do other sorts of statistical analysis. On some MediaWiki implementations this "feature" is still turned on, but for Wikimedia projects it was determined that this page count chewed up so much CPU bandwidth (and just as importantly, required a hard drive write request to update the counter) that this feature was turned off. For almost all Wikimedia projects this number is zero, but Wikibooks was one of those projects that is old enough that it was turned on for some of the early history of this project. The 25,000 page views reflects this statistical counting from about the first six months of people using Wikibooks.
:It is highly unlikely this feature will be turned back on again, even though all that needs to be done is for a Wikimedia developer to edit one line in the configuration file for this project. The arguments for keeping this feature off are just as valid as what they were when the decision was made to turn off this feature. If there is sufficient demand we could make a bugzilla request to turn the page counts back on, but I'm against the idea and I think there would be some considerable opposition among the developers as well. --[[User:Robert Horning|Rob Horning]] 16:44, 18 March 2007 (UTC)
::I'd like to see the reporting of that number and all that are based on it turned off too then. It's disheartening to read that there are "0.03 views per edit." -- [[User:Jomegat|Jim Thomas (aka Jomegat)]] 18:46, 18 March 2007 (UTC)
== Integrating Imported Material into an existing chapter ==
I have just imported the Wikipedia [[w:Barter|Barter]] article into [[Transwiki:Barter|transwiki space]], and now I need to cut it way down and add major portions of it to an existing chapter. Is there a way to do that? How do I merge the histories? The only thing I can think of is to chop it down to what I want and transclude it in the existing chapter, but that is such an inelegant way to proceed that I can ''almost'' not bear to do it. Is there a better way? -- [[User:Jomegat|Jim Thomas (aka Jomegat)]] 01:08, 21 March 2007 (UTC)
:There is a better way to do it, although i admit that I can't quite remember how to go about doing it. If i remember correctly, it involves deleting the page, and then undeleting it, or something. Ask SBJohnny. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 01:19, 21 March 2007 (UTC)
:For admins, I would recommend reading [[MediaWiki Administrator's Handbook/Page Deletion#Merging page histories]]. The only real problem I see about merging page histories is that it messes up the history of the combined pages, where it is difficult (I would say virtually impossible) to sort out what page edit was from what earlier page. This is a shortcoming of the MediaWiki software, but at least you can give credit to all of the authors who might have been involved with the content in this manner, and see exactly what they did add to the edit history.
:For non-admins, I would recommend that you combine the text and reorganize the content to what you think the final version of the merged pages should look like, and then make a request on [[Wikibooks:Administrators' noticeboard]] to perform the actual page merger. Indicate what pages should be merged together together with what version should be left after all of the pages are merged together. --[[User:Robert Horning|Rob Horning]] 00:33, 22 March 2007 (UTC)
::On a similar note, is it possible to use transclusion and/or substitution from another Wiki? For example the [[CCNA Certification]] book can "inherit" a lot of text from Wikipedia. It would be very useful to have a living book that is updated by Wikipedia. [[User:Kgrr|Kgrr]] 15:50, 30 March 2007 (UTC)
:::unfortunately, it just isnt possible to transclude from one project to the other. Wouldn't it be great if you could? Besides importation, there really isnt any other good way to do this kind of stuff. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 18:01, 30 March 2007 (UTC)
== [[Algebra]] and merger ==
I know that Whiteknight is more directly involved with the reorganization of this Wikibook, but I would like to point out that we shouldn't lose the history of this book if possible. I mean, this was a Collaboration of the Month project (featured on main page), and there certainly were many contributors to this project whose contributions should not be left unnoticed.
What I'm asking here is that whoever is going to take on this task of deleting these pages, that I'm recommending that we do a full page merger to preserve the edit history of these pages, through the process of deleting both pages and merging them together through page moves.... to where ever the pages have been copied to ultimately. I know this is a tedious process, and sometimes the pages don't always fit together in a smooth fashion. But this is a better way to deal with full book mergers than simply ignoring the previous contributions. I mention this here because I don't think I have the time available to completely make this merger myself, and I don't want to have this half-way done either. I'm certainly willing to help out and do this for some of the pages, but I'd like to get some coordination and assistance from some other admins in this process as well. If we can map out what pages need to be merged and where, that would also be very useful. I would encourage the coordination to occur on [[Talk:Intermediate Algebra]]. --[[User:Robert Horning|Rob Horning]] 10:06, 23 March 2007 (UTC)
:So far in this project, what I have done is moved pages with good content to more appropriate places, and deleted unnecessary pages that contained little or no content. The problem with the [[Algebra]] book that I wanted to correct, was that it was a mishmash of unrelated and unorganized topics that loosely related to algebra. In general, considering the poor state of [[Algebra]] currently, I dont think much merger needs to happen. So many pages from [[Intermediate Algebra]] could simply be moved to the "Algebra/" namespace because there are no conflicting pages in the destination book to require a merger. By my count there are only 11 pages in the [[Algebra]] book, compared to at least 16 subjects listed on the TOC without an associated page. Even with a worst-case scenario, we are only merging page histories on 11 pages, and there is a possibility that many of these pages originated as forks and dont need to be merged like this.
:I may have some time this afternoon to work on this project, god knows I've let it sit unfinished for long enough. After about 2pm EST I should be getting to work on it. Anybody who wants to join in the fun is more then welcome. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 13:12, 27 March 2007 (UTC)
:Actually, I'm not going to do any work on this today. There appears to be some confusion over what precisely is going to happen. I had proposed that the [[Intermediate Algebra]] book be merged into the [[Algebra]] book. Apparently, one of the active editors of the [[Intermediate Algebra]] book has proposed precisely the opposite thing, and has nominated the [[Algebra]] book for deletion. We need to resolve this disagreement before we can start doing any work. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 13:38, 27 March 2007 (UTC)
::Fair enough. This is a complex enough task, and I feel hesitant to delete a "book of the month" winner, even if that quality has been passed up by another book on the same topic. Thanks. When the decision is resolved on the merger, or if the merger is called off, let me know. --[[User:Robert Horning|Rob Horning]] 00:24, 28 March 2007 (UTC)
:::It's my opinion that the content and structure of the [[Intermediate Algebra]] book should likely be kept, but the whole book should be moved to the [[Algebra]] namespace. A simple name like "algebra" will be much easier for people to find in a search, and it reduces the inclination for people to draw arbitrary distinctions between algebra material that is "intermediate", "basic", or "advanced". If the authors of the book do decide to delineate material in this manner, they can do it internally to the book, and not create 3 or more books on the same subject. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 00:36, 28 March 2007 (UTC)
== about Wikibooks navigation header and float bars ==
I have lost the post/thread about this subject. Does anyone know or can give me some input why the float bar states some projects that even if active should be stated on the header bar as they are not useful for "most" or all users, there is also a duplication of the Donations link and the header bar gives only information on the privacy policy and misses the opportunity to link to a pages that provides a general information of site policies and guidelines. (I remember that someone on the post stated that it would take some time for the update) [http://en.wikibooks.org/wiki/Image:WikibooksNav.png#Summary see me (image)] Txs. --[[User:Panic2k4|Panic]] 02:40, 27 March 2007 (UTC)
:Well i'm not entirely sure what you are talking about here. What skin are you using? different skins have links in different places, and i'm not entirely sure what links you are talking about. I only see one "Donations" link on my page, no duplicates. Also, the privacy policy is a pretty important thing, and we shouldnt remove any links to it. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 13:16, 27 March 2007 (UTC)
::I have included an image (see above). The skin used is Classic. I tested all default skins, the Simple skin doesn't even have the Donations link, Cologne Blue has more or less the same problems as indicated on the Classic, the Chick, MonoBook and Nostalgia seem ok (no duplication). --[[User:Panic2k4|Panic]] 17:54, 27 March 2007 (UTC)
9dvg4682sdr2b0kq8gt421k0qckxxiy
Aros/User/Applications
0
237399
4640100
4639719
2026-06-13T14:42:17Z
Jeff1138
301139
4640100
wikitext
text/x-wiki
==Introduction==
[[#Graphical Image Editing Art]]
[[#Office Application]]
[[#Audio]]
[[#Misc Application]]
[[#Games & Emulation]]
[[#Application Guides]]
[[#top|...to the top]]
[[#top|...to the top]]
Most apps can be opened on the Workbench (aka publicscreen pubscreen) which is the default display option but can offer a custom one set to your configurations (aka custom screen mode promotion). These custom ones tend to stack so the possible use of A-M/A-N method of switching between full screens and the ability to pull down screens as well
If you are interested in creating or porting new software, see [http://en.wikibooks.org/wiki/Aros/Developer/Docs here]
{| class="wikitable sortable"
|-
!width:30%;|Internet Applications
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1 (68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Web Online Browser [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=network/browser Odyssey 2.0], [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1175&highlight=odyssey&rowstart=100 Odyssey 3.0],
|<!--Amiga OS-->[https://aminet.net/comm/www Amelinium], [https://blog.alb42.de/programs/amifox/ amifox] with [https://github.com/alb42/wrp wrp server], IBrowse*, Voyager*, [https://github.com/amigazen/aweb3/ AWeb 3.6 src], [https://github.com/matjam/aweb AWeb Src], [http://aminet.net/package/comm/www/NetSurf-m68k-sources Netsurf], [],
|<!--AmigaOS4-->[ Odyssey OWB], [ Timberwolf (Firefox port 2011)], [http://amigaworld.net/modules/newbb/viewtopic.php?forum=32&topic_id=32847 OWB-mui], [http://strohmayer.org/owb/ OWB-Reaction], IBrowse*, [http://os4depot.net/index.php?function=showfile&file=network/browser/aweb.lha AWeb], Voyager, [http://www.os4depot.net/index.php?function=browse&cat=network/browser Netsurf],
|<!--MorphOS-->Wayfarer, [http://fabportnawak.free.fr/owb/ Odyssey OWB], [ Netsurf], IBrowse*, AWeb, [],
|-
|<!--Sub Menu-->YouTube Viewing and downloading videos
|<!--AROS-->Odyssey 2.0 can show Youtube webpage, [https://blog.alb42.de/amitube/ Amitube],
|[https://blog.alb42.de/amitube/ Amitube], [https://github.com/YePpHa/YouTubeCenter/releases or this one],
|[https://blog.alb42.de/amitube/ Amitube], getVideo, Tubexx, [https://github.com/walkero-gr/aiostreams aiostreams],
|[ Wayfarer], [https://blog.alb42.de/amitube/ Amitube],Odyssey (OWB), [http://morphos.lukysoft.cz/en/vypis.php?kat=5 getVideo], Tubexx
|-
|<!--Sub Menu-->E-mailing SMTP POP3 IMAP based
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=network/email SimpleMail], [http://sourceforge.net/projects/simplemail/files/ src], [https://github.com/jens-maus/yam YAM]
|<!--Amiga OS-->[http://sourceforge.net/projects/simplemail/files/ SimpleMail], [https://github.com/jens-maus/yam YAM]
|<!--AmigaOS4-->SimpleMail, YAM,
|<!--MorphOS--> SimpleMail, YAM
|-
|<!--Sub Menu-->IRC
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=network/chat WookieChat], [https://sourceforge.net/projects/wookiechat/ Wookiechat src], [http://archives.arosworld.org/index.php?function=browse&cat=network/chat AiRcOS], Jabberwocky,
|<!--Amiga OS-->Wookiechat, AmIRC
|<!--AmigaOS4-->Wookiechat
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=5 Wookiechat], [http://morphos.lukysoft.cz/en/vypis.php?kat=5 AmIRC],
|-
|<!--Sub Menu-->Instant Messaging IM like [https://github.com/BlitterStudio/amidon Hollywood lang based Mastodon client], BlueSky AT protocol, Facebook(TM), Twitter X (TM), Bitlbee IRC Gateway and others
|<!--AROS-->[https://github.com/kaffeine1/telegram-amiga telegram-amiga], [http://archives.arosworld.org/index.php?function=browse&cat=network/chat jabberwocky],
|<!--Amiga OS-->[http://amitwitter.sourceforge.net/ AmiTwitter], CLIMM, SabreMSN, jabberwocky,
|<!--AmigaOS4-->[http://amitwitter.sourceforge.net/ AmiTwitter], SabreMSN,
|<!--MorphOS-->[http://amitwitter.sourceforge.net/ AmiTwitter], [http://morphos.lukysoft.cz/en/vypis.php?kat=5 PolyglotNG], SabreMSN,
|-
|<!--Sub Menu-->Torrents
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=network/p2p ArTorr],
|<!--Amiga OS-->
|<!--AmigaOS4-->CTorrent, Transmission
|<!--MorphOS-->MLDonkey, Beehive, [http://morphos.lukysoft.cz/en/vypis.php?kat=5 Transmission], CTorrent,
|-
|<!--Sub Menu-->FTP
|<!--AROS-->Plugin included with Dopus Magellan, MarranoFTP,
|<!--Amiga OS-->[http://aminet.net/package/comm/tcp/AmiFTP AmiFTP], AmiTradeCenter, ncFTP,
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=5 Pftp], [http://aminet.net/package/comm/tcp/AmiFTP-1.935-OS4 AmiFTP],
|-
|<!--Sub Menu-->WYSIWYG Web Site Editor
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Internet Radio Streaming Audio [http://www.gnu.org/software/gnump3d/ gnump3d], [http://www.icecast.org/ Icecast2] Server (Broadcast) and Client (Listen), [ mpd], [http://darkice.sourceforge.net/ DarkIce], [http://www.dyne.org/software/muse/ Muse],
|<!--AROS-->Mplayer (Icecast Client only),
|<!--Amiga OS-->[https://github.com/sandlbn/TuneFinder TuneFinder C Src], [https://github.com/sandlbn/TuneFinderMUI TuneFinderMUI], [http://amigazeux.net/anr/ AmiNetRadio], [], [],
|<!--AmigaOS4-->[http://www.tunenet.co.uk/ Tunenet],
|<!--MorphOS-->Mplayer, AmiNetRadio,
|-
|<!--Sub Menu-->VoIP (Voice over IP) with SIP Client (Session Initiation Protocol) or Asterisk IAX2 Clients Softphone (skype like)
|<!--AROS-->
|<!--Amiga OS-->AmiPhone with Speak Freely,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Weather Forecast
|<!--AROS-->[http://sourceforge.net/projects/zunetools/files/ WeatherBar], [http://archives.arosworld.org/index.php?function=browse&cat=utility/workbench AWeather], []
|<!--Amiga OS-->[http://amigazeux.net/wetter/ Wetter], [https://github.com/emartisoft/AmiWeatherForecasts AmiWeatherForecasts src],
|<!--AmigaOS4-->[http://os4depot.net/?function=showfile&file=utility/workbench/flipclock.lha FlipClock],
|<!--MorphOS-->[http://amigazeux.net/wetter/ Wetter],
|-
|<!--Sub Menu-->Street Road Maps Route Planning GPS Tracking
|<!--AROS-->[https://blog.alb42.de/programs/muimapparium/ MuiMapparium] [https://build.alb42.de/ Build of MuiMapp versions],
|<!--Amiga OS-->AmiAtlas*, UKRoutePlus*, [http://blog.alb42.de/ AmOSM],
|<!--AmigaOS4-->
|<!--MorphOS-->[http://blog.alb42.de/programs/mapparium/ Mapparium],
|-
|<!--Sub Menu-->Clock and Date setting from the internet (either ntp or websites) [https://www.timeanddate.com/worldclock/ World Clock], [http://www.time.gov/ NIST], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=network/misc ntpsync],
|<!--Amiga OS-->ntpsync
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Newsgroups
|<!--AROS-->
|<!--Amiga OS-->[http://newscoaster.sourceforge.net/ Newscoaster], [https://github.com/jens-maus/newsrog NewsRog], [ WorldNews],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
==Graphical Image Editing Art==
{| class="wikitable sortable"
|-
!width:30%;|Image Editing
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Pixel Raster Artwork [https://github.com/LibreSprite/LibreSprite LibreSprite based on GPL aseprite], [https://github.com/abetusk/hsvhero hsvhero], [],
|<!--AROS-->[https://sourceforge.net/projects/zunetools/files/ZunePaint/ ZunePaint], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit LunaPaint], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit GrafX2], [ LodePaint needs OpenGL],
|<!--Amiga OS-->[http://www.amigaforever.com/classic/download.html PPaint], GrafX2, [https://github.com/grovdata/Amiga_Sources/blob/master/software.md DeluxePaint], [http://www.amiforce.de/perfectpaint/perfectpaint.php PerfectPaint], Zoetrope, Brilliance2*,
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=graphics/edit LodePaint], GrafX2,
|<!--MorphOS-->Sketch, Pixel*, GrafX2, [http://morphos.lukysoft.cz/en/vypis.php?kat=3 LunaPaint]
|-
|<!--Sub Menu-->Image viewing
|<!--AROS-->[http://sourceforge.net/projects/zunetools/files/ ZuneView], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer LookHere], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer LoView], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer PicShow] , [http://amigaworld.net/modules/newbb/viewtopic.php?mode=viewtopic&topic_id=31400&forum=32&start=80&viewmode=flat&order=0#583458 Picture Album],
|<!--Amiga OS-->PicShow, PicView, Photoalbum,
|<!--AmigaOS4-->WarpView, PicShow, flPhoto, Thumbs, [http://amigaworld.net/modules/newbb/viewtopic.php?mode=viewtopic&topic_id=31400&forum=32&start=80&viewmode=flat&order=0#583458 Picture Album],
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=3 ShowGirls], [http://amigaworld.net/modules/newbb/viewtopic.php?mode=viewtopic&topic_id=31400&forum=32&start=80&viewmode=flat&order=0#583458 Picture Album]
|-
|<!--Sub Menu-->Photography retouching / Image Manipulation like Photoshop(tm)
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit RNOEffects], [https://sourceforge.net/projects/zunetools/files/ ZunePaint], [http://sourceforge.net/projects/zunetools/files/ ZuneView],
|<!--Amiga OS-->[ Tecsoft Video Paint aka TVPaint], Photogenics*, ArtEffect*, ImageFX*, XiPaint, fxPaint, ImageMasterRT, Opalpaint,
|<!--AmigaOS4-->WarpView, flPhoto, [http://www.os4depot.net/index.php?function=browse&cat=graphics/edit Photocrop]
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=3 ShowGirls], ImageFX*,
|-
|<!--Sub Menu-->Manage RAW picture folder galleries like Darktable, RAWtherapy, etc
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Graphic Format Converter - ICC profile support sRGB, Adobe RGB, XYZ and linear RGB
|<!--AROS-->
|<!--Amiga OS-->GraphicsConverter, ImageStudio, [http://www.coplabs.org/artpro.html ArtPro]
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Thumbnail Generator [],
|<!--AROS-->[http://sourceforge.net/projects/zunetools/files/ ZuneView], [http://archives.arosworld.org/index.php?function=browse&cat=utility/shell Thumbnail Generator]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Icon Editor
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/iconedit Archives], [http://archives.arosworld.org/index.php?function=browse&cat=utility/workbench Icon Toolbox],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=graphics/iconedit IconEditor]
|<!--MorphOS-->
|-
|<!--Sub Menu-->2D Pixel Art Animation
|<!--AROS-->Lunapaint
|<!--Amiga OS-->PPaint, AnimatED, Scala*, GoldDisk MovieSetter*, Walt Disney's Animation Studio*, ProDAD*, [https://github.com/historicalsource/DeluxePaint DeluxePaint src], Brilliance
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=3 Titler]
|-
|<!--Sub Menu-->2D SVG based MovieSetter type
|<!--AROS-->
|<!--Amiga OS-->MovieSetter*, Fantavision*
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Morphing
|<!--AROS-->[ GLMorph]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->2D Cad (qcad->LibreCAD, etc.)
|<!--AROS-->
|<!--Amiga OS-->Xcad, MaxonCAD
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->3D Cad like FreeCad, BRL-CAD, OpenSCAD, AvoCADo, etc. using dxf, obj (vertices), blend,
|<!--AROS-->
|<!--Amiga OS-->XCad3d*, DynaCADD*, Cycas,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->3D Model Rendering of glft (json) gbl (png jpg), usdz (USD files with materials, textures, and animations), FBX Filmbox is a proprietary Autodesk format,
|<!--AROS-->POV-Ray
|<!--Amiga OS-->[http://www.discreetfx.com./amigaproducts.html CINEMA 4D]*, POV-Ray, Lightwave3D*, Real3D*, Caligari24*, Reflections/Monzoom*, [https://github.com/privatosan/RayStorm Raystorm src], Tornado 3D
|<!--AmigaOS4-->Blender, POV-Ray, Yafray
|<!--MorphOS-->Blender, POV-Ray, Yafray
|-
|<!--Sub Menu-->3D Format Converter [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=showfile&file=graphics/convert/ivcon.lha IVCon]
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Screen grabbing display
|<!--AROS-->[ Screengrabber], [http://archives.arosworld.org/index.php?function=browse&cat=utility/misc snapit], [http://archives.arosworld.org/index.php?function=browse&cat=video/record screen recorder], []
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Grab graphics music from apps [https://github.com/Malvineous/ripper6 ripper6], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
[[#top|...to the top]]
==Office Application==
{| class="wikitable sortable"
|-
!width:30%;|Office
!width:10%;|AROS (x86)
!width:10%;|[http://en.wikipedia.org/wiki/Amiga_software Commodore-Amiga OS 3.1] (68k)
!width:10%;|[http://en.wikipedia.org/wiki/AmigaOS_4 Hyperion OS4] (PPC)
!width:10%;|[http://en.wikipedia.org/wiki/MorphOS MorphOS] (PPC)
|-
|<!--Sub Menu-->Word-processing
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=office/wordprocessing Cinnamon Writer], [https://finalwriter.godaddysites.com/ Final Writer 7*], [https://github.com/sodero/MUI-Vim/releases MUI-Vim], [ ],
|<!--AmigaOS-->[ Softwood FinalCopy II*], Haage AmigaWriter*, Digita WordWorth*, Softwood FinalWriter*, Micro-Systems Excellence 3*, Arnor Protext, Rashumon, [ InterWord], [ KindWords], [WordPerfect], [ New Horizons Flow], [ CygnusEd Pro], [ Micro-systems Scribble],
|<!--AmigaOS4-->AbiWord, [ CinnamonWriter]
|<!--MorphOS-->[ Cinnamon Writer], [http://www.meta-morphos.org/viewtopic.php?topic=1246&forum=53 scriba], [http://morphos.lukysoft.cz/en/index.php Papyrus Office],
|-
|<!--Sub Menu-->Spreadsheets
|<!--AROS-->[https://blog.alb42.de/programs/leu/ Leu], [https://archives.arosworld.org/index.php?function=browse&cat=office/spreadsheet],
|<!--AmigaOS-->[https://aminet.net/package/biz/spread/ignition-src Ignition Src 1.3], [MaxiPlan 500 Plus], [OXXI Plan/IT v2.0 Speadsheet], [ Superplan], [ Creative Developments TurboCalc], [ ProCalc], [ InterSpread], [Digita DGCalc], [ Gold Disk Advantage], [ Micro-systems Analyze!]
|<!--AmigaOS4-->Gnumeric, [https://ignition-amiga.sourceforge.net/ Ignition],
|<!--MorphOS-->[ ignition], [http://morphos.lukysoft.cz/en/vypis.php Papyrus Office],
|-
|<!--Sub Menu-->Presentations
|<!--AROS-->[http://www.hollywoood-mal.com/ Hollywood]*,
|<!--Amiga OS-->[http://www.hollywoood-mal.com/ Hollywood]*, MediaPoint, PointRider, Scala*,
|<!--Amiga OS4-->[http://www.hollywoood-mal.com/ Hollywood]*, PointRider
|<!--MorphOS-->[http://www.hollywoood-mal.com/ Hollywood]*, PointRider
|-
|<!--Sub Menu-->Databases
|<!--AROS-->[http://sdb.freeforums.org/ SDB], [http://archives.arosworld.org/index.php?function=browse&cat=office/database BeeBase],
|<!--Amiga OS-->Precision Superbase 4 Pro*, Arnor Prodata*, BeeBase, Datastore, FinalData*, AmigaBase, Fiasco, Twist2*, [Digita DGBase], [],
|<!--AmigaOS4-->BeeBase, SQLite,
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=6 BeeBase],
|-
|<!--Sub Menu-->PDF Viewing and editing digital signatures
|<!--AROS-->[http://sourceforge.net/projects/arospdf/ ArosPDF via splash], [https://github.com/wattoc/AROS-vpdf vpdf wip],
|<!--Amiga OS-->APDF
|<!--AmigaOS4-->AmiPDF
|<!--MorphOS-->APDF, vPDF,
|-
|<!--Sub Menu-->Printing
|<!--AROS-->Postscript 3 laser printers and Ghostscript internal, [ GutenPrint],
|<!--Amiga OS-->[http://www.irseesoft.de/tp_what.htm TurboPrint]*
|<!--AmigaOS4-->(some native drivers),
|<!--MorphOS-->early TurboPrint included,
|-
|<!--Sub Menu-->Note Taking markdown support like Obsidian like, joplin, OneNote, EverNotes, xournalpp, etc
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Study and analyse, collect, organize, annotate, cite, and share
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->PIM Personal Information Manager - Day Diary Planner Calendar App
|<!--AROS-->[ ], [ ], [ ],
|<!--Amiga OS-->Digita Organiser*, On The Ball, Everyday Organiser, [ Contact Manager],
|<!--AmigaOS4-->AOrganiser,
|<!--MorphOS-->[http://polymere.free.fr/orga_en.html PolyOrga],
|-
|<!--Sub Menu-->Accounting
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=office/misc ETB], LoanCalc, [ ], [ ], [ ],
|[ Digita Home Accounts2], Accountant, Small Business Accounts, Account Master, [ Amigabok],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Project Management Research
|<!--AROS-->
|<!--Amiga OS-->SuperGantt, SuperPlan,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->System Wide Dictionary - multilingual [http://sourceforge.net/projects/babiloo/ Babiloo], [http://code.google.com/p/stardict-3/ StarDict],
|<!--AROS-->[ ],
|<!--AmigaOS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->System wide Thesaurus - multi lingual
|<!--AROS-->[ ],
|Kuma K-Roget*,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Sticky Desktop Notes (post it type)
|<!--AROS-->[http://aminet.net/package/util/wb/amimemos.i386-aros AmiMemos], [https://aminet.net/package/util/wb/amimemos.src-aros AmiMemos Src], [],
|<!--Amiga OS-->[http://aminet.net/package/util/wb/StickIt-2.00 StickIt v2],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->DTP Desktop Publishing
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit RNOPublisher],
|<!--Amiga OS-->[http://pagestream.org/ Pagestream]*, Professional Pro Page*, Saxon Publisher, Pagesetter, PenPal,
|<!--AmigaOS4-->[http://pagestream.org/ Pagestream]*
|<!--MorphOS-->[http://pagestream.org/ Pagestream]*
|-
|<!--Sub Menu-->Scanning
|<!--AROS-->[ SCANdal], [],
|<!--Amiga OS-->FxScan*, ScanQuix*
|<!--AmigaOS4-->SCANdal (Sane)
|<!--MorphOS-->SCANdal
|-
|<!--Sub Menu-->OCR
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/convert gOCR]
|<!--AmigaOS-->
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos-files.net/categories/office/text Tesseract]
|-
|<!--Sub Menu-->Text Editing
|<!--AROS-->Jano Editor (already installed as Editor), [http://archives.arosworld.org/index.php?function=browse&cat=development/edit EdiSyn], [http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit Annotate], [https://archives.arosworld.org/index.php?function=browse&cat=development/edit Vim], [http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit FrexxEd] [https://github.com/vidarh/FrexxEd src], [ NoWinEd],
|<!--Amiga OS-->Annotate, MicroGoldED/CubicIDE*, CygnusED*, Turbotext, Protext*, NoWinED,
|<!--AmigaOS4-->Notepad, Annotate, CygnusED*, NoWinED,
|<!--MorphOS-->MorphOS ED, NoWinED, GoldED/CubicIDE*, CygnusED*, Annotate,
|-
|<!--Sub Menu-->Office Fonts [http://sourceforge.net/projects/fontforge/files/fontforge-source/ Font Designer]
|<!--AROS-->[ ], [ ],
|<!--Amiga OS-->TypeSmith*, SaxonScript (GetFont Adobe Type 1),
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Drawing Vector
|<!--AROS-->[http://sourceforge.net/projects/amifig/ ZuneFIG previously AmiFIG]
|<!--Amiga OS-->Drawstudio*, ProVector*, ArtExpression*, Professional Draw*, AmiFIG, MetaView, [https://gitlab.com/amigasourcecodepreservation/designworks Design Works Src], [],
|<!--AmigaOS4-->MindSpace, [http://www.os4depot.net/index.php?function=browse&cat=graphics/edit amifig],
|<!--MorphOS-->SteamDraw, [http://aminet.net/package/gfx/edit/amifig amiFIG],
|-
|<!--Sub Menu-->video conferencing (jitsi)
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->source code hosting
|<!--AROS-->Gitlab,
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Remote Desktop (server)
|<!--AROS-->[http://sourceforge.net/projects/zunetools/files/VNC_Server ArosVNCServer],
|<!--Amiga OS-->[http://s.guillard.free.fr/AmiVNC/AmiVNC.htm AmiVNC], [http://dspach.free.fr/amiga/avnc/index.html AVNC]
|<!--AmigaOS4-->[http://s.guillard.free.fr/AmiVNC/AmiVNC.htm AmiVNC]
|MorphVNC, vncserver
|-
|<!--Sub Menu-->Remote Desktop (client) login and connect to another machine
|<!--AROS-->[https://sourceforge.net/projects/zunetools/files/VNC_Client/ ArosVNC], [http://archives.arosworld.org/index.php?function=browse&cat=network/misc rdesktop],
|<!--Amiga OS-->[http://twinvnc.free.fr/index.php?menu=01&lang=eng TwinVNC], [http://dspach.free.fr/amiga/vva/index.html VVA], [http://www.hd-zone.com/ RDesktop]
|<!--AmigaOS4-->[http://twinvnc.free.fr/index.php?menu=01&lang=eng TwinVNC], [http://www.hd-zone.com/ RDesktop]
|[http://twinvnc.free.fr/index.php?menu=01&lang=eng TwinVNC], [http://www.hd-zone.com/ RDesktop]
|-
|<!--Sub Menu-->notifications
|<!--AROS-->
|<!--Amiga OS-->Ranchero
|<!--AmigaOS4-->Ringhio
|<!--MorphOS-->MagicBeacon
|-
|<!--Sub Menu-->Facial logins and fingerprint security features
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
[[#top|...to the top]]
==Audio==
{| class="wikitable sortable"
|-
!width:30%;|Audio
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Playing playback Audio like MP3, [https://github.com/chrg127/gmplayer NSF], [https://github.com/kode54/lazyusf miniusf .usflib], [], etc
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=video/play Mplayer], [ HarmonyPlayer hp], [http://www.a500.org/downloads/audio/index.xhtml playcdda] CDs, [ WildMidi Player], [https://bszili.morphos.me/ UADE mod player], [], [RNOTunes ], [ mp3Player], [],
|<!--Amiga OS-->AmiNetRadio, AmigaAmp, playOGG,
|<!--AmigaOS4-->TuneNet, SimplePlay, AmigaAmp, TKPlayer
|AmiNetRadio, Mplayer, Kaya, AmigaAmp
|-
|<!--Sub Menu-->Editing Audio
|<!--AROS-->[ Audio Evolution 4]
|<!--Amiga OS-->[ Samplitude Opus Key], [https://sourceforge.net/projects/hd-rec/ HD-Rec Src], [http://www.sonicpulse.de/eng/news.html SoundFX],
|<!--AmigaOS4-->[https://sourceforge.net/projects/hd-rec/ HD-Rec], AmiSoundED, [http://os4depot.net/?function=showfile&file=audio/record/audioevolution4.lha Audio Evolution 4]
|[http://www.hd-rec.de/HD-Rec/index.php?site=home HD-Rec],
|-
|<!--Sub Menu-->Editing Tracker Music
|<!--AROS-->[https://github.com/hitchhikr/protrekkr Protrekkr], [ Schism Tracker], [http://archives.arosworld.org/index.php?function=browse&cat=audio/tracker MilkyTracker], [http://www.hivelytracker.com/ HivelyTracker], [ Radium in AROS already], [http://www.a500.org/downloads/development/index.xhtml libMikMod],
|<!--Amiga OS-->MilkyTracker, HivelyTracker, DigiBooster, Octamed SoundStudio,
|<!--AmigaOS4-->MilkyTracker, HivelyTracker, GoatTracker
|MilkyTracker, GoatTracker, DigiBooster,
|-
|<!--Sub Menu-->Editing Music [], [https://github.com/kmatheussen/camd CAMD] and/or staves and notes manuscript
|<!--AROS-->[http://bnp.hansfaust.de/ Bars and Pipes for AROS], [ Audio Evolution], [],
|<!--Amiga OS-->[http://bnp.hansfaust.de/ Bars'n'Pipes], MusicX* David "Talin" Joiner & Craig Weeks (for Notator-X), Deluxe Music Construction 2*, [https://github.com/timoinutilis/midi-sequencer-amigaos Horny c Src], HD-Rec, [https://aminet.net/package/mus/midi/dominatorV1_51 Dominator],
|<!--AmigaOS4-->[https://sourceforge.net/p/hd-rec/code/HEAD/tree/ HD-Rec Src], Rockbeat, [http://bnp.hansfaust.de/download.html Bars'n'Pipes], [http://os4depot.net/index.php?function=browse&cat=audio/edit Horny], Audio Evolution 4,
|<!--MorphOS-->Bars'n'Pipes,
|-
|<!--Sub Menu-->Sound Sampling
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=audio/record Audio Evolution 4], [http://www.imica.net/SitePortalPage.aspx?siteid=1&did=162 Quick Record], [https://archives.arosworld.org/index.php?function=browse&cat=audio/misc SOX to get AIFF 16bit files], [https://github.com/aros-development-team/AROS/tree/master/workbench/tools/AHIRecord AHIRecord],
|<!--Amiga OS-->[https://aminet.net/package/mus/edit/AudioEvolution3_src Audio Evolution 3 c src], [ Samplitude-MS Opus Key], Audiomaster IV*,
|<!--AmigaOS4-->[https://github.com/timoinutilis/phonolith-amigaos phonolith c src], HD-Rec, Audio Evolution 4,
|<!--MorphOS-->[https://sourceforge.net/p/hd-rec/code/HEAD/tree/ HD-Rec Src], Audio Evolution 4,
|-
|<!--Sub Menu-->Live Looping or Audio Misc - Groovebox like
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->CD/DVD burn
|[https://code.google.com/p/amiga-fryingpan/ FryingPan],
|<!--Amiga OS-->FryingPan, [http://www.estamos.de/makecd/#CurrentVersion MakeCD],
|<!--AmigaOS4-->FryingPan, AmiDVD,
|[http://www.amiga.org/forums/printthread.php?t=58736 FryingPan], Jalopeano,
|-
|<!--Sub Menu-->CD/DVD audio rip
|Lame, [http://www.imica.net/SitePortalPage.aspx?siteid=1&cfid=0&did=167 Quick CDrip],
|<!--Amiga OS-->Lame,
|<!--AmigaOS4-->Lame,
|Lame,
|-
|<!--Sub Menu-->MP3 v1 and v2 Tagger
|<!--AROS-->id3ren (v1), [http://archives.arosworld.org/index.php?function=browse&cat=audio/edit mp3info],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|
|-
|<!--Sub Menu-->Audio Convert
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=audio/misc Sox], [],
|<!--Amiga OS-->[http://aminet.net/package/mus/misc/SoundBox SoundBox], [http://aminet.net/package/mus/misc/SoundBoxKey SoundBox Key], [http://aminet.net/package/mus/edit/SampleE SampleE], sox
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->DJ mixing jamming
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Radio Automation Software [http://www.rivendellaudio.org/ Rivendell], [http://code.campware.org/projects/livesupport/report/3 Campware LiveSupport], [http://www.sourcefabric.org/en/airtime/ SourceFabric AirTime], [http://www.ohloh.net/p/mediabox404 MediaBox404],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Speakers Audio Sonos Mains AC networked wired controlled
*2005 ZP100 with ZP80
*2008 Zoneplayer ZP120 (multi-room wireless amp) ZP90 receiver only with CR100 controller,
*2009 ZonePlayer S5,
*2010 BR100 wireless Bridge (no support),
*2011 Play:3
*2013 Bridge (no support), Play:1,
*2016 Arc, Play:1,
*Beam (Gen 2), Playbar, Ray, Era 100, Era 300, Roam, Move 2,
*Sub (Gen 3), Sub Mini, Five, Amp S2
|<!--AROS-->SonosController
|<!--Amiga OS-->SonosController
|<!--AmigaOS4-->SonosController
|<!--MorphOS-->SonosController
|-
|<!--Sub Menu-->Smart Speakers
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
[[#top|...to the top]]
==Video Creativity and Production==
{| class="wikitable sortable"
|-
!width:30%;|Video
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Playing Video
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=video/play Mplayer VAMP], [http://www.a500.org/downloads/video/index.xhtml CDXL player], [http://www.a500.org/downloads/video/index.xhtml IffAnimPlay], [],
|<!--Amiga OS-->Frogger*, AMP2, MPlayer, RiVA*, MooViD*,
|<!--AmigaOS4-->DvPlayer, MPlayer
|<!--MorphOS-->MPlayer, Frogger, AMP2, VLC
|-
|<!--Sub Menu-->Streaming Video and game streaming like OBS studio, Parsec, [https://github.com/lizardbyte/sunshine sunshine], [https://github.com/moonlight-stream/moonlight-qt moonlight], etc
|<!--AROS-->Mplayer,
|<!--Amiga OS-->
|<!--AmigaOS4-->Mplayer, Gnash, Tubexx
|<!--MorphOS-->Mplayer, OWB, Tubexx
|-
|<!--Sub Menu-->Playing DVD
|<!--AROS-->[http://a-mc.biz/ AMC]*, Mplayer
|<!--Amiga OS-->AMP2, Frogger
|<!--AmigaOS4-->[http://a-mc.biz/ AMC]*, DvPlayer*, AMP2,
|<!--MorphOS-->Mplayer
|-
|<!--Sub Menu-->Screen Recording
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=video/record Screenrecorder], [ ], [ ], [ ], [ ],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->Screenrecorder,
|-
|<!--Sub Menu-->Create and Edit Individual Video NLE
|<!--AROS-->[ Mencoder], [ Quick Videos], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit AVIbuild], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/misc FrameBuild], FFMPEG,
|<!--Amiga OS-->[ MainConcept Mainactor Broadcast*], [http://en.wikipedia.org/wiki/Video_Toaster Video Toaster*], MacroSystem MovieShop 4.3*, proDAD Adorage*, [ IOSpirit VHI studio]*, [Gold Disk ShowMaker], [],
|<!--AmigaOS4-->FFMpeg/GUI
|<!--MorphOS-->Blender, Mencoder, FFmpeg
|-
|<!--Sub Menu-->Subtitle editor
|<!--AROS-->[https://aminet.net/package/text/edit/Slarti_Arosx86ABIv0 Slarti_Arosx86ABIv0], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->IP-based video production workflows with High Dynamic Range (HDR), 10-bit color collaborative NDI,
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Blogging like Lemmy or kbin
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->VR face recognition for Vtubers
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->VR chatting Live 2D models with Cubism type editor
<pre>
Model data (cmo3)
Basic motions (can3)
Background image (png)
Set of files for embedding (runtime folder)
• Model data (moc3)
• Motion data (motion3.json)
• Model settings file (model3.json)
• Physics settings file (physics3.json)
• Display auxiliary file (cdi3.json)
</pre>
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->VR chatting chatters .VRML models - standardized 3D file format for VR avatars
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->V-tubers V-tubing like Vseeface with Openseeface tracker or Vpuppr (virtual puppet project) for 2d / 3d art models rigging rigged LIV
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
[[#top|...to the top]]
==Misc Application==
{| class="wikitable sortable"
|-
!width:30%;|Misc Application
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1 (68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->File Management
|<!--AROS-->DOpus4, [https://github.com/BlitterStudio/dopus5 DOpus Magellan aka DOpus 5], [ Scalos], [ ],
|<!--Amiga OS-->DOpus2, DOpus 4, [http://sourceforge.net/projects/dopus5allamigas/files/?source=navbar DOpus Magellan DOpus5], ClassAction, FileMaster, [http://www.amiga.org/forums/showthread.php?t=4897 DirWork 2]*, [https://github.com/RudolphRiedel/DiskMaster2 DiskMaster2 src],
|<!--AmigaOS4-->DOpus4, DOpus5, Filer, AmiDisk
|<!--MorphOS-->DOpus4, DOpus5
|-
|<!--Sub Menu-->File Verification / Repair
|<!--AROS-->md5 (works in linux compiling shell), [http://archives.arosworld.org/index.php?function=browse&cat=utility/filetool workpar2] (PAR2), [http://zakalwe.fi/~shd/foss/cksfv/files/ compile cksfv from website],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->Par2,
|-
|Application Installer
|<!--AROS-->[], [ InstallerNG],
|<!--Amiga OS-->InstallerNG, Grunch,
|<!--AmigaOS4-->Jack
|<!--MorphOS-->Jack
|-
|<!--Sub Menu-->Compression archiver [https://github.com/FS-make-simple/paq9a paq9a], [],
|<!--AROS-->XAD system is a toolkit designed for handling various file and disk archiver
|<!--Amiga OS-->
|<!--AmigaOS4-->[https://aminet.net/package/util/pack/decrunchmania_os4 Crunchmania CrM2 depacker],
|<!--MorphOS-->
|-
|<!--Sub Menu-->Binary Hexadecimal Editor
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=development/edit Zaphod], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Repository
|<!--AROS-->[ Git]
|<!--Amiga OS-->
|<!--AmigaOS4-->Git
|<!--MorphOS-->
|-
|<!--Sub Menu-->Filesystem Partition Editor formatter
|<!--AROS-->[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1440&highlight=partition&pid=8821#post_8821 QuickPart], [HDToolBox]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Filesystem Repair
|<!--AROS-->ArSFSDoctor,
|<!--Amiga OS--> Quarterback Tools, [ ], [ ], [ ],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Multiple File renaming
|<!--AROS-->DOpus 4 or 5,
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Anti Virus
|<!--AROS-->
|<!--Amiga OS-->VChecker,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Random Wallpaper Desktop changer [ DOpus5], [ Scalos],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Alarm Clock, Timer, Stopwatch, Countdown
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/workbench DClock], [http://aminet.net/util/time/AlarmClockAROS.lha AlarmClock], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Fortune Cookie Quotes Sayings
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/misc AFortune],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->C/C++ IDE
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit FrexxEd], [https://github.com/vidarh/FrexxEd FrexxEd src], Annotate, Murks,
|<!--Amiga OS-->[http://devplex.awardspace.biz/cubic/index.html Cubic IDE]*, Annotate,
|<!--AmigaOS4-->CodeBench , [https://gitlab.com/boemann/codecraft CodeCraft],
|<!--MorphOS-->[http://devplex.awardspace.biz/cubic/index.html Cubic IDE]*, Anontate,
|-
|<!--Sub Menu-->Computer Languages Translation [https://tetracorp.github.io/guide/reverse-engineering-amiga.html ], [https://amigasourcecodepreservation.gitlab.io/amiga-assembler-insider-guide/ ],
|<!--AROS-->
|<!--Amiga OS-->[https://bitbucket.org/rhinoid/convert68000toc/src/main/ convert m68k seka asm-one to c],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Gui Creators
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=development/guitool MuiBuilder],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->[ MuiBuilder],
|-
|<!--Sub Menu-->Catalog .cd .ct Editors
|<!--AROS-->FlexCat
|<!--Amiga OS-->[http://www.geit.de/deu_simplecat.html SimpleCat], FlexCat
|<!--AmigaOS4-->[http://aminet.net/package/dev/misc/simplecat SimpleCat], FlexCat
|[http://www.geit.de/deu_simplecat.html SimpleCat], FlexCat
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
==Misc Application 2==
{| class="wikitable sortable"
|-
!width:30%;|Misc Application
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->System
|<!--AROS-->[ SysExplorer], [ SysMon], [ Scout], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->OSK On Screen Keyboard
|<!--AROS-->[],
|<!--Amiga OS-->[https://aminet.net/util/wb/OSK.lha OSK]
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Screen Magnifier Magnifying Glass Magnification
|<!--AROS-->[http://www.onyxsoft.se/files/zoomit.lha ZoomIT],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Comic Book CBR CBZ format reader viewer
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer comics], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer comicon], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Ebook Reader
|<!--AROS-->[https://blog.alb42.de/programs/#legadon Legadon EPUB],[]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Ebook Converter
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Text to Speech tts [https://github.com/JonathanFly/bark-installer Bark], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=audio/misc flite],
|<!--Amiga OS-->[http://www.text2speech.com translator],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=search&tool=simple FLite]
|<!--MorphOS-->[http://se.aminet.net/pub/aminet/mus/misc/ FLite]
|-
|<!--Sub Menu-->Speech Voice Recognition Dictation - [http://sourceforge.net/projects/cmusphinx/files/ CMU Sphinx], [http://julius.sourceforge.jp/en_index.php?q=en/index.html Julius], [http://www.isip.piconepress.com/projects/speech/index.html ISIP],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Speech Voice Changer [], [], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Screen Display Blanker screensaver
|<!--AROS-->Blanker Commodity (built in), [https://archives.arosworld.org/index.php?function=browse&cat=graphics/screenblanker GarshneBlanker], [http://sourceforge.net/projects/gblanker/ GBlanker Src], [],
|<!--Amiga OS-->MultiCX,
|<!--AmigaOS4-->
|<!--MorphOS-->ModernArt Blanker,
|-
|}
==Misc Application 3==
{| class="wikitable sortable"
|-
!width:30%;|Misc Application
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Fractals
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=graphics/misc ],
|<!--Amiga OS-->ZoneXplorer,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Landscape Rendering
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=graphics/raytrace WCS World Construction Set],
|<!--Amiga OS-->[ Vista Pro], [http://en.wikipedia.org/wiki/World_Construction_Set World Construction Set]
|<!--AmigaOS4-->[ WCS World Construction Set],
|<!--MorphOS-->[ WCS World Construction Set],
|-
|<!--Sub Menu-->Astronomy [https://sourceforge.net/projects/skychart/ skychart freepascal], [], [],
|<!--AROS-->[ Digital Almanac (ABIv0 only)],
|<!--Amiga OS-->[http://aminet.net/search?query=planetarium Aminet search], [http://aminet.net/misc/sci/DA3V56ISO.zip Digital Almanac], [https://aminet.net/package/misc/sci/da3sourceV58 Src c V58], [ Galileo renamed to Distant Suns]*, [],
|<!--AmigaOS4-->[http://sourceforge.net/projects/digital-almanac/ Digital Almanac], Distant Suns*, [http://www.digitaluniverse.org.uk/ Digital Universe]*,
|<!--MorphOS-->[http://www.aminet.net/misc/sci/da3.lha Digital Almanac], [http://www.aminet.net/package/misc/sci/da3-mos-src Src c V56],
|-
|<!--Sub Menu-->Astrology [https://sourceforge.net/projects/skylendar/ skylendar], [https://github.com/CruiserOne/Astrolog Astrolog], [https://www.astrolog.org/astrolog/astfile.htm Astrology alt site], [https://saravali.github.io/download.html Maitreya], [https://github.com/alamahant/Asteria Asteria],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->PCB design
|<!--AROS-->
|<!--Amiga OS-->[ ], [ ], [ ],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Digital Signage
|<!--AROS-->Hollywood, Hollywood Designer
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Genealogy History Family Tree Ancestry Records (FreeBMD, FreeREG, and FreeCEN file formats or GEDCOM GenTree)
|<!--AROS-->
|<!--Amiga OS--> [ Origins], [ Your Family Tree], [ ], [ ], [ ],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Languages
|<!--AROS-->
|<!--Amiga OS-->Fun School,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Mathematics ([http://www-fourier.ujf-grenoble.fr/~parisse/install_en.html Xcas], etc.),
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/scientific mathX]
|<!--Amiga OS-->Maple V, mathX, Fun School, GCSE Maths, [ ], [ ], [ ],
|<!--AmigaOS4-->Yacas
|<!--MorphOS-->Yacas
|-
|<!--Sub Menu-->Maths Graph Function Plotting
|<!--AROS-->[https://blog.alb42.de/programs/#MUIPlot MUIPlot],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->App Utility Launcher Dock toolbar
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/docky BoingBar], [],
|<!--Amiga OS-->[https://github.com/adkennan/DockBot Dockbot],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->3D Printer [https://github.com/OrcaSlicer/OrcaSlicer OrcaSlicer]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->BASIC Computer Language
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=development/language Basic4SDL], [ Ace Basic], [ X-AMOS], [SDLBasic], [ Alvyn],
|<!--Amiga OS-->[http://www.amiforce.de/main.php Amiblitz 3], [http://amos.condor.serverpro3.com/AmosProManual/contents/c1.html Amos Pro], [http://aminet.net/package/dev/basic/ace24dist ACE Basic],
|<!--AmigaOS4-->
|<!--MorphOS-->sdlBasic
|-
|<!--Sub Menu-->HAM amateur radio [], [], [], [https://cemaxecuter.com/ Dragon OS], [https://github.com/km4ack/73Linux with 73 link update], [https://www.youtube.com/watch?v=YAL5KNePRSg video for],
|<!--AROS-->
|<!--Amiga OS-->[https://www.amigarealm.com/amiga/amicomms/comm4.htm Comm4], [https://www.amigarealm.com/archives/comms/aarug/ TNC Terminal Node Controller with packets over serial connections on Yaesu or Woxum handheld], [https://aminet.net/comm/misc AmiCom], [ with 7Plus file encoder/decoder], [ mksstv], [ RTTYam],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
==Games & Emulation==
Some emulators/games require OpenGL to function and to adjust ahi prefs channels, frequency and unit0 and unit1 and
[http://aros.sourceforge.net/documentation/users/shell/changetaskpri.php changetaskpri -1]
Rom patching https://www.marcrobledo.com/RomPatcher.js/ https://www.romhacking.net/patch/ (ips, ups, bps, etc) and this other site supports the latter formats https://hack64.net/tools/patcher.php
Free public domain roms for use with emulators can be found [http://www.pdroms.de/ here] as most of the rest are covered by copyright rules. If you like to read about old games see [http://retrogamingtimes.com/ here] and [http://www.armchairarcade.com/neo/ here] and a [http://www.vintagecomputing.com/ blog] about old computers. Possibly some of the [http://www.answers.com/topic/list-of-best-selling-computer-and-video-games best selling] of all time. [http://en.wikipedia.org/wiki/List_of_computer_system_emulators Wiki] with emulated systems list.
[https://archive.gamehistory.org/ Archive of VGHF], [https://library.gamehistory.org/ Video Game History Foundation Library search]
{| class="wikitable sortable"
|-
!width:10%;|Games [http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Emulation]
!width:10%;|AROS(x86)
!width:10%;|AmigaOS3(68k)
!width:10%;|AmigaOS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Games Emulation Amstrad CPC
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer], [ Caprice32 (OpenGL & pure SDL)], [ Arnold], [https://retroshowcase.gr/cpcbox-master/],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://os4depot.net/index.php?function=browse&cat=emulation/computer]
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=2],
|-
|<!--Sub Menu-->Games Emulation Apple2 and 2GS
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Arcade
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Mame], [ SI Emu (ABIv0 only)],
|<!--Amiga OS-->Mame,
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem xmame], amiarcadia,
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=2 Mame],
|-
|<!--Sub Menu-->Games Emulation Atari 2600 [], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Stella],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari 5200 [https://github.com/wavemotion-dave/A5200DS A5200DS], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari 7800
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari 400 800 130XL [https://github.com/wavemotion-dave/A8DS A8DS], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Atari800],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari Lynx
|<!--AROS-->[http://myfreefilehosting.com/f/6366e11bdf_1.93MB Handy (ABIv0 only)],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari Jaguar
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Bandai Wonderswan
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation BBC Micro and Acorn Electron [http://beehttps://bem-unix.bbcmicro.com/download.html BeebEm], [http://b-em.bbcmicro.com/ B-Em], [http://elkulator.acornelectron.co.uk/ Elkulator], [http://electrem.emuunlim.com/ ElectrEm],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Dragon 32 and Tandy CoCo [http://www.6809.org.uk/xroar/ xroar], [],
|<!--AROS-->[], [], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Commodore C16 Plus4
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Commodore C64
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Vice (ABIv0 only)], [],
|<!--Amiga OS-->Frodo,
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem viceplus],
|<!--MorphOS-->Vice,
|-
|<!--Sub Menu-->Games Emulation Commodore Amiga
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Janus UAE], Emumiga,
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://os4depot.net/index.php?function=browse&cat=emulation/computer UAE],
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=2 UAE],
|-
|<!--Sub Menu-->Games Emulation Japanese MSX MSX2
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Mattel Intelivision
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Mattel Colecovision and Adam
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Milton Bradley (MB) Vectrex [ Vectrex OpenGL],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation PICO8 Pico-8 fantasy video game console [https://github.com/egordorichev/pemsa-sdl/ pemsa-sdl], [https://github.com/jtothebell/fake-08 fake-08], [https://github.com/Epicpkmn11/fake-08/tree/wip fake-08 fork],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Nintendo Gameboy
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem vba no sound], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem vba]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Nintendo NES
|<!--AROS-->[ EmiNES], [http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Fceu], [https://github.com/takahirox/nes-js?tab=readme-ov-file nes-js], [https://github.com/bfirsh/jsnes jsnes], [https://github.com/angelo-wf/NesJs NesJs],
|<!--Amiga OS-->AmiNES, [http://www.dridus.com/~nyef/darcnes/ darcNES],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem amines]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Nintendo SNES
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Zsnes],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem warpsnes]
|<!--MorphOS-->[http://fabportnawak.free.fr/snes/ Snes9x],
|-
|<!--Sub Menu-->Games Emulation Nintendo N64
*HLE and plugins [ mupen64], [https://github.com/ares-emulator/ares ares], [https://github.com/N64Recomp/N64Recomp N64Recomp], [https://github.com/rt64/rt64 rt64], [https://github.com/simple64/simple64 Simple64],
*LLE [],
|<!--AROS-->[http://code.google.com/p/mupen64plus/ Mupen64+],
|<!--Amiga OS-->[http://code.google.com/p/mupen64plus/ Mupen64+], [http://aminet.net/package/misc/emu/tr-981125_src TR64],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[ Nintendo Gamecube Wii]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[ Nintendo Wii U]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[https://github.com/yuzu-emu Nintendo Switch]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation NEC PC Engine
|<!--AROS-->[], [], [https://github.com/yhzmr442/jspce js-pce],
|[http://www.hugo.fr.fm/ Hugo], [http://mednafen.sourceforge.net/ Mednafen],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem tgemu]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sega Master System (SMS)
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Dega], [http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem sms],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem osmose]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sega Genesis/Megadrive
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem gp no sound], [http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem DGen],
|<!--Amiga OS-->[http://code.google.com/p/genplus-gx/ Genplus],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem genesisplus]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sega Saturn
*HLE [https://mednafen.github.io/ mednafen], [http://yabause.org/ yabause], [],
*LLE [], [],
|<!--AROS-->?
|<!--Amiga OS-->[http://yabause.org/ Yabause],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sega Dreamcast
*HLE [https://github.com/flyinghead/flycast flycast], [https://code.google.com/archive/p/nulldc/downloads NullDC],
*LLE [], [],
|<!--AROS-->?
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sinclair ZX80 and ZX81
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer], [], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sinclair Spectrum
|[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Fuse (crackly sound)], [http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer SimCoupe], [ FBZX slow], [https://jsspeccy.zxdemo.org/ jsspeccy], [http://torinak.com/qaop/games qaop],
|<!--Amiga OS-->[http://www.lasernet.plus.com/ Asp], [http://www.zophar.net/sinclair.html Speculator], [http://www.worldofspectrum.org/x128/index.html X128],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/computer]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sinclair QL
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer], [],
|<!--Amiga OS-->[http://aminet.net/package/misc/emu/QDOS4amiga1 QDOS4amiga]
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation SNK NeoGeo Pocket
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem gngeo], NeoPop,
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sony PlayStation
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem FPSE],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem FPSE]
|<!--MorphOS-->
|-
|<!--Sub Menu-->[ Sony PS2]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[ Sony PS3]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[https://vita3k.org/ Sony Vita]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[https://github.com/shadps4-emu/shadPS4 PS4]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation [http://en.wikipedia.org/wiki/Tangerine_Computer_Systems Tangerine] Oric and Atmos
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Oricutron]
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem Oricutron]
|<!--MorphOS-->[http://aminet.net/package/misc/emu/oricutron Oricutron]
|-
|<!--Sub Menu-->Games Emulation TI 99/4 99/4A [https://github.com/wavemotion-dave/DS994a DS994a], [], [https://js99er.net/#/ js99er], [], [http://aminet.net/package/misc/emu/TI4Amiga TI4Amiga], [http://aminet.net/package/misc/emu/TI4Amiga_src TI4Amiga src in c],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation HP 38G 40GS 48 49G/50G Graphing Calculators
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation TI 58 83 84 85 86 - 89 92 Graphing Calculators
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
{| class="wikitable sortable"
|-
!width:10%;|Games [https://www.rockpapershotgun.com/ General]
!width:10%;|AROS(x86)
!width:10%;|AmigaOS3(68k)
!width:10%;|AmigaOS4(PPC)
!width:10%;|MorphOS(PPC)
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Games [https://www.trackawesomelist.com/michelpereira/awesome-open-source-games/ Open Source and others] || AROS || Amiga OS || Amiga OS4 || Morphos
|-
|<!--Sub Menu-->Games Action like [https://github.com/BSzili/OpenLara/tree/amiga/src source of openlara SDL2], [https://github.com/opentomb/OpenTomb opentomb], [https://github.com/LostArtefacts/TRX TRX formerly Tomb1Main], [https://github.com/TombEngine TombEngine], [http://archives.arosworld.org/index.php?function=browse&cat=game/action Thrust], [https://github.com/fragglet/sdl-sopwith sdl sopwith],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/action], [https://archives.arosworld.org/index.php?function=browse&cat=game/action BOH], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Adventure like [http://dotg.sourceforge.net/ DMJ], [https://github.com/kromenak/gengine Gabriel Knight 3], [http://www.sarien.net/ Sierra Sarien],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/adventure dmagnetic], [https://archives.arosworld.org/?function=browse&cat=emulation/misc ScummVM], [https://archives.arosworld.org/index.php?function=browse&cat=game/roleplaying frotz infocom], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Board like [https://github.com/aperture-software/colditz-escape escape from colditz], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/board], [http://amigan.1emu.net/releases Africa]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Cards
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=game/card ], [],
|<!--AmigaOS-->[http://home.arcor.de/amigasolitaire/e/welcome.html Reko], [https://github.com/samskivert/beschei-en beschei Src],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Misc [https://github.com/michelpereira/awesome-open-source-games Awesome open], [https://github.com/bobeff/open-source-games General Open Source], [https://github.com/SAT-R/sa2 Sonic Advance 2], [https://github.com/velorek1/cwordle Wordle type],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/misc], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games FPS like [https://aminet.net/package/game/shoot/D1X_Rebirth_AGA Descent D1X src], [https://github.com/DescentDevelopers/Descent3 Descent 3], [https://github.com/Fewnity/Counter-Strike-Nintendo-DS Counter-Strike-Nintendo-DS], [https://github.com/Aleph-One-Marathon/alephone Bungie Marathon 1994], [https://github.com/ZDoom/gzdoom gzdoom], [],
|<!--AROS-->Doom, Quake, [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Quake 3 Arena (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Cube (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Assault Cube (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Cube 2 Sauerbraten (OpenGL)], [http://fodquake.net/test/ FodQuake QuakeWorld], [ Duke Nukem 3D], [ Darkplaces Nexuiz Xonotic], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Doom 3 SDL (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Hexenworld and Hexen 2], [ Aliens vs Predator Gold 2000 (openGL)], [ Odamex (openGL doom)], [https://archives.arosworld.org/?function=showfile&file=game/fps/ zgloom],
], [https://archives.arosworld.org/?function=showfile&file=game/fps/ ab3dhd], [],
|<!--Amiga OS-->Doom, Quake, AB3D, Fears, Breathless, Gloom,
|<!--AmigaOS4-->Doom, Quake,
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=12 Doom], Quake, Quake 3 Arena, [https://github.com/OpenXRay/xray-16 S.T.A.L.K.E.R Xray]
|-
|<!--Sub Menu-->Games MMORG like
|<!--AROS-->[ Eternal Lands (OpenGL)],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Platform like
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/platform], [ Maze of Galious], [ Gish]*(openGL), [ Mega Mario], [https://archives.arosworld.org/?function=showfile&file=game/platform/ thextech SMBX], [http://www.gianas-return.de/ Giana's Return], [http://www.sqrxz.de/ Sqrxz], [www.sqrxz2.de/ Sqrxz 2], [http://www.sqrxz.de/sqrxz-3/ Sqrxz 3], [http://www.sqrxz.de/sqrxz-4/ Sqrxz 4], [http://archives.arosworld.org/index.php?function=browse&cat=game/platform Cave Story], [https://bszili.morphos.me/ Frogatto], [https://bszili.morphos.me/ OpenJazz], [https://archives.arosworld.org/?function=showfile&file=game/platform/ pekkakana2], [ Aquaria], [https://archives.arosworld.org/?function=showfile&file=game/platform/ sonic CD], [],
|<!--Amiga OS-->[ Giana Sisters], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Puzzle [https://github.com/mariopartyrd/marioparty4/tree/port Party], [], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/puzzle], [ Cubosphere (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/puzzle Candy Crisis], [http://bszili.morphos.me/ TailTale],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Racing [ Trigger Rally], [ VDrift], [http://www.ultimatestunts.nl/index.php?page=2&lang=en Ultimate Stunts], [http://maniadrive.raydium.org/ Mania Drive], [https://github.com/plowteam/donut Simpsons Hit and Run], [],
|<!--AROS-->[ Super Tux Kart (OpenGL)], [http://www.dusabledanslherbe.eu/AROSPage/F1Spirit.30.html F1 Spirit (OpenGL)], [http://bszili.morphos.me/index.html MultiRacer], [https://bszili.morphos.me/ Speed Dreams], [],
|<!--AmigaOS-->
|<!--AmigaOS4-->[http://bszili.morphos.me/index.html Speed Dreams],
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=12], [http://bszili.morphos.me/index.html TORCS],
|-
|<!--Sub Menu-->Games 1st first person DRPG [https://wiki.rpg.net/index.php/Open_Game_Systems Misc], [https://github.com/OpenEnroth/OpenEnroth OpenEnroth MM], []
|<!--AROS-->[https://github.com/BSzili/aros-stuff Arx Libertatis], [http://www.playfuljs.com/a-first-person-engine-in-265-lines/ js raycaster], [https://github.com/Dorthu/es6-crpg webgl], [https://github.com/sonountaleban/AmiShockolate System Shock], [], [],
|<!--AmigaOS-->Phantasie, Faery Tale, Dungeon Master,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games 3rd third person action CRPG [https://sourceforge.net/projects/sumwars/ Summoning Wars], [https://www.solarus-games.org/ Solarus], [https://wiki.rpg.net/index.php/Open_Game_Systems Misc], [https://github.com/alexbatalov/fallout1-ce fallout ce], [],
|<!--AROS-->[https://archives.arosworld.org/?function=showfile&file=game/strategy/ fheroes2 homm2], [https://archives.arosworld.org/?function=showfile&file=game/roleplaying/ breakhack], [https://archives.arosworld.org/?function=showfile&file=game/roleplaying/ devilutionx diablo 1 hellfire], [https://archives.arosworld.org/?function=showfile&file=game/roleplaying/ fallout 1], [https://archives.arosworld.org/?function=showfile&file=game/strategy/ stratagus]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games isometric RPG [https://sourceforge.net/projects/sumwars/ Summoning Wars], [https://www.solarus-games.org/ Solarus], [https://wiki.rpg.net/index.php/Open_Game_Systems Misc], [https://github.com/topics/dungeon?l=javascript Dungeon], [], [https://github.com/clintbellanger/heroine-dusk JS Dusk],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/roleplaying nethack], [https://archives.arosworld.org/index.php?function=browse&cat=game/roleplaying GemRB], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games card based RPG [https://github.com/open-duelyst/duelyst Duelyst], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games turn based tactics RPG [], [], [], [], [], [],
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=game/strategy UFO AI], [http://play.freeciv.org/ FreeCiv], [], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Strategy [http://rtsgus.org/ RTSgus], [http://stargus.sourceforge.net/ Stargus], [https://github.com/KD-lab-Open-Source/Perimeter Perimeter], [https://matty77.itch.io/conflict-3049 conflict-3049], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/strategy MegaGlest (OpenGL)], [https://archives.arosworld.org/?function=showfile&file=game/strategy/ signus], [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1443&rowstart=140&pid=12446#post_12446 Wargus warcraft 2 setup],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=12]
|-
|<!--Sub Menu-->Games Rhythm, Beat, Step [], [], [https://clonehero.net/ clonehero], [https://github.com/MatteoGodzilla/Dj-Engine Dj-Engine],
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=game/misc Frets on Fire], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Shoot Em Ups [http://www.mhgames.org/oldies/formido/ Formido], [http://code.google.com/p/violetland/ Violetland],
||<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=game/action Open Tyrian], [http://www.parallelrealities.co.uk/projects/starfighter.php Starfighter], [ Alien Blaster], [https://github.com/OpenFodder/openfodder OpenFodder], [https://archives.arosworld.org/?function=showfile&file=game/action/ tbftss The Battle for the Solar System: the Pandora War]
|<!--AmigaOS-->
|<!--AmigaOS4-->[http://www.parallelrealities.co.uk/projects/starfighter.php Starfighter], [ The Battle for the Solar System: the Pandora War]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Simulations [http://scp.indiegames.us/ Freespace 2], [http://www.heptargon.de/gl-117/gl-117.html GL117], [http://code.google.com/p/corsix-th/ Theme Hospital], [http://code.google.com/p/freerct/ Rollercoaster Tycoon], [http://hedgewars.org/ Hedgewars], [https://github.com/raceintospace/raceintospace raceintospace], [https://github.com/Return-To-The-Roots RTTR Settlers 2], [https://github.com/OoliteProject/oolite oolite elite], [https://github.com/fesh0r/newkind newkind elite], [],
|<!--AROS-->
|<!--Amiga OS-->SimCity, SimAnt, Sim Hospital, Theme Park,
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=12]
|-
|<!--Sub Menu-->Games Life Sim [https://github.com/ACreTeam/forest Animal Crossing], [ ], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Horror [https://github.com/Mikompilation/MikuPan Fatal Frame], [ ], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Sandbox Voxel Open World Exploration [https://github.com/ClassiCube/ Classicube],[http://www.michaelfogleman.com/craft/ Craft], [https://github.com/tothpaul/DelphiCraft DelphiCraft],[https://www.minetest.net/ Luanti formerly Minetest], [ infiniminer],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Battle Royale [https://bruh.io/ Play.Bruh.io], [https://www.coolmathgames.com/0-copter Copter Royale], [https://surviv.io/ Surviv.io], [https://nuggetroyale.io/#Ketchup Nugget Royale], [https://miniroyale2.io/ Miniroyale2.io],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Tower Defense [https://chriscourses.github.io/tower-defense/ HTML5], [https://github.com/SBardak/Tower-Defense-Game TD C++], [https://github.com/bdoms/love_defense LUA and LOVE], [https://github.com/HyOsori/Osori-WebGame HTML5], [https://github.com/PascalCorpsman/ConfigTD ConfigTD Pascal], [https://github.com/GloriousEggroll/wine-ge-custom Wine], []
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Visual Novel Engines [https://github.com/Kirilllive/tuesday-js Tuesday JS], [ Lua + LOVE], [https://github.com/weetabix-su/renpsp-dev RenPSP], [https://github.com/Galladite27/ONScripter-EN ONScripter-EN], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Virtual Reality VR [https://gitlab.com/madsbuvi/openmw openmw vr], [https://github.com/Team-Beef-Studios/BeefRaiderXR BeefRaiderXR],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Virtual Table Top VTT [ Roll20], [https://www.owlbear.rodeo/ owlbear rodeo], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Computer assisted TableTop TTRPG OSR [https://www.rpgsolo.com/play.php RPGSolo], [https://github.com/fpsvogel/solo-ttrpgs Solo TTRPG], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games 2D 3D Engines [https://github.com/fegennari/3DWorld 3DWorld], [https://github.com/GarageGames/Torque3D Torque3D], [https://github.com/gameplay3d/GamePlay GamePlay 3D], [https://www.babylonjs.com/ BabylonJS ], [ Godot], [ Ogre], [ Crystal Space], [https://github.com/JacobHess03/ Dragon-Quest like], [], [],
|<!--AROS-->[https://www.arkhamdev.net/wiki.htm?id=agx Arkham Development antiryadgx 8.9 lts with register], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games C based game frameworks [https://github.com/orangeduck/Corange Corange], [https://github.com/scottcgi/Mojoc Mojoc], [https://orx-project.org/ Orx], [https://github.com/ioquake/ioq3 Quake 3], [https://www.mapeditor.org/ Tiled], [https://www.raylib.com/ 2d Raylib], [https://github.com/Rabios/awesome-raylib other raylib], [https://github.com/MrFrenik/gunslinger Gunslinger], [https://o3de.org/ o3d], [http://archives.aros-exec.org/index.php?function=browse&cat=development/library GLFW], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=development/library Raylib 5],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Virtual Pinball [https://github.com/vpinball/vpinball vpinball], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|}
==Application Guides==
[[#top|...to the top]]
===Web Browser===
OWB is now at version 2.0 (which got an engine refresh, from July 2015 to February 2019) and 3.0.
This latest version has a good support for many/most web sites, even YouTube web page now works.
This improved compatibility comes at the expense of higher RAM usage (now 1GB RAM is the absolute minimum).
Also, keep in mind that the lack of a JIT (Just-In-Time) JS compiler on the 32 bit version, makes the web surfing a bit slow.
Only the 64 bit version of OWB 2.0 will have JIT enabled, thus benefitting of more speed. There are tooltypes that can be added to the icon to provide further features JIT, MSE etc
Certificates from [https://curl.se/docs/caextract.html ca certs],
DNS tracking blocking with [https://easylist.to/easylist/easylist.txt easylist.txt] in PROGDIR:Conf before starting browser with enabled AdBlock [https://github.com/easylist/easylist/tree/master easylist], [https://gitlab.com/eyeo anti abp], [https://firebog.net/ big blocklist], [https://github.com/StevenBlack/hosts Steves], [], [],
This can be enabled with OWB Odyssey with Windows -> Content Blocking and Windows -> Messages and enter
https://www.youtube.com/api/stats/ads*
https://www.youtube.com/pagead/adview*
https://www.youtube.com#@##player-ads*
into your custom filters
Element blocker browser extension might be needed for [https://github.com/easylist/easylist/wiki/Youtube-Issues youtube], [ mid roll], [ pre roll], [ ],
OWB speed is much better when running from RAM Disk, the best way is to add the below into your S:User-Startup which copies OWB drawer from Extras:Internet/OWB to RAM Disk:
So add this :
<pre>
copy Extras:Internet/OWB Ram:OWB/ ALL CLONE >NIL:
copy Extras:Internet/OWB.info Ram: >NIL:
</pre>
Open RAM Disk and open OWB drawer and double click on OWB icon so that the above icon tooltypes are activated
Problems are that the copy time is long (around 20 seconds added in the background), but we can make it faster if we delete useless files from the OWB drawer (docs, …)
If you don’t copy the drawer back onto the HD, you won’t save your cache, cookies, passwords… So you need a script for it.
Error messages
SSL error "cant verify with ca-certificates", check bios clock time date is correct
Error 6, try checking networking prefs settings and Save / Use preferences again or a '''few times''' otherwise the network chipset may not be compatible with Aros
[https://www.google.com/search?q=%s&udm=14 Google search without AI overview]
===E-mail===
YAM does not support SSL and most mail providers now switched to encrypted SMTP/POP3 connections
====SimpleMail====
SimpleMail supports IMAP and appears to work with GMail, but it's never been reliable enough, it can crash with large mailboxes.
Please read more on this [http://www.freelists.org/list/simplemail-usr User list]
GMail
Be sure to activate the pop3 usage in your gmail account setup / configuration first.
pop3:
pop.gmail.com
Use SSL: Yes
Port: 995
smtp:
smtp.gmail.com (with authentication)
Use Authentication: Yes
Use SSL: Yes
Port: 465 or 587
Hotmail/MSN/outlook/Microsoft Mail mid-2017, all outlook.com accounts will be migrated to Office 365 / Exchange
Most users are currently on POP which does not allow showing folders and many other features (technical limitations of POP3). With Microsoft IMAP you will get folders, sync read/unread, and show flags. You still won't get push though, as Microsoft has not turned on the IMAP Idle command as at Sept 2013.
If you want to try it, you need to first remove (you can't edit) your pop account (long-press the account on the accounts screen, delete account). Then set it up this way:
1. Email/Password
2. Manual
3. IMAP
4.
* Incoming: imap-mail.outlook.com, port 993, SSL/TLS should be checked
* Outgoing: smtp-mail.outlook.com, port 587, SSL/TLS should be checked
* POP server name pop-mail.outlook.com, port 995, POP encryption method SSL
Yahoo Mail
On April 24, 2002 Yahoo ceased to offer POP access to its free mail service. Introducing instead a yearly payment feature, allowing users POP3 and IMAP server support, along with such benefits as larger file attachment sizes and no adverts.
Sorry to see Yahoo leaving its users to cough up for the privilege of accessing their mail. Understandable, when competing against rivals such as Gmail and Hotmail who hold a large majority of users and were hacked in 2014 as well.
Incoming Mail (IMAP) Server
* Server - imap.mail.yahoo.com
* Port - 993
* Requires SSL - Yes
Outgoing Mail (SMTP) Server
* Server - smtp.mail.yahoo.com
* Port - 465 or 587
* Requires SSL - Yes
* Requires authentication - Yes
Your login info
* Email address - Your full email address (name@domain.com)
* Password - Your account's password
* Requires authentication - Yes
Note that you need to enable “Web & POP Access” in your Yahoo Mail account to send and receive Yahoo Mail messages through any other email program.
You will have to enable “Allow your Yahoo Mail to be POPed” under “POP and Forwarding”, to send and receive Yahoo mails through any other email client.
Cannot be done since 2002 unless the customer pays Yahoo a subscription subs fee to have access to SMTP and POP3
* Set the POP server for incoming mails as pop.mail.yahoo.com. You will have to enable “SSL” and use 995 for Port.
* “Account Name or Login Name” – Your Yahoo Mail ID i.e. your email address without the domain “@yahoo.com”.
* “Email Address” – Your Yahoo Mail address i.e. your email address including the domain “@yahoo.com”. E.g. myname@yahoo.com
* “Password” – Your Yahoo Mail password.
Yahoo! Mail Plus users may have to set POP server as plus.pop.mail.yahoo.com and SMTP server as plus.smtp.mail.yahoo.com.
* Set the SMTP server for outgoing mails as smtp.mail.yahoo.com. You will also have to make sure that “SSL” is enabled and use 465 for port. you must also enable “authentication” for this to work.
====YAM Yet Another Mailer====
YAM does not support SSL and most mail providers have now switched to encrypted SMTP/POP3 connections
This email client is POP3 only if the SSL library is available [http://www.freelists.org/list/yam YAM Freelists]
One of the downsides of using a POP3 mailer unfortunately - you have to set an option not to delete the mail if you want it left on the server. IMAP keeps all the emails on the server.
Possible issues
Sending mail issues is probably a matter of using your ISP's SMTP server, though it could also be an SSL issue.
getting a "Couldn't initialise TLSv1 / SSL error
Use of on-line e-mail accounts with this email client is not possible as it lacks the OpenSSL AmiSSl v3 compatible library
GMail
Incoming Mail (POP3) Server - requires SSL: pop.gmail.com
Use SSL: Yes
Port: 995
Outgoing Mail (SMTP) Server - requires TLS: smtp.gmail.com (use authentication)
Use Authentication: Yes
Use STARTTLS: Yes (some clients call this SSL)
Port: 465 or 587
Account Name: your Gmail username (including '@gmail.com')
Email Address: your full Gmail email address (username@gmail.com)
Password: your Gmail password
Anyway, the SMTP is pop.gmail.com port 465 and it uses SSLLv3 Authentication. The POP3 settings are for the same server (pop.gmail.com), only on port 995 instead.
Outlook.com access
<pre >
Outlook.com SMTP server address: smtp.live.com
Outlook.com SMTP user name: Your full Outlook.com email address (not an alias)
Outlook.com SMTP password: Your Outlook.com password
Outlook.com SMTP port: 587
Outlook.com SMTP TLS/SSL encryption required: yes
</pre >
Yahoo Mail
<pre >
“POP3 Server” – Set the POP server for incoming mails as pop.mail.yahoo.com. You will have to enable “SSL” and use 995 for Port.
“SMTP Server” – Set the SMTP server for outgoing mails as smtp.mail.yahoo.com. You will also have to make sure that “SSL” is enabled and use 465 for port. you must also enable “authentication” for this to work.
“Account Name or Login Name” – Your Yahoo Mail ID i.e. your email address without the domain “@yahoo.com”.
“Email Address” – Your Yahoo Mail address i.e. your email address including the domain “@yahoo.com”. E.g. myname@yahoo.com
“Password” – Your Yahoo Mail password.
</pre >
Yahoo! Mail Plus users may have to set POP server as plus.pop.mail.yahoo.com and SMTP server as plus.smtp.mail.yahoo.com.
Note that you need to enable “Web & POP Access” in your Yahoo Mail account to send and receive Yahoo Mail messages through any other email program.
You will have to enable “Allow your Yahoo Mail to be POPed” under “POP and Forwarding”, to send and receive Yahoo mails through any other email client.
Cannot be done since 2002 unless the customer pays Yahoo a monthly fee to have access to SMTP and POP3
Microsoft Outlook Express Mail
1. Get the files to your PC.
By whatever method get the files off your Amiga onto your PC. In the YAM folder you have a number of different folders, one for each of your folders in YAM. Inside that is a file usually some numbers such as 332423.283. YAM created a new file for every single email you received.
2. Open up a brand new Outlook Express. Just configure the account to use 127.0.0.1 as mail servers. It doesn't really matter. You will need to manually create any subfolders you used in YAM.
3. You will need to do a mass rename on all your email files from YAM. Just add a .eml to the end of it. Amazing how PCs still rely mostly on the file name so it knows what sort of file it is rather than just looking at it! There are a number of multiple renamers online to download and free too.
4. Go into each of your folders, inbox, sent items etc. And do a select all then drag the files into Outlook Express (to the relevant folder obviously) Amazingly the file format that YAM used is very compatible with .eml standard and viola your emails appear. With correct dates and working attachments.
5. If you want your email into Microsoft Outlook. Open that up and create a new profile and a new blank PST file. Then go into File Import and choose to import from Outlook Express. And the mail will go into there. And viola.. you have your old email from your Amiga in a more modern day format.
===FTP===
Magellan has a great FTP module. It allows transferring files from/to a FTP server over the Internet or the local network and, even if FTP is perceived as a "thing of the past", its usability is all inside the client. The FTP thing has a nice side effect too, since every Icaros machine can be a FTP server as well, and our files can be easily transferred from an Icaros machine to another with a little configuration effort.
First of all, we need to know the 'server' IP address. Server is the Icaros machine with the file we are about to download on another Icaros machine, that we're going to call 'client'. To do that, move on the server machine and 1) run Prefs/Services to be sure "FTP file transfer" is enabled (if not, enable it and restart Icaros); 2) run a shell and enter this command:
ifconfig -a
Make a note of the IP address for the network interface used by the local area network. For cabled devices, it usually is net0:. Now go on the client machine and run Magellan:
Perform these actions: 1) click on FTP; 2) click on ADDRESS BOOK; 3) click on "New".
You can now add a new entry for your Icaros server machine:
1) Choose a name for your server, in order to spot it immediately in the address book. Enter the IP address you got before.
2) click on Custom Options:
1) go to Miscellaneous in the left menu;
2) Ensure "Passive Transfers" is NOT selected;
3) click on Use. We need to deactivate Passive Transfers because YAFS, the FTP server included in Icaros, only allows active transfers at the current stage. Now, we can finally connect to our new file source:
1) Look into the address book for the newly introduced server, be sure that name and IP address are right, and
2) click on Connect. A new lister with server's "MyWorkspace" contents will appear. You can now transfer files over the network choosing a destination among your local (client's) volumes.
Can be adapted to any FTP client on any platform of your choice, just be sure your client allows Active Transfers as well.
===IRC Internet Relay Chat===
Jabberwocky is ideal for one-to-one social media communication, use IRC if you require one to many.
Just type a message in ''lowercase''' letters and it will be posted to all in the [ AROS irc channel]. Please do not use UPPER CASE as it is a sign of SHOUTING which is annoying.
Other things to type in - replace <message> with a line of text and <nick> with a person's name
<pre>
/help
/list
/who
/whois <nick>
/msg <nick> <message>
/query <nick>
<message>s
/query
/away <message>
/away
/quit <going away message>
</pre>
[http://irchelp.org/irchelp/new2irc.html#smiley Intro guide here]. IRC Primer can be found here in [http://www.irchelp.org/irchelp/ircprimer.html html], [http://www.irchelp.org/irchelp/text/ircprimer.txt TXT], [http://www.kei.com/irc/IRCprimer1.1.ps PostScript].
Issue the command /me <text> where <text> is the text that should follow your nickname.
Example: /me slaps ajk around a bit with a large trout
/nick <newNick>
/nickserv register <password> <email address>
/ns instead of /nickserv, while others might need /msg nickserv
/nickserv identify <password>
Alternatives:
/ns identify <password>
/msg nickserv identify <password>
==== IRC WookieChat ====
WookieChat is the most complete internet client for communication across the IRC Network. WookieChat allows you to swap ideas and communicate in real-time, you can also exchange Files, Documents, Images and everything else using the application's DCC capabilities.
add smilies drawer/directory
run wookiechat from the shell and set stack to 1000000 e.g. wookiechat stack 1000000
select a server / server window
* nickname
* user name
* real name - optional
Once you configure the client with your preferred screen name, you'll want to find a channel to talk in.
servers
* New Server - click on this to add / add extra - change details in section below this click box
* New Group
* Delete Entry
* Connect to server
* connect in new tab
* perform on connect
Change details
* Servername - change text in this box to one of the below Server:
* Port number - no need to change
* Server password
* Channel - add #channel from below
* auto join - can click this
* nick registration password,
Click Connect to server button above
<pre>
Server: irc.freenode.net
Channel: #aros
</pre>
irc://irc.freenode.net/aros
<pre>
Server: chat.amigaworld.net
Channel: #amigaworld or #amigans
</pre>
<pre>
On Sunday evenings USA time usually starting around 3PM EDT (1900 UTC)
Server:irc.superhosts.net
Channel #team*amiga
</pre>
<pre>
BitlBee and Minbif are IRCd-like gateways to multiple IM networks
Server: im.bitlbee.org
Port 6667
Seems to be most useful on WookieChat as you can be connected to several servers at once. One for Bitlbee and any messages that might come through that. One for your normal IRC chat server.
</pre>
[http://www.bitlbee.org/main.php/servers.html Other servers],
<pre>
#Amiga.org - irc.synirc.net eu.synirc.net dissonance.nl.eu.synirc.net (IPv6: 2002:5511:1356:0:216:17ff:fe84:68a)
twilight.de.eu.synirc.net zero.dk.eu.synirc.net us.synirc.net avarice.az.us.synirc.net envy.il.us.synirc.net harpy.mi.us.synirc.net
liberty.nj.us.synirc.net snowball.mo.us.synirc.net - Ports 6660-6669 7001 (SSL)
</pre>
<pre>
Multiple server support
"Perform on connect" scripts and channel auto-joins
Automatic Nickserv login
Tabs for channels and private conversations
CTCP PING, TIME, VERSION, SOUND
Incoming and Outgoing DCC SEND file transfers
Colours for different events
Logging and automatic reloading of logs
mIRC colour code filters
Configurable timestamps
GUI for changing channel modes easily
Configurable highlight keywords
URL Grabber window
Optional outgoing swear word filter
Event sounds for tabs opening, highlighted words, and private messages
DCC CHAT support
Doubleclickable URL's
Support for multiple languages using LOCALE
Clone detection
Auto reconnection to Servers upon disconnection
Command aliases
Chat display can be toggled between AmIRC and mIRC style
Counter for Unread messages
Graphical nicklist and graphical smileys with a popup chooser
</pre>
====IRC Aircos ====
Double click on Aircos icon in Extras:Networking/Apps/Aircos. It has been set up with a guest account for trial purposes. Though ideally, choose a nickname and password for frequent use of irc.
====IRC and XMPP Jabberwocky====
Servers are setup and close down at random
You sign up to a server that someone else has setup and access chat services through them.
The two ways to access chat from jabberwocky
<pre >
Jabberwocky -> Server -> XMPP -> open and ad-free
Jabberwocky -> Server -> Transports (Gateways) -> Proprietary closed systems
</pre >
The Jabber.org service connects with all IM services that use XMPP, the open standard for instant messaging and presence over the Internet. The services we connect with include Google Talk (closed), Live Journal Talk, Nimbuzz, Ovi, and thousands more. However, you can not connect from Jabber.org to proprietary services like AIM, ICQ, MSN, Skype, or Yahoo because they don’t yet use XMPP components (XEP-0114) '''but''' you can use Jabber.com's servers and IM gateways (MSN, ICQ, Yahoo etc.) instead.
The best way to use jabberwocky is in conjunction with a public jabber server with '''transports''' to your favorite services, like gtalk, Facebook, yahoo, ICQ, AIM, etc.
You have to register with one of the servers, [https://list.jabber.at/ this list] or [http://www.jabberes.org/servers/ another list], [http://xmpp.net/ this security XMPP list],
Unfortunately jabberwocky can only connect to one server at a time so it is best to check what services each server offers. If you set it up with separate Facebook and google talk accounts, for example, sometimes you'll only get one or the other.
Jabberwocky open a window where the Jabber server part is typed in as well as your Nickname and Password.
Jabber ID (JID) identifies you to the server and other users.
Once registered the next step is to goto Jabberwocky's "Windows" menu and select the "Agents" option. The "Agents List" window will open.
Roster (contacts list)
[http://search.wensley.org.uk/ Chatrooms] (MUC) are available
File Transfer - can send and receive files through the Jabber service but not with other services like IRC, ICQ, AIM or Yahoo. All you need is an installed webbrowser and OpenURL.
Clickable URLs - The message window uses Mailtext.mcc and you can set a URL action in the MUI mailtext prefs like SYS:Utils/OpenURL %s NEWWIN.
There is no consistent Skype like (H.323 VoIP) video conferencing available over Jabber. The move from xmpp to Jingle should help but no support on any amiga-like systems at the moment. [http://aminet.net/package/dev/src/AmiPhoneSrc192 AmiPhone] and [http://www.lysator.liu.se/%28frame,faq,nobg,useframes%29/ahi/v4-site/ Speak Freely] was an early attempt voice only contact. SIP and Asterisk are other PBX options.
Facebook
If you're using the XMPP transport provided by Facebook themselves, chat.facebook.com, it looks like they're now requiring SSL transport. This means jabberwocky method below will no longer work. The best thing to do is to create an ID on a public jabber server which has a Facebook gateway.
<pre >
1. launch jabberwocky
2. if the login window doesn't appear on launch, select 'account' from the jabberwocky menu
3. your jabber ID will be user@chat.facebook.com where user is your user ID
4. your password is your normal facebook password
5. to save this for next time, click the popup gadget next to the ID field
6. click the 'add' button
7. click the 'close' button
8. click the 'connect' button
</pre >
you're done. you can also click the 'save as default account' button if you want. jabberwocky configured to auto-connect when launching the program, but you can configure as you like. there is amigaguide documentation included with jabberwocky.
[http://amigaworld.net/modules/newbb/viewtopic.php?topic_id=37085&forum=32 Read more here]
for Facebook users, you can log-in directly to Facebook with jabberwocky. just sign in as @chat.facebook.com with your Facebook password as the password
Twitter
For a few years, there has been added a twitter transport. Servers include [http://jabber.hot-chilli.net/ jabber.hot-chili.net], and .
An [http://jabber.hot-chilli.net/tag/how-tos/ How-to]
:Read [http://jabber.hot-chilli.net/2010/05/09/twitter-transport-working/ more]
Instagram
no support at the moment best to use a web browser based client
ICQ
The new version (beta) of StriCQ uses a newer ICQ protocol. Most of the ICQ Jabber Transports still use an older ICQ protocol. You can only talk one-way to StriCQ using the older Transports. Only the newer ICQv7 Transport lets you talk both ways to StriCQ. Look at the server lists in the first section to check.
Register on a Jabber server, e.g. this one works: http://www.jabber.de/
Then login into Jabberwocky with the following login data e.g. xxx@jabber.de / Password: xxx Now add your ICQ account under the window->Agents->"Register". Now Jabberwocky connects via the Jabber.de server with your ICQ account.
Yahoo Messenger
although yahoo! does not use xmpp protocol, you should be able to use the transport methods to gain access and post your replies
MSN
early months of 2013 Microsoft will ditch MSN Messenger client and force everyone to use Skype...but MSN protocol and servers will keep working as usual for quite a long time....
Occasionally the Messenger servers have been experiencing problems signing in. You may need to sign in at www.outlook.com and then try again. It may also take multiple tries to sign in. (This also affects you if you’re using Skype.)
You have to check each servers' Agents List to see what transports (MSN protocol, ICQ protocol, etc.) are supported or use the list address' provided in the section above. Then register with each transport (IRC, MSN, ICQ, etc.) to which you need access. After registering you can Connect to start chatting.
msn.jabber.com/registered should appear in the window.
From this [http://tech.dir.groups.yahoo.com/group/amiga-jabberwocky/message/1378 JW group] guide which helps with this process in a clear, step by step procedure.
1. Sign up on MSN's site for a passport account. This typically involves getting a Hotmail address.
2. Log on to the Jabber server of your choice and do the following:
* Select the "Windows/Agents" menu option in Jabberwocky.
* Select the MSN Agent from the list presented by the server.
* Click the Register button to open a new window asking for:
**Username = passort account email address, typically your hotmail address.
**Nick = Screen name to be shown to anyone you add to your buddy list.
**Password = Password for your passport account/hotmail address.
* Click the Register button at the bottom of the new window.
3. If all goes well, you will see the MSN Gateway added to your buddy list. If not, repeat part 2 on another server. Some servers may show MSN in their list of available agents, but have not updated their software for the latest protocols used by MSN.
4. Once you are registered, you can now add people to your buddy list. Note that you need to include the '''msn.''' ahead of the servername so that it knows what gateway agent to use. Some servers may use a slight variation and require '''msg.gate.''' before the server name, so try both to see what works.
If my friend's msn was amiga@hotmail.co.uk and my jabber server was @jabber.meta.net.nz..
then amiga'''%'''hotmail.com@'''msn.'''jabber.meta.net.nz
or another the trick to import MSN contacts is that you don't type the hotmail URL but the passport URL... e.g. Instead of: goodvibe%hotmail.com@msn.jabber.com You type: goodvibe%passport.com@msn.jabber.com
And the thing about importing contacts I'm afraid you'll have to do it by hand, one at the time...
Google Talk
any XMPP server will work, but you have to add your contacts manually. a google talk user is typically either @gmail.com or @talk.google.com. a true gtalk transport is nice because it brings your contacts to you and (can) also support file transfers to/from google talk users.
implement Jingle a set of extensions to the IETF's Extensible Messaging and Presence Protocol (XMPP)
support ended early 2014 as Google moved to Google+ Hangouts which uses it own proprietary format
===Video Player MPlayer===
Many of the menu features (such as doubling) do not work with the current version of mplayer but using
4:3
mplayer -vf scale=800:600 file.avi
16:9
mplayer -vf scale=854:480 file.avi
if you want gui use;
mplayer -gui 1 <other params> file.avi
<pre >
stack 1000000
; using AspireOS 1.xx
; copy FROM SYS:Extras/Multimedia/MPlayer/ TO RAM:MPlayer ALL CLONE > Nil:
; using Icaros Desktop 1.x
; copy FROM SYS:Tools/MPlayer/ TO RAM:MPlayer ALL CLONE > Nil:
; using Icaros Desktop 2.x
; copy FROM SYS:Utilities/MPlayer/ TO RAM:MPlayer ALL CLONE > Nil:
cd RAM:MPlayer
run MPlayer -gui > Nil:
;run MPlayer -gui -ao ahi_dev -playlist http://www.radio-paralax.de/listen.pls > Nil:
</pre >
$ mplayer rtsp://127.0.0.1:554/sample_300kbit.mp4
MPlayer supports multicast streaming, and rtp/rtsp protocols (it might require [http://www.live555.com/openRTSP/ live555 library] to work with some streams). But you might have to build it where it's disabled. Also, multicast won't work with some AmiTCP-likes. MIAMI supported it, though.
AROS supports IPv4 (old but works) and this includes the needed address space for RTP.
If you mean multicast via RTP - mplayer handles it. You can even force UDP over TCP
-rtsp-stream-over-tcp
If the rtsp Real Time Streaming Protocol server needs authentification:
-user -passwd
MPlayer - Menu - Open Playlist and load already downloaded .pls or .m3u file - auto starts around 4 percent cache
MPlayer - Menu - Open Stream and copy one of the .pls lines below into space allowed, press OK and press play button on main gui interface
Old 8bit 16bit remixes chip tune game music
http://www.radio-paralax.de/listen.pls
http://scenesat.com/
http://www.shoutcast.com/radio/Amiga
http://www.theoldcomputer.com/retro_radio/RetroRadio_Main.htm
http://www.kohina.com/
http://www.remix64.com/
http://retrogamer.net/forum/
http://retroasylum.podomatic.com/rss2.xml
http://retrogamesquad.com/
http://www.retronauts.com/
http://monsterfeet.com/noquarter/
http://www.retrogamingradio.com/
http://www.radiofeeds.co.uk/mp3.asp
[[#top|...to the top]]
====ZunePaint====
simplified typical workflow
* importing and organizing and photo management
* making global and regional local correction(s) - recalculation is necessary after each adjustment as it is not in real-time
* exporting your images in the best format available with the preservation of metadata
Whilst achieving 80% of a great photo with just a filter, the remaining 20% comes from a manual fine-tuning of specific image attributes.
For photojournalism, documentary, and event coverage, minimal touching is recommended. Stick to Camera Raw for such shots, and limit changes to level adjustment, sharpness, noise reduction, and white balance correction.
For fashion or portrait shoots, a large amount of adjustment is allowed and usually ends up far from the original. Skin smoothing, blemish removal, eye touch-ups, etc. are common. Might alter the background a bit to emphasize the subject.
Product photography usually requires a lot of sharpening, spot removal, and focus stacking.
For landscape shots, best results are achieved by doing the maximum amount of preparation before/while taking the shot. No amount of processing can match timing, proper lighting, correct gear, optimal settings, etc. Excessive post-processing might give you a dramatic shot but best avoided in the long term.
* White Balance - Left Amiga or F12 and K and under "Misc color effects" tab with a pull down for White Balance - color temperature also known as AKA tint (movies) or tones (painting) - warm temp raise red reduce green blue - cool raise blue lower red green
* Exposure - exposure compensation, highlight/shadow recovery
* Noise Reduction - during RAW development or using external software
* Lens Corrections - distortion, vignetting, chromatic aberrations
* Detail - capture sharpening and local contrast enhancement
* Contrast - black point, levels (sliders) and curves tools (F12 and K)
* Framing - straighten () and crop (F12 and F)
* Refinements - color adjustments and selective enhancements - Left Amiga or F12 and K for RGB and YUV histogram tabs -
* Resizing - enlarge for a print or downsize for the web or email (F12 and D)
* Output Sharpening - customized for your subject matter and print/screen size
White Balance - F12 and K
scan your image for a shade which was meant to be white (neutral with each RGB value being equal) like paper or plastic which is in the same light as the subject of the picture. Use the dropper tool to select this color, similar colours will shift and you will have selected the perfect white balance for your part of the image - for the whole picture make sure RAZ or CLR button at the bottom is pressed before applying to the image above.
Exposure correction
F12 and K - YUV Y luminosity - RGB extra red tint - move red curve slightly down and move blue green curves slightly up
Workflows in practice
* Undo - Right AROS key or F12 and Z
* Redo - Right AROS key or F12 and R
First flatten your image (if necessary) and then do a rotation until the picture looks level.
* Crop the picture. Click the selection button and drag a box over the area of the picture you want to keep. Press the crop button and the rest of the photo will be gone.
* Adjust your saturation, exposure, hue levels, etc., (right AROS Key and K for color correction) until you are happy with the photo. Make sure you zoom in all of the way to 100% and look the photo over, zoom back out and move around. Look for obvious problems with the picture.
* After coloring and exposure do a sharpen (Right AROS key and E for Convolution and select drop down option needed), e.g. set the matrix to 5x5 (roughly equivalent Amount to 60%) and set the Radius to 1.0. Click OK.
And save your picture
Implemented or would like to see for simplification and ease of use
basic filters (presets) like black and white, monochrome, edge detection (sobel), motion/gaussian blur,
* negative, sepiatone, retro vintage, night vision, colour tint, color gradient, color temperature, glows, fire, lightning, lens flare, emboss, filmic, pixelate mezzotint, antialias, etc.
adjust / cosmetic tools such as crop,
* reshaping tools, straighten, smear, smooth, perspective, liquify, bloat, pucker, push pixels in any direction, dispersion, transform like warp, blending with soft light, page-curl, whirl, ripple, fisheye, neon, etc.
* red eye fixing, blemish remover, skin smoothing, teeth whitener, make eyes look brighter, desaturate,
effects like oil paint, cartoon, pencil sketch, charcoal, noise/matrix like sharpen/unsharpen, (right AROS key with A for Artistic effects)
* blend two image, gradient blend, masking blend, explode, implode, custom collage, surreal painting, comic book style, needlepoint, stained glass, watercolor, mosaic, stencil/outline, crayon, chalk, etc.
borders such as
* dropshadow, rounded, blurred, color tint, picture frame, film strip polaroid, bevelled edge, etc.
brushes e.g.
* frost, smoke, etc.
and manual control of
fix lens issues including vignetting (darkening), color fringing and barrel distortion, and chromatic and geometric aberration - lens and body profiles
perspective correction
levels - directly modify the levels of the tone-values of an image, by using sliders for highlights, midtones and shadows
curves - Color Adjustment and Brightness/Contrast
color balance
one single color transparent (alpha channel (color information/selections) for masking and/or blending ) for backgrounds, etc.
Threshold indicates how much other colors will be considered mixture of the removed color and non-removed colors
decompose layer into a set of layers with each holding a different type of pattern that is visible within the image
any selection using any selecting tools like lasso tool, marquee tool etc. the selection will temporarily be save to alpha
If you create your image without transparency then the Alpha channel is not present, but you can add later.
File formats like .psd (Photoshop file has layers, masks etc. contains edited sensor data. The original sensor data is no longer available) .xcf .raw .hdr
Image Picture Formats
* low dynamic range (JPEG, PNG, TIFF 8-bit), 16-bit (PPM, TIFF), typically as a 16-bit TIFF in either ProPhoto or AdobeRGB colorspace - TIFF files are also fairly universal – although, if they contain proprietary data, such as Photoshop Adjustment Layers or Smart Filters, then they can only be opened by Photoshop making them proprietary.
* linear high dynamic range (HDR) images (PFM, [http://www.openexr.com/ ILM .EXR], jpg, [http://aminet.net/util/dtype cr2] (canon tiff based), hdr, NEF, CRW, ARW, MRW, ORF, RAF (Fuji), PEF, DCR, SRF, ERF, DNG files are RAW converted to an Adobe proprietary format - a container that can embed the raw file as well as the information needed to open it)
An old version of [http://archives.aros-exec.org/index.php?function=browse&cat=graphics/convert dcraw]
There is no single RAW file format. Each camera manufacturer has one or more unique RAW formats. RAW files contain the brightness levels data captured by the camera sensor. This data cannot be modified. A second smaller file, separate XML file, or within a database with instructions for the RAW processor to change exposure, saturation etc. The extra data can be changed but the original sensor data is still there. RAW is technically least compatible.
A raw file is high-bit (usually 12 or 14 bits of information) but a camera-generated TIFF file will be usually converted by the camera (compressed, downsampled) to 8 bits. The raw file has no embedded color balance or color space, but the TIFF has both. These three things (smaller bit depth, embedded color balance, and embedded color space) make it so that the TIFF will lose quality more quickly with image adjustments than the raw file. The camera-generated TIFF image is much more like a camera processed JPEG than a raw file. A strong advantage goes to the raw file. The power of RAW files, such as the ability to set any color temperature non-destructively and will contain more tonal values.
The principle of preserving the maximum amount of information to as late as possible in the process. The final conversion - which will always effectively represent a "downsampling" - should prevent as much loss as possible.
Once you save it as TIFF, you throw away some of that data irretrievably. When saving in the lossy JPEG format, you get tremendous file size savings, but you've irreversibly thrown away a lot of image data. As long as you have the RAW file, original or otherwise, you have access to all of the image data as captured.
Keyboard equivalence with Photoshop(tm) would help
File
PHOTOSHOP SHORTCUT GIMP
New Ctrl+n New
Open Ctrl+o Open
Close Ctrl+w Close
Save Ctrl+s Save
Save as Shift+Ctrl+s Save as
Revert F12 Revert
Print Ctrl+p Print
Exit Ctrl+q Quit
Edit
PHOTOSHOP SHORTCUT GIMP
Undo/Redo (1 level) Ctrl+z Undo (Redo is Shift+Ctrl+z)
Cut Ctrl+x Cut
Copy Ctrl+c Copy
Paste Ctrl+v Paste
Paste Into Shift+Ctrl+v Paste Into
Fill with FG color Alt+Backspace Fill with FG color
Fill with BG color Control+Backspace Fill with BG color
Image/Colors
PHOTOSHOP SHORTCUT GIMP
Levels Ctrl+l Levels
Auto Contrast Shift+Ctrl+Alt+l Stretch Contrast (same?)
Curves Ctrl+m Curves
Color Balance Ctrl+b Color Balance
Hue/Saturation Ctrl+u Hue-Saturation
Desaturate Shift+Ctrl+u Desaturate
Invert Ctrl+i Invert
Default Colors d Default Colors
Switch Colors x Switch Colors
Layer
PHOTOSHOP SHORTCUT GIMP
New Layer Shift+Ctrl+n New Layer
Layer via Copy Ctrl+j Duplicate Layer
Bring (layer) to Front Shift+Ctrl+] Layer to Top
Send (layer) to Back Shift+Ctrl+[ Layer to Bottom
Bring (layer) Forward Ctrl+] Raise Layer
Send (layer) Backward Ctrl+[ Lower Layer
Select Top Layer Shift+Alt+] Select Top Layer
Select Bottom Layer Shift+Alt+[ Select Bottom Layer
Select One Layer Forward Alt+] Select Previous Layer
Select One Layer Backward Alt+[ Select Next Layer
Merge Down Ctrl+e Merge Down
Merge Visible Shift+Ctrl+e Merge Visible
Preserve Transparency / Keep Transparency
Cycle Modes Forwards Shift+= Next Layer Mode
Cycle Modes Backwards Shift+- Previous Layer Mode
Select
PHOTOSHOP SHORTCUT GIMP
Select All Ctrl+a Select All
Deselect Ctrl+d Select None
Inverse Shift+Ctrl+i Invert
Feather Ctrl+Alt+d Feather
View
PHOTOSHOP SHORTCUT GIMP
Zoom In Ctrl+= Zoom In
Zoom Out Ctrl+- Zoom Out
Fit on Screen Ctrl+0 Zoom to Fit Window
Actual Pixels Ctrl+Alt+0 Zoom 1:1
Show/Hide Extras Ctrl+h Toggle Show Selection (close enough?)
Show/Hide Guides Ctrl+' Toggle Show Guides
Show/Hide Grid Ctrl+Alt+' Toggle Show Grid
Show/Hide Rulers Ctrl+r Toggle Show Rulers
Snap Ctrl+; Snap to Guides
Scroll View Up Page Up Scroll Page Up
Scroll View Down Page Down Scroll Page Down
Scroll View Left Ctrl+Page Up Scroll Page Left
Scroll View Right Ctrl+Page Down Scroll Page Right
Window/Dialogs
PHOTOSHOP SHORTCUT GIMP
? F5 Tools Dialog
Color Tab F6 Colors Dialog
Layers Tab F7 Layers Dialog
Info Tab F8 Image Information
Tools
PHOTOSHOP SHORTCUT GIMP
Rectangular Marquee Tool m Rect Select Tool
Elliptical Marquee Tool Shift+m Ellipse Select Tool
*This is a toggle between 'Elliptical Marquee Tool' and 'Rectangular Marquee Tool' in Photoshop
Move Tool v Move Tool
Lasso Tool l Free Select Tool
Magic Wand Tool w Fuzzy Select Tool
Crop Tool c Crop & Resize Tool
Airbrush Tool j Airbrush Tool
Paintbrush Tool b Paintbrush Tool
Clone Stamp Tool s Clone Stamp Tool
Eraser Tool e Eraser Tool
Gradient Tool g Blend Tool
Paint Bucket Tool Shift+g Bucket Fill Tool
*This is a toggle between 'Paint Bucket Tool' and 'Gradient Tool' in Photoshop
Blur Tool r Convolve Tool
Dodge Tool o DodgeBurn Tool
Type Tool t Text Tool
Pen Tool p Bezier Select Tool
Eye Dropper Tool i Color Picker Tool
Zoom Tool z Magnify Tool
Previous Brush , Previous Brush
Next Brush . Next Brush
First Brush Shift+< First Brush
Last Brush Shift+> Last Brush
Decrease Brush Size [ Decrease Brush Size
Increase Brush Size ] Increase Brush Size
Decrease Brush Hardness { Decrease Brush Hardness
Increase Brush Hardness } Increase Brush Hardness
Help
PHOTOSHOP SHORTCUT GIMP
Help F1 Help
Context Help Shift+F1 Context Help
Misc.
PHOTOSHOP SHORTCUT GIMP
Last Filter Ctrl+f Repeat Last Filter
? Shift+Ctrl+f Reshow Last Filter
Preferences Ctrl+k Preferences
Liquify Shift+Ctrl+x IWarp (close enough?)
Toggle Quick Mask q Toggle Quick Mask
Spotlights - triangle of white opaque shape
Cutting out and/or replacing unwanted background or features - select large areas with the selection option like the Magic Wand tool (aka Color Range) or the Lasso (quick and fast) with feather 2 to soften edge or the pen tool which adds points/lines/Bézier curves (better control but slower), hold down the shift button as you click to add extra points/areas of the subject matter to remove. Increase the tolerance to cover more areas. To subtract from your selection hold down alt as you're clicking.
* Layer masks are a better way of working than Erase they clip (black hides/hidden white visible/reveal). Clone Stamp can be simulated by and brushes for other areas.
* Leave the fine details like hair, fur, etc. to later with lasso and the shift key to draw a line all the way around your subject. Gradient Mapping - Inverse - Mask. i.e. Refine your selected image with edge detection and using the radius and edge options / adjuster (increase/decrease contrast) so that you will capture more fine detail from the background allowing easier removal.
Remove fringe/halo
saving image as png rather than jpg/jpeg to keep transparency background intact.
Implemented [http://colorizer.org/ colour model representations] [http://paulbourke.net/texture_colour/colourspace/ Mathematical approach] - Photo stills are spatially 2d (h and w), but are colorimetrically 3d (r g and b, or H L S, or Y U V etc.) as well.
* RGB - split cubed mapped color model for photos and computer graphics hardware using the light spectrum (adding and subtracting)
* YUV - Y-Lightness U-blue/yellow V-red/cyan (similar to YPbPr and YCbCr) used in the PAL, NTSC, and SECAM composite digital TV color [http://crewofone.com/2012/chroma-subsampling-and-transcoding/#comment-7299 video]
Histograms
White balanced (neutral) if the spike happens in the same place in each channel of the RGB graphs. If not, you're not balanced.
If you have sky you'll see the blue channel further off to the right.
RGB is best one to change colours. These elements RGB is a 3-channel format containing data for Red, Green, and Blue in your photo scale between 0 and 255. The area in a picture that appears to be brighter/whiter contains more red color as compared to the area which is relatively darker. Similarly in the green channel the area that appears to be darker contains less amount of green color as compared to the area that appears to be brighter. Similarly in the blue channel the area appears to be darker contains less amount of blue color as compared to the area that appears to be brighter. Brightness luminance histogram also matches the green histogram more than any other color - human eye interprets green better e.g. RGB rough ratio 15/55/30%
RGBA (RGB+A, A means alpha channel) . The alpha channel is used for "alpha compositing", which can mostly be associated as "opacity". AROS deals in RGB with two digits for every color (red, green, blue), in ARGB you have two additional hex digits for the alpha channel.
The shadows are represented by the left third of the graph. The highlights are represented by the right third. And the midtones are, of course, in the middle. The higher the black peaks in the graph, the more pixels are concentrated in that tonal range (total black area).
By moving the black endpoint, which identifies the shadows (darkness) and a white light endpoint (brightness) up and down either sides of the graph, colors are adjusted based on these points.
By dragging the central one, can increased the midtones and control the contrast, raise shadows levels, clip or softly eliminate unsafe levels, alter gamma, etc... in a way that is much more precise and creative .
RGB Curves
* Move left endpoint (black point) up or right endpoint (white point) up brightens
* Move left endpoint down or right endpoint down darkens
Color Curves
* Dragging up on the Red Curve increases the intensity of the reds in the image but
* Dragging down on the Red Curve decreases the intensity of the reds and thus increases the apparent intensity of its complimentary color, cyan. Green’s complimentary color is magenta, and blue’s is yellow.
<pre>
Red <-> Cyan
Green <->Magenta
Blue <->Yellow
</pre>
YUV Best option to analyse and pull out statistical elements of any picture (i.e. separate luminance data from color data). The line in Y luma tone box represents the brightness of the image with the point in the bottom left been black, and the point in the top right as white. A low-contrast image has a concentrated clump of values nearer to the center of the graph. By comparison, a high-contrast image has a wider distribution of values across the entire width of the Histogram. A histogram that is skewed to the right would indicate a picture that is a bit overexposed because most of the color data is on the lighter side (increase exposure with higher value F), while a histogram with the curve on the left shows a picture that is underexposed. This is good information to have when using post-processing software because it shows you not only where the color data exists for a given picture, but also where any data has been clipped (extremes on edges of either side): that is, it does not exist and, therefore, cannot be edited. By dragging the endpoints of the line and as well as the central one, can increased the dark/shadows, midtones and light/bright parts and control the contrast, raise shadows levels, clip or softly eliminate unsafe levels, alter gamma, etc... in a way that is much more precise and creative .
The U and V chroma parts show color difference components of the image. It’s useful for checking whether or not the overall chroma is too high, and also whether it’s being limited too much
Can be used to create a negative image but also
With U (Cb), the higher value you are, the more you're on the blue primary color. If you go to the low values then you're on blue complementary color, i.e. yellow.
With V (Cr), this is the same principle but with Red and Cyan.
e.g. If you push U full blue and V full red, you get magenta. If you push U full yellow and V full Cyan then you get green.
YUV simultaneously adds to one side of the color equation while subtracting from the other.
using YUV to do color correction can be very problematic because each curve alters the result of each other: the mutual influence between U and V often makes things tricky. You may also be careful in what you do to avoid the raise of noise (which happens very easily). Best results are obtained with little adjustments
sunset that looks uninspiring and needs some color pop especially for the rays over the hill, a subtle contrast raise while setting luma values back to the legal range without hard clipping.
Free royalty pictures, [www.freeimages.com ], [http://imageshack.us/ ], [http://photobucket.com/ ], [http://rawpixels.net/], [], [], [],
====Lunapaint====
Pixel based drawing app with onion-skin animation function
Blocking, Shading, Coloring, adding detail
<pre>
b BRUSH
e ERASER
alt eyedropper
v layer tool
z ZOOM / MAGNIFY < > n
spc panning
m marque
q lasso
w same color selection / region
</pre>
<pre>
, LM RM
v
V
f filter
F
. size
p
, pick color
[] last / next color
</pre>
There is not much missing in Lunapaint to be as good as FlipBook and then you have to take into account that Flipbook is considered to be amongst the best and easiest to use animation software out there. Ok to be honest Flipbook has some nice features that require more heavy work but those aren't so much needed right away, things like camera effects, sound, smart fill, export to different movie file formats etc.
Tried Flipbook with my tablet and compared it to Luna. The feeling is the same when sketching. LunaPaint is very responsive/fluent to draw with. Just as Flipbook is, and that responsiveness is something its users have mentioned as one of the positive sides of said software.
author was learning MUI. Some parts just have to be rewritten with proper MUI classes before new features can be added.
* add [Frame Add] / [Frame Del]
* whole animation feature is impossible to use. If you draw 2 color maybe but if you start coloring your cells then you get in trouble
* pickup the entire image as a brush, not just a selection ? And consequently remove the brush from memory when one doesn't need it anymore. can pick up a brush and put it onto a new image but cropping isn't possible, nor to load/save brushes.
* Undo is something I longed for ages in Lunapaint.
* to import into the current layer, other types of images (e.g. JPEG) besides RAW64.
* implement graphic tablet features support
**GENERAL DRAWING**
Miss it very much:
UNDO
ERASER
COLORPICKER - has to show on palette too which color got picked.
BACKGROUND COLOR -Possibility to select from "New project screen"
Miss it somewhat:
ICON for UNDO
ICON for ERASER
ICON for CLEAR SCREEN ( What can I say? I start over from scratch very often )
BRUSH - possibility to cut out as brush not just copy off image to brush
**ANIMATING**
Miss it very much:
NUMBER OF CELLS - Possibity to change total no. of cells during project
ANIM BRUSH - Possibility to pick up a selected part of cells into an animbrush
Miss it somewhat:
ADD/REMOVE FRAMES: Add/remove single frame
In general LunaPaint is really well done and it feels like a new DeluxePaint version. It works with my tablet. Sure there's much missing of course but things can always be added over time. So there is great potential in LunaPaint that's for sure. Animations could be made in it and maybe put together in QuickVideo, saving in .gif or .mng etc some day.
LAYERS
-Layers names don't get saved globally in animation frames
-Layers order don't change globally in an animation (perhaps as default?).
EXPORTING IMAGES
-Exporting frames to JPG/PNG gives problems with colors. (wrong colors. See my animatiopn --> My robot was blue now it's "gold" ) I think this only happens if you have layers.
-Trying to flatten the layers before export doesn't work if you have animation frames only the one you have visible will flatten properly all other frames are destroyed. (Only one of the layers are visible on them)
-Exporting images filenames should be for example e.g. file0001, file0002...file0010 instead as of now file1, file2...file10
LOAD/SAVE (Preferences)
-Make a setting for the default "Work" folder.
* Destroyed colors if exported image/frame has layers
* mystic color cycling of the selected color while stepping frames back/forth (annoying)
<pre>
Deluxe Paint II enhanced key shortcuts
NOTE: @ denotes the ALT key
[Technique]
F1 - Paint
F2 - Single Colour
F3 - Replace
F4 - Smear
F5 - Shade
F6 - Cycle
F7 - Smooth
M - Colour Cycle
[Brush]
B - Restore
O - Outline
h - Halve brush size
H - Double brush size
x - Flip brush on X axis
X - Double brush size on X axis only
y - Flip on Y
Y - Double on Y
z - Rotate brush 90 degrees
Z - Stretch
[Stencil]
` - Stencil On
[Miscellaneous]
F9 - Info Bar
F10 - Selection Bar
@o - Co-Ordinates
@a - Anti-alias
@r - Colourise
@t - Translucent
TAB - Colour Cycle
[Picture]
L - Load
S - Save
j - Page to Spare(Flip)
J - Page to Spare(Copy)
V - View Page
Q - Quit
[General Keys]
m - Magnify
< - Zoom In
> - Zoom Out
[ - Palette Colour Up
] - Palette Colour Down
( - Palette Colour Left
) - Palette Colour Right
, - Eye Dropper
. - Pixel / Brush Toggle
/ - Symmetry
| - Co-Ordinates
INS - Perspective Control
+/- - Brush Size (Fine Control)
w - Unfilled Polygon
W - Filled Polygon
e - Unfilled Ellipse
E - Filled Ellipse
r - Unfilled Rectangle
R - Filled Rectangle
t - Type/text tool
a - Select Font
u/U - Undo
d - Brush
D - Filled Non-Uniform Polygon
f/F - Fill Options
g/G - Grid
h/H - Brush Size (Coarse Control)
K - Clear
c - Unfilled Circle
C - Filled Circle
v - Line
b - Scissor Select and Toggle
B - Brush
{,} - Toggle between two background colours
</pre>
====Lodepaint====
Pixel based painting artwork app
====Grafx2====
Pixel based painting artwork app aesprite like
[https://www.youtube.com/watch?v=59Y6OTzNrhk aesprite workflow keys and tablet use], [],
====Vector Graphics ZuneFIG====
Vector Image Editing of files .svg .ps .eps
*Objects - raise lower rotate flip aligning snapping
*Path - unify subtract intersect exclude divide
*Colour - fill stroke
*Stroke - size
*Brushes -
*Layers -
*Effects - gaussian bevels glows shadows
*Text -
*Transform -
AmiFIG ([http://epb.lbl.gov/xfig/frm_introduction.html xfig manual])
[[File:MyScreen.png|thumb|left|alt=Showing all Windows open in AmiFIG.|All windows available to AmiFIG.]]
for drawing simple to intermediate vector graphic images for scientific and technical uses and for illustration purposes for those with talent
;Menu options
* Load - fig format but import(s) SVG
* Save - fig format but export(s) eps, ps, pdf, svg and png
* PAN = Ctrl + Arrow keys
* Deselect all points
There is no selected object until you apply the tool, and the selected object is not highlighted.
;Metrics - to set up page and styles - first window to open on new drawings
;Tools - Drawing Primitives - set Attributes window first before clicking any Tools button(s)
* Shapes - circles, ellipses, arcs, splines, boxes, polygon
* Lines - polylines
* Text "T" button
* Photos - bitmaps
* Compound - Glue, Break, Scale
* POINTs - Move, Add, Remove
* Objects - Move, Copy, Delete, Mirror, Rotate, Paste
use right mouse button to stop extra lines, shapes being formed and the left mouse to select/deselect tools button(s)
* Rotate - moves in 90 degree turns centered on clicked POINT of a polygon or square
;Attributes which provide change(s) to the above primitives
* Color
* Line Width
* Line Style
* arrowheads
;Modes
Choose from freehand, charts, figures, magnet, etc.
;Library - allows .fig clip-art to be stored
* compound tools to add .fig(s) together
;FIG 3.2 [http://epb.lbl.gov/xfig/fig-format.html Format] as produced by xfig version 3.2.5
<pre>
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
4 0 0 50 -1 0 12 0.0000 4 135 1050 1050 2475 This is a test.01
</pre>
# change the text alignment within the textbox. I can choose left, center, or right aligned by either changing the integer in the second column from 0 (left) to 1 or 2 (center, or right).
# The third integer in the row specifies fontcolor. For instance, 0 is black, but blue is 1 and Green3 is 13.
# The sixth integer in the bottom row specifies fontface. 0 is Times-Roman, but 16 is Helvetica (a MATLAB default).
# The seventh number is fontsize. 12 represents a 12pt fontsize. Changing the fontsize of an item really is as easy as changing that number to 20.
# The next number is the counter-clockwise angle of the text. Notice that I have changed the angle to .7854 (pi/4 rounded to four digits=45 degrees).
# twelfth number is the position according to the standard “x-axis” in Xfig units from the left. Note that 1200 Xfig units is equivalent to once inch.
# thirteenth number is the “y-position” from the top using the same unit convention as before.
* The nested text string is what you entered into the textbox.
* The “01″ present at the end of that line in the .fig file is the closing tag. For instance, a change to \100 appends a @ symbol at the end of the period of that sentence.
; Just to note there are no layers, no 3d functions, no shading, no transparency, no animation
[[#top|...to the top]]
===Audio===
# AHI uses linear panning/balance, which means that in the center, you will get -6dB. If an app uses panning, this is what you will get. Note that apps like Audio Evolution need panning, so they will have this problem.
# When using AHI Hifi modes, mixing is done in 32-bit and sent as 32-bit data to the driver. The Envy24HT driver uses that to output at 24-bit (always).
# For the Envy24/Envy24HT, I've made 16-bit and 24-bit inputs (called Line-in 16-bit, Line-in 24-bit etc.). There is unfortunately no app that can handle 24-bit recording.
====Music Mods====
Digital module (mods) trackers are music creation software using samples and sometimes soundfonts, audio plugins (VST, AU or RTAS), MIDI.
Generally, MODs are similar to MIDI in that they contain note on/off and other sequence messages that control the mod player. Unlike (most) midi files, however, they also contain sound samples that the sequence information actually plays. MOD files can have many channels (classic amiga mods have 4, corresponding to the inbuilt sound channels), but unlike MIDI, each channel can typically play only one note at once. However, since that note might be a sample of a chord, a drumloop or other complex sound, this is not as limiting as it sounds.
Like MIDI, notes will play indefinitely if they're not instructed to end. Most trackers record this information automatically if you play your music in live. If you're using manual note entry, you can enter a note-off command with a keyboard shortcut - usually Caps Lock.
In fact when considering file size MOD is not always the best option. Even a dummy song wastes few kilobytes for nothing when a simple SID tune could be few hundreds bytes and not bigger than 64kB. AHX is another small format, AHX tunes are never larger than 64kB excluding comments.
[https://www.youtube.com/watch?v=rXXsZfwgil Protrekkr] (previously aka [w:Juan_Antonio_Arguelles_Rius|NoiseTrekkr])
If Protrekkr does not start, please check if the Unit 0 has been setup in the AHI prefs and still not, go to the directory utilities/protrekkr and double click on the Protrekkr icon
*Sample
*Note - Effect
*Track (column) - Pattern - Order
It all starts with the Sample which is used to create Note(s) in a Track (column of a tracker)
The Note can be changed with an Effect. A Track of Note(s) can be collected into a Pattern (section of a song) and these can be given Order to create the whole song.
Patience (notes have to be entered one at a time) or playing the bassline on a midi controller (faster - see midi section above). Best approach is to wait until a melody popped into your head.
*Up-tempo means the track should be reasonably fast, but not super-fast.
*Groovy and funky imply the track should have some sort of "swing" feel, with plenty of syncopation or off beat emphasis and a recognizable, melodic bass line.
*Sweet and happy mean upbeat melodies, a major key and avoiding harsh sounds.
*Moody - minor key
First, create a quick bass sound, which is basically a sine wave, but can be hand drawn for a little more variance. It could also work for the melody part, too.
This is usually a bass guitar or some kind of synthesizer bass. The bass line is often forgotten by inexperienced composers, but it plays an important role in a musical piece. Together with the rhythm section the bass line forms the groove of a song. It's the glue between the rhythm section and the melodic layer of a song.
The drums are just pink noise samples, played at different frequencies to get a slightly different sound for the kick, snare, and hihats.
Instruments that fall into the rhythm category are bass drums, snares, hi-hats, toms, cymbals, congas, tambourines, shakers, etc. Any percussive instrument can be used to form part of the rhythm section.
The lead is the instrument that plays the main melody, on top of the chords. There are many instruments that can play a lead section, like a guitar, a piano, a saxophone or a flute. The list is almost endless. There is a lot of overlap with instruments that play chords. Often in one piece an instrument serves both roles. The lead melody is often played at a higher pitch than the chords.
Listened back to what was produced so far, and a counter-melody can be imagined, which can be added with a triangle wave.
To give the ends of phrases some life, you can add a solo part with a crunchy synth. By hitting random notes in the key of G, then edited a few of them.
For the climax of the song, filled out the texture with a gentle high-pitch pad… …and a grungy bass synth.
The arrow at A points at the pattern order list. As you see, the patterns don't have to be in numerical order. This song starts with pattern "00", then pattern "02", then "03", then "01", etcetera. Patterns may be repeated throughout a song.
The B arrow points at the song title. Below it are the global BPM and speed parameters. These determine the tempo of the song, unless the tempo is altered through effect commands during the song.
The C arrow points at the list of instruments. An instrument may consist of multiple samples. Which sample will be played depends on the note. This can be set in the Instrument Editing screen. Most instruments will consist of just one sample, though. The sample list for the selected instrument can be found under arrow D.
Here's a part of the main editing screen. This is where you put in actual notes. Up to 32 channels can be used, meaning 32 sounds can play simultaneously. The first six channels of pattern "03" at order "02" are shown here. The arrow at A points at the row number. The B arrow points at the note to play, in this case a C4. The column pointed at by the C arrow tells us which instrument is associated with that note, in this case instrument #1 "Kick".
The column at D is used (mainly) for volume commands. In this case it is left empty which means the instrument should play at its default volume. You can see the volume column being used in channel #6.
The E column tells us which effect to use and any parameters for that effect. In this case it holds the "F" effect, which is a tempo command. The "04" means it should play at tempo 4 (a smaller number means faster).
Base pattern
When I create a new track I start with what I call the base pattern. It is worthwhile to spend some time polishing it as a lot of the ideas in the base pattern will be copied and used in other patterns. At least, that's how I work. Every musician will have his own way of working. In "Wild Bunnies" the base pattern is pattern "03" at order "02".
In the section about selecting samples I talked about the four different categories of instruments: drums, bass, chords and leads. That's also how I usually go about making the base pattern. I start by making a drum pattern, then add a bass line, place some chords and top it off with a lead. This forms the base pattern from which the rest of the song will grow.
Drums
Here's a screenshot of the first four rows of the base pattern. I usually reserve the first four channels or so for the drum instruments. Right away there are a couple of tricks shown here. In the first channel the kick, or bass drum, plays some notes. Note the alternating F04 and F02 commands. The "F" command alters the tempo of the song and by quickly alternating the tempo; the song will get some kind of "swing" feel.
In the second channel the closed hi-hat plays a fairly simple pattern. Further down in the channel, not shown here, some open hi-hat notes are added for a bit of variation.
In the third and fourth channel the snare sample plays. The "8" command is for panning. One note is panned hard to the left and the other hard to the right. One sample is played a semitone lower than the other. This results in a cool flanging effect. It makes the snare stand out a little more in the mix.
Bass line
There are two different instruments used for the bass line. Instrument #6 is a pretty standard synthesized bass sound. Instrument #A sounds a bit like a slap bass when used with a quick fade out. By using two different instruments the bass line sounds a bit more ”human”. The volume command is used to cut off the notes. However, it is never set to zero. Setting the volume to a very small value will result in a reverb-like effect. This makes the song sound more "live".
The bass line hints at the chords that will be played and the key the song will be in. In this case the key of the song is D-major, a positive and happy key.
Chords
The D major chords that are being played here are chords stabs; short sounds with a quick decay (fade out). Two different instruments (#8 and #9) are used to form the chords. These instruments are quite similar, but have a slightly different sound, panning and volume decay. Again, the reason for this is to make the sound more human. The volume command is used on some chords to simulate a delay, to achieve more of a live feel. The chords are placed off-beat making for a funky rhythm.
Lead
Finally the lead melody is added. The other instruments are invaluable in holding the track together, but the lead melody is usually what catches people's attention.
A lot of notes and commands are used here, but it looks more complex than it is. A stepwise ascending melody plays in channel 13. Channel 14 and 15 copy this melody, but play it a few rows later at a lower volume. This creates an echo effect. A bit of panning is used on the notes to create some stereo depth. Like with the bass line, instead of cutting off notes the volume is set to low values for a reverb effect. The "461" effect adds a little vibrato to the note, which sounds nice on sustained notes.
Those paying close attention may notice the instrument used here for the lead melody is the same as the one used for the bass line (#6 "Square"), except played two or three octaves higher. This instrument is a looped square wave sample. Each type of wave has its own quirks, but the square wave (shown below) is a really versatile wave form.
Song structure
Good, catchy songs are often carefully structured into sections, some of which are repeated throughout the song with small variations.
A typical pop-song structure is: Intro - Verse - Chorus - Verse - Chorus - Bridge - Chorus.
Other single sectional song structures are
<pre>
Strophic or AAA Song Form - oldest story telling with refrain (often title of the song) repeated in every verse section melody
AABA Song Form - early popular, jazz and gospel fading during the 1960s
AB or Verse/Chorus Song Form - songwriting format of choice for modern popular music since the 1960s
Verse/Chorus/Bridge Song Form
ABAB Song Form
ABAC Song Form
ABCD Song Form
AAB 12-Bar Song Form - three four-bar lines or sub-sections
8-Bar Song Form
16-Bar Song Form
Hybrid / Compound Song Forms
</pre>
The most common building blocks are:
#INTRODUCTION(INTRO)
#VERSE
#REFRAIN
#PRE-CHORUS / RISE / CLIMB
#CHORUS
#BRIDGE
#MIDDLE EIGHT
#SOLO / INSTRUMENTAL BREAK
#COLLISION
#CODA / OUTRO
#AD LIB (OFTEN IN CODA / OUTRO)
The chorus usually has more energy than the verse and often has a memorable melody line. As the chorus is repeated the most often during the song, it will be the part that people will remember.
The bridge often marks a change of direction in the song. It is not uncommon to change keys in the bridge, or at least to use a different chord sequence. The bridge is used to build up tension towards the big finale, the last repetition of chorus.
Playing
RCTRL: Play song from row 0.
LSHIFT + RCTRL: Play song from current row.
RALT: Play pattern from row 0.
LSHIFT + RALT: Play pattern from current row.
Left mouse on '>': Play song from row 0.
Right mouse on '>': Play song from current row.
Left mouse on '|>': Play pattern from row 0.
Right mouse on '|>': Play pattern from current row.
Left mouse on 'Edit/Record': Edit mode on/off.
Right mouse on 'Edit/Record': Record mode on/off.
Editing
LSHIFT + ESCAPE: Switch large patterns view on/off
TAB: Go to next track
LSHIFT + TAB: Go to prev. track
LCTRL + TAB: Go to next note in track
LCTRL + LSHIFT + TAB: Go to prev. note in track
SPACE: Toggle Edit mode On & Off
(Also stop if the song is being played)
SHIFT SPACE: Toggle Record mode On & Off
(Wait for a key note to be pressed
or a midi in message to be received)
DOWN ARROW: 1 Line down
UP ARROW: 1 Line up
LEFT ARROW: 1 Row left
RIGHT ARROW: 1 Row right
PREV. PAGE: 16 Arrows Up
NEXT PAGE: 16 Arrows Down
HOME / END: Top left / Bottom right of pattern
LCTRL + HOME / END: First / last track
F5, F6, F7, F8, F9: Jump to 0, 1/4, 2/4, 3/4, 4/4 lines of the patterns
+ - (Numeric keypad): Next / Previous pattern
LCTRL + LEFT / RIGHT: Next / Previous pattern
LCTRL + LALT + LEFT / RIGHT: Next / Previous position
LALT + LEFT / RIGHT: Next / Previous instrument
LSHIFT + M: Toggle mute state of the current channel
LCTRL + LSHIFT + M: Solo the current track / Unmute all
LSHIFT + F1 to F11: Select a tab/panel
LCTRL + 1 to 4: Select a copy buffer
Tracking
1st and 2nd keys rows: Upper octave row
3rd and 4th keys rows: Lower octave row
RSHIFT: Insert a note off
/ and * (Numeric keypad)
or F1 F2: -1 or +1 octave
INSERT / BACKSPACE: Insert or Delete a line in current track
or current selected block.
LSHIFT + INSERT / BACKSPACE: Insert or Delete a line in current pattern
DELETE (NOT BACKSPACE): Empty a column or a selected block.
Blocks
(Blocks can also be selected with the mouse by holding the right button and scrolling the pattern with the mouse wheel).
LCTRL + A: Select entire current track
LCTRL + LSHIFT + A: Select entire current pattern
LALT + A: Select entire column note in a track
LALT + LSHIFT + A: Select all notes of a track
LCTRL + X: Cut the selected block and copy it into the block-buffer
LCTRL + C: Copy the selected block into the block-buffer
LCTRL + V: Paste the data from the block buffer into the pattern
LCTRL + I: Interpolate selected data from the first to the last row of a selection
LSHIFT + ARROWS
PREV. PAGE
NEXT PAGE: Select a block
LCTRL + R: Randomize the select columns of a selection, works similar to CTRL + I (interpolating them)
LCTRL + U: Transpose the note of a selection to 1 seminote higher
LCTRL + D: Transpose the note of a selection to 1 seminote lower
LCTRL + LSHIFT + U: Transpose the note of a selection to 1 seminote higher (only for the current instrument)
LCTRL + LSHIFT + D: Transpose the note of a selection to 1 seminote lower (only for the current instrument)
LCTRL + H: Transpose the note of a selection to 1 octave higher
LCTRL + L: Transpose the note of a selection to 1 octave lower
LCTRL + LSHIFT + H: Transpose the note of a selection to 1 octave higher (only for the current instrument)
LCTRL + LSHIFT + L: Transpose the note of a selection to 1 octave lower (only for the current instrument)
LCTRL + W: Save the current selection into a file
Misc
LALT + ENTER: Switch between full screen / windowed mode
LALT + F4: Exit program (Windows only)
LCTRL + S: Save current module
LSHIFT + S: Switch top right panel to synths list
LSHIFT + I: Switch top right panel to instruments list
<pre>
C-x xh xx xx hhhh Volume
B-x xh xx xx hhhh Jump to
A#x xh xx xx hhhh hhhh Slide
F-x xh xx xx hhhh Tempo
D-x xh xx xx hhhh Pattern Break
G#x xh xx xx hhhh
</pre>
h Hex 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13
d Dec 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19
The Set Volume command: C. Input a note, then move the cursor to the effects command column and type a C. Play the pattern, and you shouldn't be able to hear the note you placed the C by. This is because the effect parameters are 00. Change the two zeros to a 40(Hex)/64(Dec), depending on what your tracker uses. Play back the pattern again, and the note should come in at full volume.
The Position Jump command next. This is just a B followed by the position in the playing list that you want to jump to. One thing to remember is that the playing list always starts at 0, not 1. This command is usually in Hex.
Onto the volume slide command: A. This is slightly more complex (much more if you're using a newer tracker, if you want to achieve the results here, then set slides to Amiga, not linear), due to the fact it depends on the secondary tempo. For now set a secondary tempo of 06 (you can play around later), load a long or looped sample and input a note or two. A few rows after a note type in the effect command A. For the parameters use 0F. Play back the pattern, and you should notice that when the effect kicks in, the sample drops to a very low volume very quickly. Change the effect parameters to F0, and use a low volume command on the note. Play back the pattern, and when the slide kicks in the volume of the note should increase very quickly.
This because each part of the effect parameters for command A does a different thing. The first number slides the volume up, and the second slides it down. It's not recommended that you use both a volume up and volume down at the same time, due to the fact the tracker only looks for the first number that isn't set to 0. If you specify parameters of 8F, the tracker will see the 8, ignore the F, and slide the volume up. Using a slide up and down at same time just makes you look stupid. Don't do it...
The Set Tempo command: F, is pretty easy to understand. You simply specify the BPM (in Hex) that you want to change to. One important thing to note is that values of lower than 20 (Hex) sets the secondary tempo rather than the primary.
Another useful command is the Pattern Break: D. This will stop the playing of the current pattern and skip to the next one in the playing list. By using parameters of more than 00 you can also specify which line to begin playing from.
Command 3 is Portamento to Note. This slides the currently playing note to another note, at a specified speed. The slide then stops when it reaches the desired note.
<pre>
C-2 1 000 - Starts the note playing
--- 000
C-3 330 - Starts the slide to C-3 at a speed of 30.
--- 300 - Continues the slide
--- 300 - Continues the slide
</pre>
Once the parameters have been set, the command can be input again without any parameters, and it'll still perform the same function unless you change the parameters. This memory function allows certain commands to function correctly, such as command 5, which is the Portamento to Note and Volume Slide command. Once command 3 has been set up command 5 will simply take the parameters from that and perform a Portamento to Note. Any parameters set up for command 5 itself simply perform a Volume Slide identical to command A at the same time as the Portamento to Note.
This memory function will only operate in the same channel where the original parameters were set up.
There are various other commands which perform two functions at once. They will be described as we come across them.
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 00
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 02
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 05
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 08
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 0A
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 0D
C-3 04 .. .. 09 10 ---> C-3 04 .. .. 09 10
(You can also switch on the Slider Rec to On, and perform parameter-live-recording, such as cutoff transitions, resonance or panning tweaking, etc..) Note: this command only works for volume/panning and fx datas columns.
The next command we'll look at is the Portamento up/down: 1 and 2. Command 1 slides the pitch up at a specified speed, and 2 slides it down. This command works in a similar way to the volume slide, in that it is dependent on the secondary tempo. Both these commands have a memory dependent on each other, if you set the slide to a speed of 3 with the 1 command, a 2 command with no parameters will use the speed of 3 from the 1 command, and vice versa.
Command 4 is Vibrato. Vibrato is basically rapid changes in pitch, just try it, and you'll see what I mean. Parameters are in the format of xy, where x is the speed of the slide, and y is the depth of the slide. One important point to remember is to keep your vibratos subtle and natural so a depth of 3 or less and a reasonably fast speed, around 8, is usually used. Setting the depth too high can make the part sound out of tune from the rest.
Following on from command 4 is command 6. This is the Vibrato and Volume Slide command, and it has a memory like command 5, which you already know how to use.
Command 7 is Tremolo. This is similar to vibrato. Rather than changing the pitch it slides the volume. The effect parameters are in exactly the same format. vibrato effect (0x1dxy) x = speed y = depth (can't be used if arpeggio (0x1b) is turned on)
<pre>
C-7 00 .. .. 1B37 <- Turn Arpeggio effect on
--- .. .. .. 0000
--- .. .. .. 0000
--- .. .. .. 0000
--- .. .. .. 1B38 <- Change datas
--- .. .. .. 0000
--- .. .. .. 0000
--- .. .. .. 0000
--- .. .. .. 1B00 <- Turn it off
</pre>
Command 9 is Sample Offset. This starts the playback of the sample from a different place than the start. The effect parameters specify the sample offset, but only very roughly. Say you have a sample which is 8765(Hex) bytes long, and you wanted it to play from position 4321(Hex). The effect parameter could only be as accurate as the 43 part, and it would ignore the 21.
Command B is the Playing List/Order Jump command. The parameters specify the position in the Playing List/Order to jump to. When used in conjunction with command D you can specify the position and the line to play from.
Command E is pretty complex, as it is used for a lot of different things, depending on what the first parameter is. Let's take a trip through each effect in order.
Command E0 controls the hardware filter on an Amiga, which, as a low pass filter, cuts off the highest frequencies being played back. There are very few players and trackers on other system that simulate this function, not that you should need to use it. The second parameter, if set to 1, turns on the filter. If set to 0, the filter gets turned off.
Commands E1/E2 are Fine Portamento Up/Down. Exactly the same functions as commands 1/2, except that they only slide the pitch by a very small amount. These commands have a memory the same as 1/2 as well.
Command E3 sets the Glissando control. If parameters are set to 1 then when using command 3, any sliding will only use the notes in between the original note and the note being slid to. This produces a somewhat jumpier slide than usual. The best way to understand is to try it out for yourself. Produce a slow slide with command 3, listen to it, and then try using E31.
Command E4 is the Set Vibrato Waveform control. This command controls how the vibrato command slides the pitch. Parameters are 0 - Sine, 1 - Ramp Down (Saw), 2 - Square. By adding 4 to the parameters, the waveform will not be restarted when a new note is played e.g. 5 - Sine without restart.
Command E5 sets the Fine Tune of the instrument being played, but only for the particular note being played. It will override the default Fine Tune for the instrument. The parameters range from 0 to F, with 0 being -8 and F being +8 Fine Tune. A parameter of 8 gives no Fine Tune. If you're using a newer tracker that supports more than -8 to +8 e.g. -128 to +128, these parameters will give a rough Fine Tune, accurate to the nearest 16.
Command E6 is the Jump Loop command. You mark the beginning of the part of a pattern that you want to loop with E60, and then specify with E6x the end of the loop, where x is the number of times you want it to loop.
Command E7 is the Set Tremolo Waveform control. This has exactly the same parameters as command E4, except that it works for Tremolo rather than Vibrato.
Command E9 is for Retriggering the note quickly. The parameter specifies the interval between the retrigs. Use a value of less than the current secondary tempo, or else the note will not get retrigged.
Command EA/B are for Fine Volume Slide Up/Down. Much the same as the normal Volume Slides, except that these are easier to control since they don't depend on the secondary tempo. The parameters specify the amount to slide by e.g. if you have a sample playing at a volume of 08 (Hex) then the effect EA1 will slide this volume to 09 (Hex). A subsequent effect of EB4 would slide this volume down to 05 (Hex).
Command EC is the Note Cut. This sets the volume of the currently playing note to 0 at a specified tick. The parameters should be lower than the secondary tempo or else the effect won't work.
Command ED is the Note Delay. This should be used at the same time as a note is to be played, and the parameters will specify the number of ticks to delay playing the note. Again, keep the parameters lower than the secondary tempo, or the note won't get played!
Command EE is the Pattern Delay. This delays the pattern for the amount of time it would take to play a certain number of rows. The parameters specify how many rows to delay for.
Command EF is the Funk Repeat command. Set the sample loop to 0-1000. When EFx is used, the loop will be moved to 1000- 2000, then to 2000-3000 etc. After 9000-10000 the loop is set back to 0- 1000. The speed of the loop "movement" is defined by x. E is two times as slow as F, D is three times as slow as F etc. EF0 will turn the Funk Repeat off and reset the loop (to 0-1000).
effects 0x41 and 0x42 to control the volumes of the 2 303 units
There is a dedicated panel for synth parameter editing with coherent sections (osc, filter modulation, routing, so on) the interface is much nicer, much better to navigate with customizable colors, the reverb is now customizable (10 delay lines), It accepts newer types of Waves (higher bit rates, at least 24). Has a replay routine.
It's pretty much your basic VA synth. The problem isn't with the sampler being to high it's the synth is tuned two octaves too low, but if you want your samples tuned down just set the base note down 2 octaves (in the instrument panel).
so the synth is basically divided into 3 sections from left to right: oscillators/envelopes, then filter and LFO's, and in the right column you have mod routings and global settings.
for the oscillator section you have two normal oscillators (sine, saw, square, noise), the second of which is tunable, the first one tunes with the key pressed. Attached to OSC 1 is a sub-oscillator, which is a sawtooth wave tuned one octave down. The phase modulation controls the point in the duty cycle at which the oscillator starts. The ADSR envelope sliders (grouped with oscs) are for modulation envelope 1 and 2 respectively. you can use the synth as a sampler by choosing the instrument at the top.
In the filter column, the filter settings are: 1 = lowpass, 2 = highpass, 3 = off. cutoff and resonance. For the LFOs they are LFO 1 and LFO 2, the ADSR sliders in those are for the LFO itself.
For the modulation routings you have ENV 1, LFO 1 for the first slider and ENV 2, LFO 2 for the second, you can cycle through the individual routings there, and you can route each modulation source to multiple destinations of course, which is another big plus for this synth. Finally the glide time is for portamento and master volume, well, the master volume... it can go quite loud.
The sequencer is changed too, It's more like the one in AXS if you've used that, where you can mute tracks to re-use patterns with variation.
<pre>
Support for the following modules formats:
669 (Composer 669, Unis 669),
AMF (DSMI Advanced Module Format),
AMF (ASYLUM Music Format V1.0),
APUN (APlayer), DSM (DSIK internal format),
FAR (Farandole Composer),
GDM (General DigiMusic),
IT (Impulse Tracker),
IMF (Imago Orpheus),
MOD (15 and 31 instruments),
MED (OctaMED),
MTM (MultiTracker Module editor),
OKT (Amiga Oktalyzer),
S3M (Scream Tracker 3),
STM (Scream Tracker),
STX (Scream Tracker Music Interface Kit),
ULT (UltraTracker),
UNI (MikMod),
XM (FastTracker 2),
Mid (midi format via timidity)
</pre>
Possible plugin options include [http://lv2plug.in/ LV2],
====Midi - Musical Instrument Digital Interface====
A midi file typically contains music that plays on up to 16 channels (as per the midi standard), but many notes can simultaneously play on each channel (depending on the limit of the midi hardware playing it).
'''Timidity'''
Although usually already installed, you can uncompress the [http://www.libsdl.org/projects/SDL_mixer/ timidity.tar.gz (14MB)] into a suitable drawer like below's SYS:Extras/Audio/
assign timidity: SYS:Extras/Audio/timidity
added to SYSːs/User-Startup
'''WildMidi playback'''
'''Audio Evolution 4 (2003) 4.0.23 (from 2012)'''
*Sync Menu - CAMD Receive, Send checked
*Options Menu - MIDI Machine Control - Midi Bar Display - Select CAMD MIDI in / out - Midi Remote Setup
MCB Master Control Bus
*Sending a MIDI start-command and a Song Position Pointer, you can synchronize audio with an external MIDI sequencer (like B&P).
*B&P Receive, start AE, add AudioEvolution.ptool in Bars&Pipes track, press play / record in AE then press play in Pipes
*CAMD Receive, receive MIDI start or continue commands via camd.library sync to AE
*MIDI Machine Control
*Midi Bar Display
*Select CAMD MIDI in / out
*Midi Remote Setup - open requester for external MIDI controllers to control app mixer and transport controls cc remotely
Channel - mixer(vol, pan, mute, solo), eq, aux, fx,
Subgroup - Volume, Mute, Solo
Transport - Start, End, Play, Stop, Record, Rewind, Forward
Misc - Master vol., Bank Down, Bank up
<pre>
q - quit
First 3 already opened when AE started
F1 - timeline window
F2 - mixer
F3 - control
F4 - subgroups
F5 - aux returns
F6 - sample list
i - Load sample to use
space - start/stop play
b - reset time 0:00
s - split mode
r - open recording window
a - automation edit mode with p panning, m mute and v volume
[ / ] - zoom in / out
: - previous track
* - next track
x c v f - cut copy paste cross-fade
g - snap grid
</pre>
'''[http://bnp.hansfaust.de/ Bars n Pipes sequencer]'''
BarsnPipes debug ... in shell
Menu (right mouse)
*Song - Songs load and save in .song format but option here to load/save Midi_Files .mid in FORMAT0 or FORMAT1
*Track -
*Edit -
*Tool -
*Timing - SMTPE Synchronizing
*Windows -
*Preferences - Multiple MIDI-in option
Windows (some of these are usually already opened when Bars n Pipes starts up for the first time)
*Workflow -> Tracks, .... Song Construction, Time-line Scoring, Media Madness, Mix Maestro,
*Control -> Transport (or mini one), Windows (which collects all the Windows icons together-shortcut), .... Toolbox, Accessories, Metronome,
Once you have your windows placed on the screen that suits your workflow, Song -> Save as Default will save the positions, colors, icons, etc as you'd like them
If you need a particular setup of Tracks, Tools, Tempos etc, you save them all as a new song you can load each time
Right mouse menu -> Preferences -> Environment... -> ScreenMode - Linkages for Synch (to Slave) usbmidi.out.0 and Send (Master) usbmidi.in.0 - Clock MTC
'''Tracks'''
#Double-click on B&P's icon. B&P will then open with an empty Song. You can also double-click on a song icon to open a song in B&P.
#Choose a track. The B&P screen will contain a Tracks Window with a number of tracks shown as pipelines (Track 1, Track 2, etc...). To choose a track, simply click on the gray box to show an arrow-icon to highlight it. This icon show whether a track is chosen or not. To the right of the arrow-icon, you can see the icon for the midi-input. If you double-click on this icon you can change the MIDI-in setup.
#Choose Record for the track. To the right of the MIDI-input channel icon you can see a pipe. This leads to another clickable icon with that shows either P, R or M. This stands for Play, Record or Merge. To change the icon, simply click on it. If you choose P, this track can only play the track (you can't record anything). If you choose R, you can record what you play and it overwrites old stuff in the track. If you choose M, you merge new records with old stuff in the track. Choose R now to be able to make a record.
#Chose MIDI-channel. On the most right part of the track you can see an icon with a number in it. This is the MIDI-channel selector. Here you must choose a MIDI-channel that is available on your synthesizer/keyboard. If you choose General MIDI channel 10, most synthesizer will play drum sounds. To the left of this icon is the MIDI-output icon. Double-click on this icon to change the MIDI-output configuration.
#Start recording. The next step is to start recording. You must then find the control buttons (they look like buttons on a CD-player). To be able to make a record. you must click on the R icon. You can simply now press the play button (after you have pressed the R button) and play something on you keyboard. To playback your composition, press the Play button on the control panel.
#Edit track. To edit a track, you simply double click in the middle part of a track. You will then get a new window containing the track, where you can change what you have recorded using tools provided. Take also a look in the drop-down menus for more features.
Videos to help understand [https://www.youtube.com/watch?v=A6gVTX-9900 small intro], [https://www.youtube.com/watch?v=abq_rUTiSA4&t=3s Overview], [https://www.youtube.com/watch?v=ixOVutKsYQo Workplace Setup CC PC Sysex], [https://www.youtube.com/watch?v=dDnJLYPaZTs Import Song], [https://www.youtube.com/watch?v=BC3kkzPLkv4 Tempo Mapping], [https://www.youtube.com/watch?v=sd23kqMYPDs ptool Arpeggi-8], [https://www.youtube.com/watch?v=LDJq-YxgwQg PlayMidi Song], [https://www.youtube.com/watch?v=DY9Pu5P9TaU Amiga Midi], [https://www.youtube.com/watch?v=abq_rUTiSA4 Learning Amiga bars and Pipes],
Groups like [https://groups.io/g/barsnpipes/topics this] could help
'''Tracks window'''
* blue "1 2 3 4 5 6 7 8 Group" and transport tape deck VCR-type controls
* Flags
* [http://theproblem.alco-rhythm.com/org/bp.html Track 1, Track2, to Track 16, on each Track there are many options that can be activated]
Each Track has a
*Left LHS - Click in grey box to select what Track to work on, Midi-In ptool icon should be here (5pin plug icon), and many more from the Toolbox on the Input Pipeline
*Middle - (P, R, M) Play, Record, Merge/Multi before the sequencer line and a blue/red/yellow (Thru Mute Play) Tap
*Right RHS - Output pipeline, can have icons placed uopn it with the final ptool icon(s) being the 5pin icon symbol for Midi-OUT
Clogged pipelines may need Esc pressed several times
'''Toolbox (tools affect the chosen pipeline)'''
After opening the Toolbox window you can add extra Tools (.ptool) for the pipelines like keyboard(virtual), midimonitor, quick patch, transpose, triad, (un)quantize, feedback in/out, velocity etc
right mouse -> Toolbox menu option -> Install Tool... and navigate to Tool drawer (folder) and select requried .ptool
Accompany B tool to get some sort of rythmic accompaniment, Rythm Section and Groove Quantize are examples of other tools that make use of rythms
[https://aminet.net/search?query=bars Bars & Pipes pattern format .ptrn] for drawer (folder). Load from the Menu as Track or Group
'''Accessories (affect the whole app)'''
Accessories -> Install... and goto the Accessories drawer for .paccess like adding ARexx scripting support
'''Song Construction'''
<pre>
F1 Pencil
F2 Magic Wand
F3 Hand
F4 Duplicator
F5 Eraser
F6 Toolpad
F7 Bounding box
F8 Lock to A-B-A
A-B-A strip, section, edit flags, white boxes,
</pre>
Bars&Pipes Professional offers three track formats; basic song tracks, linear tracks — which don't loop — and finally real‑time tracks. The difference between them is that both song and linear tracks respond to tempo changes, while real‑time tracks use absolute timing, always trigger at the same instant regardless of tempo alterations
'''Tempo Map'''
F1 Pencil
F2 Magic Wand
F3 Hand
F4 Eraser
F5 Curve
F6 Toolpad
Compositions
Lyrics, Key, Rhythm, Time Signature
'''Master Parameters'''
Key, Scale/Mode
'''Track Parameters'''
Dynamics
'''Time-line Scoring'''
'''Media Madness'''
'''Mix Maestro'''
*ACCESSORIES Allows the importation of other packages and additional modules
*CLIPBOARD Full cut, copy and paste operations, enabling user‑definable clips to be shared between tracks.
*INFORMATION A complete rundown on the state of the current production and your machine.
*MASTER PARAMETERS Enables global definition of time signatures, lyrics, scales, chords, dynamics and rhythm changes.
*MEDIA MADNESS A complete multimedia sequencer which allows samples, stills, animation, etc
*METRONOME Tempo feedback via MIDI, internal Amiga audio and colour cycling — all three can be mixed and matched as required.
*MIX MAESTRO Completely automated mixdown with control for both volume and pan. All fader alterations are memorised by the software
*RECORD ACTIVATION Complete specification of the data to be recorded/merged. Allows overdubbing of pitch‑bend, program changes, modulation etc
*SET FLAGS Numeric positioning of location and edit flags in either SMPTE or musical time
*SONG CONSTRUCTION Large‑scale cut and paste of individual measures, verses or chorus, by means of bounding box and drag‑n‑drop mouse selections
*TEMPO MAP Tempo change using a variety of linear and non‑linear transition curves
*TEMPO PALETTE Instant tempo changes courtesy of four user‑definable settings.
*TIMELINE SCORING Sequencing of a selection of songs over a defined period — ideal for planning an entire set for a live performance.
*TOOLBOX Selection screen for the hundreds of signal‑processing tools available
*TRACKS Opens the main track window to enable recording, editing and the use of tools.
*TRANSPORT Main playback control window, which also provides access to user‑ defined flags, loop and punch‑in record modes.
Bars and Pipes Pro 2.5 is using internal 4-Byte IDs, to check which kind of data are currently processed.
Especially in all its files the IDs play an important role. The IDs are stored into the file in the same order they are laid out in the memory.
In a Bars 'N' Pipes file (no matter which kind) the ID "NAME" (saved as its ANSI-values) is stored on a big endian system (68k-computer) as "NAME". On a little endian system (x86 PC computer) as "EMAN". The target is to make the AROS-BnP compatible to songs, which were stored on a 68k computer (AMIGA).
If possible, setting MIDI channels for Local Control for your keyboard
http://www.fromwithin.com/liquidmidi/archive.shtml
MIDI files are essentially a stream of event data. An event can be many things, but typically "note on", "note off", "program change", "controller change", or messages that instruct a MIDI compatible synth how to play a given bit of music.
* Channel - 1 to 16 -
* Messages - PC presets, CC effects like delays, reverbs, etc
* Sequencing - MIDI instruments, Drums, Sound design,
* Recording -
* GUI - Piano roll or Tracker, Staves and Notes
MIDI events/messages like step entry e.g. Note On, Note Off
MIDI events/messages like PB, PC, CC, Mono and Poly After-Touch, Sysex, etc
MIDI sync - Midi Clocks (SPS Measures), Midi Time Code (h, m, s and frames) SMPTE
Individual track editing with audition edits so easier to test any changes. Possible to stop track playback, mix clips from the right edit flag and scroll the display using arrow keys.
Step entry, to extend a selected note hit the space bar and the note grows accordingly. Ability to cancel mouse‑driven edits by simply clicking the right mouse button — at which point everything snaps back into its original form. Lyrics can now be put in with syllable dividers, even across an entire measure or section. Autoranging when you open a edit window, the notes are automatically displayed — working from the lowest upwards.
Flag editing, shift‑click on a flag immediately open the bounds window, ready for numeric input. Ability to cancel edits using the right‑hand mouse button, plus much improved Bounding Box operations.
Icons other than the BarsnPipes icon -> PUBSCREEN=BarsnPipes (cannot choose modes higher than 8bit 256 colors)
Preferences -> Menu in Tracks window - Send MIDI defaults OFF
Prefs -> Environment -> screenmode (saved to BarsnPipes.prefs binary file)
Customization -> pics in gui drawer (folder) -
Can save as .song files and .mid General Midi
SMF is a “Standard Midi File” ([http://www.music.mcgill.ca/~ich/classes/mumt306/StandardMIDIfileformat.html SMF0, SMF1 and SMF2]), [https://github.com/stump/libsmf libsmf], [https://github.com/markc/midicomp MIDIcomp], [https://github.com/MajicDesigns/MD_MIDIFile C++ src], [], [https://github.com/newdigate/midi-smf-reader Midi player],
* SMF0 All MIDI data is stored in one track only, separated exclusively by the MIDI channel.
* SMF1 The MIDI data is stored in separate tracks/channels.
* SMF2 (rarely used) The MIDI data is stored in separate tracks, which are additionally wrapped in containers, so it's possible to have e.g. several tracks using the same MIDI channels.
Would it be possible to enrich Bars N’Pipes with software synth and sample support along with audio recording and mastering tools like in the named MAC or PC music sequencers?
On the classic AMIGA-OS this is not possible because of missing CPU-power. The hardware of the classic AMIGA is not further developed. So we must say (unfortunately) that those dreams can’t become reality
BarsnPipes is best used with external MIDI-equipment. This can be a keyboard or synthesizer with MIDI-connectors.
<pre>
MIDI can control 16 channels
There are USB-MIDI-Interfaces on the market with 16 independent MIDI-lines (multi-port), which can handle 16 MIDI devices independently – 16×16 = 256 independent MIDI-channels or instruments
handle up to 16 different USB-MIDI-Interfaces (multi-device). That is: 16X16X16 = 4096 independent MIDI-channels – theoretically
</pre>
<pre>
Librarian MIDI SYStem EXplorer (sysex) - PatchEditor and used to be supplied as a separate program like PatchMeister but currently not at present
It should support MIDI.library (PD), BlueRibbon.library (B&P), TriplePlayPlus, and CAMD.library (DeluxeMusic) and
MIDI information from a device's user manual and configure a custom interface to access parameters for all MIDI products connected to the system
Supports ALL MIDI events and the Patch/Librarian data is stored in MIDI standard format
Annette M.Crowling, Missing Link Software, Inc.
</pre>
Composers
<pre>
[https://x.com/hirasawa/status/1403686519899054086 Susumu Hirasawa]
</pre>
<pre>
1988 Todor Fay and his wife Melissa Jordan Gray, who founded the Blue Ribbon Inc
1992 Bars&Pipes Pro published
November 2000, Todor Fay announcement to release the sourcecode of Bars&Pipes Pro 2.5c beta
end of May 2001, the source of the main program and the sources of some tools and accessories were in a complete and compileable state
end of October 2009 stop further development of BarsnPipes New for now on all supported systems and made freeware
2013 Alfred Faust diagnosed with incureable illness, called „Myastenia gravis“ (weak muscles)
</pre>
Protrekkr
How to use Midi In/Out in Protrekkr ?
First of all, midi in & out capabilities of this program are rather limited.
# Go to Misc. Setup section and select a midi in or out device to use (ptk only supports one device at a time).
# Go to instrument section, and select a MIDI PRG (the default is N/A, which means no midi program selected).
# Go to track section and here you can assign a midi channel to each track of ptk.
# Play notes :]. Note off works. F'x' note cut command also works too, and note-volume command (speed) is supported.
Also, you can change midicontrollers in the tracker, using '90' in the panning row:
<pre>
C-3 02 .. .. 0000....
--- .. .. 90 xxyy.... << This will set the value
--- .. .. .. 0000.... of the controller n.'xx' to 'yy' (both in hex)
--- .. .. .. 0000....
</pre>
So "--- .. .. 90 2040...." will set the controller number $20(32) to $40(64).
You will need the midi implementation table of your gear to know what you can change with midi controller messages.
N.B. Not all MIDI devices are created equal!
Although the MIDI specification defines a large range of MIDI messages of various kinds, not every MIDI device is required to work in exactly the same way and respond to all the available messages and ways of working. For example, we don't expect a wind synthesiser to work in the same way as a home keyboard.
Some devices, the older ones perhaps, are only able to respond to a single channel. With some of those devices that channel can be altered from the default of 1 (probably) to another channel of the 16 possible.
Other devices, for instance monophonic synthesisers, are capable of producing just one note at a time, on one MIDI channel. Others can produce many notes spread across many channels.
Further devices can respond to, and transmit, "breath controller" data (MIDI controller number 2 (CC#2)) others may respond to the reception of CC#2 but not be able to create and to send it.
A controller keyboard may be capable of sending "expression pedal" data, but another device may not be capable of responding to that message.
Some devices just have the basic GM sound set. The "voice" or "instrument" is selected using a "Program Change" message on its own.
Other devices have a greater selection of voices, usually arranged in "banks", and the choice of instrument is made by responding to "Bank Select MSB" (MIDI controller 0 (CC#0)), others use "Bank Select LSB" (MIDI controller number 32 (CC#32)), yet others use both MSB and LSB sent one after the other, all followed by the Program Change message. The detailed information about all the different voices will usually be available in a published MIDI Data List.
MIDI Implementation Chart
But in the User Manual there is sometimes a summary of how the device works, in terms of MIDI, in the chart at the back of the manual, the MIDI Implementation Chart.
If you require two devices to work together you can compare the two implementation charts to see if they are "compatible". In order to do this we will need to interpret that chart.
The chart is divided into four columns headed "Function", "Transmitted" (or "Tx"), "Received" (or "Rx"), or more correctly "Recognised", and finally, "Remarks".
<pre>
The left hand column defines which MIDI functions are being described.
The 2nd column defines what the device in question is capable of transmitting to another device.
The 3rd column defines what the device is capable of responding to.
The 4th column is for explanations of the values contained within these previous two columns.
</pre>
There should then be twelve sections, with possibly a thirteenth containing extra "Notes". Finally there should be an explanation of the four MIDI "modes" and what the "X" and the "O" mean.
<pre>
Mode 1: Omni On, Poly;
Mode 2: Omni On, Mono;
Mode 3: Omni Off, Poly;
Mode 4: Omni Off, Mono.
</pre>
O means "yes" (implemented), X means "no" (not implemented).
Sometimes you will find a row of asterisks "**************", these seem to indicate that the data is not applicable in this case. Seen in the transmitted field only (unless you've seen otherwise).
Lastly you may find against some entries an asterisk followed by a number e.g. *1, these will refer you to further information, often on a following page, giving more detail.
Basic Channel
But the very first set of boxes will tell us the "Basic Channel(s)" that the device sends or receives on.
"Default" is what happens when the device is first turned on, "changed" is what a switch of some kind may allow the device to be set to.
For many devices e.g. a GM sound module or a home keyboard, this would be 1-16 for both. That is it can handle sending and receiving on all MIDI channels.
On other devices, for example a synthesiser, it may by default only work on channel 1. But the keyboard could be "split" with the lower notes e.g. on channel 2. If the synth has an arppegiator, this may be able to be set to transmit and or receive on yet another channel.
So we might see the default as "1" but the changed as "1-16".
Modes.
We need to understand Omni On and Off, and Mono and Poly, then we can decipher the four modes.
But first we need to understand that any of these four Mode messages can be sent to any MIDI channel. They don't necessarily apply to the whole device.
If we send an "Omni On" message (CC#125) to a MIDI channel of a device, we are, in effect, asking it to respond to e.g. a Note On / Off message pair, received on any of the sixteen channels. Sound strange? Read it again. Still strange? It certainly is. We normally want a MIDI channel to respond only to Note On / Off messages sent on that channel, not any other. In other words, "Omni Off".
So "Omni Off" (CC#124) tells a channel of our MIDI device to respond only to messages sent on that MIDI channel.
"Poly" (CC#127) is for e.g. a channel of a polyphonic sound module, or a home keyboard, to be able to respond to many simultaneous Note On / Off message pairs at once and produce musical chords.
"Mono" (CC#126) allows us to set a channel to respond as if it were e.g. a flute or a trumpet, playing just one note at a time. If the device is capable of it, then the overlapping of notes will produce legato playing, that is the attack portion of the second note of two overlapping notes will be removed resulting in a "smoother" transition.
So a channel with a piano voice assigned to it will have Omni Off, Poly On (Mode 3), a channel with a saxophone voice assigned could be Omni Off, Mono On (Mode 4).
We call these combinations the four modes, 1 to 4, as defined above.
Most modern devices will have their channels set to Mode 3 (Omni Off, Poly) but be switchable, on a per channel basis, to Mode 4 (Omni Off, Mono).
This second section of data will include first its default value i.e. upon device switch on. Then what Mode messages are acceptable, or X if none.
Finally, in the "Altered" field, how a Mode message that can't be implemented will be interpreted. Usually there will just be a row of asterisks effectively meaning nothing will be done if you try to switch to an unimplemented mode.
Note Number
<pre>
The next row will tell us which MIDI notes the device can send or receive, normally 0-127.
The second line, "True Voice" has the following in the MIDI specification:
"Range of received note numbers falling within the range of true notes produced by the instrument."
My interpretation is that, for instance, a MIDI piano may be capable of sending all MIDI notes (0 to 127) by transposition, but only responding to the 88 notes (21 to 108) of a real piano.
</pre>
Velocity
This will tell us whether the device we're looking at will handle note velocity, and what range from 1-127, or maybe just 64, it transmits or will recognise. So usually "O" plus a range or "X" for not implemented.
After touch
This may have one or two lines two it.
If a one liner the either "O" or "X", yes or no.
If a two liner then it may include "Keys" or "Poly" and "Channel".
This will show whether the device will respond to Polyphonic after touch or channel after touch or neither.
Pitch Bend
Again "O" for implemented, "X" for not implemented.
(Many stage pianos will have no pitch bend capability.)
It may also, in the notes section, state whether it will respond to the full 14 bits, or not, as usually encoded by the pitch bend wheel.
Control Change
This is likely to be the largest section of the chart.
It will list all those controllers, starting from CC#0, Bank Select MSB, which the device is capable of sending, and those that it will respond to using "O" or "X" respectively.
You will, almost certainly, get some further explanation of functionality in the remarks column, or in more detail elsewhere in the documentation.
Of course you will need to know what all the various controller numbers do. Lots of the official technical specifications can be found at the [www.midi.org/techspecs/ MMA], with the table of messages and control change [www.midi.org/techspecs/midimessages.php message numbers]
Program Change
Again "O" or "X" in the Transmitted or Recognised column to indicate whether or not the feature is implemented. In addition a range of numbers is shown, typically 0-127, to show what is available.
True # (number): "The range of the program change numbers which correspond to the actual number of patches selected."
System Exclusive
Used to indicate whether or not the device can send or recognise System Exclusive messages. A short description is often given in the Remarks field followed by a detailed explanation elsewhere in the documentation.
System Common - These include the following:
<pre>
MIDI Time Code Quarter Frame messages (device synchronisation).
Song Position Pointer
Song Select
Tune Request
</pre>
The section will indicate whether or not the device can send or respond to any of these messages.
System Real Time
These include the following:
<pre>
Timing Clock - often just written as "Clock"
Start
Stop
Continue
</pre>
These three are usually just referred to as "Commands" and listed.
Again the section will indicate which, if any, of these messages the device can send or respond to.
<pre>
Aux. Messages
Again "O" or "X" for implemented or not.
Aux. = Auxiliary.
Active Sense = Active Sensing.
</pre>
Often with an explanation of the action of the device.
Notes
The "Notes" section can contain any additional comments to clarify the particular implementation.
Some of the explanations have been drawn directly from the MMA MIDI 1.0 Detailed Specification.
And the detailed explanation of some of the functions will be found there, or in the General MIDI System Level 1 or General MIDI System Level 2 documents also published by the MMA.
OFFICIAL MIDI SPECIFICATIONS
SUMMARY OF MIDI MESSAGES
Table 1 - Summary of MIDI Messages
The following table lists the major MIDI messages in numerical (binary) order (adapted from "MIDI by the Numbers" by D. Valenti, Electronic Musician 2/88, and updated by the MIDI Manufacturers Association.). This table is intended as an overview of MIDI, and is by no means complete.
WARNING! Details about implementing these messages can dramatically impact compatibility with other products. We strongly recommend consulting the official MIDI Specifications for additional information.
MIDI 1.0 Specification
Message Summary Channel Voice Messages [nnnn = 0-15 (MIDI Channel Number 1-16)]
{| class="wikitable sortable" width="90%"
! width="10%" |Status D7----D0
! width="10%" |Data Byte(s) D7----D0
! width="20%" |Description
|-
|<!--Status-->1000nnnn || <!--Data-->0kkkkkkk 0vvvvvvv || <!--Description-->Note Off event.
This message is sent when a note is released (ended). (kkkkkkk) is the key (note) number. (vvvvvvv) is the velocity.
|-
|<!--Status-->1001nnnn || <!--Data-->0kkkkkkk 0vvvvvvv || <!--Description-->Note On event.
This message is sent when a note is depressed (start). (kkkkkkk) is the key (note) number. (vvvvvvv) is the velocity.
|-
|<!--Status-->1010nnnn || <!--Data-->0kkkkkkk 0vvvvvvv || <!--Description-->Polyphonic Key Pressure (Aftertouch).
This message is most often sent by pressing down on the key after it "bottoms out". (kkkkkkk) is the key (note) number. (vvvvvvv) is the pressure value.
|-
|<!--Status-->1011nnnn || <!--Data-->0ccccccc 0vvvvvvv || <!--Description-->Control Change.
This message is sent when a controller value changes. Controllers include devices such as pedals and levers. Controller numbers 120-127 are reserved as "Channel Mode Messages" (below). (ccccccc) is the controller number (0-119). (vvvvvvv) is the controller value (0-127).
|-
|<!--Status-->1100nnnn || <!--Data-->0ppppppp || <!--Description-->Program Change. This message sent when the patch number changes. (ppppppp) is the new program number.
|-
|<!--Status-->1101nnnn || <!--Data-->0vvvvvvv || <!--Description-->Channel Pressure (After-touch). This message is most often sent by pressing down on the key after it "bottoms out". This message is different from polyphonic after-touch. Use this message to send the single greatest pressure value (of all the current depressed keys). (vvvvvvv) is the pressure value.
|-
|<!--Status-->1110nnnn || <!--Data-->0lllllll 0mmmmmmm || <!--Description-->Pitch Bend Change. This message is sent to indicate a change in the pitch bender (wheel or lever, typically). The pitch bender is measured by a fourteen bit value. Center (no pitch change) is 2000H. Sensitivity is a function of the receiver, but may be set using RPN 0. (lllllll) are the least significant 7 bits. (mmmmmmm) are the most significant 7 bits.
|}
Channel Mode Messages (See also Control Change, above)
{| class="wikitable sortable" width="90%"
! width="10%" |Status D7----D0
! width="10%" |Data Byte(s) D7----D0
! width="20%" |Description
|-
|<!--Status-->1011nnnn || <!--Data-->0ccccccc 0vvvvvvv || <!--Description-->Channel Mode Messages.
This the same code as the Control Change (above), but implements Mode control and special message by using reserved controller numbers 120-127. The commands are:
*All Sound Off. When All Sound Off is received all oscillators will turn off, and their volume envelopes are set to zero as soon as possible c = 120, v = 0: All Sound Off
*Reset All Controllers. When Reset All Controllers is received, all controller values are reset to their default values. (See specific Recommended Practices for defaults) c = 121, v = x: Value must only be zero unless otherwise allowed in a specific Recommended Practice.
*Local Control. When Local Control is Off, all devices on a given channel will respond only to data received over MIDI. Played data, etc. will be ignored. Local Control On restores the functions of the normal controllers.
c = 122, v = 0: Local Control Off
c = 122, v = 127: Local Control On
* All Notes Off. When an All Notes Off is received, all oscillators will turn off.
c = 123, v = 0: All Notes Off (See text for description of actual mode commands.)
c = 124, v = 0: Omni Mode Off
c = 125, v = 0: Omni Mode On
c = 126, v = M: Mono Mode On (Poly Off) where M is the number of channels (Omni Off) or 0 (Omni On)
c = 127, v = 0: Poly Mode On (Mono Off) (Note: These four messages also cause All Notes Off)
|}
System Common Messages
System Messages (0xF0)
The final status nybble is a “catch all” for data that doesn’t fit the other statuses. They all use the most significant nybble (4bits) of 0xF, with the least significant nybble indicating the specific category.
The messages are denoted when the MSB of the second nybble is 1. When that bit is a 0, the messages fall into two other subcategories.
System Common
If the MSB of the second second nybble (4 bits) is not set, this indicates a System Common message. Most of these are messages that include some additional data bytes.
System Common Messages
Type Status Byte Number of Data Bytes Usage
<pre>
Time Code Quarter Frame 0xF1 1 Indicates timing using absolute time code, primarily for synthronization with video playback systems. A single location requires eight messages to send the location in an encoded hours:minutes:seconds:frames format*.
Song Position 0xF2 2 Instructs a sequencer to jump to a new position in the song. The data bytes form a 14-bit value that expresses the location as the number of sixteenth notes from the start of the song.
Song Select 0xF3 1 Instructs a sequencer to select a new song. The data byte indicates the song.
Undefined 0xF4 0
Undefined 0xF5 0
Tune Request 0xF6 0 Requests that the receiver retunes itself**.
</pre>
*MIDI Time Code (MTC) is significantly complex. Please see the MIDI Specification
**While modern digital instruments are good at staying in tune, older analog synthesizers were prone to tuning drift. Some analog synthesizers had an automatic tuning operation that could be initiated with this command.
System Exclusive
If you’ve been keeping track, you’ll notice there are two status bytes not yet defined: 0xf0 and 0xf7. These are used by the System Exclusive message, often abbreviated at SysEx. SysEx provides a path to send arbitrary data over a MIDI connection. There is a group of predefined messages for complex data, like fine grained control of MIDI Time code machinery. SysEx is also used to send manufacturer defined data, such as patches, or even firmware updates.
System Exclusive messages are longer than other MIDI messages, and can be any length. The messages are of the following format:
0xF0, 0xID, 0xdd, ...... 0xF7
The message is bookended with distinct bytes.
It opens with the Start Of Exclusive (SOX) data byte, 0xF0.
The next one to three bytes after the start are an identifier.
Values from 0x01 to 0x7C are one-byte vendor IDs, assigned to manufacturers who were involved with MIDI at the beginning.
If the ID is 0x00, it’s a three-byte vendor ID - the next two bytes of the message are the value.
<pre>
ID 0x7D is a placeholder for non-commercial entities.
ID 0x7E indicates a predefined Non-realtime SysEx message.
ID 0x7F indicates a predefined Realtime SysEx message.
</pre>
After the ID is the data payload, sent as a stream of bytes.
The transfer concludes with the End of Exclusive (EOX) byte, 0xF7.
The payload data must follow the guidelines for MIDI data bytes – the MSB must not be set, so only 7 bits per byte are actually usable. If the MSB is set, it falls into three possible scenarios.
An End of Exclusive byte marks the ordinary termination of the SysEx transfer.
System Real Time messages may occur within the transfer without interrupting it. The recipient should handle them independently of the SysEx transfer.
Other status bytes implicitly terminate the SysEx transfer and signal the start of new messages.
Some inexpensive USB-to-MIDI interfaces aren’t capable of handling messages longer than four bytes.
{| class="wikitable sortable" width="90%"
! width="10%" |Status D7----D0
! width="10%" |Data Byte(s) D7----D0
! width="20%" |Description
|-
|<!--Status-->11110000 || <!--Data-->0iiiiiii [0iiiiiii 0iiiiiii] 0ddddddd --- --- 0ddddddd 11110111 || <!--Description-->System Exclusive.
This message type allows manufacturers to create their own messages (such as bulk dumps, patch parameters, and other non-spec data) and provides a mechanism for creating additional MIDI Specification messages. The Manufacturer's ID code (assigned by MMA or AMEI) is either 1 byte (0iiiiiii) or 3 bytes (0iiiiiii 0iiiiiii 0iiiiiii). Two of the 1 Byte IDs are reserved for extensions called Universal Exclusive Messages, which are not manufacturer-specific. If a device recognizes the ID code as its own (or as a supported Universal message) it will listen to the rest of the message (0ddddddd). Otherwise, the message will be ignored. (Note: Only Real-Time messages may be interleaved with a System Exclusive.)
|-
|<!--Status-->11110001 || <!--Data-->0nnndddd || <!--Description-->MIDI Time Code Quarter Frame.
nnn = Message Type
dddd = Values
|-
|<!--Status-->11110010 || <!--Data-->0lllllll 0mmmmmmm || <!--Description-->Song Position Pointer.
This is an internal 14 bit register that holds the number of MIDI beats (1 beat= six MIDI clocks) since the start of the song. l is the LSB, m the MSB.
|-
|<!--Status-->11110011 || <!--Data-->0sssssss || <!--Description-->Song Select.
The Song Select specifies which sequence or song is to be played.
|-
|<!--Status-->11110100 || <!--Data--> || <!--Description-->Undefined. (Reserved)
|-
|<!--Status-->11110101 || <!--Data--> || <!--Description-->Undefined. (Reserved)
|-
|<!--Status-->11110110 || <!--Data--> || <!--Description-->Tune Request. Upon receiving a Tune Request, all analog synthesizers should tune their oscillators.
|-
|<!--Status-->11110111 || <!--Data--> || <!--Description-->End of Exclusive. Used to terminate a System Exclusive dump.
|}
System Real-Time Messages
{| class="wikitable sortable" width="90%"
! width="10%" |Status D7----D0
! width="10%" |Data Byte(s) D7----D0
! width="20%" |Description
|-
|<!--Status-->11111000 || <!--Data--> || <!--Description-->Timing Clock. Sent 24 times per quarter note when synchronization is required.
|-
|<!--Status-->11111001 || <!--Data--> || <!--Description-->Undefined. (Reserved)
|-
|<!--Status-->11111010 || <!--Data--> || <!--Description-->Start. Start the current sequence playing. (This message will be followed with Timing Clocks).
|-
|<!--Status-->11111011 || <!--Data--> || <!--Description-->Continue. Continue at the point the sequence was Stopped.
|-
|<!--Status-->11111100 || <!--Data--> || <!--Description-->Stop. Stop the current sequence.
|-
|<!--Status-->11111101 || <!--Data--> || <!--Description-->Undefined. (Reserved)
|-
|<!--Status-->11111110 || <!--Data--> || <!--Description-->Active Sensing. This message is intended to be sent repeatedly to tell the receiver that a connection is alive. Use of this message is optional. When initially received, the receiver will expect to receive another Active Sensing message each 300ms (max), and if it does not then it will assume that the connection has been terminated. At termination, the receiver will turn off all voices and return to normal (non- active sensing) operation.
|-
|<!--Status-->11111111 || <!--Data--> || <!--Description-->Reset. Reset all receivers in the system to power-up status. This should be used sparingly, preferably under manual control. In particular, it should not be sent on power-up.
|}
Advanced Messages
Polyphonic Pressure (0xA0) and Channel Pressure (0xD0)
Some MIDI controllers include a feature known as Aftertouch. While a key is being held down, the player can press harder on the key. The controller measures this, and converts it into MIDI messages.
Aftertouch comes in two flavors, with two different status messages.
The first flavor is polyphonic aftertouch, where every key on the controller is capable of sending its own independent pressure information. The messages are of the following format:
<pre>
0xnc, 0xkk, 0xpp
n is the status (0xA)
c is the channel nybble
kk is the key number (0 to 127)
pp is the pressure value (0 to 127)
</pre>
Polyphonic aftertouch is an uncommon feature, usually found on premium quality instruments, because every key requires a separate pressure sensor, plus the circuitry to read them all.
Much more commonly found is channel aftertouch. Instead of needing a discrete sensor per key, it uses a single, larger sensor to measure pressure on all of the keys as a group. The messages omit the key number, leaving a two-byte format
<pre>
0xnc, 0xpp
n is the status (0xD)
c is the channel number
pp is the pressure value (0 to 127)
</pre>
Pitch Bend (0xE0)
Many keyboards have a wheel or lever towards the left of the keys for pitch bend control. This control is usually spring-loaded, so it snaps back to the center of its range when released. This allows for both upward and downward bends.
Pitch Bend Wheel
The wheel sends pitch bend messages, of the format
<pre>
0xnc, 0xLL, 0xMM
n is the status (0xE)
c is the channel number
LL is the 7 least-significant bits of the value
MM is the 7 most-significant bits of the value
</pre>
You’ll notice that the bender data is actually 14 bits long, transmitted as two 7-bit data bytes. This means that the recipient needs to reassemble those bytes using binary manipulation. 14 bits results in an overall range of 214, or 0 to 16,383. Because it defaults to the center of the range, the default value for the bender is halfway through that range, at 8192 (0x2000).
Control Change (0xB0)
In addition to pitch bend, MIDI has provisions for a wider range of expressive controls, sometimes known as continuous controllers, often abbreviated CC. These are transmitted by the remaining knobs and sliders on the keyboard controller shown below.
Continuous Controllers
These controls send the following message format:
<pre>
0xnc, 0xcc, 0xvv
n is the status (0xB)
c is the MIDI channel
cc is the controller number (0-127)
vv is the controller value (0-127)
</pre>
Typically, the wheel next to the bender sends controller number one, assigned to modulation (or vibrato) depth. It is implemented by most instruments.
The remaining controller number assignments are another point of confusion. The MIDI specification was revised in version 2.0 to assign uses for many of the controllers. However, this implementation is not universal, and there are ranges of unassigned controllers.
On many modern MIDI devices, the controllers are assignable. On the controller keyboard shown in the photos, the various controls can be configured to transmit different controller numbers. Controller numbers can be mapped to particular parameters. Virtual synthesizers frequently allow the user to assign CCs to the on-screen controls. This is very flexible, but it might require configuration on both ends of the link and completely bypasses the assignments in the standard.
Program Change (0xC0)
Most synthesizers have patch storage memory, and can be told to change patches using the following command:
<pre>
0xnc, 0xpp
n is the status (0xc)
c is the channel
pp is the patch number (0-127)
</pre>
This allows for 128 sounds to be selected, but modern instruments contain many more than 128 patches. Controller #0 is used as an additional layer of addressing, interpreted as a “bank select” command. Selecting a sound on such an instrument might involve two messages: a bank select controller message, then a program change.
Audio & Midi are not synchronized, what I can do ?
Buy a commercial software package but there is a nasty trick to synchronize both. It's a bit hardcore but works for me:
Simply put one line down to all midi notes on your pattern (use Insert key)
and go to 'Misc. Setup', adjust the latency and just search a value
that will make sound sync both audio/midi.
The stock Sin/Saw/Pulse and Rnd waveforms are too simple/common, is there a way to use something more complex/rich ?
You have to ability to redirect the waveforms of the instruments through the synth pipe by selecting the "wav" option for the oscillator you're using for this synth instrument, samples can be used as wavetables to replace the stock signals.
Sound banks like soundfont (sf2) or Kontakt2 are not supported at the moment
====DAW Audio Evolution 4====
Audio Evolution 4 gives you unsurpassed power for digital audio recording and editing on the Amiga. The latest release focusses on time-saving non-linear and non-destructive editing, as seen on other platforms. Besides editing, Audio Evolution 4 offers a wide range of realtime effects, including compression, noise gate, delays, reverb, chorus and 3-band EQ.
Whether you put them as inserts on a channel or use them as auxillaries, the effect parameters are realtime adjustable and can be fully automated. Together with all other mixing parameters, they can even be controlled remotely, using more ergonomic MIDI hardware.
Non-linear editing on the time line, including cut, copy, paste, move, split, trim and crossfade actions
The number of tracks per project(s) is unlimited .... AHI limits you to recording only two at a time. i.e. not on 8 track sound cards like the Juli@ or Phase 88.
sample file import is limited to 16bit AIFF (not AIFC, important distinction as some files from other sources can be AIFC with aiff file extention). and 16bit WAV (pcm only)
Most apps use the Music Unit only but a few apps also use Unit (0-3) instead or as well.
* Set up AHI prefs so that microphone is available. (Input option near the bottom)
stereo++ allows the audio piece to be placed anywhere and the left-right adjusted to sound positionally right
hifi best for music playback if driver supports this option
Load 16bit .aif .aiff only sample(s) to use not AIFC which can have the same ending. AIFF stands for Audio Interchange File Format
sox recital.wav recital.aiff
sox recital.wav −b 16 recital.aiff channels 1 rate 16k fade 3 norm
sox input.wav output.aiff bass −b 16 rate 48k
performs the same format translation, but also applies four effects (down-mix to one channel, sample rate change, fade-in, nomalize), and stores the result at a bit-depth of 16.
rec −c 2 radio.aiff trim 0 30:00
records half an hour of stereo audio
play existing-file.wav
24bit PCM WAV or AIFF do not work
*No stream format handling. So no way to pass on an AC3 encoded stream unmodified to the digital outputs through AHI.
*No master volume handling. Each application has to set its own volume. So each driver implements its own custom driver-mixer interface for handling master volumes, mute and preamps.
*Only one output stream. So all input gets mixed into one output.
*No automatic handling of output direction based on connected cables.
*No monitor input selection. Only monitor volume control.
select the correct input (Don't mistake enabled sound for the correct input.)
The monitor will feedback audio to the lineout and hp out no matter if you have selected the correct input to the ADC. The monitor will provide sound for any valid input. This will result in free mixing when recording from the monitor input instead of mic/line because the monitor itself will provide the hardware mixing for you. Be aware that MIC inputs will give two channel mono. Only Linein will give real stereo.
Now for the not working part. Attempt to record from linein in the AE4 record window, the right channel is noise and the left channel is distorted. Even with the recommended HIFI 16bit Stereo++ mode at 48kHz.
Channels
Monitor
Gain
Inout
Output
Advanced settings - Debugging via serial port
* Options -> Soundcard In/Out
* Options -> SampleRate
* Options -> Preferences
F6 for Sample File List
Setting a grid is easy as is measuring the BPM by marking a section of the sample. Is your kick drum track "not in time" ? If so, you're stumped in AE4 as it has no fancy variable time signatures and definitely no 'track this dodgy rhythm' function like software of the nature of Logic has. So if your drum beat is freeform you will need to work in freeform mode. (Real music is free form anyway).
If the drum *is* accurate and you are just having trouble measuring the time, I usually measure over a range of bars and set the number of beats in range to say 16 as this is more accurate, Then you will need to shift the drum track to match your grid *before* applying the grid. (probably an iterative process as when the grid is active samples snap to it, and when inactive you cannot see it).
AE4 does have ARexx but the functions are more for adding samples at set offsets and starting playback / recording.
These are the usual features found in DAWs...
* Recording digital audio, midi sequencer and mixer
* virtual VST instruments and plug-ins
* automation, group channels, MIDI channels, FX sends and returns, audio and MIDI editors and music notation editor
* different track views
* mixer and track layout (but not the same as below)
* traditional two windows (track and mixer)
Mixing - mixdown
Could not figure out how to select what part I wanted to send to the aux, set it to echo and return. Pretty much the whole echo effect. Or any effect.
Take look at page17 of the manual.
When you open the EQ / Aux send popup window you will see 4 sends. Now from the menu choose the windows menu.
Menus->Windows-> Aux Returns Window
or press F5
You will see a small window with 4 volume controls and an effects button for each. Click a button and add an effects to that aux channel, then set it up as desired (note the reverb effect has a special AUX setting that improves its use with the aux channel, not compulsory but highly useful). You set the amount of 'return' on the main mix in the Aux Return window, and the amount sent from each main mixer channel in the popup for that channel. Again the aux sends are "prefade" so the volume faders on each channel do not affect them.
Tracking
Effects - fade in
To add some echoes to some vocals, tried to add an effect on a track but did not come out. This is made more complicated as I wanted to mute a vocal but then make it echo at the muting point. Want to have one word of a vocal heard and then echoed off. But when the track is mute the echo is cancelled out.
To correctly understand what is happening here you need to study the figure at the bottom of page 15 on the manual. You will see from that that the effects are applied 'prefade' So the automation you applied will naturally mute the entire signal.
There would be a number of ways to achieve the goal,
You have three real time effects slots, one for smoothing like so
Sample -> Amplify -> Delay
Then automate the gain of the amplify block so that it effectively mutes the sample just before the delay at the appropriate moment, the echo effect should then be heard.
Getting the effects in the right order will require experimentation as they can only be added top down and it's not obvious which order they are applied to the signal, but there only two possibilities, so it wont take long to find out.
Using MUTE can cause clicks to the Amplify can be used to mute more smoothly so that's a secondary advantage.
Signal Processing -
Overdub
[[#top|...to the top]]
===Office===
====Spreadsheet Leu====
Support for some xlsx, and ods functions
====Spreadsheet Ignition====
; Needs ABIv1 to be completed before more can be done
File formats supported
* ascii #?.txt and #?.csv (single sheets with data only).
* igs and TurboCalc(WIP) #?.tc for all sheets with data, formats and formulas.
There is '''no''' support for xls, xlsx, ods or uos ([http://en.wikipedia.org/wiki/Uniform_Office_Format Uniform Unified Office Format]) at the moment.
* Always use Esc key after editing Spreadsheet cells.
* copy/paste seems to copy the first instance only so go to Edit -> Clipboard to manage the list of remembered actions.
* Right mouse click on row (1 or 2 or 3) or column header (a or b or c) to access optimal height or width of the row or column respectively
* Edit -> Insert -> Row seems to clear the spreadsheet or clears the rows after the inserted row until undo restores as it should be...
Change Sheet name by Object -> Sheet -> Properties
Click in the cell which will contain the result, and click '''down arrow button''' to the right of the formula box at the bottom of the spreadsheet and choose the function required from the list provided. Then click on the start cell and click on the bottom right corner, a '''very''' small blob, which allows stretching a bounding box (thick grey outlines) across many cells This grey bounding box can be used to '''copy a formula''' to other cells.
Object -> Cell -> Properties to change cell format - Currency only covers DM and not $, Euro, Renminbi, Yen or Pound etc.
Shift key and arrow keys selects a range of cells, so that '''formatting can be done to all highlighted cells'''.
View -> Overview then select ALL with one click (in empty cell in the top left hand corner of the sheet).
Default mode is relative cell referencing e.g. a1+a2 but absolute e.g. $a$1+$a$2 can be entered.
* #sheet-name to '''absolute''' reference another sheet-name cell unless reference() function used.
;Graphs
use shift key and arrow keys to select a bunch of cells to be graph'ed making sure that x axes represents and y axes represents
* value() - 0 value, 1 percent, 2 date, 3 time, 4 unit ...
;Dates
* Excel starts a running count from the 1st Jan 1900 and Ignition starts from 1st Jan 1AD '''(maybe this needs to change)'''
Set formatting Object -> Cell -> Properties and put date in days
;Time
Set formatting Object -> Cell -> Properties and put time in seconds taken
;Database (to be done by someone else)
type - standard, reference (bezug), search criterion (suchkriterium),
* select a bunch of cells and Object -> Database -> Define to set Datenbank (database) and Felder (fields not sure how?)
* Neu (new) or loschen (delete) to add/remove database headings e.g. Personal, Start Date, Finish Date (one per row?)
* Object -> Database -> Index to add fields (felder) like Surname, First Name, Employee ID, etc. to ?
Filtering done with dbfilter(), dbproduct() and dbposition().
Activities with dbsum(), dbaverage(), dbmin() and dbmax().
Table sorting -
;Scripts (Arexx)
;Excel(TM) to Ignition - commas ''',''' replaced by semi-colons ''';''' to separate values within functions
*SUM(),
*AVERAGE(), MAX(), MIN(), INT(), PRODUCT(), MEDIAN(), VAR() becomes Variance(), Percentile(),
*IF(), AND, OR, NOT
*LEFT(), RIGHT(), MID() becomes MIDDLE(), LEN() becomes LENGTH(),
*LOWER() becomes LOWERCASE(), UPPER() becomes UPPERCASE(),
* DATE(yyyy,mm,dd) becomes COMPUTEDATE(dd;mm;yyyy),
*TODAY(), DAY(),WEEK(), MONTH(),=YEAR(TODAY()),
*EOMONTH() becomes MONTHLENGTH(),
*NOW() should be date and time becomes time only, SECOND(), MINUTE(), HOUR(),
*DBSUM() becomes DSUM(),
;Missing and possibly useful features/functions needed for ignition to have better support of Excel files
There is no Merge and Join Text over many cells, no protect and/or freeze row or columns or books but can LOCK sheets, no define bunch of cells as a name, Macros (Arexx?), conditional formatting, no Solver, no Goal Seek, no Format Painter, no AutoFill, no AutoSum function button, no pivot tables, (30 argument limit applies to Excel)
*HLOOKUP(), VLOOKUP(), [http://production-scheduling.com/excel-index-function-most-useful/ INDEX(), MATCH()], CHOOSE(), TEXT(),
*TRIM(), FIND(), SUBSTITUTE(), CONCATENATE() or &, PROPER(), REPT(),
*[https://acingexcel.com/excel-sumproduct-function/ SUMPRODUCT()], ROUND(), ROUNDUP(), *ROUNDDOWN(), COUNT(), COUNTA(), SUMIF(), COUNTIF(), COUNTBLANK(), TRUNC(),
*PMT(), PV(), FV(), POWER(), SQRT(), MODE(), TRUE, FALSE,
*MODE(), LARGE(), SMALL(), RANK(), STDEV(),
*DCOUNT(), DCOUNTA(), WEEKDAY(),
;Excel Keyboard [http://dmcritchie.mvps.org/excel/shortx2k.htm shortcuts needed to aid usability in Ignition]
<pre>
Ctrl Z - Undo
Ctrl D - Fill Down
Ctrl R - Fill right
Ctrl F - Find
Ctrl H - Replace
Ctrl 1 - Formatting of Cells
CTRL SHIFT ~ Apply General Formatting ie a number
Ctrl ; - Todays Date
F2 - Edit cell
F4 - toggle cell absolute / relative cell references
</pre>
====Document Scanning - Scandal====
Scanner usually needs to be connected via a USB port and not via a hub or extension lead.
Check in Trident Prefs -> Devices that the USB Scanner is not bound to anything (e.g. Bindings None)
If not found then reboot the computer and recheck.
Start Scandal, choose Settings from Menu strip at top of screen and in Scanner Driver choose the ?#.device of the scanner (e.g. epson2.device).
The next two boxes - leave empty as they are for morphos SCSI use only
or put ata.device (use the selection option in bigger box below) and Unit as 0 this is needed for gt68xx
* gt68xx - no editing needed in s/gt68xx.conf but needs a firmware file that corresponds to the scanner [http://www.meier-geinitz.de/sane/gt68xx-backend/ gt68xx firmwares] in sys:s/gt68xx.
* epson2 - Need to edit the file epson2.conf in sys/s that corresponds to the scanner being used
'''Save''' the settings but do not press the Use button (aros freezes)
Back to the Picture Scan window and the right-hand sections.
Click on the '''Information''' tab and press Connect button and the scanner should now be detected.
Go next to the '''Scanner''' tab next to Information Tab should have Color, Black and White, etc. and dpi settings now. Selecting an option Color, B/W etc. can cause dpi settings corruption (especially if the settings are in one line) so set '''dpi first'''. Make sure if Preview is set or not.
In the '''Scan''' Tab, press Scan and the scanner will do its duty.
Be aware that nothing is saved to disk yet.
In the Save tab, change format JPEG, PNG or IFF DEEP. Tick incremental and base filename if necessary and then click the Save button. The image will now be saved to permanent storage.
The driver ignores a device if it is already bond to another USB class, rejects it from being usable. However, open Trident prefs, select your device and use the right mouse button to open. Select "NONE" to prevent poseidon from touching the device. Now save settings. It should always work now.
[[#top|...to the top]]
===Emulators===
==== Amiberry ====
==== Amiga Emu - Janus UAE ====
With Amibridge, AROS attempts to make the UAE emulator seem embedded within but it still is acting as an app
There is no dynarec m68k for each hardware that Aros supports or direct patching of motorola calls to AROS hardware accelerated ones unless the emulator has that included
Try starting Janus with a priority of -1 like this little script:
<pre>
cd sys:system/AmiBridge/emulator
changetaskpri -1
run janus-uae -f my_uaerc.config >nil:
cd sys:prefs
endcli
</pre>
This stops Janus hogging all the CPU time.
===Miscellaneous===
====Screensaver Blanker====
Most blankers on the amiga (i.e. aros) run as commodities (they are in the tools/commodities drawer). Double click on blanker.
Control is with an app called Exchange, which you need to run first (double click on app) or run QUIET sys:tools/commodities/Exchange >NIL: but subsequently can use (Cntrl Alt h).
Icon tool types (may be broken) or command line options
<pre>
seconds=number
</pre>
Once the timing is right then add the following to s:icaros-sequence or s:user-startup
e.g. for 5 minutes
run QUIET sys:tools/commodities/Blanker seconds=300 >NIL:
*[http://archives.aros-exec.org/index.php?function=showfile&file=graphics/screenblanker/gblanker.i386-aros.zip Garshneblanker] can make Aros unstable or slow. Certain blankers crashes in Icaros 2.0.x like Dragon, Executor.
*[ Acuario AROS version], the aquarium screen saver.
Startup: extras:acuariofv-aros/acuario
Kill: c:break name=extras:acuariofv-aros/acuario
Managed to start Acuario by the Executor blanker.
<pre>
cx_priority=
cx_popkey= ie CX_POPKEY="Shift F1"
cx_popup=Yes or No
</pre>
<pre>
Qualifier String Input Event Class
---------------- -----------------
"lshift" IEQUALIFIER_LSHIFT
"rshift" IEQUALIFIER_RSHIFT
"capslock" IEQUALIFIER_CAPSLOCK
"control" IEQUALIFIER_CONTROL
"lalt" IEQUALIFIER_LALT
"ralt" IEQUALIFIER_RALT
"lcommand" IEQUALIFIER_LCOMMAND
"rcommand" IEQUALIFIER_RCOMMAND
"numericpad" IEQUALIFIER_NUMERICPAD
"repeat" IEQUALIFIER_REPEAT
"midbutton" IEQUALIFIER_MIDBUTTON
"rbutton" IEQUALIFIER_RBUTTON
"leftbutton" IEQUALIFIER_LEFTBUTTON
"relativemouse" IEQUALIFIER_RELATIVEMOUSE
</pre>
<pre>
Synonym Synonym
String Identifier
------- ----------
"shift" IXSYM_SHIFT /* look for either shift key */
"caps" IXSYM_CAPS /* look for either shift key or capslock */
"alt" IXSYM_ALT /* look for either alt key */
Highmap is one of the following strings:
"space", "backspace", "tab", "enter", "return", "esc", "del",
"up", "down", "right", "left", "f1", "f2", "f3", "f4", "f5",
"f6", "f7", "f8", "f9", "f10", "help".
</pre>
[[#top|...to the top]]
==== World Construction Set WCS (Version 2.031) ====
WCS is a fractal landscape software such as Scenery Animator, Vista Pro and Panorama. Open sourced February 2022, World Construction Set [https://3dnature.com/downloads/legacy-software/ legally and for free] and [https://github.com/AlphaPixel/3DNature c source].
Announced August 1994 this version dates from April 1996 developed by Gary R. Huber and Chris "Xenon" Hanson" from Questar
<pre>
Assign "WCSProjects:" "Volume:Dir/Dir/WCSProjects"
Assign "WCSFrames:" "Volume:Dir/Dir/WCSFrames"
</pre>
<pre>
Load projects .proj by accessing pull down menu Project -> Open then click on CanyonSunset.proj
OK to changing .par file and enlarge Status Log window to show what is happening
Render by pull down menu Modules -> Render with End equal 1 not 300 then click bottom middle button Render
</pre>
[https://www.youtube.com/watch?v=CxQDmf1ZWG0 Youtube walkthrough of above], [], [],
Also try working with the already built file ColoDemo - Then open with the drop-down menu: Project/Open, then WCSProject:ColoDemo.proj
Which allows you to use altimetric DEM files already included and Loading scene parameters from ColoDemo.par
Once this is done, save everything with a new name to start working exclusively on your project.
Then drop-down menu and select Save As ("NewName".proj name), then drop-down menu to open parameter and select Save All ( .par name)
After launching the software, there is a the Module Control Panel composed of five icons.
It is a dock type shortcut of the first few functions of the drop-down menu
*Database - Load (#?.proj), Append, Create, Edit, Save, Dir List (of WCSProject drawer),
*Data Ops - Extract / Convert Interp DEM, Import DLG, DXF, WDB and export LW map 3d formats
*Map View - Database file Loader leading to Map View Control with option to the Database Editor
*Parameters - Editor for Motion, Color, Ecosystem, Clouds, Waves, management of altimeter files DEM, sclock settings etc
*Render - rendering terrain
These are more in the pull down menu but not in the dock
*Motion Editor
*Color Editor
*Ecosys Editor
Simple minimal workflow
*Load database (1st icon - 1st)
*Set parameters and save .par file (4th icon)
*Render scene (5th icon)
[https://www.youtube.com/watch?v=ZbTwwR2qcc4 Youtube], [],
<pre>
.proj new project name which creates a drawer of additional files
.binary array, ascii array .xyz , z buffer, DTED .dt0, vista 1990s dem, iff conversion
.Obj with .elev, .frd with .hdr maps, - digital elevation model (DEM) is a 3D representation of elevation data in various formats
USGS 7.5MinDEM,
.par
</pre>
Since for the time being no project is loaded, a query window indicates a procedural error when clicking on the rendering icon (right end of the bar). The menu is quite traditional; it varies according to the activity of the windows. To display any altimetric file in the "Mapview" (third icon of the panel), There are three possibilities:
* Loading of a demonstration project.
* The import of a DEM file, followed by texturing and packaging from the "Database-Editor" and the "Color-Editor".
* The creation of an altimetric file in WCS format, then texturing.
The altimeter file editing (display in the menu) is only made possible if the "Mapview" window is active.
The software is made up of many windows and won't be able to describe them all. Know that "Color-Editor" and the "Data-Editor" comprise sufficient functions for obtaining an almost real rendering quality. You have the possibility of inserting vector objects in the "Data-Editor" (creation of roads, railways, etc.)
The Map View (MapView) window
*Database - Objects and Topos
*View - Align, Center, Zoom, Pan, Move
*Draw - Maps and distance
*Object - Find, highlight, add points, conform topo, duplicate
*Motion - Camera, Focus, path, elevation
*Windows - DEM designer, Cloud (.cld) and wave (.wve) editor,
You will notice that by selecting this window and simply moving the pointer to various points on the map you will see latitude and longitude values change, along with the height.
Drop-down menu and Modules, then select MapView and change the width of the window with the map to arrange it in the best way on the screen. With the Auto button the center. Window that then displays the contents of my DEM file, in this case the Grand Canyon. MapView allows you to observe the shape of the landscape from above
ZOOM button
Press the Zoom button and then with the pointer position on a point on the map, press the left mouse button and then move to the opposite corner to circumscribe the chosen area and press the left mouse button again, then we will see the enlarged area selected on the map.
Would add that there is a box next to the Zoom button that allows the direct insertion of a value which, the larger it is, the smaller the magnification and the smaller the value, the stronger the magnification. At each numerical change you will need to press the DRAW button to update the view.
PAN button
Under Zoom you will find the PAN button which allows you to move the map at will in all directions by the amount you want. This is done by drawing a line in one direction, then press PAN and point to an area on the map with the pointer and press the left mouse button. At this point, leave it and move the pointer in one direction by drawing a line and press the left mouse button again to trigger the movement of the map on the screen (origin and end points). Do some experiments and then use the Auto button immediately below to recenter everything.
There are parameters such as TOPO, VEC to be left checked and immediately below one that allows different views of the map with the Style command (Single, Multi, Surface, Emboss, Slope, Contour), each with its own particularities to highlight different details.
Now you have the first basics to manage your project visually on the map. Close the MapView window and go further...
Let's start working on ECOSYSTEMS
If we select Emboss from the MapView Style command we will have a clear idea of how the landscape appears, realizing that it is a predominantly desert region of our planet. Therefore we will begin to act on any vegetation present and the appearance of the landscape.
With WCS we will begin to break down the elements of the landscape by assigning defined characteristics. It will be necessary to determine the classes of the ecosystem (Class) with parameters of Elevation Line (maximum altitude), Relative Elevation (arrangement on basins or convexities with respectively positive or negative parameters), Min Slope and Max Slope (slope). WCS offers the possibility of making ecosystems coexist on the same terrain with the UnderEco function, by setting a Density value.
Ecosys Ecosystem Editor
Let's open it from Modules, then Ecosys Editor. In the left pane you will find the list of ecosystems referring to the files present in our project. It will be necessary to clean up that box to leave only the Water and Snow landscapes and a few other predefined ones. We can do this by selecting the items and pressing the Remove button (be careful not for all elements the button is activated, therefore they cannot all be eliminated).
Once this is done we can start adding new ecosystems. Scroll through the various Unused and as soon as the Name item at the top is activated allowing you to write, type the name of your ecosystem, adding the necessary parameters.
<pre>
Ecosystem1: Name: RockBase Class: Rock Density: 80 MinSlope: 15 UnderEco: Terrain
Ecosystem2: Name: RockIncl Clss: Rock Density: 80 MinSlope: 30 UnderEco: Terrain
Ecosystem3: Name: Grass Class Low Veg Density: 50 Height: 1 Elev Line : 1500 Rel El Eff: 5
Max Slope: 10 – Min Slope: 0 UnderEco: Terrain
Ecosistema4: Name: Shrubs Class: Low Veg Density: 40 Height: 8 Elev Line: 3000
Rel El Eff: -2 Max Slope: 20 Min Slope : 5 UnderEco: Terrain
Ecosistema5: Name: Terrain Class: Ground Density: 100 UnderEco: Terrain
</pre>
Now we need to identify an intermediate ecosystem that guarantees a smooth transition between all, therefore we select as Understory Ecosystem the one called Terrain in all ecosystems, except Snow and Water .
Now we need to 'emerge' the Colorado River in the Canyon and we can do this by raising the sea level to 900 (Sea Level) in the Ecosystem called Water.
Please note that the order of the ecosystem list gives priority to those that come after. So our list must have the following order: Water, Snow, Shrubs, RockIncl, RockBase, Terrain. It is possible to carry out all movements with the Swap button at the bottom. To put order you can also press Short List. Press Keep to confirm all the work done so far with Ecosystem Editor.
Remember every now and then to save both the Project 'Modules/Save' and 'Parameter/Save All'
EcoModels are made up of .etp .fgp .iff8 for each model
Color Editor
Now it's time to define the colors of our scene and we can do this by going to Modules and then Color Editor. In the list we focus on our ecosystems, created first.
Let's go to the bottom of the list and select the first white space, assigning the name 'empty1', with a color we like and then we will find this element again in other environments... It could serve as an example for other situations!
So we move to 'grass' which already exists and assign the following colors: R 60 G 70 B50
<pre>
'shrubs': R 60 G 80 B 30
'RockIncl' R 110 G 65 B 60
'RockBase' R 110 G 80 B 80
' Terrain' R 150 G 30 B 30
<pre>
Now we can work on pre-existing colors
<pre>
'SunLight' R 150 G 130 B 130
'Haze and Fog' R 190 G 170 B 170
'Horizon' R 209 G 185 B 190
'Zenith' R 140 G 150 B 200
'Water' R 90 G 125 B 170
</pre>
Ambient R 0 G 0 B 0
So don't forget to close Color Editor by pressing Keep.
Go once again to Ecosystem Editor and assign the corresponding color to each environment by selecting it using the Ecosystem Color button. Press it several times until the correct one appears. Then save the project and parameters again, as done previously.
Motion Editor
Now it's time to take care of the framing, so let's go to Modules and then to Motion Editor. An extremely feature-rich window will open. Following is the list of parameters regarding the Camera, position and other characteristics:
<pre>
-Camera Altitude: 7.0
-Camera Latitude: 36.075
-Camera Longitude: 112.133
-Focus Attitude: -2.0
-Focus Latitude: 36.275
-Focus Longitude: 112.386
-Camera : 512 → rendering window
-Camera Y: 384 → rendering window
-View Arc: 80 → View width in degrees
-Sun Longitude: 172
-Sun Latitude: -0.9
-Haze Start: 3.8
-Haze Range: 78, 5
</pre>
As soon as the values shown in the relevant sliders have been modified, we will be ready to open the CamView window to observe the wireframe preview. Let's not consider all the controls that will appear.
Well from the Motion Editor if you have selected Camera Altitude and open the CamView panel, you can change the height of the camera by holding down the right mouse button and moving the mouse up and down. To update the view, press the Terrain button in the adjacent window. As soon as you are convinced of the position, confirm again with Keep. You can carry out the same work with the other functions of the camera, such as Focus Altitude...
Let's now see the next positioning step on the Camera map, but let's leave the CamView preview window open while we go to Modules to open the window at the same time MapView. We will thus be able to take advantage of the view from the other together with a subjective one.
From the MapView window, select with the left mouse button and while it is pressed, move the Camera as desired. To update the subjective preview, always click on Terrain.
While with the same procedure you can intervene on the direction of the camera lens, by selecting the cross and with the left button pressed you can choose the desired view. So with the pressure of Terrain I update the Preview. Possibly can enlarge or reduce the Map View using the Zoom button, for greater precision.
Also write that the circle around the cameras indicates the beginning of the haze, there are two types (haze and fog) linked to the altitude. Would also add that the camera height is editable through the Motion Editor panel.
The sun
Let's see that changing the position of the sun from the Motion Editor. Press the SUN button at the bottom right and set the time and the date. Longitude and latitude are automatically obtained by the program. Always open the View Arc command from the Motion Editor panel, an item present in the Parameter List box.
Once again confirm everything with Keep and then save again.
Animation
The animation part is not left-back and also occupies a window. The settings possibilities are enormous. A time line with dragging functions ("slide", "drag"...) comparable to that of LightWave completes this window.
A small window is available for positioning the stars as a function of a date, in order to vary the seasons and their various events (and yes...).
At the bottom of the "Motion-Editor", a "cam-view" function will give you access to a control panel. Different preview modes are possible. The rendering is also accessible through a window. No less than nine pages compose it. At this level, you will be able to determine the backup name of your images ("path"), the type of texture to be calculated, the resolution of the images, activate or deactivate functions such as the depth buffer ("zbuffer"), the blur, the background image, etc.
Once all these parameters have been set, all you have to do is click on the "Render" button.
For rendering go to Modules and then Render. Select the resolution, then under IMA select the name of the image. Move to FRA and indicate the level of fractal detail which of 4 is quite good. Then Keep to confirm and then reopen the window, pressing Render you will see the result. The image will be opened with any viewing program.
Strengths:
* Multi-window.
* Quality of rendering.
* Accuracy.
* Opening, preview and rendering on CyberGraphX screen.
* Extract / Convert Interp DEM, Import DLG, DXF, WDB and export LW map 3d formats
* The "zbuffer" function.
Weaknesses:
* No OpenGL management
* Calculation time.
* No network computing tool.
====Writing CD / DVD - Frying Pan====
Can be backup DVDs (4GB ISO size limit due to use of FileInfoBlock), create audio cds from mp3's, and put .iso files on discs
If using for the first time - click Drive button and Device set to ata.device and unit to 0 (zero)
Click Tracks Button - Drive 1 - Create New Disc or Import Existing Disc Image (iso bin/cue etc.) - Session File open cue file
If you're making a data cd, with files and drawers from your hard drive, you should be using the ISO Builder.. which is the MUI page on the left. ("Data/Audio Tracks" is on the right).
You should use the "Data/Audio tracks" page if you want to create music cds with AIFF/WAV/MP3 files, or if you download an .iso file, and you want to put it on a cd.
Click WRITE Button - set write speed - click on long Write button
Examples
Easiest way would be to burn a DATA CD, simply go to "Tracks" page "ISO Builder" and "ADD" everything you need to burn.
On the "Write" page i have "Masterize Disc (DAO)", "Close Disc" and "Eject after Write" set.
One must not "Blank disc before write" if one uses a CDR
AUDIO CD from MP3's are as easy but tricky to deal with. FP only understands one MP3 format, Layer II, everything else will just create empty tracks
Burning bootable CD's works only with .iso files. Go to "Tracks" page and "Data/Audio Tracks" and add the .iso
====odf====
Every ODF file is a collection of several subdocuments within a package (ZIP file), each of which stores part of the complete document.
* content.xml – Document content and automatic styles used in the content.
* styles.xml – Styles used in the document content and automatic styles used in the styles themselves.
* meta.xml – Document meta information, such as the author or the time of the last save action.
* settings.xml – Application-specific settings, such as the window size or printer information.
To read document follow these steps:
* Extracting .ods file.
* Getting content.xml file (which contains sheets data).
* Creating XmlDocument object from content.xml file.
* Creating DataSet (that represent Spreadsheet file).
* With XmlDocument select “table:table” elements, and then create adequate DataTables.
* Parse child’s of “table:table” element and fill DataTables with those data.
* At the end, return DataSet and show it in application’s interface.
To write document follow these steps:
* Extracting template.ods file (.ods file that we use as template).
* Getting content.xml file.
* Creating XmlDocument object from content.xml file.
* Erasing all “table:table” elements from the content.xml file.
* Reading data from our DataSet and composing adequate “table:table” elements.
* Adding “table:table” elements to content.xml file.
* Zipping that file as new .ods file.
XLS file format
The XLS file format contains streams, substreams, and records.
These sheet substreams include worksheets, macro sheets, chart sheets, dialog sheets, and VBA module sheets.
All the records in an XLS document start with a 2-byte unsigned integer to specify Record Type (rt), and another for Count of Bytes (cb). A record cannot exceed 8224 bytes. If larger than the rest is stored in one or more continue records.
* Workbook stream
**Globals substream
***BoundSheet8 record - info for Worksheet substream i.e. name, location, type, and visibility. (4bytes the lbPlyPos FilePointer, specifies the position in the Workbook stream where the sheet substream starts)
**Worksheet substream (sheet) - Cell Table - Row record - Cells (2byte=row 2byte=column 2byte=XF format)
***Blank cell record
***RK cell record 32-bit number.
***BoolErr cell record (2-byte Bes structure that may be either a Boolean value or an error code)
***Number cell record (64-bit floating-point number)
***LabelSst cell record (4-byte integer that specifies a string in the Shared Strings Table (SST). Specifically, the integer corresponds to the array index in the RGB field of the SST)
***Formula cell record (FormulaValue structure in the 8 bytes that follow the cell structure. The next 6 bytes can be ignored, and the rest of the record is a CellParsedFormula structure that contains the formula itself)
***MulBlank record (first 2 bytes give the row, and the next 2 bytes give the column that the series of blanks starts at. Next, a variable length array of cell structures follows to store formatting information, and the last 2 bytes show what column the series of blanks ends on)
***MulRK record
***Shared String Table (SST) contains all of the string values in the workbook.
ACCRINT(), ACCRINTM(), AMORDEGRC(), AMORLINC(),
COUPDAYBS(), COUPDAYS(), COUPDAYSNC(), COUPNCD(), COUPNUM(), COUPPCD(),
CUMIPMT(), CUMPRINC(),
DB(), DDB(), DISC(),
DOLLARDE(), DOLLARFR(),
DURATION(), EFFECT(), FV(), FVSCHEDULE(),
INTRATE(), IPMT(), IRR(), ISPMT(), MDURATION(), MIRR(), NOMINAL(), NPER(), NPV(),
ODDFPRICE(), ODDFYIELD(), ODDLPRICE(), ODDLYIELD(),
PMT(), PPMT(), PRICE(), PRICEDISC(), PRICEMAT(), PV(), RATE(),
RECEIVED(), SLN(), SYD(), TBILLEQ(), TBILLPRICE(), TBILLYIELD(),
VDB(), XIRR(), XNPV(), YIELD(), YIELDDISC(), YIELDMAT(),
<pre>
</pre>
<pre>
</pre>
<pre>
</pre>
{{BookCat}}
0nei3itxkc9f40b97751xhlefi94ljr
4640206
4640100
2026-06-13T17:03:38Z
Jeff1138
301139
4640206
wikitext
text/x-wiki
==Introduction==
[[#Graphical Image Editing Art]]
[[#Office Application]]
[[#Audio]]
[[#Misc Application]]
[[#Games & Emulation]]
[[#Application Guides]]
[[#top|...to the top]]
[[#top|...to the top]]
Most apps can be opened on the Workbench (aka publicscreen pubscreen) which is the default display option but can offer a custom one set to your configurations (aka custom screen mode promotion). These custom ones tend to stack so the possible use of A-M/A-N method of switching between full screens and the ability to pull down screens as well
If you are interested in creating or porting new software, see [http://en.wikibooks.org/wiki/Aros/Developer/Docs here]
{| class="wikitable sortable"
|-
!width:30%;|Internet Applications
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1 (68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Web Online Browser [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=network/browser Odyssey 2.0], [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1175&highlight=odyssey&rowstart=100 Odyssey 3.0],
|<!--Amiga OS-->[https://aminet.net/comm/www Amelinium], [https://blog.alb42.de/programs/amifox/ amifox] with [https://github.com/alb42/wrp wrp server], IBrowse*, Voyager*, [https://github.com/amigazen/aweb3/ AWeb 3.6 src], [https://github.com/matjam/aweb AWeb Src], [http://aminet.net/package/comm/www/NetSurf-m68k-sources Netsurf], [],
|<!--AmigaOS4-->[ Odyssey OWB], [ Timberwolf (Firefox port 2011)], [http://amigaworld.net/modules/newbb/viewtopic.php?forum=32&topic_id=32847 OWB-mui], [http://strohmayer.org/owb/ OWB-Reaction], IBrowse*, [http://os4depot.net/index.php?function=showfile&file=network/browser/aweb.lha AWeb], Voyager, [http://www.os4depot.net/index.php?function=browse&cat=network/browser Netsurf],
|<!--MorphOS-->Wayfarer, [http://fabportnawak.free.fr/owb/ Odyssey OWB], [ Netsurf], IBrowse*, AWeb, [],
|-
|<!--Sub Menu-->YouTube Viewing and downloading videos
|<!--AROS-->Odyssey 2.0 can show Youtube webpage, [https://blog.alb42.de/amitube/ Amitube],
|[https://blog.alb42.de/amitube/ Amitube], [https://github.com/YePpHa/YouTubeCenter/releases or this one],
|[https://blog.alb42.de/amitube/ Amitube], getVideo, Tubexx, [https://github.com/walkero-gr/aiostreams aiostreams],
|[ Wayfarer], [https://blog.alb42.de/amitube/ Amitube],Odyssey (OWB), [http://morphos.lukysoft.cz/en/vypis.php?kat=5 getVideo], Tubexx
|-
|<!--Sub Menu-->E-mailing SMTP POP3 IMAP based
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=network/email SimpleMail], [http://sourceforge.net/projects/simplemail/files/ src], [https://github.com/jens-maus/yam YAM]
|<!--Amiga OS-->[http://sourceforge.net/projects/simplemail/files/ SimpleMail], [https://github.com/jens-maus/yam YAM]
|<!--AmigaOS4-->SimpleMail, YAM,
|<!--MorphOS--> SimpleMail, YAM
|-
|<!--Sub Menu-->IRC
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=network/chat WookieChat], [https://sourceforge.net/projects/wookiechat/ Wookiechat src], [http://archives.arosworld.org/index.php?function=browse&cat=network/chat AiRcOS], Jabberwocky,
|<!--Amiga OS-->Wookiechat, AmIRC
|<!--AmigaOS4-->Wookiechat
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=5 Wookiechat], [http://morphos.lukysoft.cz/en/vypis.php?kat=5 AmIRC],
|-
|<!--Sub Menu-->Instant Messaging IM like [https://github.com/BlitterStudio/amidon Hollywood lang based Mastodon client], BlueSky AT protocol, Facebook(TM), Twitter X (TM), Bitlbee IRC Gateway and others
|<!--AROS-->[https://github.com/kaffeine1/telegram-amiga telegram-amiga], [http://archives.arosworld.org/index.php?function=browse&cat=network/chat jabberwocky],
|<!--Amiga OS-->[http://amitwitter.sourceforge.net/ AmiTwitter], CLIMM, SabreMSN, jabberwocky,
|<!--AmigaOS4-->[http://amitwitter.sourceforge.net/ AmiTwitter], SabreMSN,
|<!--MorphOS-->[http://amitwitter.sourceforge.net/ AmiTwitter], [http://morphos.lukysoft.cz/en/vypis.php?kat=5 PolyglotNG], SabreMSN,
|-
|<!--Sub Menu-->Torrents
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=network/p2p ArTorr],
|<!--Amiga OS-->
|<!--AmigaOS4-->CTorrent, Transmission
|<!--MorphOS-->MLDonkey, Beehive, [http://morphos.lukysoft.cz/en/vypis.php?kat=5 Transmission], CTorrent,
|-
|<!--Sub Menu-->FTP
|<!--AROS-->Plugin included with Dopus Magellan, MarranoFTP,
|<!--Amiga OS-->[http://aminet.net/package/comm/tcp/AmiFTP AmiFTP], AmiTradeCenter, ncFTP,
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=5 Pftp], [http://aminet.net/package/comm/tcp/AmiFTP-1.935-OS4 AmiFTP],
|-
|<!--Sub Menu-->WYSIWYG Web Site Editor
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Internet Radio Streaming Audio [http://www.gnu.org/software/gnump3d/ gnump3d], [http://www.icecast.org/ Icecast2] Server (Broadcast) and Client (Listen), [ mpd], [http://darkice.sourceforge.net/ DarkIce], [http://www.dyne.org/software/muse/ Muse],
|<!--AROS-->Mplayer (Icecast Client only),
|<!--Amiga OS-->[https://github.com/sandlbn/TuneFinder TuneFinder C Src], [https://github.com/sandlbn/TuneFinderMUI TuneFinderMUI], [http://amigazeux.net/anr/ AmiNetRadio], [], [],
|<!--AmigaOS4-->[http://www.tunenet.co.uk/ Tunenet],
|<!--MorphOS-->Mplayer, AmiNetRadio,
|-
|<!--Sub Menu-->VoIP (Voice over IP) with SIP Client (Session Initiation Protocol) or Asterisk IAX2 Clients Softphone (skype like)
|<!--AROS-->
|<!--Amiga OS-->AmiPhone with Speak Freely,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Weather Forecast
|<!--AROS-->[http://sourceforge.net/projects/zunetools/files/ WeatherBar], [http://archives.arosworld.org/index.php?function=browse&cat=utility/workbench AWeather], []
|<!--Amiga OS-->[http://amigazeux.net/wetter/ Wetter], [https://github.com/emartisoft/AmiWeatherForecasts AmiWeatherForecasts src],
|<!--AmigaOS4-->[http://os4depot.net/?function=showfile&file=utility/workbench/flipclock.lha FlipClock],
|<!--MorphOS-->[http://amigazeux.net/wetter/ Wetter],
|-
|<!--Sub Menu-->Street Road Maps Route Planning GPS Tracking
|<!--AROS-->[https://blog.alb42.de/programs/muimapparium/ MuiMapparium] [https://build.alb42.de/ Build of MuiMapp versions],
|<!--Amiga OS-->AmiAtlas*, UKRoutePlus*, [http://blog.alb42.de/ AmOSM],
|<!--AmigaOS4-->
|<!--MorphOS-->[http://blog.alb42.de/programs/mapparium/ Mapparium],
|-
|<!--Sub Menu-->Clock and Date setting from the internet (either ntp or websites) [https://www.timeanddate.com/worldclock/ World Clock], [http://www.time.gov/ NIST], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=network/misc ntpsync],
|<!--Amiga OS-->ntpsync
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Newsgroups
|<!--AROS-->
|<!--Amiga OS-->[http://newscoaster.sourceforge.net/ Newscoaster], [https://github.com/jens-maus/newsrog NewsRog], [ WorldNews],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
==Graphical Image Editing Art==
{| class="wikitable sortable"
|-
!width:30%;|Image Editing
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Pixel Raster Artwork [https://github.com/LibreSprite/LibreSprite LibreSprite based on GPL aseprite], [https://github.com/abetusk/hsvhero hsvhero], [],
|<!--AROS-->[https://sourceforge.net/projects/zunetools/files/ZunePaint/ ZunePaint], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit LunaPaint], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit GrafX2], [ LodePaint needs OpenGL],
|<!--Amiga OS-->[http://www.amigaforever.com/classic/download.html PPaint], GrafX2, [https://github.com/grovdata/Amiga_Sources/blob/master/software.md DeluxePaint], [http://www.amiforce.de/perfectpaint/perfectpaint.php PerfectPaint], Zoetrope, Brilliance2*,
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=graphics/edit LodePaint], GrafX2,
|<!--MorphOS-->Sketch, Pixel*, GrafX2, [http://morphos.lukysoft.cz/en/vypis.php?kat=3 LunaPaint]
|-
|<!--Sub Menu-->Image viewing
|<!--AROS-->[http://sourceforge.net/projects/zunetools/files/ ZuneView], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer LookHere], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer LoView], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer PicShow] , [http://amigaworld.net/modules/newbb/viewtopic.php?mode=viewtopic&topic_id=31400&forum=32&start=80&viewmode=flat&order=0#583458 Picture Album],
|<!--Amiga OS-->PicShow, PicView, Photoalbum,
|<!--AmigaOS4-->WarpView, PicShow, flPhoto, Thumbs, [http://amigaworld.net/modules/newbb/viewtopic.php?mode=viewtopic&topic_id=31400&forum=32&start=80&viewmode=flat&order=0#583458 Picture Album],
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=3 ShowGirls], [http://amigaworld.net/modules/newbb/viewtopic.php?mode=viewtopic&topic_id=31400&forum=32&start=80&viewmode=flat&order=0#583458 Picture Album]
|-
|<!--Sub Menu-->Photography retouching / Image Manipulation like Photoshop(tm)
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit RNOEffects], [https://sourceforge.net/projects/zunetools/files/ ZunePaint], [http://sourceforge.net/projects/zunetools/files/ ZuneView],
|<!--Amiga OS-->[ Tecsoft Video Paint aka TVPaint], Photogenics*, ArtEffect*, ImageFX*, XiPaint, fxPaint, ImageMasterRT, Opalpaint,
|<!--AmigaOS4-->WarpView, flPhoto, [http://www.os4depot.net/index.php?function=browse&cat=graphics/edit Photocrop]
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=3 ShowGirls], ImageFX*,
|-
|<!--Sub Menu-->Manage RAW picture folder galleries like Darktable, RAWtherapy, etc
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Graphic Format Converter - ICC profile support sRGB, Adobe RGB, XYZ and linear RGB
|<!--AROS-->
|<!--Amiga OS-->GraphicsConverter, ImageStudio, [http://www.coplabs.org/artpro.html ArtPro]
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Thumbnail Generator [],
|<!--AROS-->[http://sourceforge.net/projects/zunetools/files/ ZuneView], [http://archives.arosworld.org/index.php?function=browse&cat=utility/shell Thumbnail Generator]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Icon Editor
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/iconedit Archives], [http://archives.arosworld.org/index.php?function=browse&cat=utility/workbench Icon Toolbox],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=graphics/iconedit IconEditor]
|<!--MorphOS-->
|-
|<!--Sub Menu-->2D Pixel Art Animation
|<!--AROS-->Lunapaint
|<!--Amiga OS-->PPaint, AnimatED, Scala*, GoldDisk MovieSetter*, Walt Disney's Animation Studio*, ProDAD*, [https://github.com/historicalsource/DeluxePaint DeluxePaint src], Brilliance
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=3 Titler]
|-
|<!--Sub Menu-->2D SVG based MovieSetter type
|<!--AROS-->
|<!--Amiga OS-->MovieSetter*, Fantavision*
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Morphing
|<!--AROS-->[ GLMorph]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->2D Cad (qcad->LibreCAD, etc.)
|<!--AROS-->
|<!--Amiga OS-->Xcad, MaxonCAD
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->3D Cad like FreeCad, BRL-CAD, OpenSCAD, AvoCADo, etc. using dxf, obj (vertices), blend,
|<!--AROS-->
|<!--Amiga OS-->XCad3d*, DynaCADD*, Cycas,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->3D Model Rendering of glft (json) gbl (png jpg), usdz (USD files with materials, textures, and animations), FBX Filmbox is a proprietary Autodesk format,
|<!--AROS-->POV-Ray
|<!--Amiga OS-->[http://www.discreetfx.com./amigaproducts.html CINEMA 4D]*, POV-Ray, Lightwave3D*, Real3D*, Caligari24*, Reflections/Monzoom*, [https://github.com/privatosan/RayStorm Raystorm src], Tornado 3D
|<!--AmigaOS4-->Blender, POV-Ray, Yafray
|<!--MorphOS-->Blender, POV-Ray, Yafray
|-
|<!--Sub Menu-->3D Format Converter [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=showfile&file=graphics/convert/ivcon.lha IVCon]
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Screen grabbing display
|<!--AROS-->[ Screengrabber], [http://archives.arosworld.org/index.php?function=browse&cat=utility/misc snapit], [http://archives.arosworld.org/index.php?function=browse&cat=video/record screen recorder], []
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Grab graphics music from apps [https://github.com/Malvineous/ripper6 ripper6], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
[[#top|...to the top]]
==Office Application==
{| class="wikitable sortable"
|-
!width:30%;|Office
!width:10%;|AROS (x86)
!width:10%;|[http://en.wikipedia.org/wiki/Amiga_software Commodore-Amiga OS 3.1] (68k)
!width:10%;|[http://en.wikipedia.org/wiki/AmigaOS_4 Hyperion OS4] (PPC)
!width:10%;|[http://en.wikipedia.org/wiki/MorphOS MorphOS] (PPC)
|-
|<!--Sub Menu-->Word-processing
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=office/wordprocessing Cinnamon Writer], [https://finalwriter.godaddysites.com/ Final Writer 7*], [https://github.com/sodero/MUI-Vim/releases MUI-Vim], [ ],
|<!--AmigaOS-->[ Softwood FinalCopy II*], Haage AmigaWriter*, Digita WordWorth*, Softwood FinalWriter*, Micro-Systems Excellence 3*, Arnor Protext, Rashumon, [ InterWord], [ KindWords], [WordPerfect], [ New Horizons Flow], [ CygnusEd Pro], [ Micro-systems Scribble],
|<!--AmigaOS4-->AbiWord, [ CinnamonWriter]
|<!--MorphOS-->[ Cinnamon Writer], [http://www.meta-morphos.org/viewtopic.php?topic=1246&forum=53 scriba], [http://morphos.lukysoft.cz/en/index.php Papyrus Office],
|-
|<!--Sub Menu-->Spreadsheets
|<!--AROS-->[https://blog.alb42.de/programs/leu/ Leu], [https://archives.arosworld.org/index.php?function=browse&cat=office/spreadsheet],
|<!--AmigaOS-->[https://aminet.net/package/biz/spread/ignition-src Ignition Src 1.3], [MaxiPlan 500 Plus], [OXXI Plan/IT v2.0 Speadsheet], [ Superplan], [ Creative Developments TurboCalc], [ ProCalc], [ InterSpread], [Digita DGCalc], [ Gold Disk Advantage], [ Micro-systems Analyze!]
|<!--AmigaOS4-->Gnumeric, [https://ignition-amiga.sourceforge.net/ Ignition],
|<!--MorphOS-->[ ignition], [http://morphos.lukysoft.cz/en/vypis.php Papyrus Office],
|-
|<!--Sub Menu-->Presentations
|<!--AROS-->[http://www.hollywoood-mal.com/ Hollywood]*,
|<!--Amiga OS-->[http://www.hollywoood-mal.com/ Hollywood]*, MediaPoint, PointRider, Scala*,
|<!--Amiga OS4-->[http://www.hollywoood-mal.com/ Hollywood]*, PointRider
|<!--MorphOS-->[http://www.hollywoood-mal.com/ Hollywood]*, PointRider
|-
|<!--Sub Menu-->Databases
|<!--AROS-->[http://sdb.freeforums.org/ SDB], [http://archives.arosworld.org/index.php?function=browse&cat=office/database BeeBase],
|<!--Amiga OS-->Precision Superbase 4 Pro*, Arnor Prodata*, BeeBase, Datastore, FinalData*, AmigaBase, Fiasco, Twist2*, [Digita DGBase], [],
|<!--AmigaOS4-->BeeBase, SQLite,
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=6 BeeBase],
|-
|<!--Sub Menu-->PDF Viewing and editing digital signatures
|<!--AROS-->[http://sourceforge.net/projects/arospdf/ ArosPDF via splash], [https://github.com/wattoc/AROS-vpdf vpdf wip],
|<!--Amiga OS-->APDF
|<!--AmigaOS4-->AmiPDF
|<!--MorphOS-->APDF, vPDF,
|-
|<!--Sub Menu-->Printing
|<!--AROS-->Postscript 3 laser printers and Ghostscript internal, [ GutenPrint],
|<!--Amiga OS-->[http://www.irseesoft.de/tp_what.htm TurboPrint]*
|<!--AmigaOS4-->(some native drivers),
|<!--MorphOS-->early TurboPrint included,
|-
|<!--Sub Menu-->Note Taking markdown support like Obsidian like, joplin, OneNote, EverNotes, xournalpp, etc
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Study and analyse, collect, organize, annotate, cite, and share
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->PIM Personal Information Manager - Day Diary Planner Calendar App
|<!--AROS-->[ ], [ ], [ ],
|<!--Amiga OS-->Digita Organiser*, On The Ball, Everyday Organiser, [ Contact Manager],
|<!--AmigaOS4-->AOrganiser,
|<!--MorphOS-->[http://polymere.free.fr/orga_en.html PolyOrga],
|-
|<!--Sub Menu-->Accounting
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=office/misc ETB], LoanCalc, [ ], [ ], [ ],
|[ Digita Home Accounts2], Accountant, Small Business Accounts, Account Master, [ Amigabok],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Project Management Research
|<!--AROS-->
|<!--Amiga OS-->SuperGantt, SuperPlan,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->System Wide Dictionary - multilingual [http://sourceforge.net/projects/babiloo/ Babiloo], [http://code.google.com/p/stardict-3/ StarDict],
|<!--AROS-->[ ],
|<!--AmigaOS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->System wide Thesaurus - multi lingual
|<!--AROS-->[ ],
|Kuma K-Roget*,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Sticky Desktop Notes (post it type)
|<!--AROS-->[http://aminet.net/package/util/wb/amimemos.i386-aros AmiMemos], [https://aminet.net/package/util/wb/amimemos.src-aros AmiMemos Src], [],
|<!--Amiga OS-->[http://aminet.net/package/util/wb/StickIt-2.00 StickIt v2],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->DTP Desktop Publishing
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit RNOPublisher],
|<!--Amiga OS-->[http://pagestream.org/ Pagestream]*, Professional Pro Page*, Saxon Publisher, Pagesetter, PenPal,
|<!--AmigaOS4-->[http://pagestream.org/ Pagestream]*
|<!--MorphOS-->[http://pagestream.org/ Pagestream]*
|-
|<!--Sub Menu-->Scanning
|<!--AROS-->[ SCANdal], [],
|<!--Amiga OS-->FxScan*, ScanQuix*
|<!--AmigaOS4-->SCANdal (Sane)
|<!--MorphOS-->SCANdal
|-
|<!--Sub Menu-->OCR
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/convert gOCR]
|<!--AmigaOS-->
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos-files.net/categories/office/text Tesseract]
|-
|<!--Sub Menu-->Text Editing
|<!--AROS-->Jano Editor (already installed as Editor), [http://archives.arosworld.org/index.php?function=browse&cat=development/edit EdiSyn], [http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit Annotate], [https://archives.arosworld.org/index.php?function=browse&cat=development/edit Vim], [http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit FrexxEd] [https://github.com/vidarh/FrexxEd src], [ NoWinEd],
|<!--Amiga OS-->Annotate, MicroGoldED/CubicIDE*, CygnusED*, Turbotext, Protext*, NoWinED,
|<!--AmigaOS4-->Notepad, Annotate, CygnusED*, NoWinED,
|<!--MorphOS-->MorphOS ED, NoWinED, GoldED/CubicIDE*, CygnusED*, Annotate,
|-
|<!--Sub Menu-->Office Fonts [http://sourceforge.net/projects/fontforge/files/fontforge-source/ Font Designer]
|<!--AROS-->[ ], [ ],
|<!--Amiga OS-->TypeSmith*, SaxonScript (GetFont Adobe Type 1),
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Drawing Vector
|<!--AROS-->[http://sourceforge.net/projects/amifig/ ZuneFIG previously AmiFIG]
|<!--Amiga OS-->Drawstudio*, ProVector*, ArtExpression*, Professional Draw*, AmiFIG, MetaView, [https://gitlab.com/amigasourcecodepreservation/designworks Design Works Src], [],
|<!--AmigaOS4-->MindSpace, [http://www.os4depot.net/index.php?function=browse&cat=graphics/edit amifig],
|<!--MorphOS-->SteamDraw, [http://aminet.net/package/gfx/edit/amifig amiFIG],
|-
|<!--Sub Menu-->video conferencing (jitsi)
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->source code hosting
|<!--AROS-->Gitlab,
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Remote Desktop (server)
|<!--AROS-->[http://sourceforge.net/projects/zunetools/files/VNC_Server ArosVNCServer],
|<!--Amiga OS-->[http://s.guillard.free.fr/AmiVNC/AmiVNC.htm AmiVNC], [http://dspach.free.fr/amiga/avnc/index.html AVNC]
|<!--AmigaOS4-->[http://s.guillard.free.fr/AmiVNC/AmiVNC.htm AmiVNC]
|MorphVNC, vncserver
|-
|<!--Sub Menu-->Remote Desktop (client) login and connect to another machine
|<!--AROS-->[https://sourceforge.net/projects/zunetools/files/VNC_Client/ ArosVNC], [http://archives.arosworld.org/index.php?function=browse&cat=network/misc rdesktop],
|<!--Amiga OS-->[http://twinvnc.free.fr/index.php?menu=01&lang=eng TwinVNC], [http://dspach.free.fr/amiga/vva/index.html VVA], [http://www.hd-zone.com/ RDesktop]
|<!--AmigaOS4-->[http://twinvnc.free.fr/index.php?menu=01&lang=eng TwinVNC], [http://www.hd-zone.com/ RDesktop]
|[http://twinvnc.free.fr/index.php?menu=01&lang=eng TwinVNC], [http://www.hd-zone.com/ RDesktop]
|-
|<!--Sub Menu-->notifications
|<!--AROS-->
|<!--Amiga OS-->Ranchero
|<!--AmigaOS4-->Ringhio
|<!--MorphOS-->MagicBeacon
|-
|<!--Sub Menu-->Facial logins and fingerprint security features
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
[[#top|...to the top]]
==Audio==
{| class="wikitable sortable"
|-
!width:30%;|Audio
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Playing playback Audio like MP3, [https://github.com/chrg127/gmplayer NSF], [https://github.com/kode54/lazyusf miniusf .usflib], [], etc
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=video/play Mplayer], [ HarmonyPlayer hp], [http://www.a500.org/downloads/audio/index.xhtml playcdda] CDs, [ WildMidi Player], [https://bszili.morphos.me/ UADE mod player], [], [RNOTunes ], [ mp3Player], [],
|<!--Amiga OS-->AmiNetRadio, AmigaAmp, playOGG,
|<!--AmigaOS4-->TuneNet, SimplePlay, AmigaAmp, TKPlayer
|AmiNetRadio, Mplayer, Kaya, AmigaAmp
|-
|<!--Sub Menu-->Editing Audio
|<!--AROS-->[ Audio Evolution 4]
|<!--Amiga OS-->[ Samplitude Opus Key], [https://sourceforge.net/projects/hd-rec/ HD-Rec Src], [http://www.sonicpulse.de/eng/news.html SoundFX],
|<!--AmigaOS4-->[https://sourceforge.net/projects/hd-rec/ HD-Rec], AmiSoundED, [http://os4depot.net/?function=showfile&file=audio/record/audioevolution4.lha Audio Evolution 4]
|[http://www.hd-rec.de/HD-Rec/index.php?site=home HD-Rec],
|-
|<!--Sub Menu-->Editing Tracker Music
|<!--AROS-->[https://github.com/hitchhikr/protrekkr Protrekkr], [ Schism Tracker], [http://archives.arosworld.org/index.php?function=browse&cat=audio/tracker MilkyTracker], [http://www.hivelytracker.com/ HivelyTracker], [ Radium in AROS already], [http://www.a500.org/downloads/development/index.xhtml libMikMod],
|<!--Amiga OS-->MilkyTracker, HivelyTracker, DigiBooster, Octamed SoundStudio,
|<!--AmigaOS4-->MilkyTracker, HivelyTracker, GoatTracker
|MilkyTracker, GoatTracker, DigiBooster,
|-
|<!--Sub Menu-->Editing Music [], [https://github.com/kmatheussen/camd CAMD] and/or staves and notes manuscript
|<!--AROS-->[http://bnp.hansfaust.de/ Bars and Pipes for AROS], [ Audio Evolution], [],
|<!--Amiga OS-->[http://bnp.hansfaust.de/ Bars'n'Pipes], MusicX* David "Talin" Joiner & Craig Weeks (for Notator-X), Deluxe Music Construction 2*, [https://github.com/timoinutilis/midi-sequencer-amigaos Horny c Src], HD-Rec, [https://aminet.net/package/mus/midi/dominatorV1_51 Dominator],
|<!--AmigaOS4-->[https://sourceforge.net/p/hd-rec/code/HEAD/tree/ HD-Rec Src], Rockbeat, [http://bnp.hansfaust.de/download.html Bars'n'Pipes], [http://os4depot.net/index.php?function=browse&cat=audio/edit Horny], Audio Evolution 4,
|<!--MorphOS-->Bars'n'Pipes,
|-
|<!--Sub Menu-->Sound Sampling
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=audio/record Audio Evolution 4], [http://www.imica.net/SitePortalPage.aspx?siteid=1&did=162 Quick Record], [https://archives.arosworld.org/index.php?function=browse&cat=audio/misc SOX to get AIFF 16bit files], [https://github.com/aros-development-team/AROS/tree/master/workbench/tools/AHIRecord AHIRecord],
|<!--Amiga OS-->[https://aminet.net/package/mus/edit/AudioEvolution3_src Audio Evolution 3 c src], [ Samplitude-MS Opus Key], Audiomaster IV*,
|<!--AmigaOS4-->[https://github.com/timoinutilis/phonolith-amigaos phonolith c src], HD-Rec, Audio Evolution 4,
|<!--MorphOS-->[https://sourceforge.net/p/hd-rec/code/HEAD/tree/ HD-Rec Src], Audio Evolution 4,
|-
|<!--Sub Menu-->Live Looping or Audio Misc - Groovebox like
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->CD/DVD burn
|[https://code.google.com/p/amiga-fryingpan/ FryingPan],
|<!--Amiga OS-->FryingPan, [http://www.estamos.de/makecd/#CurrentVersion MakeCD],
|<!--AmigaOS4-->FryingPan, AmiDVD,
|[http://www.amiga.org/forums/printthread.php?t=58736 FryingPan], Jalopeano,
|-
|<!--Sub Menu-->CD/DVD audio rip
|Lame, [http://www.imica.net/SitePortalPage.aspx?siteid=1&cfid=0&did=167 Quick CDrip],
|<!--Amiga OS-->Lame,
|<!--AmigaOS4-->Lame,
|Lame,
|-
|<!--Sub Menu-->MP3 v1 and v2 Tagger
|<!--AROS-->id3ren (v1), [http://archives.arosworld.org/index.php?function=browse&cat=audio/edit mp3info],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|
|-
|<!--Sub Menu-->Audio Convert
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=audio/misc Sox], [],
|<!--Amiga OS-->[http://aminet.net/package/mus/misc/SoundBox SoundBox], [http://aminet.net/package/mus/misc/SoundBoxKey SoundBox Key], [http://aminet.net/package/mus/edit/SampleE SampleE], sox
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->DJ mixing jamming
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Radio Automation Software [http://www.rivendellaudio.org/ Rivendell], [http://code.campware.org/projects/livesupport/report/3 Campware LiveSupport], [http://www.sourcefabric.org/en/airtime/ SourceFabric AirTime], [http://www.ohloh.net/p/mediabox404 MediaBox404],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Speakers Audio Sonos Mains AC networked wired controlled
*2005 ZP100 with ZP80
*2008 Zoneplayer ZP120 (multi-room wireless amp) ZP90 receiver only with CR100 controller,
*2009 ZonePlayer S5,
*2010 BR100 wireless Bridge (no support),
*2011 Play:3
*2013 Bridge (no support), Play:1,
*2016 Arc, Play:1,
*Beam (Gen 2), Playbar, Ray, Era 100, Era 300, Roam, Move 2,
*Sub (Gen 3), Sub Mini, Five, Amp S2
|<!--AROS-->SonosController
|<!--Amiga OS-->SonosController
|<!--AmigaOS4-->SonosController
|<!--MorphOS-->SonosController
|-
|<!--Sub Menu-->Smart Speakers
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
[[#top|...to the top]]
==Video Creativity and Production==
{| class="wikitable sortable"
|-
!width:30%;|Video
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Playing Video
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=video/play Mplayer VAMP], [http://www.a500.org/downloads/video/index.xhtml CDXL player], [http://www.a500.org/downloads/video/index.xhtml IffAnimPlay], [],
|<!--Amiga OS-->Frogger*, AMP2, MPlayer, RiVA*, MooViD*,
|<!--AmigaOS4-->DvPlayer, MPlayer
|<!--MorphOS-->MPlayer, Frogger, AMP2, VLC
|-
|<!--Sub Menu-->Streaming Video and game streaming like OBS studio, Parsec, [https://github.com/lizardbyte/sunshine sunshine], [https://github.com/moonlight-stream/moonlight-qt moonlight], etc
|<!--AROS-->Mplayer,
|<!--Amiga OS-->
|<!--AmigaOS4-->Mplayer, Gnash, Tubexx
|<!--MorphOS-->Mplayer, OWB, Tubexx
|-
|<!--Sub Menu-->Playing DVD
|<!--AROS-->[http://a-mc.biz/ AMC]*, Mplayer
|<!--Amiga OS-->AMP2, Frogger
|<!--AmigaOS4-->[http://a-mc.biz/ AMC]*, DvPlayer*, AMP2,
|<!--MorphOS-->Mplayer
|-
|<!--Sub Menu-->Screen Recording
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=video/record Screenrecorder], [ ], [ ], [ ], [ ],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->Screenrecorder,
|-
|<!--Sub Menu-->Create and Edit Individual Video NLE
|<!--AROS-->[ Mencoder], [ Quick Videos], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit AVIbuild], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/misc FrameBuild], FFMPEG,
|<!--Amiga OS-->[ MainConcept Mainactor Broadcast*], [http://en.wikipedia.org/wiki/Video_Toaster Video Toaster*], MacroSystem MovieShop 4.3*, proDAD Adorage*, [ IOSpirit VHI studio]*, [Gold Disk ShowMaker], [],
|<!--AmigaOS4-->FFMpeg/GUI
|<!--MorphOS-->Blender, Mencoder, FFmpeg
|-
|<!--Sub Menu-->Subtitle editor
|<!--AROS-->[https://aminet.net/package/text/edit/Slarti_Arosx86ABIv0 Slarti_Arosx86ABIv0], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->IP-based video production workflows with High Dynamic Range (HDR), 10-bit color collaborative NDI,
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Blogging like Lemmy or kbin
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->VR face recognition for Vtubers
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->VR chatting Live 2D models with Cubism type editor
<pre>
Model data (cmo3)
Basic motions (can3)
Background image (png)
Set of files for embedding (runtime folder)
• Model data (moc3)
• Motion data (motion3.json)
• Model settings file (model3.json)
• Physics settings file (physics3.json)
• Display auxiliary file (cdi3.json)
</pre>
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->VR chatting chatters .VRML models - standardized 3D file format for VR avatars
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->V-tubers V-tubing like Vseeface with Openseeface tracker or Vpuppr (virtual puppet project) for 2d / 3d art models rigging rigged LIV
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
[[#top|...to the top]]
==Misc Application==
{| class="wikitable sortable"
|-
!width:30%;|Misc Application
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1 (68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->File Management
|<!--AROS-->DOpus4, [https://github.com/BlitterStudio/dopus5 DOpus Magellan aka DOpus 5], [ Scalos], [ ],
|<!--Amiga OS-->DOpus2, DOpus 4, [http://sourceforge.net/projects/dopus5allamigas/files/?source=navbar DOpus Magellan DOpus5], ClassAction, FileMaster, [http://www.amiga.org/forums/showthread.php?t=4897 DirWork 2]*, [https://github.com/RudolphRiedel/DiskMaster2 DiskMaster2 src],
|<!--AmigaOS4-->DOpus4, DOpus5, Filer, AmiDisk
|<!--MorphOS-->DOpus4, DOpus5
|-
|<!--Sub Menu-->File Verification / Repair
|<!--AROS-->md5 (works in linux compiling shell), [http://archives.arosworld.org/index.php?function=browse&cat=utility/filetool workpar2] (PAR2), [http://zakalwe.fi/~shd/foss/cksfv/files/ compile cksfv from website],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->Par2,
|-
|Application Installer
|<!--AROS-->[], [ InstallerNG],
|<!--Amiga OS-->InstallerNG, Grunch,
|<!--AmigaOS4-->Jack
|<!--MorphOS-->Jack
|-
|<!--Sub Menu-->Compression archiver [https://github.com/FS-make-simple/paq9a paq9a], [],
|<!--AROS-->XAD system is a toolkit designed for handling various file and disk archiver
|<!--Amiga OS-->
|<!--AmigaOS4-->[https://aminet.net/package/util/pack/decrunchmania_os4 Crunchmania CrM2 depacker],
|<!--MorphOS-->
|-
|<!--Sub Menu-->Binary Hexadecimal Editor
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=development/edit Zaphod], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Repository
|<!--AROS-->[ Git]
|<!--Amiga OS-->
|<!--AmigaOS4-->Git
|<!--MorphOS-->
|-
|<!--Sub Menu-->Filesystem Partition Editor formatter
|<!--AROS-->[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1440&highlight=partition&pid=8821#post_8821 QuickPart], [HDToolBox]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Filesystem Repair
|<!--AROS-->ArSFSDoctor,
|<!--Amiga OS--> Quarterback Tools, [ ], [ ], [ ],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Multiple File renaming
|<!--AROS-->DOpus 4 or 5,
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Anti Virus
|<!--AROS-->
|<!--Amiga OS-->VChecker,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Random Wallpaper Desktop changer [ DOpus5], [ Scalos],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Alarm Clock, Timer, Stopwatch, Countdown
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/workbench DClock], [http://aminet.net/util/time/AlarmClockAROS.lha AlarmClock], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Fortune Cookie Quotes Sayings
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/misc AFortune],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->C/C++ IDE
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit FrexxEd], [https://github.com/vidarh/FrexxEd FrexxEd src], Annotate, Murks,
|<!--Amiga OS-->[http://devplex.awardspace.biz/cubic/index.html Cubic IDE]*, Annotate,
|<!--AmigaOS4-->CodeBench , [https://gitlab.com/boemann/codecraft CodeCraft],
|<!--MorphOS-->[http://devplex.awardspace.biz/cubic/index.html Cubic IDE]*, Anontate,
|-
|<!--Sub Menu-->Computer Languages Translation [https://tetracorp.github.io/guide/reverse-engineering-amiga.html ], [https://amigasourcecodepreservation.gitlab.io/amiga-assembler-insider-guide/ ],
|<!--AROS-->
|<!--Amiga OS-->[https://bitbucket.org/rhinoid/convert68000toc/src/main/ convert m68k seka asm-one to c],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Gui Creators
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=development/guitool MuiBuilder],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->[ MuiBuilder],
|-
|<!--Sub Menu-->Catalog .cd .ct Editors
|<!--AROS-->FlexCat
|<!--Amiga OS-->[http://www.geit.de/deu_simplecat.html SimpleCat], FlexCat
|<!--AmigaOS4-->[http://aminet.net/package/dev/misc/simplecat SimpleCat], FlexCat
|[http://www.geit.de/deu_simplecat.html SimpleCat], FlexCat
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
==Misc Application 2==
{| class="wikitable sortable"
|-
!width:30%;|Misc Application
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->System
|<!--AROS-->[ SysExplorer], [ SysMon], [ Scout], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->OSK On Screen Keyboard
|<!--AROS-->[],
|<!--Amiga OS-->[https://aminet.net/util/wb/OSK.lha OSK]
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Screen Magnifier Magnifying Glass Magnification
|<!--AROS-->[http://www.onyxsoft.se/files/zoomit.lha ZoomIT],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Comic Book CBR CBZ format reader viewer
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer comics], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer comicon], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Ebook Reader
|<!--AROS-->[https://blog.alb42.de/programs/#legadon Legadon EPUB],[]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Ebook Converter
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Text to Speech tts [https://github.com/JonathanFly/bark-installer Bark], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=audio/misc flite],
|<!--Amiga OS-->[http://www.text2speech.com translator],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=search&tool=simple FLite]
|<!--MorphOS-->[http://se.aminet.net/pub/aminet/mus/misc/ FLite]
|-
|<!--Sub Menu-->Speech Voice Recognition Dictation - [http://sourceforge.net/projects/cmusphinx/files/ CMU Sphinx], [http://julius.sourceforge.jp/en_index.php?q=en/index.html Julius], [http://www.isip.piconepress.com/projects/speech/index.html ISIP],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Speech Voice Changer [], [], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Screen Display Blanker screensaver
|<!--AROS-->Blanker Commodity (built in), [https://archives.arosworld.org/index.php?function=browse&cat=graphics/screenblanker GarshneBlanker], [http://sourceforge.net/projects/gblanker/ GBlanker Src], [],
|<!--Amiga OS-->MultiCX,
|<!--AmigaOS4-->
|<!--MorphOS-->ModernArt Blanker,
|-
|}
==Misc Application 3==
{| class="wikitable sortable"
|-
!width:30%;|Misc Application
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Fractals
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=graphics/misc ],
|<!--Amiga OS-->ZoneXplorer,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Landscape Rendering
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=graphics/raytrace WCS World Construction Set],
|<!--Amiga OS-->[ Vista Pro], [http://en.wikipedia.org/wiki/World_Construction_Set World Construction Set]
|<!--AmigaOS4-->[ WCS World Construction Set],
|<!--MorphOS-->[ WCS World Construction Set],
|-
|<!--Sub Menu-->Astronomy [https://sourceforge.net/projects/skychart/ skychart freepascal], [], [],
|<!--AROS-->[ Digital Almanac (ABIv0 only)],
|<!--Amiga OS-->[http://aminet.net/search?query=planetarium Aminet search], [http://aminet.net/misc/sci/DA3V56ISO.zip Digital Almanac], [https://aminet.net/package/misc/sci/da3sourceV58 Src c V58], [ Galileo renamed to Distant Suns]*, [],
|<!--AmigaOS4-->[http://sourceforge.net/projects/digital-almanac/ Digital Almanac], Distant Suns*, [http://www.digitaluniverse.org.uk/ Digital Universe]*,
|<!--MorphOS-->[http://www.aminet.net/misc/sci/da3.lha Digital Almanac], [http://www.aminet.net/package/misc/sci/da3-mos-src Src c V56],
|-
|<!--Sub Menu-->Astrology [https://sourceforge.net/projects/skylendar/ skylendar], [https://github.com/CruiserOne/Astrolog Astrolog], [https://www.astrolog.org/astrolog/astfile.htm Astrology alt site], [https://saravali.github.io/download.html Maitreya], [https://github.com/alamahant/Asteria Asteria],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->PCB design
|<!--AROS-->
|<!--Amiga OS-->[ ], [ ], [ ],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Digital Signage
|<!--AROS-->Hollywood, Hollywood Designer
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Genealogy History Family Tree Ancestry Records (FreeBMD, FreeREG, and FreeCEN file formats or GEDCOM GenTree)
|<!--AROS-->
|<!--Amiga OS--> [ Origins], [ Your Family Tree], [ ], [ ], [ ],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Languages
|<!--AROS-->
|<!--Amiga OS-->Fun School,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Mathematics ([http://www-fourier.ujf-grenoble.fr/~parisse/install_en.html Xcas], etc.),
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/scientific mathX]
|<!--Amiga OS-->Maple V, mathX, Fun School, GCSE Maths, [ ], [ ], [ ],
|<!--AmigaOS4-->Yacas
|<!--MorphOS-->Yacas
|-
|<!--Sub Menu-->Maths Graph Function Plotting
|<!--AROS-->[https://blog.alb42.de/programs/#MUIPlot MUIPlot],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->App Utility Launcher Dock toolbar
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/docky BoingBar], [],
|<!--Amiga OS-->[https://github.com/adkennan/DockBot Dockbot],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->3D Printer [https://github.com/OrcaSlicer/OrcaSlicer OrcaSlicer]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->BASIC Computer Language
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=development/language Basic4SDL], [ Ace Basic], [ X-AMOS], [SDLBasic], [ Alvyn],
|<!--Amiga OS-->[http://www.amiforce.de/main.php Amiblitz 3], [http://amos.condor.serverpro3.com/AmosProManual/contents/c1.html Amos Pro], [http://aminet.net/package/dev/basic/ace24dist ACE Basic],
|<!--AmigaOS4-->
|<!--MorphOS-->sdlBasic
|-
|<!--Sub Menu-->HAM amateur radio [], [], [], [https://cemaxecuter.com/ Dragon OS], [https://github.com/km4ack/73Linux with 73 link update], [https://www.youtube.com/watch?v=YAL5KNePRSg video for],
|<!--AROS-->
|<!--Amiga OS-->[https://www.amigarealm.com/amiga/amicomms/comm4.htm Comm4], [https://www.amigarealm.com/archives/comms/aarug/ TNC Terminal Node Controller with packets over serial connections on Yaesu or Woxum handheld], [https://aminet.net/comm/misc AmiCom], [ with 7Plus file encoder/decoder], [ mksstv], [ RTTYam],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
==Games & Emulation==
Some emulators/games require OpenGL to function and to adjust ahi prefs channels, frequency and unit0 and unit1 and
[http://aros.sourceforge.net/documentation/users/shell/changetaskpri.php changetaskpri -1]
Rom patching https://www.marcrobledo.com/RomPatcher.js/ https://www.romhacking.net/patch/ (ips, ups, bps, etc) and this other site supports the latter formats https://hack64.net/tools/patcher.php
Free public domain roms for use with emulators can be found [http://www.pdroms.de/ here] as most of the rest are covered by copyright rules. If you like to read about old games see [http://retrogamingtimes.com/ here] and [http://www.armchairarcade.com/neo/ here] and a [http://www.vintagecomputing.com/ blog] about old computers. Possibly some of the [http://www.answers.com/topic/list-of-best-selling-computer-and-video-games best selling] of all time. [http://en.wikipedia.org/wiki/List_of_computer_system_emulators Wiki] with emulated systems list.
[https://archive.gamehistory.org/ Archive of VGHF], [https://library.gamehistory.org/ Video Game History Foundation Library search]
{| class="wikitable sortable"
|-
!width:10%;|Games [http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Emulation]
!width:10%;|AROS(x86)
!width:10%;|AmigaOS3(68k)
!width:10%;|AmigaOS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Games Emulation Amstrad CPC
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer], [ Caprice32 (OpenGL & pure SDL)], [ Arnold], [https://retroshowcase.gr/cpcbox-master/],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://os4depot.net/index.php?function=browse&cat=emulation/computer]
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=2],
|-
|<!--Sub Menu-->Games Emulation Apple2 and 2GS
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Arcade
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Mame], [ SI Emu (ABIv0 only)],
|<!--Amiga OS-->Mame,
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem xmame], amiarcadia,
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=2 Mame],
|-
|<!--Sub Menu-->Games Emulation Atari 2600 [], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Stella],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari 5200 [https://github.com/wavemotion-dave/A5200DS A5200DS], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari 7800
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari 400 800 130XL [https://github.com/wavemotion-dave/A8DS A8DS], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Atari800],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari Lynx
|<!--AROS-->[http://myfreefilehosting.com/f/6366e11bdf_1.93MB Handy (ABIv0 only)],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari Jaguar
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Bandai Wonderswan
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation BBC Micro and Acorn Electron [http://beehttps://bem-unix.bbcmicro.com/download.html BeebEm], [http://b-em.bbcmicro.com/ B-Em], [http://elkulator.acornelectron.co.uk/ Elkulator], [http://electrem.emuunlim.com/ ElectrEm],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Dragon 32 and Tandy CoCo [http://www.6809.org.uk/xroar/ xroar], [],
|<!--AROS-->[], [], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Commodore C16 Plus4
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Commodore C64
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Vice (ABIv0 only)], [],
|<!--Amiga OS-->Frodo,
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem viceplus],
|<!--MorphOS-->Vice,
|-
|<!--Sub Menu-->Games Emulation Commodore Amiga
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Janus UAE], Emumiga,
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://os4depot.net/index.php?function=browse&cat=emulation/computer UAE],
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=2 UAE],
|-
|<!--Sub Menu-->Games Emulation Japanese MSX MSX2
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Mattel Intelivision
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Mattel Colecovision and Adam
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Milton Bradley (MB) Vectrex [ Vectrex OpenGL],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation PICO8 Pico-8 fantasy video game console [https://github.com/egordorichev/pemsa-sdl/ pemsa-sdl], [https://github.com/jtothebell/fake-08 fake-08], [https://github.com/Epicpkmn11/fake-08/tree/wip fake-08 fork],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Nintendo Gameboy
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem vba no sound], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem vba]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Nintendo NES
|<!--AROS-->[ EmiNES], [http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Fceu], [https://github.com/takahirox/nes-js?tab=readme-ov-file nes-js], [https://github.com/bfirsh/jsnes jsnes], [https://github.com/angelo-wf/NesJs NesJs],
|<!--Amiga OS-->AmiNES, [http://www.dridus.com/~nyef/darcnes/ darcNES],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem amines]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Nintendo SNES
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Zsnes],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem warpsnes]
|<!--MorphOS-->[http://fabportnawak.free.fr/snes/ Snes9x],
|-
|<!--Sub Menu-->Games Emulation Nintendo N64
*HLE and plugins [ mupen64], [https://github.com/ares-emulator/ares ares], [https://github.com/N64Recomp/N64Recomp N64Recomp], [https://github.com/rt64/rt64 rt64], [https://github.com/simple64/simple64 Simple64],
*LLE [],
|<!--AROS-->[http://code.google.com/p/mupen64plus/ Mupen64+],
|<!--Amiga OS-->[http://code.google.com/p/mupen64plus/ Mupen64+], [http://aminet.net/package/misc/emu/tr-981125_src TR64],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[ Nintendo Gamecube Wii]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[ Nintendo Wii U]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[https://github.com/yuzu-emu Nintendo Switch]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation NEC PC Engine
|<!--AROS-->[], [], [https://github.com/yhzmr442/jspce js-pce],
|[http://www.hugo.fr.fm/ Hugo], [http://mednafen.sourceforge.net/ Mednafen],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem tgemu]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sega Master System (SMS)
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Dega], [http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem sms],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem osmose]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sega Genesis/Megadrive
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem gp no sound], [http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem DGen],
|<!--Amiga OS-->[http://code.google.com/p/genplus-gx/ Genplus],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem genesisplus]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sega Saturn
*HLE [https://mednafen.github.io/ mednafen], [http://yabause.org/ yabause], [],
*LLE [], [],
|<!--AROS-->?
|<!--Amiga OS-->[http://yabause.org/ Yabause],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sega Dreamcast
*HLE [https://github.com/flyinghead/flycast flycast], [https://code.google.com/archive/p/nulldc/downloads NullDC],
*LLE [], [],
|<!--AROS-->?
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sinclair ZX80 and ZX81
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer], [], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sinclair Spectrum
|[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Fuse (crackly sound)], [http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer SimCoupe], [ FBZX slow], [https://jsspeccy.zxdemo.org/ jsspeccy], [http://torinak.com/qaop/games qaop],
|<!--Amiga OS-->[http://www.lasernet.plus.com/ Asp], [http://www.zophar.net/sinclair.html Speculator], [http://www.worldofspectrum.org/x128/index.html X128],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/computer]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sinclair QL
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer], [],
|<!--Amiga OS-->[http://aminet.net/package/misc/emu/QDOS4amiga1 QDOS4amiga]
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation SNK NeoGeo Pocket
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem gngeo], NeoPop,
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sony PlayStation
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem FPSE],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem FPSE]
|<!--MorphOS-->
|-
|<!--Sub Menu-->[ Sony PS2]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[ Sony PS3]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[https://vita3k.org/ Sony Vita]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[https://github.com/shadps4-emu/shadPS4 PS4]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation [http://en.wikipedia.org/wiki/Tangerine_Computer_Systems Tangerine] Oric and Atmos
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Oricutron]
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem Oricutron]
|<!--MorphOS-->[http://aminet.net/package/misc/emu/oricutron Oricutron]
|-
|<!--Sub Menu-->Games Emulation TI 99/4 99/4A [https://github.com/wavemotion-dave/DS994a DS994a], [], [https://js99er.net/#/ js99er], [], [http://aminet.net/package/misc/emu/TI4Amiga TI4Amiga], [http://aminet.net/package/misc/emu/TI4Amiga_src TI4Amiga src in c],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation HP 38G 40GS 48 49G/50G Graphing Calculators
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation TI 58 83 84 85 86 - 89 92 Graphing Calculators
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
{| class="wikitable sortable"
|-
!width:10%;|Games [https://www.rockpapershotgun.com/ General]
!width:10%;|AROS(x86)
!width:10%;|AmigaOS3(68k)
!width:10%;|AmigaOS4(PPC)
!width:10%;|MorphOS(PPC)
|- style="background:lightgrey; text-align:center; font-weight:bold;"
| Games [https://www.trackawesomelist.com/michelpereira/awesome-open-source-games/ Open Source and others] || AROS || Amiga OS || Amiga OS4 || Morphos
|-
|<!--Sub Menu-->Games Action like [https://github.com/opentomb/OpenTomb opentomb], [https://github.com/LostArtefacts/TRX TRX formerly Tomb1Main], [https://github.com/TombEngine TombEngine], [http://archives.arosworld.org/index.php?function=browse&cat=game/action Thrust], [https://github.com/fragglet/sdl-sopwith sdl sopwith],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/action], [https://archives.arosworld.org/index.php?function=browse&cat=game/action BOH], [],
|<!--Amiga OS-->[https://github.com/BSzili/OpenLara/tree/amiga/src source of openlara SDL2],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Adventure like [http://dotg.sourceforge.net/ DMJ], [https://github.com/kromenak/gengine Gabriel Knight 3], [http://www.sarien.net/ Sierra Sarien],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/adventure dmagnetic], [https://archives.arosworld.org/?function=browse&cat=emulation/misc ScummVM], [https://archives.arosworld.org/index.php?function=browse&cat=game/roleplaying frotz infocom], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Board like [https://github.com/aperture-software/colditz-escape escape from colditz], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/board], [http://amigan.1emu.net/releases Africa]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Cards
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=game/card ], [],
|<!--AmigaOS-->[http://home.arcor.de/amigasolitaire/e/welcome.html Reko], [https://github.com/samskivert/beschei-en beschei Src],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Misc [https://github.com/michelpereira/awesome-open-source-games Awesome open], [https://github.com/bobeff/open-source-games General Open Source], [https://github.com/SAT-R/sa2 Sonic Advance 2], [https://github.com/velorek1/cwordle Wordle type],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/misc], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games FPS like [https://aminet.net/package/game/shoot/D1X_Rebirth_AGA Descent D1X src], [https://github.com/DescentDevelopers/Descent3 Descent 3], [https://github.com/Fewnity/Counter-Strike-Nintendo-DS Counter-Strike-Nintendo-DS], [https://github.com/Aleph-One-Marathon/alephone Bungie Marathon 1994], [https://github.com/ZDoom/gzdoom gzdoom], [],
|<!--AROS-->Doom, Quake, [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Quake 3 Arena (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Cube (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Assault Cube (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Cube 2 Sauerbraten (OpenGL)], [http://fodquake.net/test/ FodQuake QuakeWorld], [ Duke Nukem 3D], [ Darkplaces Nexuiz Xonotic], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Doom 3 SDL (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Hexenworld and Hexen 2], [ Aliens vs Predator Gold 2000 (openGL)], [ Odamex (openGL doom)], [https://archives.arosworld.org/?function=showfile&file=game/fps/ zgloom],
], [https://archives.arosworld.org/?function=showfile&file=game/fps/ ab3dhd], [],
|<!--Amiga OS-->Doom, Quake, AB3D, Fears, Breathless, Gloom,
|<!--AmigaOS4-->Doom, Quake,
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=12 Doom], Quake, Quake 3 Arena, [https://github.com/OpenXRay/xray-16 S.T.A.L.K.E.R Xray]
|-
|<!--Sub Menu-->Games MMORG like
|<!--AROS-->[ Eternal Lands (OpenGL)],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Platform like
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/platform], [ Maze of Galious], [ Gish]*(openGL), [ Mega Mario], [https://archives.arosworld.org/?function=showfile&file=game/platform/ thextech SMBX], [http://www.gianas-return.de/ Giana's Return], [http://www.sqrxz.de/ Sqrxz], [www.sqrxz2.de/ Sqrxz 2], [http://www.sqrxz.de/sqrxz-3/ Sqrxz 3], [http://www.sqrxz.de/sqrxz-4/ Sqrxz 4], [http://archives.arosworld.org/index.php?function=browse&cat=game/platform Cave Story], [https://bszili.morphos.me/ Frogatto], [https://bszili.morphos.me/ OpenJazz], [https://archives.arosworld.org/?function=showfile&file=game/platform/ pekkakana2], [ Aquaria], [https://archives.arosworld.org/?function=showfile&file=game/platform/ sonic CD], [],
|<!--Amiga OS-->[ Giana Sisters], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Puzzle [https://github.com/mariopartyrd/marioparty4/tree/port Party], [], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/puzzle], [ Cubosphere (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/puzzle Candy Crisis], [http://bszili.morphos.me/ TailTale],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Racing [ Trigger Rally], [ VDrift], [http://www.ultimatestunts.nl/index.php?page=2&lang=en Ultimate Stunts], [http://maniadrive.raydium.org/ Mania Drive], [https://github.com/plowteam/donut Simpsons Hit and Run], [],
|<!--AROS-->[ Super Tux Kart (OpenGL)], [http://www.dusabledanslherbe.eu/AROSPage/F1Spirit.30.html F1 Spirit (OpenGL)], [http://bszili.morphos.me/index.html MultiRacer], [https://bszili.morphos.me/ Speed Dreams], [],
|<!--AmigaOS-->
|<!--AmigaOS4-->[http://bszili.morphos.me/index.html Speed Dreams],
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=12], [http://bszili.morphos.me/index.html TORCS],
|-
|<!--Sub Menu-->Games 1st first person DRPG [https://wiki.rpg.net/index.php/Open_Game_Systems Misc], [https://github.com/OpenEnroth/OpenEnroth OpenEnroth MM], []
|<!--AROS-->[https://github.com/BSzili/aros-stuff Arx Libertatis], [http://www.playfuljs.com/a-first-person-engine-in-265-lines/ js raycaster], [https://github.com/Dorthu/es6-crpg webgl], [https://github.com/sonountaleban/AmiShockolate System Shock], [], [],
|<!--AmigaOS-->Phantasie, Faery Tale, Dungeon Master,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games 3rd third person action CRPG [https://sourceforge.net/projects/sumwars/ Summoning Wars], [https://www.solarus-games.org/ Solarus], [https://wiki.rpg.net/index.php/Open_Game_Systems Misc], [https://github.com/alexbatalov/fallout1-ce fallout ce], [],
|<!--AROS-->[https://archives.arosworld.org/?function=showfile&file=game/strategy/ fheroes2 homm2], [https://archives.arosworld.org/?function=showfile&file=game/roleplaying/ breakhack], [https://archives.arosworld.org/?function=showfile&file=game/roleplaying/ devilutionx diablo 1 hellfire], [https://archives.arosworld.org/?function=showfile&file=game/roleplaying/ fallout 1], [https://archives.arosworld.org/?function=showfile&file=game/strategy/ stratagus], [https://archives.arosworld.org/?function=showfile&file=game/strategy/ hostile-takeover], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games isometric RPG [https://sourceforge.net/projects/sumwars/ Summoning Wars], [https://www.solarus-games.org/ Solarus], [https://wiki.rpg.net/index.php/Open_Game_Systems Misc], [https://github.com/topics/dungeon?l=javascript Dungeon], [], [https://github.com/clintbellanger/heroine-dusk JS Dusk],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/roleplaying nethack], [https://archives.arosworld.org/index.php?function=browse&cat=game/roleplaying GemRB], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games card based RPG [https://github.com/open-duelyst/duelyst Duelyst], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games turn based tactics RPG [], [], [], [], [], [],
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=game/strategy UFO AI], [http://play.freeciv.org/ FreeCiv], [], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Strategy [http://rtsgus.org/ RTSgus], [http://stargus.sourceforge.net/ Stargus], [https://github.com/KD-lab-Open-Source/Perimeter Perimeter], [https://matty77.itch.io/conflict-3049 conflict-3049], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/strategy MegaGlest (OpenGL)], [https://archives.arosworld.org/?function=showfile&file=game/strategy/ signus], [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1443&rowstart=140&pid=12446#post_12446 Wargus warcraft 2 setup],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=12]
|-
|<!--Sub Menu-->Games Rhythm, Beat, Step [], [], [https://clonehero.net/ clonehero], [https://github.com/MatteoGodzilla/Dj-Engine Dj-Engine],
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=game/misc Frets on Fire], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Shoot Em Ups [http://www.mhgames.org/oldies/formido/ Formido], [http://code.google.com/p/violetland/ Violetland],
||<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=game/action Open Tyrian], [http://www.parallelrealities.co.uk/projects/starfighter.php Starfighter], [ Alien Blaster], [https://github.com/OpenFodder/openfodder OpenFodder], [https://archives.arosworld.org/?function=showfile&file=game/action/ tbftss The Battle for the Solar System: the Pandora War]
|<!--AmigaOS-->
|<!--AmigaOS4-->[http://www.parallelrealities.co.uk/projects/starfighter.php Starfighter], [ The Battle for the Solar System: the Pandora War]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Simulations [http://scp.indiegames.us/ Freespace 2], [http://www.heptargon.de/gl-117/gl-117.html GL117], [http://code.google.com/p/corsix-th/ Theme Hospital], [http://code.google.com/p/freerct/ Rollercoaster Tycoon], [http://hedgewars.org/ Hedgewars], [https://github.com/raceintospace/raceintospace raceintospace], [https://github.com/Return-To-The-Roots RTTR Settlers 2], [https://github.com/OoliteProject/oolite oolite elite], [https://github.com/fesh0r/newkind newkind elite], [],
|<!--AROS-->
|<!--Amiga OS-->SimCity, SimAnt, Sim Hospital, Theme Park,
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=12]
|-
|<!--Sub Menu-->Games Life Sim [https://github.com/ACreTeam/forest Animal Crossing], [ ], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Horror [https://github.com/Mikompilation/MikuPan Fatal Frame], [ ], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Sandbox Voxel Open World Exploration [https://github.com/ClassiCube/ Classicube],[http://www.michaelfogleman.com/craft/ Craft], [https://github.com/tothpaul/DelphiCraft DelphiCraft],[https://www.minetest.net/ Luanti formerly Minetest], [ infiniminer],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Battle Royale [https://bruh.io/ Play.Bruh.io], [https://www.coolmathgames.com/0-copter Copter Royale], [https://surviv.io/ Surviv.io], [https://nuggetroyale.io/#Ketchup Nugget Royale], [https://miniroyale2.io/ Miniroyale2.io],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Tower Defense [https://chriscourses.github.io/tower-defense/ HTML5], [https://github.com/SBardak/Tower-Defense-Game TD C++], [https://github.com/bdoms/love_defense LUA and LOVE], [https://github.com/HyOsori/Osori-WebGame HTML5], [https://github.com/PascalCorpsman/ConfigTD ConfigTD Pascal], [https://github.com/GloriousEggroll/wine-ge-custom Wine], []
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Visual Novel Engines [https://github.com/Kirilllive/tuesday-js Tuesday JS], [ Lua + LOVE], [https://github.com/weetabix-su/renpsp-dev RenPSP], [https://github.com/Galladite27/ONScripter-EN ONScripter-EN], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Virtual Reality VR [https://gitlab.com/madsbuvi/openmw openmw vr], [https://github.com/Team-Beef-Studios/BeefRaiderXR BeefRaiderXR],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Virtual Table Top VTT [ Roll20], [https://www.owlbear.rodeo/ owlbear rodeo], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Computer assisted TableTop TTRPG OSR [https://www.rpgsolo.com/play.php RPGSolo], [https://github.com/fpsvogel/solo-ttrpgs Solo TTRPG], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games 2D 3D Engines [https://github.com/fegennari/3DWorld 3DWorld], [https://github.com/GarageGames/Torque3D Torque3D], [https://github.com/gameplay3d/GamePlay GamePlay 3D], [https://www.babylonjs.com/ BabylonJS ], [ Godot], [ Ogre], [ Crystal Space], [https://github.com/JacobHess03/ Dragon-Quest like], [], [],
|<!--AROS-->[https://www.arkhamdev.net/wiki.htm?id=agx Arkham Development antiryadgx 8.9 lts with register], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games C based game frameworks [https://github.com/orangeduck/Corange Corange], [https://github.com/scottcgi/Mojoc Mojoc], [https://orx-project.org/ Orx], [https://github.com/ioquake/ioq3 Quake 3], [https://www.mapeditor.org/ Tiled], [https://www.raylib.com/ 2d Raylib], [https://github.com/Rabios/awesome-raylib other raylib], [https://github.com/MrFrenik/gunslinger Gunslinger], [https://o3de.org/ o3d], [http://archives.aros-exec.org/index.php?function=browse&cat=development/library GLFW], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=development/library Raylib 5],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Virtual Pinball [https://github.com/vpinball/vpinball vpinball], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|}
==Application Guides==
[[#top|...to the top]]
===Web Browser===
OWB is now at version 2.0 (which got an engine refresh, from July 2015 to February 2019) and 3.0.
This latest version has a good support for many/most web sites, even YouTube web page now works.
This improved compatibility comes at the expense of higher RAM usage (now 1GB RAM is the absolute minimum).
Also, keep in mind that the lack of a JIT (Just-In-Time) JS compiler on the 32 bit version, makes the web surfing a bit slow.
Only the 64 bit version of OWB 2.0 will have JIT enabled, thus benefitting of more speed. There are tooltypes that can be added to the icon to provide further features JIT, MSE etc
Certificates from [https://curl.se/docs/caextract.html ca certs],
DNS tracking blocking with [https://easylist.to/easylist/easylist.txt easylist.txt] in PROGDIR:Conf before starting browser with enabled AdBlock [https://github.com/easylist/easylist/tree/master easylist], [https://gitlab.com/eyeo anti abp], [https://firebog.net/ big blocklist], [https://github.com/StevenBlack/hosts Steves], [], [],
This can be enabled with OWB Odyssey with Windows -> Content Blocking and Windows -> Messages and enter
https://www.youtube.com/api/stats/ads*
https://www.youtube.com/pagead/adview*
https://www.youtube.com#@##player-ads*
into your custom filters
Element blocker browser extension might be needed for [https://github.com/easylist/easylist/wiki/Youtube-Issues youtube], [ mid roll], [ pre roll], [ ],
OWB speed is much better when running from RAM Disk, the best way is to add the below into your S:User-Startup which copies OWB drawer from Extras:Internet/OWB to RAM Disk:
So add this :
<pre>
copy Extras:Internet/OWB Ram:OWB/ ALL CLONE >NIL:
copy Extras:Internet/OWB.info Ram: >NIL:
</pre>
Open RAM Disk and open OWB drawer and double click on OWB icon so that the above icon tooltypes are activated
Problems are that the copy time is long (around 20 seconds added in the background), but we can make it faster if we delete useless files from the OWB drawer (docs, …)
If you don’t copy the drawer back onto the HD, you won’t save your cache, cookies, passwords… So you need a script for it.
Error messages
SSL error "cant verify with ca-certificates", check bios clock time date is correct
Error 6, try checking networking prefs settings and Save / Use preferences again or a '''few times''' otherwise the network chipset may not be compatible with Aros
[https://www.google.com/search?q=%s&udm=14 Google search without AI overview]
===E-mail===
YAM does not support SSL and most mail providers now switched to encrypted SMTP/POP3 connections
====SimpleMail====
SimpleMail supports IMAP and appears to work with GMail, but it's never been reliable enough, it can crash with large mailboxes.
Please read more on this [http://www.freelists.org/list/simplemail-usr User list]
GMail
Be sure to activate the pop3 usage in your gmail account setup / configuration first.
pop3:
pop.gmail.com
Use SSL: Yes
Port: 995
smtp:
smtp.gmail.com (with authentication)
Use Authentication: Yes
Use SSL: Yes
Port: 465 or 587
Hotmail/MSN/outlook/Microsoft Mail mid-2017, all outlook.com accounts will be migrated to Office 365 / Exchange
Most users are currently on POP which does not allow showing folders and many other features (technical limitations of POP3). With Microsoft IMAP you will get folders, sync read/unread, and show flags. You still won't get push though, as Microsoft has not turned on the IMAP Idle command as at Sept 2013.
If you want to try it, you need to first remove (you can't edit) your pop account (long-press the account on the accounts screen, delete account). Then set it up this way:
1. Email/Password
2. Manual
3. IMAP
4.
* Incoming: imap-mail.outlook.com, port 993, SSL/TLS should be checked
* Outgoing: smtp-mail.outlook.com, port 587, SSL/TLS should be checked
* POP server name pop-mail.outlook.com, port 995, POP encryption method SSL
Yahoo Mail
On April 24, 2002 Yahoo ceased to offer POP access to its free mail service. Introducing instead a yearly payment feature, allowing users POP3 and IMAP server support, along with such benefits as larger file attachment sizes and no adverts.
Sorry to see Yahoo leaving its users to cough up for the privilege of accessing their mail. Understandable, when competing against rivals such as Gmail and Hotmail who hold a large majority of users and were hacked in 2014 as well.
Incoming Mail (IMAP) Server
* Server - imap.mail.yahoo.com
* Port - 993
* Requires SSL - Yes
Outgoing Mail (SMTP) Server
* Server - smtp.mail.yahoo.com
* Port - 465 or 587
* Requires SSL - Yes
* Requires authentication - Yes
Your login info
* Email address - Your full email address (name@domain.com)
* Password - Your account's password
* Requires authentication - Yes
Note that you need to enable “Web & POP Access” in your Yahoo Mail account to send and receive Yahoo Mail messages through any other email program.
You will have to enable “Allow your Yahoo Mail to be POPed” under “POP and Forwarding”, to send and receive Yahoo mails through any other email client.
Cannot be done since 2002 unless the customer pays Yahoo a subscription subs fee to have access to SMTP and POP3
* Set the POP server for incoming mails as pop.mail.yahoo.com. You will have to enable “SSL” and use 995 for Port.
* “Account Name or Login Name” – Your Yahoo Mail ID i.e. your email address without the domain “@yahoo.com”.
* “Email Address” – Your Yahoo Mail address i.e. your email address including the domain “@yahoo.com”. E.g. myname@yahoo.com
* “Password” – Your Yahoo Mail password.
Yahoo! Mail Plus users may have to set POP server as plus.pop.mail.yahoo.com and SMTP server as plus.smtp.mail.yahoo.com.
* Set the SMTP server for outgoing mails as smtp.mail.yahoo.com. You will also have to make sure that “SSL” is enabled and use 465 for port. you must also enable “authentication” for this to work.
====YAM Yet Another Mailer====
YAM does not support SSL and most mail providers have now switched to encrypted SMTP/POP3 connections
This email client is POP3 only if the SSL library is available [http://www.freelists.org/list/yam YAM Freelists]
One of the downsides of using a POP3 mailer unfortunately - you have to set an option not to delete the mail if you want it left on the server. IMAP keeps all the emails on the server.
Possible issues
Sending mail issues is probably a matter of using your ISP's SMTP server, though it could also be an SSL issue.
getting a "Couldn't initialise TLSv1 / SSL error
Use of on-line e-mail accounts with this email client is not possible as it lacks the OpenSSL AmiSSl v3 compatible library
GMail
Incoming Mail (POP3) Server - requires SSL: pop.gmail.com
Use SSL: Yes
Port: 995
Outgoing Mail (SMTP) Server - requires TLS: smtp.gmail.com (use authentication)
Use Authentication: Yes
Use STARTTLS: Yes (some clients call this SSL)
Port: 465 or 587
Account Name: your Gmail username (including '@gmail.com')
Email Address: your full Gmail email address (username@gmail.com)
Password: your Gmail password
Anyway, the SMTP is pop.gmail.com port 465 and it uses SSLLv3 Authentication. The POP3 settings are for the same server (pop.gmail.com), only on port 995 instead.
Outlook.com access
<pre >
Outlook.com SMTP server address: smtp.live.com
Outlook.com SMTP user name: Your full Outlook.com email address (not an alias)
Outlook.com SMTP password: Your Outlook.com password
Outlook.com SMTP port: 587
Outlook.com SMTP TLS/SSL encryption required: yes
</pre >
Yahoo Mail
<pre >
“POP3 Server” – Set the POP server for incoming mails as pop.mail.yahoo.com. You will have to enable “SSL” and use 995 for Port.
“SMTP Server” – Set the SMTP server for outgoing mails as smtp.mail.yahoo.com. You will also have to make sure that “SSL” is enabled and use 465 for port. you must also enable “authentication” for this to work.
“Account Name or Login Name” – Your Yahoo Mail ID i.e. your email address without the domain “@yahoo.com”.
“Email Address” – Your Yahoo Mail address i.e. your email address including the domain “@yahoo.com”. E.g. myname@yahoo.com
“Password” – Your Yahoo Mail password.
</pre >
Yahoo! Mail Plus users may have to set POP server as plus.pop.mail.yahoo.com and SMTP server as plus.smtp.mail.yahoo.com.
Note that you need to enable “Web & POP Access” in your Yahoo Mail account to send and receive Yahoo Mail messages through any other email program.
You will have to enable “Allow your Yahoo Mail to be POPed” under “POP and Forwarding”, to send and receive Yahoo mails through any other email client.
Cannot be done since 2002 unless the customer pays Yahoo a monthly fee to have access to SMTP and POP3
Microsoft Outlook Express Mail
1. Get the files to your PC.
By whatever method get the files off your Amiga onto your PC. In the YAM folder you have a number of different folders, one for each of your folders in YAM. Inside that is a file usually some numbers such as 332423.283. YAM created a new file for every single email you received.
2. Open up a brand new Outlook Express. Just configure the account to use 127.0.0.1 as mail servers. It doesn't really matter. You will need to manually create any subfolders you used in YAM.
3. You will need to do a mass rename on all your email files from YAM. Just add a .eml to the end of it. Amazing how PCs still rely mostly on the file name so it knows what sort of file it is rather than just looking at it! There are a number of multiple renamers online to download and free too.
4. Go into each of your folders, inbox, sent items etc. And do a select all then drag the files into Outlook Express (to the relevant folder obviously) Amazingly the file format that YAM used is very compatible with .eml standard and viola your emails appear. With correct dates and working attachments.
5. If you want your email into Microsoft Outlook. Open that up and create a new profile and a new blank PST file. Then go into File Import and choose to import from Outlook Express. And the mail will go into there. And viola.. you have your old email from your Amiga in a more modern day format.
===FTP===
Magellan has a great FTP module. It allows transferring files from/to a FTP server over the Internet or the local network and, even if FTP is perceived as a "thing of the past", its usability is all inside the client. The FTP thing has a nice side effect too, since every Icaros machine can be a FTP server as well, and our files can be easily transferred from an Icaros machine to another with a little configuration effort.
First of all, we need to know the 'server' IP address. Server is the Icaros machine with the file we are about to download on another Icaros machine, that we're going to call 'client'. To do that, move on the server machine and 1) run Prefs/Services to be sure "FTP file transfer" is enabled (if not, enable it and restart Icaros); 2) run a shell and enter this command:
ifconfig -a
Make a note of the IP address for the network interface used by the local area network. For cabled devices, it usually is net0:. Now go on the client machine and run Magellan:
Perform these actions: 1) click on FTP; 2) click on ADDRESS BOOK; 3) click on "New".
You can now add a new entry for your Icaros server machine:
1) Choose a name for your server, in order to spot it immediately in the address book. Enter the IP address you got before.
2) click on Custom Options:
1) go to Miscellaneous in the left menu;
2) Ensure "Passive Transfers" is NOT selected;
3) click on Use. We need to deactivate Passive Transfers because YAFS, the FTP server included in Icaros, only allows active transfers at the current stage. Now, we can finally connect to our new file source:
1) Look into the address book for the newly introduced server, be sure that name and IP address are right, and
2) click on Connect. A new lister with server's "MyWorkspace" contents will appear. You can now transfer files over the network choosing a destination among your local (client's) volumes.
Can be adapted to any FTP client on any platform of your choice, just be sure your client allows Active Transfers as well.
===IRC Internet Relay Chat===
Jabberwocky is ideal for one-to-one social media communication, use IRC if you require one to many.
Just type a message in ''lowercase''' letters and it will be posted to all in the [ AROS irc channel]. Please do not use UPPER CASE as it is a sign of SHOUTING which is annoying.
Other things to type in - replace <message> with a line of text and <nick> with a person's name
<pre>
/help
/list
/who
/whois <nick>
/msg <nick> <message>
/query <nick>
<message>s
/query
/away <message>
/away
/quit <going away message>
</pre>
[http://irchelp.org/irchelp/new2irc.html#smiley Intro guide here]. IRC Primer can be found here in [http://www.irchelp.org/irchelp/ircprimer.html html], [http://www.irchelp.org/irchelp/text/ircprimer.txt TXT], [http://www.kei.com/irc/IRCprimer1.1.ps PostScript].
Issue the command /me <text> where <text> is the text that should follow your nickname.
Example: /me slaps ajk around a bit with a large trout
/nick <newNick>
/nickserv register <password> <email address>
/ns instead of /nickserv, while others might need /msg nickserv
/nickserv identify <password>
Alternatives:
/ns identify <password>
/msg nickserv identify <password>
==== IRC WookieChat ====
WookieChat is the most complete internet client for communication across the IRC Network. WookieChat allows you to swap ideas and communicate in real-time, you can also exchange Files, Documents, Images and everything else using the application's DCC capabilities.
add smilies drawer/directory
run wookiechat from the shell and set stack to 1000000 e.g. wookiechat stack 1000000
select a server / server window
* nickname
* user name
* real name - optional
Once you configure the client with your preferred screen name, you'll want to find a channel to talk in.
servers
* New Server - click on this to add / add extra - change details in section below this click box
* New Group
* Delete Entry
* Connect to server
* connect in new tab
* perform on connect
Change details
* Servername - change text in this box to one of the below Server:
* Port number - no need to change
* Server password
* Channel - add #channel from below
* auto join - can click this
* nick registration password,
Click Connect to server button above
<pre>
Server: irc.freenode.net
Channel: #aros
</pre>
irc://irc.freenode.net/aros
<pre>
Server: chat.amigaworld.net
Channel: #amigaworld or #amigans
</pre>
<pre>
On Sunday evenings USA time usually starting around 3PM EDT (1900 UTC)
Server:irc.superhosts.net
Channel #team*amiga
</pre>
<pre>
BitlBee and Minbif are IRCd-like gateways to multiple IM networks
Server: im.bitlbee.org
Port 6667
Seems to be most useful on WookieChat as you can be connected to several servers at once. One for Bitlbee and any messages that might come through that. One for your normal IRC chat server.
</pre>
[http://www.bitlbee.org/main.php/servers.html Other servers],
<pre>
#Amiga.org - irc.synirc.net eu.synirc.net dissonance.nl.eu.synirc.net (IPv6: 2002:5511:1356:0:216:17ff:fe84:68a)
twilight.de.eu.synirc.net zero.dk.eu.synirc.net us.synirc.net avarice.az.us.synirc.net envy.il.us.synirc.net harpy.mi.us.synirc.net
liberty.nj.us.synirc.net snowball.mo.us.synirc.net - Ports 6660-6669 7001 (SSL)
</pre>
<pre>
Multiple server support
"Perform on connect" scripts and channel auto-joins
Automatic Nickserv login
Tabs for channels and private conversations
CTCP PING, TIME, VERSION, SOUND
Incoming and Outgoing DCC SEND file transfers
Colours for different events
Logging and automatic reloading of logs
mIRC colour code filters
Configurable timestamps
GUI for changing channel modes easily
Configurable highlight keywords
URL Grabber window
Optional outgoing swear word filter
Event sounds for tabs opening, highlighted words, and private messages
DCC CHAT support
Doubleclickable URL's
Support for multiple languages using LOCALE
Clone detection
Auto reconnection to Servers upon disconnection
Command aliases
Chat display can be toggled between AmIRC and mIRC style
Counter for Unread messages
Graphical nicklist and graphical smileys with a popup chooser
</pre>
====IRC Aircos ====
Double click on Aircos icon in Extras:Networking/Apps/Aircos. It has been set up with a guest account for trial purposes. Though ideally, choose a nickname and password for frequent use of irc.
====IRC and XMPP Jabberwocky====
Servers are setup and close down at random
You sign up to a server that someone else has setup and access chat services through them.
The two ways to access chat from jabberwocky
<pre >
Jabberwocky -> Server -> XMPP -> open and ad-free
Jabberwocky -> Server -> Transports (Gateways) -> Proprietary closed systems
</pre >
The Jabber.org service connects with all IM services that use XMPP, the open standard for instant messaging and presence over the Internet. The services we connect with include Google Talk (closed), Live Journal Talk, Nimbuzz, Ovi, and thousands more. However, you can not connect from Jabber.org to proprietary services like AIM, ICQ, MSN, Skype, or Yahoo because they don’t yet use XMPP components (XEP-0114) '''but''' you can use Jabber.com's servers and IM gateways (MSN, ICQ, Yahoo etc.) instead.
The best way to use jabberwocky is in conjunction with a public jabber server with '''transports''' to your favorite services, like gtalk, Facebook, yahoo, ICQ, AIM, etc.
You have to register with one of the servers, [https://list.jabber.at/ this list] or [http://www.jabberes.org/servers/ another list], [http://xmpp.net/ this security XMPP list],
Unfortunately jabberwocky can only connect to one server at a time so it is best to check what services each server offers. If you set it up with separate Facebook and google talk accounts, for example, sometimes you'll only get one or the other.
Jabberwocky open a window where the Jabber server part is typed in as well as your Nickname and Password.
Jabber ID (JID) identifies you to the server and other users.
Once registered the next step is to goto Jabberwocky's "Windows" menu and select the "Agents" option. The "Agents List" window will open.
Roster (contacts list)
[http://search.wensley.org.uk/ Chatrooms] (MUC) are available
File Transfer - can send and receive files through the Jabber service but not with other services like IRC, ICQ, AIM or Yahoo. All you need is an installed webbrowser and OpenURL.
Clickable URLs - The message window uses Mailtext.mcc and you can set a URL action in the MUI mailtext prefs like SYS:Utils/OpenURL %s NEWWIN.
There is no consistent Skype like (H.323 VoIP) video conferencing available over Jabber. The move from xmpp to Jingle should help but no support on any amiga-like systems at the moment. [http://aminet.net/package/dev/src/AmiPhoneSrc192 AmiPhone] and [http://www.lysator.liu.se/%28frame,faq,nobg,useframes%29/ahi/v4-site/ Speak Freely] was an early attempt voice only contact. SIP and Asterisk are other PBX options.
Facebook
If you're using the XMPP transport provided by Facebook themselves, chat.facebook.com, it looks like they're now requiring SSL transport. This means jabberwocky method below will no longer work. The best thing to do is to create an ID on a public jabber server which has a Facebook gateway.
<pre >
1. launch jabberwocky
2. if the login window doesn't appear on launch, select 'account' from the jabberwocky menu
3. your jabber ID will be user@chat.facebook.com where user is your user ID
4. your password is your normal facebook password
5. to save this for next time, click the popup gadget next to the ID field
6. click the 'add' button
7. click the 'close' button
8. click the 'connect' button
</pre >
you're done. you can also click the 'save as default account' button if you want. jabberwocky configured to auto-connect when launching the program, but you can configure as you like. there is amigaguide documentation included with jabberwocky.
[http://amigaworld.net/modules/newbb/viewtopic.php?topic_id=37085&forum=32 Read more here]
for Facebook users, you can log-in directly to Facebook with jabberwocky. just sign in as @chat.facebook.com with your Facebook password as the password
Twitter
For a few years, there has been added a twitter transport. Servers include [http://jabber.hot-chilli.net/ jabber.hot-chili.net], and .
An [http://jabber.hot-chilli.net/tag/how-tos/ How-to]
:Read [http://jabber.hot-chilli.net/2010/05/09/twitter-transport-working/ more]
Instagram
no support at the moment best to use a web browser based client
ICQ
The new version (beta) of StriCQ uses a newer ICQ protocol. Most of the ICQ Jabber Transports still use an older ICQ protocol. You can only talk one-way to StriCQ using the older Transports. Only the newer ICQv7 Transport lets you talk both ways to StriCQ. Look at the server lists in the first section to check.
Register on a Jabber server, e.g. this one works: http://www.jabber.de/
Then login into Jabberwocky with the following login data e.g. xxx@jabber.de / Password: xxx Now add your ICQ account under the window->Agents->"Register". Now Jabberwocky connects via the Jabber.de server with your ICQ account.
Yahoo Messenger
although yahoo! does not use xmpp protocol, you should be able to use the transport methods to gain access and post your replies
MSN
early months of 2013 Microsoft will ditch MSN Messenger client and force everyone to use Skype...but MSN protocol and servers will keep working as usual for quite a long time....
Occasionally the Messenger servers have been experiencing problems signing in. You may need to sign in at www.outlook.com and then try again. It may also take multiple tries to sign in. (This also affects you if you’re using Skype.)
You have to check each servers' Agents List to see what transports (MSN protocol, ICQ protocol, etc.) are supported or use the list address' provided in the section above. Then register with each transport (IRC, MSN, ICQ, etc.) to which you need access. After registering you can Connect to start chatting.
msn.jabber.com/registered should appear in the window.
From this [http://tech.dir.groups.yahoo.com/group/amiga-jabberwocky/message/1378 JW group] guide which helps with this process in a clear, step by step procedure.
1. Sign up on MSN's site for a passport account. This typically involves getting a Hotmail address.
2. Log on to the Jabber server of your choice and do the following:
* Select the "Windows/Agents" menu option in Jabberwocky.
* Select the MSN Agent from the list presented by the server.
* Click the Register button to open a new window asking for:
**Username = passort account email address, typically your hotmail address.
**Nick = Screen name to be shown to anyone you add to your buddy list.
**Password = Password for your passport account/hotmail address.
* Click the Register button at the bottom of the new window.
3. If all goes well, you will see the MSN Gateway added to your buddy list. If not, repeat part 2 on another server. Some servers may show MSN in their list of available agents, but have not updated their software for the latest protocols used by MSN.
4. Once you are registered, you can now add people to your buddy list. Note that you need to include the '''msn.''' ahead of the servername so that it knows what gateway agent to use. Some servers may use a slight variation and require '''msg.gate.''' before the server name, so try both to see what works.
If my friend's msn was amiga@hotmail.co.uk and my jabber server was @jabber.meta.net.nz..
then amiga'''%'''hotmail.com@'''msn.'''jabber.meta.net.nz
or another the trick to import MSN contacts is that you don't type the hotmail URL but the passport URL... e.g. Instead of: goodvibe%hotmail.com@msn.jabber.com You type: goodvibe%passport.com@msn.jabber.com
And the thing about importing contacts I'm afraid you'll have to do it by hand, one at the time...
Google Talk
any XMPP server will work, but you have to add your contacts manually. a google talk user is typically either @gmail.com or @talk.google.com. a true gtalk transport is nice because it brings your contacts to you and (can) also support file transfers to/from google talk users.
implement Jingle a set of extensions to the IETF's Extensible Messaging and Presence Protocol (XMPP)
support ended early 2014 as Google moved to Google+ Hangouts which uses it own proprietary format
===Video Player MPlayer===
Many of the menu features (such as doubling) do not work with the current version of mplayer but using
4:3
mplayer -vf scale=800:600 file.avi
16:9
mplayer -vf scale=854:480 file.avi
if you want gui use;
mplayer -gui 1 <other params> file.avi
<pre >
stack 1000000
; using AspireOS 1.xx
; copy FROM SYS:Extras/Multimedia/MPlayer/ TO RAM:MPlayer ALL CLONE > Nil:
; using Icaros Desktop 1.x
; copy FROM SYS:Tools/MPlayer/ TO RAM:MPlayer ALL CLONE > Nil:
; using Icaros Desktop 2.x
; copy FROM SYS:Utilities/MPlayer/ TO RAM:MPlayer ALL CLONE > Nil:
cd RAM:MPlayer
run MPlayer -gui > Nil:
;run MPlayer -gui -ao ahi_dev -playlist http://www.radio-paralax.de/listen.pls > Nil:
</pre >
$ mplayer rtsp://127.0.0.1:554/sample_300kbit.mp4
MPlayer supports multicast streaming, and rtp/rtsp protocols (it might require [http://www.live555.com/openRTSP/ live555 library] to work with some streams). But you might have to build it where it's disabled. Also, multicast won't work with some AmiTCP-likes. MIAMI supported it, though.
AROS supports IPv4 (old but works) and this includes the needed address space for RTP.
If you mean multicast via RTP - mplayer handles it. You can even force UDP over TCP
-rtsp-stream-over-tcp
If the rtsp Real Time Streaming Protocol server needs authentification:
-user -passwd
MPlayer - Menu - Open Playlist and load already downloaded .pls or .m3u file - auto starts around 4 percent cache
MPlayer - Menu - Open Stream and copy one of the .pls lines below into space allowed, press OK and press play button on main gui interface
Old 8bit 16bit remixes chip tune game music
http://www.radio-paralax.de/listen.pls
http://scenesat.com/
http://www.shoutcast.com/radio/Amiga
http://www.theoldcomputer.com/retro_radio/RetroRadio_Main.htm
http://www.kohina.com/
http://www.remix64.com/
http://retrogamer.net/forum/
http://retroasylum.podomatic.com/rss2.xml
http://retrogamesquad.com/
http://www.retronauts.com/
http://monsterfeet.com/noquarter/
http://www.retrogamingradio.com/
http://www.radiofeeds.co.uk/mp3.asp
[[#top|...to the top]]
====ZunePaint====
simplified typical workflow
* importing and organizing and photo management
* making global and regional local correction(s) - recalculation is necessary after each adjustment as it is not in real-time
* exporting your images in the best format available with the preservation of metadata
Whilst achieving 80% of a great photo with just a filter, the remaining 20% comes from a manual fine-tuning of specific image attributes.
For photojournalism, documentary, and event coverage, minimal touching is recommended. Stick to Camera Raw for such shots, and limit changes to level adjustment, sharpness, noise reduction, and white balance correction.
For fashion or portrait shoots, a large amount of adjustment is allowed and usually ends up far from the original. Skin smoothing, blemish removal, eye touch-ups, etc. are common. Might alter the background a bit to emphasize the subject.
Product photography usually requires a lot of sharpening, spot removal, and focus stacking.
For landscape shots, best results are achieved by doing the maximum amount of preparation before/while taking the shot. No amount of processing can match timing, proper lighting, correct gear, optimal settings, etc. Excessive post-processing might give you a dramatic shot but best avoided in the long term.
* White Balance - Left Amiga or F12 and K and under "Misc color effects" tab with a pull down for White Balance - color temperature also known as AKA tint (movies) or tones (painting) - warm temp raise red reduce green blue - cool raise blue lower red green
* Exposure - exposure compensation, highlight/shadow recovery
* Noise Reduction - during RAW development or using external software
* Lens Corrections - distortion, vignetting, chromatic aberrations
* Detail - capture sharpening and local contrast enhancement
* Contrast - black point, levels (sliders) and curves tools (F12 and K)
* Framing - straighten () and crop (F12 and F)
* Refinements - color adjustments and selective enhancements - Left Amiga or F12 and K for RGB and YUV histogram tabs -
* Resizing - enlarge for a print or downsize for the web or email (F12 and D)
* Output Sharpening - customized for your subject matter and print/screen size
White Balance - F12 and K
scan your image for a shade which was meant to be white (neutral with each RGB value being equal) like paper or plastic which is in the same light as the subject of the picture. Use the dropper tool to select this color, similar colours will shift and you will have selected the perfect white balance for your part of the image - for the whole picture make sure RAZ or CLR button at the bottom is pressed before applying to the image above.
Exposure correction
F12 and K - YUV Y luminosity - RGB extra red tint - move red curve slightly down and move blue green curves slightly up
Workflows in practice
* Undo - Right AROS key or F12 and Z
* Redo - Right AROS key or F12 and R
First flatten your image (if necessary) and then do a rotation until the picture looks level.
* Crop the picture. Click the selection button and drag a box over the area of the picture you want to keep. Press the crop button and the rest of the photo will be gone.
* Adjust your saturation, exposure, hue levels, etc., (right AROS Key and K for color correction) until you are happy with the photo. Make sure you zoom in all of the way to 100% and look the photo over, zoom back out and move around. Look for obvious problems with the picture.
* After coloring and exposure do a sharpen (Right AROS key and E for Convolution and select drop down option needed), e.g. set the matrix to 5x5 (roughly equivalent Amount to 60%) and set the Radius to 1.0. Click OK.
And save your picture
Implemented or would like to see for simplification and ease of use
basic filters (presets) like black and white, monochrome, edge detection (sobel), motion/gaussian blur,
* negative, sepiatone, retro vintage, night vision, colour tint, color gradient, color temperature, glows, fire, lightning, lens flare, emboss, filmic, pixelate mezzotint, antialias, etc.
adjust / cosmetic tools such as crop,
* reshaping tools, straighten, smear, smooth, perspective, liquify, bloat, pucker, push pixels in any direction, dispersion, transform like warp, blending with soft light, page-curl, whirl, ripple, fisheye, neon, etc.
* red eye fixing, blemish remover, skin smoothing, teeth whitener, make eyes look brighter, desaturate,
effects like oil paint, cartoon, pencil sketch, charcoal, noise/matrix like sharpen/unsharpen, (right AROS key with A for Artistic effects)
* blend two image, gradient blend, masking blend, explode, implode, custom collage, surreal painting, comic book style, needlepoint, stained glass, watercolor, mosaic, stencil/outline, crayon, chalk, etc.
borders such as
* dropshadow, rounded, blurred, color tint, picture frame, film strip polaroid, bevelled edge, etc.
brushes e.g.
* frost, smoke, etc.
and manual control of
fix lens issues including vignetting (darkening), color fringing and barrel distortion, and chromatic and geometric aberration - lens and body profiles
perspective correction
levels - directly modify the levels of the tone-values of an image, by using sliders for highlights, midtones and shadows
curves - Color Adjustment and Brightness/Contrast
color balance
one single color transparent (alpha channel (color information/selections) for masking and/or blending ) for backgrounds, etc.
Threshold indicates how much other colors will be considered mixture of the removed color and non-removed colors
decompose layer into a set of layers with each holding a different type of pattern that is visible within the image
any selection using any selecting tools like lasso tool, marquee tool etc. the selection will temporarily be save to alpha
If you create your image without transparency then the Alpha channel is not present, but you can add later.
File formats like .psd (Photoshop file has layers, masks etc. contains edited sensor data. The original sensor data is no longer available) .xcf .raw .hdr
Image Picture Formats
* low dynamic range (JPEG, PNG, TIFF 8-bit), 16-bit (PPM, TIFF), typically as a 16-bit TIFF in either ProPhoto or AdobeRGB colorspace - TIFF files are also fairly universal – although, if they contain proprietary data, such as Photoshop Adjustment Layers or Smart Filters, then they can only be opened by Photoshop making them proprietary.
* linear high dynamic range (HDR) images (PFM, [http://www.openexr.com/ ILM .EXR], jpg, [http://aminet.net/util/dtype cr2] (canon tiff based), hdr, NEF, CRW, ARW, MRW, ORF, RAF (Fuji), PEF, DCR, SRF, ERF, DNG files are RAW converted to an Adobe proprietary format - a container that can embed the raw file as well as the information needed to open it)
An old version of [http://archives.aros-exec.org/index.php?function=browse&cat=graphics/convert dcraw]
There is no single RAW file format. Each camera manufacturer has one or more unique RAW formats. RAW files contain the brightness levels data captured by the camera sensor. This data cannot be modified. A second smaller file, separate XML file, or within a database with instructions for the RAW processor to change exposure, saturation etc. The extra data can be changed but the original sensor data is still there. RAW is technically least compatible.
A raw file is high-bit (usually 12 or 14 bits of information) but a camera-generated TIFF file will be usually converted by the camera (compressed, downsampled) to 8 bits. The raw file has no embedded color balance or color space, but the TIFF has both. These three things (smaller bit depth, embedded color balance, and embedded color space) make it so that the TIFF will lose quality more quickly with image adjustments than the raw file. The camera-generated TIFF image is much more like a camera processed JPEG than a raw file. A strong advantage goes to the raw file. The power of RAW files, such as the ability to set any color temperature non-destructively and will contain more tonal values.
The principle of preserving the maximum amount of information to as late as possible in the process. The final conversion - which will always effectively represent a "downsampling" - should prevent as much loss as possible.
Once you save it as TIFF, you throw away some of that data irretrievably. When saving in the lossy JPEG format, you get tremendous file size savings, but you've irreversibly thrown away a lot of image data. As long as you have the RAW file, original or otherwise, you have access to all of the image data as captured.
Keyboard equivalence with Photoshop(tm) would help
File
PHOTOSHOP SHORTCUT GIMP
New Ctrl+n New
Open Ctrl+o Open
Close Ctrl+w Close
Save Ctrl+s Save
Save as Shift+Ctrl+s Save as
Revert F12 Revert
Print Ctrl+p Print
Exit Ctrl+q Quit
Edit
PHOTOSHOP SHORTCUT GIMP
Undo/Redo (1 level) Ctrl+z Undo (Redo is Shift+Ctrl+z)
Cut Ctrl+x Cut
Copy Ctrl+c Copy
Paste Ctrl+v Paste
Paste Into Shift+Ctrl+v Paste Into
Fill with FG color Alt+Backspace Fill with FG color
Fill with BG color Control+Backspace Fill with BG color
Image/Colors
PHOTOSHOP SHORTCUT GIMP
Levels Ctrl+l Levels
Auto Contrast Shift+Ctrl+Alt+l Stretch Contrast (same?)
Curves Ctrl+m Curves
Color Balance Ctrl+b Color Balance
Hue/Saturation Ctrl+u Hue-Saturation
Desaturate Shift+Ctrl+u Desaturate
Invert Ctrl+i Invert
Default Colors d Default Colors
Switch Colors x Switch Colors
Layer
PHOTOSHOP SHORTCUT GIMP
New Layer Shift+Ctrl+n New Layer
Layer via Copy Ctrl+j Duplicate Layer
Bring (layer) to Front Shift+Ctrl+] Layer to Top
Send (layer) to Back Shift+Ctrl+[ Layer to Bottom
Bring (layer) Forward Ctrl+] Raise Layer
Send (layer) Backward Ctrl+[ Lower Layer
Select Top Layer Shift+Alt+] Select Top Layer
Select Bottom Layer Shift+Alt+[ Select Bottom Layer
Select One Layer Forward Alt+] Select Previous Layer
Select One Layer Backward Alt+[ Select Next Layer
Merge Down Ctrl+e Merge Down
Merge Visible Shift+Ctrl+e Merge Visible
Preserve Transparency / Keep Transparency
Cycle Modes Forwards Shift+= Next Layer Mode
Cycle Modes Backwards Shift+- Previous Layer Mode
Select
PHOTOSHOP SHORTCUT GIMP
Select All Ctrl+a Select All
Deselect Ctrl+d Select None
Inverse Shift+Ctrl+i Invert
Feather Ctrl+Alt+d Feather
View
PHOTOSHOP SHORTCUT GIMP
Zoom In Ctrl+= Zoom In
Zoom Out Ctrl+- Zoom Out
Fit on Screen Ctrl+0 Zoom to Fit Window
Actual Pixels Ctrl+Alt+0 Zoom 1:1
Show/Hide Extras Ctrl+h Toggle Show Selection (close enough?)
Show/Hide Guides Ctrl+' Toggle Show Guides
Show/Hide Grid Ctrl+Alt+' Toggle Show Grid
Show/Hide Rulers Ctrl+r Toggle Show Rulers
Snap Ctrl+; Snap to Guides
Scroll View Up Page Up Scroll Page Up
Scroll View Down Page Down Scroll Page Down
Scroll View Left Ctrl+Page Up Scroll Page Left
Scroll View Right Ctrl+Page Down Scroll Page Right
Window/Dialogs
PHOTOSHOP SHORTCUT GIMP
? F5 Tools Dialog
Color Tab F6 Colors Dialog
Layers Tab F7 Layers Dialog
Info Tab F8 Image Information
Tools
PHOTOSHOP SHORTCUT GIMP
Rectangular Marquee Tool m Rect Select Tool
Elliptical Marquee Tool Shift+m Ellipse Select Tool
*This is a toggle between 'Elliptical Marquee Tool' and 'Rectangular Marquee Tool' in Photoshop
Move Tool v Move Tool
Lasso Tool l Free Select Tool
Magic Wand Tool w Fuzzy Select Tool
Crop Tool c Crop & Resize Tool
Airbrush Tool j Airbrush Tool
Paintbrush Tool b Paintbrush Tool
Clone Stamp Tool s Clone Stamp Tool
Eraser Tool e Eraser Tool
Gradient Tool g Blend Tool
Paint Bucket Tool Shift+g Bucket Fill Tool
*This is a toggle between 'Paint Bucket Tool' and 'Gradient Tool' in Photoshop
Blur Tool r Convolve Tool
Dodge Tool o DodgeBurn Tool
Type Tool t Text Tool
Pen Tool p Bezier Select Tool
Eye Dropper Tool i Color Picker Tool
Zoom Tool z Magnify Tool
Previous Brush , Previous Brush
Next Brush . Next Brush
First Brush Shift+< First Brush
Last Brush Shift+> Last Brush
Decrease Brush Size [ Decrease Brush Size
Increase Brush Size ] Increase Brush Size
Decrease Brush Hardness { Decrease Brush Hardness
Increase Brush Hardness } Increase Brush Hardness
Help
PHOTOSHOP SHORTCUT GIMP
Help F1 Help
Context Help Shift+F1 Context Help
Misc.
PHOTOSHOP SHORTCUT GIMP
Last Filter Ctrl+f Repeat Last Filter
? Shift+Ctrl+f Reshow Last Filter
Preferences Ctrl+k Preferences
Liquify Shift+Ctrl+x IWarp (close enough?)
Toggle Quick Mask q Toggle Quick Mask
Spotlights - triangle of white opaque shape
Cutting out and/or replacing unwanted background or features - select large areas with the selection option like the Magic Wand tool (aka Color Range) or the Lasso (quick and fast) with feather 2 to soften edge or the pen tool which adds points/lines/Bézier curves (better control but slower), hold down the shift button as you click to add extra points/areas of the subject matter to remove. Increase the tolerance to cover more areas. To subtract from your selection hold down alt as you're clicking.
* Layer masks are a better way of working than Erase they clip (black hides/hidden white visible/reveal). Clone Stamp can be simulated by and brushes for other areas.
* Leave the fine details like hair, fur, etc. to later with lasso and the shift key to draw a line all the way around your subject. Gradient Mapping - Inverse - Mask. i.e. Refine your selected image with edge detection and using the radius and edge options / adjuster (increase/decrease contrast) so that you will capture more fine detail from the background allowing easier removal.
Remove fringe/halo
saving image as png rather than jpg/jpeg to keep transparency background intact.
Implemented [http://colorizer.org/ colour model representations] [http://paulbourke.net/texture_colour/colourspace/ Mathematical approach] - Photo stills are spatially 2d (h and w), but are colorimetrically 3d (r g and b, or H L S, or Y U V etc.) as well.
* RGB - split cubed mapped color model for photos and computer graphics hardware using the light spectrum (adding and subtracting)
* YUV - Y-Lightness U-blue/yellow V-red/cyan (similar to YPbPr and YCbCr) used in the PAL, NTSC, and SECAM composite digital TV color [http://crewofone.com/2012/chroma-subsampling-and-transcoding/#comment-7299 video]
Histograms
White balanced (neutral) if the spike happens in the same place in each channel of the RGB graphs. If not, you're not balanced.
If you have sky you'll see the blue channel further off to the right.
RGB is best one to change colours. These elements RGB is a 3-channel format containing data for Red, Green, and Blue in your photo scale between 0 and 255. The area in a picture that appears to be brighter/whiter contains more red color as compared to the area which is relatively darker. Similarly in the green channel the area that appears to be darker contains less amount of green color as compared to the area that appears to be brighter. Similarly in the blue channel the area appears to be darker contains less amount of blue color as compared to the area that appears to be brighter. Brightness luminance histogram also matches the green histogram more than any other color - human eye interprets green better e.g. RGB rough ratio 15/55/30%
RGBA (RGB+A, A means alpha channel) . The alpha channel is used for "alpha compositing", which can mostly be associated as "opacity". AROS deals in RGB with two digits for every color (red, green, blue), in ARGB you have two additional hex digits for the alpha channel.
The shadows are represented by the left third of the graph. The highlights are represented by the right third. And the midtones are, of course, in the middle. The higher the black peaks in the graph, the more pixels are concentrated in that tonal range (total black area).
By moving the black endpoint, which identifies the shadows (darkness) and a white light endpoint (brightness) up and down either sides of the graph, colors are adjusted based on these points.
By dragging the central one, can increased the midtones and control the contrast, raise shadows levels, clip or softly eliminate unsafe levels, alter gamma, etc... in a way that is much more precise and creative .
RGB Curves
* Move left endpoint (black point) up or right endpoint (white point) up brightens
* Move left endpoint down or right endpoint down darkens
Color Curves
* Dragging up on the Red Curve increases the intensity of the reds in the image but
* Dragging down on the Red Curve decreases the intensity of the reds and thus increases the apparent intensity of its complimentary color, cyan. Green’s complimentary color is magenta, and blue’s is yellow.
<pre>
Red <-> Cyan
Green <->Magenta
Blue <->Yellow
</pre>
YUV Best option to analyse and pull out statistical elements of any picture (i.e. separate luminance data from color data). The line in Y luma tone box represents the brightness of the image with the point in the bottom left been black, and the point in the top right as white. A low-contrast image has a concentrated clump of values nearer to the center of the graph. By comparison, a high-contrast image has a wider distribution of values across the entire width of the Histogram. A histogram that is skewed to the right would indicate a picture that is a bit overexposed because most of the color data is on the lighter side (increase exposure with higher value F), while a histogram with the curve on the left shows a picture that is underexposed. This is good information to have when using post-processing software because it shows you not only where the color data exists for a given picture, but also where any data has been clipped (extremes on edges of either side): that is, it does not exist and, therefore, cannot be edited. By dragging the endpoints of the line and as well as the central one, can increased the dark/shadows, midtones and light/bright parts and control the contrast, raise shadows levels, clip or softly eliminate unsafe levels, alter gamma, etc... in a way that is much more precise and creative .
The U and V chroma parts show color difference components of the image. It’s useful for checking whether or not the overall chroma is too high, and also whether it’s being limited too much
Can be used to create a negative image but also
With U (Cb), the higher value you are, the more you're on the blue primary color. If you go to the low values then you're on blue complementary color, i.e. yellow.
With V (Cr), this is the same principle but with Red and Cyan.
e.g. If you push U full blue and V full red, you get magenta. If you push U full yellow and V full Cyan then you get green.
YUV simultaneously adds to one side of the color equation while subtracting from the other.
using YUV to do color correction can be very problematic because each curve alters the result of each other: the mutual influence between U and V often makes things tricky. You may also be careful in what you do to avoid the raise of noise (which happens very easily). Best results are obtained with little adjustments
sunset that looks uninspiring and needs some color pop especially for the rays over the hill, a subtle contrast raise while setting luma values back to the legal range without hard clipping.
Free royalty pictures, [www.freeimages.com ], [http://imageshack.us/ ], [http://photobucket.com/ ], [http://rawpixels.net/], [], [], [],
====Lunapaint====
Pixel based drawing app with onion-skin animation function
Blocking, Shading, Coloring, adding detail
<pre>
b BRUSH
e ERASER
alt eyedropper
v layer tool
z ZOOM / MAGNIFY < > n
spc panning
m marque
q lasso
w same color selection / region
</pre>
<pre>
, LM RM
v
V
f filter
F
. size
p
, pick color
[] last / next color
</pre>
There is not much missing in Lunapaint to be as good as FlipBook and then you have to take into account that Flipbook is considered to be amongst the best and easiest to use animation software out there. Ok to be honest Flipbook has some nice features that require more heavy work but those aren't so much needed right away, things like camera effects, sound, smart fill, export to different movie file formats etc.
Tried Flipbook with my tablet and compared it to Luna. The feeling is the same when sketching. LunaPaint is very responsive/fluent to draw with. Just as Flipbook is, and that responsiveness is something its users have mentioned as one of the positive sides of said software.
author was learning MUI. Some parts just have to be rewritten with proper MUI classes before new features can be added.
* add [Frame Add] / [Frame Del]
* whole animation feature is impossible to use. If you draw 2 color maybe but if you start coloring your cells then you get in trouble
* pickup the entire image as a brush, not just a selection ? And consequently remove the brush from memory when one doesn't need it anymore. can pick up a brush and put it onto a new image but cropping isn't possible, nor to load/save brushes.
* Undo is something I longed for ages in Lunapaint.
* to import into the current layer, other types of images (e.g. JPEG) besides RAW64.
* implement graphic tablet features support
**GENERAL DRAWING**
Miss it very much:
UNDO
ERASER
COLORPICKER - has to show on palette too which color got picked.
BACKGROUND COLOR -Possibility to select from "New project screen"
Miss it somewhat:
ICON for UNDO
ICON for ERASER
ICON for CLEAR SCREEN ( What can I say? I start over from scratch very often )
BRUSH - possibility to cut out as brush not just copy off image to brush
**ANIMATING**
Miss it very much:
NUMBER OF CELLS - Possibity to change total no. of cells during project
ANIM BRUSH - Possibility to pick up a selected part of cells into an animbrush
Miss it somewhat:
ADD/REMOVE FRAMES: Add/remove single frame
In general LunaPaint is really well done and it feels like a new DeluxePaint version. It works with my tablet. Sure there's much missing of course but things can always be added over time. So there is great potential in LunaPaint that's for sure. Animations could be made in it and maybe put together in QuickVideo, saving in .gif or .mng etc some day.
LAYERS
-Layers names don't get saved globally in animation frames
-Layers order don't change globally in an animation (perhaps as default?).
EXPORTING IMAGES
-Exporting frames to JPG/PNG gives problems with colors. (wrong colors. See my animatiopn --> My robot was blue now it's "gold" ) I think this only happens if you have layers.
-Trying to flatten the layers before export doesn't work if you have animation frames only the one you have visible will flatten properly all other frames are destroyed. (Only one of the layers are visible on them)
-Exporting images filenames should be for example e.g. file0001, file0002...file0010 instead as of now file1, file2...file10
LOAD/SAVE (Preferences)
-Make a setting for the default "Work" folder.
* Destroyed colors if exported image/frame has layers
* mystic color cycling of the selected color while stepping frames back/forth (annoying)
<pre>
Deluxe Paint II enhanced key shortcuts
NOTE: @ denotes the ALT key
[Technique]
F1 - Paint
F2 - Single Colour
F3 - Replace
F4 - Smear
F5 - Shade
F6 - Cycle
F7 - Smooth
M - Colour Cycle
[Brush]
B - Restore
O - Outline
h - Halve brush size
H - Double brush size
x - Flip brush on X axis
X - Double brush size on X axis only
y - Flip on Y
Y - Double on Y
z - Rotate brush 90 degrees
Z - Stretch
[Stencil]
` - Stencil On
[Miscellaneous]
F9 - Info Bar
F10 - Selection Bar
@o - Co-Ordinates
@a - Anti-alias
@r - Colourise
@t - Translucent
TAB - Colour Cycle
[Picture]
L - Load
S - Save
j - Page to Spare(Flip)
J - Page to Spare(Copy)
V - View Page
Q - Quit
[General Keys]
m - Magnify
< - Zoom In
> - Zoom Out
[ - Palette Colour Up
] - Palette Colour Down
( - Palette Colour Left
) - Palette Colour Right
, - Eye Dropper
. - Pixel / Brush Toggle
/ - Symmetry
| - Co-Ordinates
INS - Perspective Control
+/- - Brush Size (Fine Control)
w - Unfilled Polygon
W - Filled Polygon
e - Unfilled Ellipse
E - Filled Ellipse
r - Unfilled Rectangle
R - Filled Rectangle
t - Type/text tool
a - Select Font
u/U - Undo
d - Brush
D - Filled Non-Uniform Polygon
f/F - Fill Options
g/G - Grid
h/H - Brush Size (Coarse Control)
K - Clear
c - Unfilled Circle
C - Filled Circle
v - Line
b - Scissor Select and Toggle
B - Brush
{,} - Toggle between two background colours
</pre>
====Lodepaint====
Pixel based painting artwork app
====Grafx2====
Pixel based painting artwork app aesprite like
[https://www.youtube.com/watch?v=59Y6OTzNrhk aesprite workflow keys and tablet use], [],
====Vector Graphics ZuneFIG====
Vector Image Editing of files .svg .ps .eps
*Objects - raise lower rotate flip aligning snapping
*Path - unify subtract intersect exclude divide
*Colour - fill stroke
*Stroke - size
*Brushes -
*Layers -
*Effects - gaussian bevels glows shadows
*Text -
*Transform -
AmiFIG ([http://epb.lbl.gov/xfig/frm_introduction.html xfig manual])
[[File:MyScreen.png|thumb|left|alt=Showing all Windows open in AmiFIG.|All windows available to AmiFIG.]]
for drawing simple to intermediate vector graphic images for scientific and technical uses and for illustration purposes for those with talent
;Menu options
* Load - fig format but import(s) SVG
* Save - fig format but export(s) eps, ps, pdf, svg and png
* PAN = Ctrl + Arrow keys
* Deselect all points
There is no selected object until you apply the tool, and the selected object is not highlighted.
;Metrics - to set up page and styles - first window to open on new drawings
;Tools - Drawing Primitives - set Attributes window first before clicking any Tools button(s)
* Shapes - circles, ellipses, arcs, splines, boxes, polygon
* Lines - polylines
* Text "T" button
* Photos - bitmaps
* Compound - Glue, Break, Scale
* POINTs - Move, Add, Remove
* Objects - Move, Copy, Delete, Mirror, Rotate, Paste
use right mouse button to stop extra lines, shapes being formed and the left mouse to select/deselect tools button(s)
* Rotate - moves in 90 degree turns centered on clicked POINT of a polygon or square
;Attributes which provide change(s) to the above primitives
* Color
* Line Width
* Line Style
* arrowheads
;Modes
Choose from freehand, charts, figures, magnet, etc.
;Library - allows .fig clip-art to be stored
* compound tools to add .fig(s) together
;FIG 3.2 [http://epb.lbl.gov/xfig/fig-format.html Format] as produced by xfig version 3.2.5
<pre>
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
4 0 0 50 -1 0 12 0.0000 4 135 1050 1050 2475 This is a test.01
</pre>
# change the text alignment within the textbox. I can choose left, center, or right aligned by either changing the integer in the second column from 0 (left) to 1 or 2 (center, or right).
# The third integer in the row specifies fontcolor. For instance, 0 is black, but blue is 1 and Green3 is 13.
# The sixth integer in the bottom row specifies fontface. 0 is Times-Roman, but 16 is Helvetica (a MATLAB default).
# The seventh number is fontsize. 12 represents a 12pt fontsize. Changing the fontsize of an item really is as easy as changing that number to 20.
# The next number is the counter-clockwise angle of the text. Notice that I have changed the angle to .7854 (pi/4 rounded to four digits=45 degrees).
# twelfth number is the position according to the standard “x-axis” in Xfig units from the left. Note that 1200 Xfig units is equivalent to once inch.
# thirteenth number is the “y-position” from the top using the same unit convention as before.
* The nested text string is what you entered into the textbox.
* The “01″ present at the end of that line in the .fig file is the closing tag. For instance, a change to \100 appends a @ symbol at the end of the period of that sentence.
; Just to note there are no layers, no 3d functions, no shading, no transparency, no animation
[[#top|...to the top]]
===Audio===
# AHI uses linear panning/balance, which means that in the center, you will get -6dB. If an app uses panning, this is what you will get. Note that apps like Audio Evolution need panning, so they will have this problem.
# When using AHI Hifi modes, mixing is done in 32-bit and sent as 32-bit data to the driver. The Envy24HT driver uses that to output at 24-bit (always).
# For the Envy24/Envy24HT, I've made 16-bit and 24-bit inputs (called Line-in 16-bit, Line-in 24-bit etc.). There is unfortunately no app that can handle 24-bit recording.
====Music Mods====
Digital module (mods) trackers are music creation software using samples and sometimes soundfonts, audio plugins (VST, AU or RTAS), MIDI.
Generally, MODs are similar to MIDI in that they contain note on/off and other sequence messages that control the mod player. Unlike (most) midi files, however, they also contain sound samples that the sequence information actually plays. MOD files can have many channels (classic amiga mods have 4, corresponding to the inbuilt sound channels), but unlike MIDI, each channel can typically play only one note at once. However, since that note might be a sample of a chord, a drumloop or other complex sound, this is not as limiting as it sounds.
Like MIDI, notes will play indefinitely if they're not instructed to end. Most trackers record this information automatically if you play your music in live. If you're using manual note entry, you can enter a note-off command with a keyboard shortcut - usually Caps Lock.
In fact when considering file size MOD is not always the best option. Even a dummy song wastes few kilobytes for nothing when a simple SID tune could be few hundreds bytes and not bigger than 64kB. AHX is another small format, AHX tunes are never larger than 64kB excluding comments.
[https://www.youtube.com/watch?v=rXXsZfwgil Protrekkr] (previously aka [w:Juan_Antonio_Arguelles_Rius|NoiseTrekkr])
If Protrekkr does not start, please check if the Unit 0 has been setup in the AHI prefs and still not, go to the directory utilities/protrekkr and double click on the Protrekkr icon
*Sample
*Note - Effect
*Track (column) - Pattern - Order
It all starts with the Sample which is used to create Note(s) in a Track (column of a tracker)
The Note can be changed with an Effect. A Track of Note(s) can be collected into a Pattern (section of a song) and these can be given Order to create the whole song.
Patience (notes have to be entered one at a time) or playing the bassline on a midi controller (faster - see midi section above). Best approach is to wait until a melody popped into your head.
*Up-tempo means the track should be reasonably fast, but not super-fast.
*Groovy and funky imply the track should have some sort of "swing" feel, with plenty of syncopation or off beat emphasis and a recognizable, melodic bass line.
*Sweet and happy mean upbeat melodies, a major key and avoiding harsh sounds.
*Moody - minor key
First, create a quick bass sound, which is basically a sine wave, but can be hand drawn for a little more variance. It could also work for the melody part, too.
This is usually a bass guitar or some kind of synthesizer bass. The bass line is often forgotten by inexperienced composers, but it plays an important role in a musical piece. Together with the rhythm section the bass line forms the groove of a song. It's the glue between the rhythm section and the melodic layer of a song.
The drums are just pink noise samples, played at different frequencies to get a slightly different sound for the kick, snare, and hihats.
Instruments that fall into the rhythm category are bass drums, snares, hi-hats, toms, cymbals, congas, tambourines, shakers, etc. Any percussive instrument can be used to form part of the rhythm section.
The lead is the instrument that plays the main melody, on top of the chords. There are many instruments that can play a lead section, like a guitar, a piano, a saxophone or a flute. The list is almost endless. There is a lot of overlap with instruments that play chords. Often in one piece an instrument serves both roles. The lead melody is often played at a higher pitch than the chords.
Listened back to what was produced so far, and a counter-melody can be imagined, which can be added with a triangle wave.
To give the ends of phrases some life, you can add a solo part with a crunchy synth. By hitting random notes in the key of G, then edited a few of them.
For the climax of the song, filled out the texture with a gentle high-pitch pad… …and a grungy bass synth.
The arrow at A points at the pattern order list. As you see, the patterns don't have to be in numerical order. This song starts with pattern "00", then pattern "02", then "03", then "01", etcetera. Patterns may be repeated throughout a song.
The B arrow points at the song title. Below it are the global BPM and speed parameters. These determine the tempo of the song, unless the tempo is altered through effect commands during the song.
The C arrow points at the list of instruments. An instrument may consist of multiple samples. Which sample will be played depends on the note. This can be set in the Instrument Editing screen. Most instruments will consist of just one sample, though. The sample list for the selected instrument can be found under arrow D.
Here's a part of the main editing screen. This is where you put in actual notes. Up to 32 channels can be used, meaning 32 sounds can play simultaneously. The first six channels of pattern "03" at order "02" are shown here. The arrow at A points at the row number. The B arrow points at the note to play, in this case a C4. The column pointed at by the C arrow tells us which instrument is associated with that note, in this case instrument #1 "Kick".
The column at D is used (mainly) for volume commands. In this case it is left empty which means the instrument should play at its default volume. You can see the volume column being used in channel #6.
The E column tells us which effect to use and any parameters for that effect. In this case it holds the "F" effect, which is a tempo command. The "04" means it should play at tempo 4 (a smaller number means faster).
Base pattern
When I create a new track I start with what I call the base pattern. It is worthwhile to spend some time polishing it as a lot of the ideas in the base pattern will be copied and used in other patterns. At least, that's how I work. Every musician will have his own way of working. In "Wild Bunnies" the base pattern is pattern "03" at order "02".
In the section about selecting samples I talked about the four different categories of instruments: drums, bass, chords and leads. That's also how I usually go about making the base pattern. I start by making a drum pattern, then add a bass line, place some chords and top it off with a lead. This forms the base pattern from which the rest of the song will grow.
Drums
Here's a screenshot of the first four rows of the base pattern. I usually reserve the first four channels or so for the drum instruments. Right away there are a couple of tricks shown here. In the first channel the kick, or bass drum, plays some notes. Note the alternating F04 and F02 commands. The "F" command alters the tempo of the song and by quickly alternating the tempo; the song will get some kind of "swing" feel.
In the second channel the closed hi-hat plays a fairly simple pattern. Further down in the channel, not shown here, some open hi-hat notes are added for a bit of variation.
In the third and fourth channel the snare sample plays. The "8" command is for panning. One note is panned hard to the left and the other hard to the right. One sample is played a semitone lower than the other. This results in a cool flanging effect. It makes the snare stand out a little more in the mix.
Bass line
There are two different instruments used for the bass line. Instrument #6 is a pretty standard synthesized bass sound. Instrument #A sounds a bit like a slap bass when used with a quick fade out. By using two different instruments the bass line sounds a bit more ”human”. The volume command is used to cut off the notes. However, it is never set to zero. Setting the volume to a very small value will result in a reverb-like effect. This makes the song sound more "live".
The bass line hints at the chords that will be played and the key the song will be in. In this case the key of the song is D-major, a positive and happy key.
Chords
The D major chords that are being played here are chords stabs; short sounds with a quick decay (fade out). Two different instruments (#8 and #9) are used to form the chords. These instruments are quite similar, but have a slightly different sound, panning and volume decay. Again, the reason for this is to make the sound more human. The volume command is used on some chords to simulate a delay, to achieve more of a live feel. The chords are placed off-beat making for a funky rhythm.
Lead
Finally the lead melody is added. The other instruments are invaluable in holding the track together, but the lead melody is usually what catches people's attention.
A lot of notes and commands are used here, but it looks more complex than it is. A stepwise ascending melody plays in channel 13. Channel 14 and 15 copy this melody, but play it a few rows later at a lower volume. This creates an echo effect. A bit of panning is used on the notes to create some stereo depth. Like with the bass line, instead of cutting off notes the volume is set to low values for a reverb effect. The "461" effect adds a little vibrato to the note, which sounds nice on sustained notes.
Those paying close attention may notice the instrument used here for the lead melody is the same as the one used for the bass line (#6 "Square"), except played two or three octaves higher. This instrument is a looped square wave sample. Each type of wave has its own quirks, but the square wave (shown below) is a really versatile wave form.
Song structure
Good, catchy songs are often carefully structured into sections, some of which are repeated throughout the song with small variations.
A typical pop-song structure is: Intro - Verse - Chorus - Verse - Chorus - Bridge - Chorus.
Other single sectional song structures are
<pre>
Strophic or AAA Song Form - oldest story telling with refrain (often title of the song) repeated in every verse section melody
AABA Song Form - early popular, jazz and gospel fading during the 1960s
AB or Verse/Chorus Song Form - songwriting format of choice for modern popular music since the 1960s
Verse/Chorus/Bridge Song Form
ABAB Song Form
ABAC Song Form
ABCD Song Form
AAB 12-Bar Song Form - three four-bar lines or sub-sections
8-Bar Song Form
16-Bar Song Form
Hybrid / Compound Song Forms
</pre>
The most common building blocks are:
#INTRODUCTION(INTRO)
#VERSE
#REFRAIN
#PRE-CHORUS / RISE / CLIMB
#CHORUS
#BRIDGE
#MIDDLE EIGHT
#SOLO / INSTRUMENTAL BREAK
#COLLISION
#CODA / OUTRO
#AD LIB (OFTEN IN CODA / OUTRO)
The chorus usually has more energy than the verse and often has a memorable melody line. As the chorus is repeated the most often during the song, it will be the part that people will remember.
The bridge often marks a change of direction in the song. It is not uncommon to change keys in the bridge, or at least to use a different chord sequence. The bridge is used to build up tension towards the big finale, the last repetition of chorus.
Playing
RCTRL: Play song from row 0.
LSHIFT + RCTRL: Play song from current row.
RALT: Play pattern from row 0.
LSHIFT + RALT: Play pattern from current row.
Left mouse on '>': Play song from row 0.
Right mouse on '>': Play song from current row.
Left mouse on '|>': Play pattern from row 0.
Right mouse on '|>': Play pattern from current row.
Left mouse on 'Edit/Record': Edit mode on/off.
Right mouse on 'Edit/Record': Record mode on/off.
Editing
LSHIFT + ESCAPE: Switch large patterns view on/off
TAB: Go to next track
LSHIFT + TAB: Go to prev. track
LCTRL + TAB: Go to next note in track
LCTRL + LSHIFT + TAB: Go to prev. note in track
SPACE: Toggle Edit mode On & Off
(Also stop if the song is being played)
SHIFT SPACE: Toggle Record mode On & Off
(Wait for a key note to be pressed
or a midi in message to be received)
DOWN ARROW: 1 Line down
UP ARROW: 1 Line up
LEFT ARROW: 1 Row left
RIGHT ARROW: 1 Row right
PREV. PAGE: 16 Arrows Up
NEXT PAGE: 16 Arrows Down
HOME / END: Top left / Bottom right of pattern
LCTRL + HOME / END: First / last track
F5, F6, F7, F8, F9: Jump to 0, 1/4, 2/4, 3/4, 4/4 lines of the patterns
+ - (Numeric keypad): Next / Previous pattern
LCTRL + LEFT / RIGHT: Next / Previous pattern
LCTRL + LALT + LEFT / RIGHT: Next / Previous position
LALT + LEFT / RIGHT: Next / Previous instrument
LSHIFT + M: Toggle mute state of the current channel
LCTRL + LSHIFT + M: Solo the current track / Unmute all
LSHIFT + F1 to F11: Select a tab/panel
LCTRL + 1 to 4: Select a copy buffer
Tracking
1st and 2nd keys rows: Upper octave row
3rd and 4th keys rows: Lower octave row
RSHIFT: Insert a note off
/ and * (Numeric keypad)
or F1 F2: -1 or +1 octave
INSERT / BACKSPACE: Insert or Delete a line in current track
or current selected block.
LSHIFT + INSERT / BACKSPACE: Insert or Delete a line in current pattern
DELETE (NOT BACKSPACE): Empty a column or a selected block.
Blocks
(Blocks can also be selected with the mouse by holding the right button and scrolling the pattern with the mouse wheel).
LCTRL + A: Select entire current track
LCTRL + LSHIFT + A: Select entire current pattern
LALT + A: Select entire column note in a track
LALT + LSHIFT + A: Select all notes of a track
LCTRL + X: Cut the selected block and copy it into the block-buffer
LCTRL + C: Copy the selected block into the block-buffer
LCTRL + V: Paste the data from the block buffer into the pattern
LCTRL + I: Interpolate selected data from the first to the last row of a selection
LSHIFT + ARROWS
PREV. PAGE
NEXT PAGE: Select a block
LCTRL + R: Randomize the select columns of a selection, works similar to CTRL + I (interpolating them)
LCTRL + U: Transpose the note of a selection to 1 seminote higher
LCTRL + D: Transpose the note of a selection to 1 seminote lower
LCTRL + LSHIFT + U: Transpose the note of a selection to 1 seminote higher (only for the current instrument)
LCTRL + LSHIFT + D: Transpose the note of a selection to 1 seminote lower (only for the current instrument)
LCTRL + H: Transpose the note of a selection to 1 octave higher
LCTRL + L: Transpose the note of a selection to 1 octave lower
LCTRL + LSHIFT + H: Transpose the note of a selection to 1 octave higher (only for the current instrument)
LCTRL + LSHIFT + L: Transpose the note of a selection to 1 octave lower (only for the current instrument)
LCTRL + W: Save the current selection into a file
Misc
LALT + ENTER: Switch between full screen / windowed mode
LALT + F4: Exit program (Windows only)
LCTRL + S: Save current module
LSHIFT + S: Switch top right panel to synths list
LSHIFT + I: Switch top right panel to instruments list
<pre>
C-x xh xx xx hhhh Volume
B-x xh xx xx hhhh Jump to
A#x xh xx xx hhhh hhhh Slide
F-x xh xx xx hhhh Tempo
D-x xh xx xx hhhh Pattern Break
G#x xh xx xx hhhh
</pre>
h Hex 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13
d Dec 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19
The Set Volume command: C. Input a note, then move the cursor to the effects command column and type a C. Play the pattern, and you shouldn't be able to hear the note you placed the C by. This is because the effect parameters are 00. Change the two zeros to a 40(Hex)/64(Dec), depending on what your tracker uses. Play back the pattern again, and the note should come in at full volume.
The Position Jump command next. This is just a B followed by the position in the playing list that you want to jump to. One thing to remember is that the playing list always starts at 0, not 1. This command is usually in Hex.
Onto the volume slide command: A. This is slightly more complex (much more if you're using a newer tracker, if you want to achieve the results here, then set slides to Amiga, not linear), due to the fact it depends on the secondary tempo. For now set a secondary tempo of 06 (you can play around later), load a long or looped sample and input a note or two. A few rows after a note type in the effect command A. For the parameters use 0F. Play back the pattern, and you should notice that when the effect kicks in, the sample drops to a very low volume very quickly. Change the effect parameters to F0, and use a low volume command on the note. Play back the pattern, and when the slide kicks in the volume of the note should increase very quickly.
This because each part of the effect parameters for command A does a different thing. The first number slides the volume up, and the second slides it down. It's not recommended that you use both a volume up and volume down at the same time, due to the fact the tracker only looks for the first number that isn't set to 0. If you specify parameters of 8F, the tracker will see the 8, ignore the F, and slide the volume up. Using a slide up and down at same time just makes you look stupid. Don't do it...
The Set Tempo command: F, is pretty easy to understand. You simply specify the BPM (in Hex) that you want to change to. One important thing to note is that values of lower than 20 (Hex) sets the secondary tempo rather than the primary.
Another useful command is the Pattern Break: D. This will stop the playing of the current pattern and skip to the next one in the playing list. By using parameters of more than 00 you can also specify which line to begin playing from.
Command 3 is Portamento to Note. This slides the currently playing note to another note, at a specified speed. The slide then stops when it reaches the desired note.
<pre>
C-2 1 000 - Starts the note playing
--- 000
C-3 330 - Starts the slide to C-3 at a speed of 30.
--- 300 - Continues the slide
--- 300 - Continues the slide
</pre>
Once the parameters have been set, the command can be input again without any parameters, and it'll still perform the same function unless you change the parameters. This memory function allows certain commands to function correctly, such as command 5, which is the Portamento to Note and Volume Slide command. Once command 3 has been set up command 5 will simply take the parameters from that and perform a Portamento to Note. Any parameters set up for command 5 itself simply perform a Volume Slide identical to command A at the same time as the Portamento to Note.
This memory function will only operate in the same channel where the original parameters were set up.
There are various other commands which perform two functions at once. They will be described as we come across them.
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 00
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 02
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 05
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 08
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 0A
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 0D
C-3 04 .. .. 09 10 ---> C-3 04 .. .. 09 10
(You can also switch on the Slider Rec to On, and perform parameter-live-recording, such as cutoff transitions, resonance or panning tweaking, etc..) Note: this command only works for volume/panning and fx datas columns.
The next command we'll look at is the Portamento up/down: 1 and 2. Command 1 slides the pitch up at a specified speed, and 2 slides it down. This command works in a similar way to the volume slide, in that it is dependent on the secondary tempo. Both these commands have a memory dependent on each other, if you set the slide to a speed of 3 with the 1 command, a 2 command with no parameters will use the speed of 3 from the 1 command, and vice versa.
Command 4 is Vibrato. Vibrato is basically rapid changes in pitch, just try it, and you'll see what I mean. Parameters are in the format of xy, where x is the speed of the slide, and y is the depth of the slide. One important point to remember is to keep your vibratos subtle and natural so a depth of 3 or less and a reasonably fast speed, around 8, is usually used. Setting the depth too high can make the part sound out of tune from the rest.
Following on from command 4 is command 6. This is the Vibrato and Volume Slide command, and it has a memory like command 5, which you already know how to use.
Command 7 is Tremolo. This is similar to vibrato. Rather than changing the pitch it slides the volume. The effect parameters are in exactly the same format. vibrato effect (0x1dxy) x = speed y = depth (can't be used if arpeggio (0x1b) is turned on)
<pre>
C-7 00 .. .. 1B37 <- Turn Arpeggio effect on
--- .. .. .. 0000
--- .. .. .. 0000
--- .. .. .. 0000
--- .. .. .. 1B38 <- Change datas
--- .. .. .. 0000
--- .. .. .. 0000
--- .. .. .. 0000
--- .. .. .. 1B00 <- Turn it off
</pre>
Command 9 is Sample Offset. This starts the playback of the sample from a different place than the start. The effect parameters specify the sample offset, but only very roughly. Say you have a sample which is 8765(Hex) bytes long, and you wanted it to play from position 4321(Hex). The effect parameter could only be as accurate as the 43 part, and it would ignore the 21.
Command B is the Playing List/Order Jump command. The parameters specify the position in the Playing List/Order to jump to. When used in conjunction with command D you can specify the position and the line to play from.
Command E is pretty complex, as it is used for a lot of different things, depending on what the first parameter is. Let's take a trip through each effect in order.
Command E0 controls the hardware filter on an Amiga, which, as a low pass filter, cuts off the highest frequencies being played back. There are very few players and trackers on other system that simulate this function, not that you should need to use it. The second parameter, if set to 1, turns on the filter. If set to 0, the filter gets turned off.
Commands E1/E2 are Fine Portamento Up/Down. Exactly the same functions as commands 1/2, except that they only slide the pitch by a very small amount. These commands have a memory the same as 1/2 as well.
Command E3 sets the Glissando control. If parameters are set to 1 then when using command 3, any sliding will only use the notes in between the original note and the note being slid to. This produces a somewhat jumpier slide than usual. The best way to understand is to try it out for yourself. Produce a slow slide with command 3, listen to it, and then try using E31.
Command E4 is the Set Vibrato Waveform control. This command controls how the vibrato command slides the pitch. Parameters are 0 - Sine, 1 - Ramp Down (Saw), 2 - Square. By adding 4 to the parameters, the waveform will not be restarted when a new note is played e.g. 5 - Sine without restart.
Command E5 sets the Fine Tune of the instrument being played, but only for the particular note being played. It will override the default Fine Tune for the instrument. The parameters range from 0 to F, with 0 being -8 and F being +8 Fine Tune. A parameter of 8 gives no Fine Tune. If you're using a newer tracker that supports more than -8 to +8 e.g. -128 to +128, these parameters will give a rough Fine Tune, accurate to the nearest 16.
Command E6 is the Jump Loop command. You mark the beginning of the part of a pattern that you want to loop with E60, and then specify with E6x the end of the loop, where x is the number of times you want it to loop.
Command E7 is the Set Tremolo Waveform control. This has exactly the same parameters as command E4, except that it works for Tremolo rather than Vibrato.
Command E9 is for Retriggering the note quickly. The parameter specifies the interval between the retrigs. Use a value of less than the current secondary tempo, or else the note will not get retrigged.
Command EA/B are for Fine Volume Slide Up/Down. Much the same as the normal Volume Slides, except that these are easier to control since they don't depend on the secondary tempo. The parameters specify the amount to slide by e.g. if you have a sample playing at a volume of 08 (Hex) then the effect EA1 will slide this volume to 09 (Hex). A subsequent effect of EB4 would slide this volume down to 05 (Hex).
Command EC is the Note Cut. This sets the volume of the currently playing note to 0 at a specified tick. The parameters should be lower than the secondary tempo or else the effect won't work.
Command ED is the Note Delay. This should be used at the same time as a note is to be played, and the parameters will specify the number of ticks to delay playing the note. Again, keep the parameters lower than the secondary tempo, or the note won't get played!
Command EE is the Pattern Delay. This delays the pattern for the amount of time it would take to play a certain number of rows. The parameters specify how many rows to delay for.
Command EF is the Funk Repeat command. Set the sample loop to 0-1000. When EFx is used, the loop will be moved to 1000- 2000, then to 2000-3000 etc. After 9000-10000 the loop is set back to 0- 1000. The speed of the loop "movement" is defined by x. E is two times as slow as F, D is three times as slow as F etc. EF0 will turn the Funk Repeat off and reset the loop (to 0-1000).
effects 0x41 and 0x42 to control the volumes of the 2 303 units
There is a dedicated panel for synth parameter editing with coherent sections (osc, filter modulation, routing, so on) the interface is much nicer, much better to navigate with customizable colors, the reverb is now customizable (10 delay lines), It accepts newer types of Waves (higher bit rates, at least 24). Has a replay routine.
It's pretty much your basic VA synth. The problem isn't with the sampler being to high it's the synth is tuned two octaves too low, but if you want your samples tuned down just set the base note down 2 octaves (in the instrument panel).
so the synth is basically divided into 3 sections from left to right: oscillators/envelopes, then filter and LFO's, and in the right column you have mod routings and global settings.
for the oscillator section you have two normal oscillators (sine, saw, square, noise), the second of which is tunable, the first one tunes with the key pressed. Attached to OSC 1 is a sub-oscillator, which is a sawtooth wave tuned one octave down. The phase modulation controls the point in the duty cycle at which the oscillator starts. The ADSR envelope sliders (grouped with oscs) are for modulation envelope 1 and 2 respectively. you can use the synth as a sampler by choosing the instrument at the top.
In the filter column, the filter settings are: 1 = lowpass, 2 = highpass, 3 = off. cutoff and resonance. For the LFOs they are LFO 1 and LFO 2, the ADSR sliders in those are for the LFO itself.
For the modulation routings you have ENV 1, LFO 1 for the first slider and ENV 2, LFO 2 for the second, you can cycle through the individual routings there, and you can route each modulation source to multiple destinations of course, which is another big plus for this synth. Finally the glide time is for portamento and master volume, well, the master volume... it can go quite loud.
The sequencer is changed too, It's more like the one in AXS if you've used that, where you can mute tracks to re-use patterns with variation.
<pre>
Support for the following modules formats:
669 (Composer 669, Unis 669),
AMF (DSMI Advanced Module Format),
AMF (ASYLUM Music Format V1.0),
APUN (APlayer), DSM (DSIK internal format),
FAR (Farandole Composer),
GDM (General DigiMusic),
IT (Impulse Tracker),
IMF (Imago Orpheus),
MOD (15 and 31 instruments),
MED (OctaMED),
MTM (MultiTracker Module editor),
OKT (Amiga Oktalyzer),
S3M (Scream Tracker 3),
STM (Scream Tracker),
STX (Scream Tracker Music Interface Kit),
ULT (UltraTracker),
UNI (MikMod),
XM (FastTracker 2),
Mid (midi format via timidity)
</pre>
Possible plugin options include [http://lv2plug.in/ LV2],
====Midi - Musical Instrument Digital Interface====
A midi file typically contains music that plays on up to 16 channels (as per the midi standard), but many notes can simultaneously play on each channel (depending on the limit of the midi hardware playing it).
'''Timidity'''
Although usually already installed, you can uncompress the [http://www.libsdl.org/projects/SDL_mixer/ timidity.tar.gz (14MB)] into a suitable drawer like below's SYS:Extras/Audio/
assign timidity: SYS:Extras/Audio/timidity
added to SYSːs/User-Startup
'''WildMidi playback'''
'''Audio Evolution 4 (2003) 4.0.23 (from 2012)'''
*Sync Menu - CAMD Receive, Send checked
*Options Menu - MIDI Machine Control - Midi Bar Display - Select CAMD MIDI in / out - Midi Remote Setup
MCB Master Control Bus
*Sending a MIDI start-command and a Song Position Pointer, you can synchronize audio with an external MIDI sequencer (like B&P).
*B&P Receive, start AE, add AudioEvolution.ptool in Bars&Pipes track, press play / record in AE then press play in Pipes
*CAMD Receive, receive MIDI start or continue commands via camd.library sync to AE
*MIDI Machine Control
*Midi Bar Display
*Select CAMD MIDI in / out
*Midi Remote Setup - open requester for external MIDI controllers to control app mixer and transport controls cc remotely
Channel - mixer(vol, pan, mute, solo), eq, aux, fx,
Subgroup - Volume, Mute, Solo
Transport - Start, End, Play, Stop, Record, Rewind, Forward
Misc - Master vol., Bank Down, Bank up
<pre>
q - quit
First 3 already opened when AE started
F1 - timeline window
F2 - mixer
F3 - control
F4 - subgroups
F5 - aux returns
F6 - sample list
i - Load sample to use
space - start/stop play
b - reset time 0:00
s - split mode
r - open recording window
a - automation edit mode with p panning, m mute and v volume
[ / ] - zoom in / out
: - previous track
* - next track
x c v f - cut copy paste cross-fade
g - snap grid
</pre>
'''[http://bnp.hansfaust.de/ Bars n Pipes sequencer]'''
BarsnPipes debug ... in shell
Menu (right mouse)
*Song - Songs load and save in .song format but option here to load/save Midi_Files .mid in FORMAT0 or FORMAT1
*Track -
*Edit -
*Tool -
*Timing - SMTPE Synchronizing
*Windows -
*Preferences - Multiple MIDI-in option
Windows (some of these are usually already opened when Bars n Pipes starts up for the first time)
*Workflow -> Tracks, .... Song Construction, Time-line Scoring, Media Madness, Mix Maestro,
*Control -> Transport (or mini one), Windows (which collects all the Windows icons together-shortcut), .... Toolbox, Accessories, Metronome,
Once you have your windows placed on the screen that suits your workflow, Song -> Save as Default will save the positions, colors, icons, etc as you'd like them
If you need a particular setup of Tracks, Tools, Tempos etc, you save them all as a new song you can load each time
Right mouse menu -> Preferences -> Environment... -> ScreenMode - Linkages for Synch (to Slave) usbmidi.out.0 and Send (Master) usbmidi.in.0 - Clock MTC
'''Tracks'''
#Double-click on B&P's icon. B&P will then open with an empty Song. You can also double-click on a song icon to open a song in B&P.
#Choose a track. The B&P screen will contain a Tracks Window with a number of tracks shown as pipelines (Track 1, Track 2, etc...). To choose a track, simply click on the gray box to show an arrow-icon to highlight it. This icon show whether a track is chosen or not. To the right of the arrow-icon, you can see the icon for the midi-input. If you double-click on this icon you can change the MIDI-in setup.
#Choose Record for the track. To the right of the MIDI-input channel icon you can see a pipe. This leads to another clickable icon with that shows either P, R or M. This stands for Play, Record or Merge. To change the icon, simply click on it. If you choose P, this track can only play the track (you can't record anything). If you choose R, you can record what you play and it overwrites old stuff in the track. If you choose M, you merge new records with old stuff in the track. Choose R now to be able to make a record.
#Chose MIDI-channel. On the most right part of the track you can see an icon with a number in it. This is the MIDI-channel selector. Here you must choose a MIDI-channel that is available on your synthesizer/keyboard. If you choose General MIDI channel 10, most synthesizer will play drum sounds. To the left of this icon is the MIDI-output icon. Double-click on this icon to change the MIDI-output configuration.
#Start recording. The next step is to start recording. You must then find the control buttons (they look like buttons on a CD-player). To be able to make a record. you must click on the R icon. You can simply now press the play button (after you have pressed the R button) and play something on you keyboard. To playback your composition, press the Play button on the control panel.
#Edit track. To edit a track, you simply double click in the middle part of a track. You will then get a new window containing the track, where you can change what you have recorded using tools provided. Take also a look in the drop-down menus for more features.
Videos to help understand [https://www.youtube.com/watch?v=A6gVTX-9900 small intro], [https://www.youtube.com/watch?v=abq_rUTiSA4&t=3s Overview], [https://www.youtube.com/watch?v=ixOVutKsYQo Workplace Setup CC PC Sysex], [https://www.youtube.com/watch?v=dDnJLYPaZTs Import Song], [https://www.youtube.com/watch?v=BC3kkzPLkv4 Tempo Mapping], [https://www.youtube.com/watch?v=sd23kqMYPDs ptool Arpeggi-8], [https://www.youtube.com/watch?v=LDJq-YxgwQg PlayMidi Song], [https://www.youtube.com/watch?v=DY9Pu5P9TaU Amiga Midi], [https://www.youtube.com/watch?v=abq_rUTiSA4 Learning Amiga bars and Pipes],
Groups like [https://groups.io/g/barsnpipes/topics this] could help
'''Tracks window'''
* blue "1 2 3 4 5 6 7 8 Group" and transport tape deck VCR-type controls
* Flags
* [http://theproblem.alco-rhythm.com/org/bp.html Track 1, Track2, to Track 16, on each Track there are many options that can be activated]
Each Track has a
*Left LHS - Click in grey box to select what Track to work on, Midi-In ptool icon should be here (5pin plug icon), and many more from the Toolbox on the Input Pipeline
*Middle - (P, R, M) Play, Record, Merge/Multi before the sequencer line and a blue/red/yellow (Thru Mute Play) Tap
*Right RHS - Output pipeline, can have icons placed uopn it with the final ptool icon(s) being the 5pin icon symbol for Midi-OUT
Clogged pipelines may need Esc pressed several times
'''Toolbox (tools affect the chosen pipeline)'''
After opening the Toolbox window you can add extra Tools (.ptool) for the pipelines like keyboard(virtual), midimonitor, quick patch, transpose, triad, (un)quantize, feedback in/out, velocity etc
right mouse -> Toolbox menu option -> Install Tool... and navigate to Tool drawer (folder) and select requried .ptool
Accompany B tool to get some sort of rythmic accompaniment, Rythm Section and Groove Quantize are examples of other tools that make use of rythms
[https://aminet.net/search?query=bars Bars & Pipes pattern format .ptrn] for drawer (folder). Load from the Menu as Track or Group
'''Accessories (affect the whole app)'''
Accessories -> Install... and goto the Accessories drawer for .paccess like adding ARexx scripting support
'''Song Construction'''
<pre>
F1 Pencil
F2 Magic Wand
F3 Hand
F4 Duplicator
F5 Eraser
F6 Toolpad
F7 Bounding box
F8 Lock to A-B-A
A-B-A strip, section, edit flags, white boxes,
</pre>
Bars&Pipes Professional offers three track formats; basic song tracks, linear tracks — which don't loop — and finally real‑time tracks. The difference between them is that both song and linear tracks respond to tempo changes, while real‑time tracks use absolute timing, always trigger at the same instant regardless of tempo alterations
'''Tempo Map'''
F1 Pencil
F2 Magic Wand
F3 Hand
F4 Eraser
F5 Curve
F6 Toolpad
Compositions
Lyrics, Key, Rhythm, Time Signature
'''Master Parameters'''
Key, Scale/Mode
'''Track Parameters'''
Dynamics
'''Time-line Scoring'''
'''Media Madness'''
'''Mix Maestro'''
*ACCESSORIES Allows the importation of other packages and additional modules
*CLIPBOARD Full cut, copy and paste operations, enabling user‑definable clips to be shared between tracks.
*INFORMATION A complete rundown on the state of the current production and your machine.
*MASTER PARAMETERS Enables global definition of time signatures, lyrics, scales, chords, dynamics and rhythm changes.
*MEDIA MADNESS A complete multimedia sequencer which allows samples, stills, animation, etc
*METRONOME Tempo feedback via MIDI, internal Amiga audio and colour cycling — all three can be mixed and matched as required.
*MIX MAESTRO Completely automated mixdown with control for both volume and pan. All fader alterations are memorised by the software
*RECORD ACTIVATION Complete specification of the data to be recorded/merged. Allows overdubbing of pitch‑bend, program changes, modulation etc
*SET FLAGS Numeric positioning of location and edit flags in either SMPTE or musical time
*SONG CONSTRUCTION Large‑scale cut and paste of individual measures, verses or chorus, by means of bounding box and drag‑n‑drop mouse selections
*TEMPO MAP Tempo change using a variety of linear and non‑linear transition curves
*TEMPO PALETTE Instant tempo changes courtesy of four user‑definable settings.
*TIMELINE SCORING Sequencing of a selection of songs over a defined period — ideal for planning an entire set for a live performance.
*TOOLBOX Selection screen for the hundreds of signal‑processing tools available
*TRACKS Opens the main track window to enable recording, editing and the use of tools.
*TRANSPORT Main playback control window, which also provides access to user‑ defined flags, loop and punch‑in record modes.
Bars and Pipes Pro 2.5 is using internal 4-Byte IDs, to check which kind of data are currently processed.
Especially in all its files the IDs play an important role. The IDs are stored into the file in the same order they are laid out in the memory.
In a Bars 'N' Pipes file (no matter which kind) the ID "NAME" (saved as its ANSI-values) is stored on a big endian system (68k-computer) as "NAME". On a little endian system (x86 PC computer) as "EMAN". The target is to make the AROS-BnP compatible to songs, which were stored on a 68k computer (AMIGA).
If possible, setting MIDI channels for Local Control for your keyboard
http://www.fromwithin.com/liquidmidi/archive.shtml
MIDI files are essentially a stream of event data. An event can be many things, but typically "note on", "note off", "program change", "controller change", or messages that instruct a MIDI compatible synth how to play a given bit of music.
* Channel - 1 to 16 -
* Messages - PC presets, CC effects like delays, reverbs, etc
* Sequencing - MIDI instruments, Drums, Sound design,
* Recording -
* GUI - Piano roll or Tracker, Staves and Notes
MIDI events/messages like step entry e.g. Note On, Note Off
MIDI events/messages like PB, PC, CC, Mono and Poly After-Touch, Sysex, etc
MIDI sync - Midi Clocks (SPS Measures), Midi Time Code (h, m, s and frames) SMPTE
Individual track editing with audition edits so easier to test any changes. Possible to stop track playback, mix clips from the right edit flag and scroll the display using arrow keys.
Step entry, to extend a selected note hit the space bar and the note grows accordingly. Ability to cancel mouse‑driven edits by simply clicking the right mouse button — at which point everything snaps back into its original form. Lyrics can now be put in with syllable dividers, even across an entire measure or section. Autoranging when you open a edit window, the notes are automatically displayed — working from the lowest upwards.
Flag editing, shift‑click on a flag immediately open the bounds window, ready for numeric input. Ability to cancel edits using the right‑hand mouse button, plus much improved Bounding Box operations.
Icons other than the BarsnPipes icon -> PUBSCREEN=BarsnPipes (cannot choose modes higher than 8bit 256 colors)
Preferences -> Menu in Tracks window - Send MIDI defaults OFF
Prefs -> Environment -> screenmode (saved to BarsnPipes.prefs binary file)
Customization -> pics in gui drawer (folder) -
Can save as .song files and .mid General Midi
SMF is a “Standard Midi File” ([http://www.music.mcgill.ca/~ich/classes/mumt306/StandardMIDIfileformat.html SMF0, SMF1 and SMF2]), [https://github.com/stump/libsmf libsmf], [https://github.com/markc/midicomp MIDIcomp], [https://github.com/MajicDesigns/MD_MIDIFile C++ src], [], [https://github.com/newdigate/midi-smf-reader Midi player],
* SMF0 All MIDI data is stored in one track only, separated exclusively by the MIDI channel.
* SMF1 The MIDI data is stored in separate tracks/channels.
* SMF2 (rarely used) The MIDI data is stored in separate tracks, which are additionally wrapped in containers, so it's possible to have e.g. several tracks using the same MIDI channels.
Would it be possible to enrich Bars N’Pipes with software synth and sample support along with audio recording and mastering tools like in the named MAC or PC music sequencers?
On the classic AMIGA-OS this is not possible because of missing CPU-power. The hardware of the classic AMIGA is not further developed. So we must say (unfortunately) that those dreams can’t become reality
BarsnPipes is best used with external MIDI-equipment. This can be a keyboard or synthesizer with MIDI-connectors.
<pre>
MIDI can control 16 channels
There are USB-MIDI-Interfaces on the market with 16 independent MIDI-lines (multi-port), which can handle 16 MIDI devices independently – 16×16 = 256 independent MIDI-channels or instruments
handle up to 16 different USB-MIDI-Interfaces (multi-device). That is: 16X16X16 = 4096 independent MIDI-channels – theoretically
</pre>
<pre>
Librarian MIDI SYStem EXplorer (sysex) - PatchEditor and used to be supplied as a separate program like PatchMeister but currently not at present
It should support MIDI.library (PD), BlueRibbon.library (B&P), TriplePlayPlus, and CAMD.library (DeluxeMusic) and
MIDI information from a device's user manual and configure a custom interface to access parameters for all MIDI products connected to the system
Supports ALL MIDI events and the Patch/Librarian data is stored in MIDI standard format
Annette M.Crowling, Missing Link Software, Inc.
</pre>
Composers
<pre>
[https://x.com/hirasawa/status/1403686519899054086 Susumu Hirasawa]
</pre>
<pre>
1988 Todor Fay and his wife Melissa Jordan Gray, who founded the Blue Ribbon Inc
1992 Bars&Pipes Pro published
November 2000, Todor Fay announcement to release the sourcecode of Bars&Pipes Pro 2.5c beta
end of May 2001, the source of the main program and the sources of some tools and accessories were in a complete and compileable state
end of October 2009 stop further development of BarsnPipes New for now on all supported systems and made freeware
2013 Alfred Faust diagnosed with incureable illness, called „Myastenia gravis“ (weak muscles)
</pre>
Protrekkr
How to use Midi In/Out in Protrekkr ?
First of all, midi in & out capabilities of this program are rather limited.
# Go to Misc. Setup section and select a midi in or out device to use (ptk only supports one device at a time).
# Go to instrument section, and select a MIDI PRG (the default is N/A, which means no midi program selected).
# Go to track section and here you can assign a midi channel to each track of ptk.
# Play notes :]. Note off works. F'x' note cut command also works too, and note-volume command (speed) is supported.
Also, you can change midicontrollers in the tracker, using '90' in the panning row:
<pre>
C-3 02 .. .. 0000....
--- .. .. 90 xxyy.... << This will set the value
--- .. .. .. 0000.... of the controller n.'xx' to 'yy' (both in hex)
--- .. .. .. 0000....
</pre>
So "--- .. .. 90 2040...." will set the controller number $20(32) to $40(64).
You will need the midi implementation table of your gear to know what you can change with midi controller messages.
N.B. Not all MIDI devices are created equal!
Although the MIDI specification defines a large range of MIDI messages of various kinds, not every MIDI device is required to work in exactly the same way and respond to all the available messages and ways of working. For example, we don't expect a wind synthesiser to work in the same way as a home keyboard.
Some devices, the older ones perhaps, are only able to respond to a single channel. With some of those devices that channel can be altered from the default of 1 (probably) to another channel of the 16 possible.
Other devices, for instance monophonic synthesisers, are capable of producing just one note at a time, on one MIDI channel. Others can produce many notes spread across many channels.
Further devices can respond to, and transmit, "breath controller" data (MIDI controller number 2 (CC#2)) others may respond to the reception of CC#2 but not be able to create and to send it.
A controller keyboard may be capable of sending "expression pedal" data, but another device may not be capable of responding to that message.
Some devices just have the basic GM sound set. The "voice" or "instrument" is selected using a "Program Change" message on its own.
Other devices have a greater selection of voices, usually arranged in "banks", and the choice of instrument is made by responding to "Bank Select MSB" (MIDI controller 0 (CC#0)), others use "Bank Select LSB" (MIDI controller number 32 (CC#32)), yet others use both MSB and LSB sent one after the other, all followed by the Program Change message. The detailed information about all the different voices will usually be available in a published MIDI Data List.
MIDI Implementation Chart
But in the User Manual there is sometimes a summary of how the device works, in terms of MIDI, in the chart at the back of the manual, the MIDI Implementation Chart.
If you require two devices to work together you can compare the two implementation charts to see if they are "compatible". In order to do this we will need to interpret that chart.
The chart is divided into four columns headed "Function", "Transmitted" (or "Tx"), "Received" (or "Rx"), or more correctly "Recognised", and finally, "Remarks".
<pre>
The left hand column defines which MIDI functions are being described.
The 2nd column defines what the device in question is capable of transmitting to another device.
The 3rd column defines what the device is capable of responding to.
The 4th column is for explanations of the values contained within these previous two columns.
</pre>
There should then be twelve sections, with possibly a thirteenth containing extra "Notes". Finally there should be an explanation of the four MIDI "modes" and what the "X" and the "O" mean.
<pre>
Mode 1: Omni On, Poly;
Mode 2: Omni On, Mono;
Mode 3: Omni Off, Poly;
Mode 4: Omni Off, Mono.
</pre>
O means "yes" (implemented), X means "no" (not implemented).
Sometimes you will find a row of asterisks "**************", these seem to indicate that the data is not applicable in this case. Seen in the transmitted field only (unless you've seen otherwise).
Lastly you may find against some entries an asterisk followed by a number e.g. *1, these will refer you to further information, often on a following page, giving more detail.
Basic Channel
But the very first set of boxes will tell us the "Basic Channel(s)" that the device sends or receives on.
"Default" is what happens when the device is first turned on, "changed" is what a switch of some kind may allow the device to be set to.
For many devices e.g. a GM sound module or a home keyboard, this would be 1-16 for both. That is it can handle sending and receiving on all MIDI channels.
On other devices, for example a synthesiser, it may by default only work on channel 1. But the keyboard could be "split" with the lower notes e.g. on channel 2. If the synth has an arppegiator, this may be able to be set to transmit and or receive on yet another channel.
So we might see the default as "1" but the changed as "1-16".
Modes.
We need to understand Omni On and Off, and Mono and Poly, then we can decipher the four modes.
But first we need to understand that any of these four Mode messages can be sent to any MIDI channel. They don't necessarily apply to the whole device.
If we send an "Omni On" message (CC#125) to a MIDI channel of a device, we are, in effect, asking it to respond to e.g. a Note On / Off message pair, received on any of the sixteen channels. Sound strange? Read it again. Still strange? It certainly is. We normally want a MIDI channel to respond only to Note On / Off messages sent on that channel, not any other. In other words, "Omni Off".
So "Omni Off" (CC#124) tells a channel of our MIDI device to respond only to messages sent on that MIDI channel.
"Poly" (CC#127) is for e.g. a channel of a polyphonic sound module, or a home keyboard, to be able to respond to many simultaneous Note On / Off message pairs at once and produce musical chords.
"Mono" (CC#126) allows us to set a channel to respond as if it were e.g. a flute or a trumpet, playing just one note at a time. If the device is capable of it, then the overlapping of notes will produce legato playing, that is the attack portion of the second note of two overlapping notes will be removed resulting in a "smoother" transition.
So a channel with a piano voice assigned to it will have Omni Off, Poly On (Mode 3), a channel with a saxophone voice assigned could be Omni Off, Mono On (Mode 4).
We call these combinations the four modes, 1 to 4, as defined above.
Most modern devices will have their channels set to Mode 3 (Omni Off, Poly) but be switchable, on a per channel basis, to Mode 4 (Omni Off, Mono).
This second section of data will include first its default value i.e. upon device switch on. Then what Mode messages are acceptable, or X if none.
Finally, in the "Altered" field, how a Mode message that can't be implemented will be interpreted. Usually there will just be a row of asterisks effectively meaning nothing will be done if you try to switch to an unimplemented mode.
Note Number
<pre>
The next row will tell us which MIDI notes the device can send or receive, normally 0-127.
The second line, "True Voice" has the following in the MIDI specification:
"Range of received note numbers falling within the range of true notes produced by the instrument."
My interpretation is that, for instance, a MIDI piano may be capable of sending all MIDI notes (0 to 127) by transposition, but only responding to the 88 notes (21 to 108) of a real piano.
</pre>
Velocity
This will tell us whether the device we're looking at will handle note velocity, and what range from 1-127, or maybe just 64, it transmits or will recognise. So usually "O" plus a range or "X" for not implemented.
After touch
This may have one or two lines two it.
If a one liner the either "O" or "X", yes or no.
If a two liner then it may include "Keys" or "Poly" and "Channel".
This will show whether the device will respond to Polyphonic after touch or channel after touch or neither.
Pitch Bend
Again "O" for implemented, "X" for not implemented.
(Many stage pianos will have no pitch bend capability.)
It may also, in the notes section, state whether it will respond to the full 14 bits, or not, as usually encoded by the pitch bend wheel.
Control Change
This is likely to be the largest section of the chart.
It will list all those controllers, starting from CC#0, Bank Select MSB, which the device is capable of sending, and those that it will respond to using "O" or "X" respectively.
You will, almost certainly, get some further explanation of functionality in the remarks column, or in more detail elsewhere in the documentation.
Of course you will need to know what all the various controller numbers do. Lots of the official technical specifications can be found at the [www.midi.org/techspecs/ MMA], with the table of messages and control change [www.midi.org/techspecs/midimessages.php message numbers]
Program Change
Again "O" or "X" in the Transmitted or Recognised column to indicate whether or not the feature is implemented. In addition a range of numbers is shown, typically 0-127, to show what is available.
True # (number): "The range of the program change numbers which correspond to the actual number of patches selected."
System Exclusive
Used to indicate whether or not the device can send or recognise System Exclusive messages. A short description is often given in the Remarks field followed by a detailed explanation elsewhere in the documentation.
System Common - These include the following:
<pre>
MIDI Time Code Quarter Frame messages (device synchronisation).
Song Position Pointer
Song Select
Tune Request
</pre>
The section will indicate whether or not the device can send or respond to any of these messages.
System Real Time
These include the following:
<pre>
Timing Clock - often just written as "Clock"
Start
Stop
Continue
</pre>
These three are usually just referred to as "Commands" and listed.
Again the section will indicate which, if any, of these messages the device can send or respond to.
<pre>
Aux. Messages
Again "O" or "X" for implemented or not.
Aux. = Auxiliary.
Active Sense = Active Sensing.
</pre>
Often with an explanation of the action of the device.
Notes
The "Notes" section can contain any additional comments to clarify the particular implementation.
Some of the explanations have been drawn directly from the MMA MIDI 1.0 Detailed Specification.
And the detailed explanation of some of the functions will be found there, or in the General MIDI System Level 1 or General MIDI System Level 2 documents also published by the MMA.
OFFICIAL MIDI SPECIFICATIONS
SUMMARY OF MIDI MESSAGES
Table 1 - Summary of MIDI Messages
The following table lists the major MIDI messages in numerical (binary) order (adapted from "MIDI by the Numbers" by D. Valenti, Electronic Musician 2/88, and updated by the MIDI Manufacturers Association.). This table is intended as an overview of MIDI, and is by no means complete.
WARNING! Details about implementing these messages can dramatically impact compatibility with other products. We strongly recommend consulting the official MIDI Specifications for additional information.
MIDI 1.0 Specification
Message Summary Channel Voice Messages [nnnn = 0-15 (MIDI Channel Number 1-16)]
{| class="wikitable sortable" width="90%"
! width="10%" |Status D7----D0
! width="10%" |Data Byte(s) D7----D0
! width="20%" |Description
|-
|<!--Status-->1000nnnn || <!--Data-->0kkkkkkk 0vvvvvvv || <!--Description-->Note Off event.
This message is sent when a note is released (ended). (kkkkkkk) is the key (note) number. (vvvvvvv) is the velocity.
|-
|<!--Status-->1001nnnn || <!--Data-->0kkkkkkk 0vvvvvvv || <!--Description-->Note On event.
This message is sent when a note is depressed (start). (kkkkkkk) is the key (note) number. (vvvvvvv) is the velocity.
|-
|<!--Status-->1010nnnn || <!--Data-->0kkkkkkk 0vvvvvvv || <!--Description-->Polyphonic Key Pressure (Aftertouch).
This message is most often sent by pressing down on the key after it "bottoms out". (kkkkkkk) is the key (note) number. (vvvvvvv) is the pressure value.
|-
|<!--Status-->1011nnnn || <!--Data-->0ccccccc 0vvvvvvv || <!--Description-->Control Change.
This message is sent when a controller value changes. Controllers include devices such as pedals and levers. Controller numbers 120-127 are reserved as "Channel Mode Messages" (below). (ccccccc) is the controller number (0-119). (vvvvvvv) is the controller value (0-127).
|-
|<!--Status-->1100nnnn || <!--Data-->0ppppppp || <!--Description-->Program Change. This message sent when the patch number changes. (ppppppp) is the new program number.
|-
|<!--Status-->1101nnnn || <!--Data-->0vvvvvvv || <!--Description-->Channel Pressure (After-touch). This message is most often sent by pressing down on the key after it "bottoms out". This message is different from polyphonic after-touch. Use this message to send the single greatest pressure value (of all the current depressed keys). (vvvvvvv) is the pressure value.
|-
|<!--Status-->1110nnnn || <!--Data-->0lllllll 0mmmmmmm || <!--Description-->Pitch Bend Change. This message is sent to indicate a change in the pitch bender (wheel or lever, typically). The pitch bender is measured by a fourteen bit value. Center (no pitch change) is 2000H. Sensitivity is a function of the receiver, but may be set using RPN 0. (lllllll) are the least significant 7 bits. (mmmmmmm) are the most significant 7 bits.
|}
Channel Mode Messages (See also Control Change, above)
{| class="wikitable sortable" width="90%"
! width="10%" |Status D7----D0
! width="10%" |Data Byte(s) D7----D0
! width="20%" |Description
|-
|<!--Status-->1011nnnn || <!--Data-->0ccccccc 0vvvvvvv || <!--Description-->Channel Mode Messages.
This the same code as the Control Change (above), but implements Mode control and special message by using reserved controller numbers 120-127. The commands are:
*All Sound Off. When All Sound Off is received all oscillators will turn off, and their volume envelopes are set to zero as soon as possible c = 120, v = 0: All Sound Off
*Reset All Controllers. When Reset All Controllers is received, all controller values are reset to their default values. (See specific Recommended Practices for defaults) c = 121, v = x: Value must only be zero unless otherwise allowed in a specific Recommended Practice.
*Local Control. When Local Control is Off, all devices on a given channel will respond only to data received over MIDI. Played data, etc. will be ignored. Local Control On restores the functions of the normal controllers.
c = 122, v = 0: Local Control Off
c = 122, v = 127: Local Control On
* All Notes Off. When an All Notes Off is received, all oscillators will turn off.
c = 123, v = 0: All Notes Off (See text for description of actual mode commands.)
c = 124, v = 0: Omni Mode Off
c = 125, v = 0: Omni Mode On
c = 126, v = M: Mono Mode On (Poly Off) where M is the number of channels (Omni Off) or 0 (Omni On)
c = 127, v = 0: Poly Mode On (Mono Off) (Note: These four messages also cause All Notes Off)
|}
System Common Messages
System Messages (0xF0)
The final status nybble is a “catch all” for data that doesn’t fit the other statuses. They all use the most significant nybble (4bits) of 0xF, with the least significant nybble indicating the specific category.
The messages are denoted when the MSB of the second nybble is 1. When that bit is a 0, the messages fall into two other subcategories.
System Common
If the MSB of the second second nybble (4 bits) is not set, this indicates a System Common message. Most of these are messages that include some additional data bytes.
System Common Messages
Type Status Byte Number of Data Bytes Usage
<pre>
Time Code Quarter Frame 0xF1 1 Indicates timing using absolute time code, primarily for synthronization with video playback systems. A single location requires eight messages to send the location in an encoded hours:minutes:seconds:frames format*.
Song Position 0xF2 2 Instructs a sequencer to jump to a new position in the song. The data bytes form a 14-bit value that expresses the location as the number of sixteenth notes from the start of the song.
Song Select 0xF3 1 Instructs a sequencer to select a new song. The data byte indicates the song.
Undefined 0xF4 0
Undefined 0xF5 0
Tune Request 0xF6 0 Requests that the receiver retunes itself**.
</pre>
*MIDI Time Code (MTC) is significantly complex. Please see the MIDI Specification
**While modern digital instruments are good at staying in tune, older analog synthesizers were prone to tuning drift. Some analog synthesizers had an automatic tuning operation that could be initiated with this command.
System Exclusive
If you’ve been keeping track, you’ll notice there are two status bytes not yet defined: 0xf0 and 0xf7. These are used by the System Exclusive message, often abbreviated at SysEx. SysEx provides a path to send arbitrary data over a MIDI connection. There is a group of predefined messages for complex data, like fine grained control of MIDI Time code machinery. SysEx is also used to send manufacturer defined data, such as patches, or even firmware updates.
System Exclusive messages are longer than other MIDI messages, and can be any length. The messages are of the following format:
0xF0, 0xID, 0xdd, ...... 0xF7
The message is bookended with distinct bytes.
It opens with the Start Of Exclusive (SOX) data byte, 0xF0.
The next one to three bytes after the start are an identifier.
Values from 0x01 to 0x7C are one-byte vendor IDs, assigned to manufacturers who were involved with MIDI at the beginning.
If the ID is 0x00, it’s a three-byte vendor ID - the next two bytes of the message are the value.
<pre>
ID 0x7D is a placeholder for non-commercial entities.
ID 0x7E indicates a predefined Non-realtime SysEx message.
ID 0x7F indicates a predefined Realtime SysEx message.
</pre>
After the ID is the data payload, sent as a stream of bytes.
The transfer concludes with the End of Exclusive (EOX) byte, 0xF7.
The payload data must follow the guidelines for MIDI data bytes – the MSB must not be set, so only 7 bits per byte are actually usable. If the MSB is set, it falls into three possible scenarios.
An End of Exclusive byte marks the ordinary termination of the SysEx transfer.
System Real Time messages may occur within the transfer without interrupting it. The recipient should handle them independently of the SysEx transfer.
Other status bytes implicitly terminate the SysEx transfer and signal the start of new messages.
Some inexpensive USB-to-MIDI interfaces aren’t capable of handling messages longer than four bytes.
{| class="wikitable sortable" width="90%"
! width="10%" |Status D7----D0
! width="10%" |Data Byte(s) D7----D0
! width="20%" |Description
|-
|<!--Status-->11110000 || <!--Data-->0iiiiiii [0iiiiiii 0iiiiiii] 0ddddddd --- --- 0ddddddd 11110111 || <!--Description-->System Exclusive.
This message type allows manufacturers to create their own messages (such as bulk dumps, patch parameters, and other non-spec data) and provides a mechanism for creating additional MIDI Specification messages. The Manufacturer's ID code (assigned by MMA or AMEI) is either 1 byte (0iiiiiii) or 3 bytes (0iiiiiii 0iiiiiii 0iiiiiii). Two of the 1 Byte IDs are reserved for extensions called Universal Exclusive Messages, which are not manufacturer-specific. If a device recognizes the ID code as its own (or as a supported Universal message) it will listen to the rest of the message (0ddddddd). Otherwise, the message will be ignored. (Note: Only Real-Time messages may be interleaved with a System Exclusive.)
|-
|<!--Status-->11110001 || <!--Data-->0nnndddd || <!--Description-->MIDI Time Code Quarter Frame.
nnn = Message Type
dddd = Values
|-
|<!--Status-->11110010 || <!--Data-->0lllllll 0mmmmmmm || <!--Description-->Song Position Pointer.
This is an internal 14 bit register that holds the number of MIDI beats (1 beat= six MIDI clocks) since the start of the song. l is the LSB, m the MSB.
|-
|<!--Status-->11110011 || <!--Data-->0sssssss || <!--Description-->Song Select.
The Song Select specifies which sequence or song is to be played.
|-
|<!--Status-->11110100 || <!--Data--> || <!--Description-->Undefined. (Reserved)
|-
|<!--Status-->11110101 || <!--Data--> || <!--Description-->Undefined. (Reserved)
|-
|<!--Status-->11110110 || <!--Data--> || <!--Description-->Tune Request. Upon receiving a Tune Request, all analog synthesizers should tune their oscillators.
|-
|<!--Status-->11110111 || <!--Data--> || <!--Description-->End of Exclusive. Used to terminate a System Exclusive dump.
|}
System Real-Time Messages
{| class="wikitable sortable" width="90%"
! width="10%" |Status D7----D0
! width="10%" |Data Byte(s) D7----D0
! width="20%" |Description
|-
|<!--Status-->11111000 || <!--Data--> || <!--Description-->Timing Clock. Sent 24 times per quarter note when synchronization is required.
|-
|<!--Status-->11111001 || <!--Data--> || <!--Description-->Undefined. (Reserved)
|-
|<!--Status-->11111010 || <!--Data--> || <!--Description-->Start. Start the current sequence playing. (This message will be followed with Timing Clocks).
|-
|<!--Status-->11111011 || <!--Data--> || <!--Description-->Continue. Continue at the point the sequence was Stopped.
|-
|<!--Status-->11111100 || <!--Data--> || <!--Description-->Stop. Stop the current sequence.
|-
|<!--Status-->11111101 || <!--Data--> || <!--Description-->Undefined. (Reserved)
|-
|<!--Status-->11111110 || <!--Data--> || <!--Description-->Active Sensing. This message is intended to be sent repeatedly to tell the receiver that a connection is alive. Use of this message is optional. When initially received, the receiver will expect to receive another Active Sensing message each 300ms (max), and if it does not then it will assume that the connection has been terminated. At termination, the receiver will turn off all voices and return to normal (non- active sensing) operation.
|-
|<!--Status-->11111111 || <!--Data--> || <!--Description-->Reset. Reset all receivers in the system to power-up status. This should be used sparingly, preferably under manual control. In particular, it should not be sent on power-up.
|}
Advanced Messages
Polyphonic Pressure (0xA0) and Channel Pressure (0xD0)
Some MIDI controllers include a feature known as Aftertouch. While a key is being held down, the player can press harder on the key. The controller measures this, and converts it into MIDI messages.
Aftertouch comes in two flavors, with two different status messages.
The first flavor is polyphonic aftertouch, where every key on the controller is capable of sending its own independent pressure information. The messages are of the following format:
<pre>
0xnc, 0xkk, 0xpp
n is the status (0xA)
c is the channel nybble
kk is the key number (0 to 127)
pp is the pressure value (0 to 127)
</pre>
Polyphonic aftertouch is an uncommon feature, usually found on premium quality instruments, because every key requires a separate pressure sensor, plus the circuitry to read them all.
Much more commonly found is channel aftertouch. Instead of needing a discrete sensor per key, it uses a single, larger sensor to measure pressure on all of the keys as a group. The messages omit the key number, leaving a two-byte format
<pre>
0xnc, 0xpp
n is the status (0xD)
c is the channel number
pp is the pressure value (0 to 127)
</pre>
Pitch Bend (0xE0)
Many keyboards have a wheel or lever towards the left of the keys for pitch bend control. This control is usually spring-loaded, so it snaps back to the center of its range when released. This allows for both upward and downward bends.
Pitch Bend Wheel
The wheel sends pitch bend messages, of the format
<pre>
0xnc, 0xLL, 0xMM
n is the status (0xE)
c is the channel number
LL is the 7 least-significant bits of the value
MM is the 7 most-significant bits of the value
</pre>
You’ll notice that the bender data is actually 14 bits long, transmitted as two 7-bit data bytes. This means that the recipient needs to reassemble those bytes using binary manipulation. 14 bits results in an overall range of 214, or 0 to 16,383. Because it defaults to the center of the range, the default value for the bender is halfway through that range, at 8192 (0x2000).
Control Change (0xB0)
In addition to pitch bend, MIDI has provisions for a wider range of expressive controls, sometimes known as continuous controllers, often abbreviated CC. These are transmitted by the remaining knobs and sliders on the keyboard controller shown below.
Continuous Controllers
These controls send the following message format:
<pre>
0xnc, 0xcc, 0xvv
n is the status (0xB)
c is the MIDI channel
cc is the controller number (0-127)
vv is the controller value (0-127)
</pre>
Typically, the wheel next to the bender sends controller number one, assigned to modulation (or vibrato) depth. It is implemented by most instruments.
The remaining controller number assignments are another point of confusion. The MIDI specification was revised in version 2.0 to assign uses for many of the controllers. However, this implementation is not universal, and there are ranges of unassigned controllers.
On many modern MIDI devices, the controllers are assignable. On the controller keyboard shown in the photos, the various controls can be configured to transmit different controller numbers. Controller numbers can be mapped to particular parameters. Virtual synthesizers frequently allow the user to assign CCs to the on-screen controls. This is very flexible, but it might require configuration on both ends of the link and completely bypasses the assignments in the standard.
Program Change (0xC0)
Most synthesizers have patch storage memory, and can be told to change patches using the following command:
<pre>
0xnc, 0xpp
n is the status (0xc)
c is the channel
pp is the patch number (0-127)
</pre>
This allows for 128 sounds to be selected, but modern instruments contain many more than 128 patches. Controller #0 is used as an additional layer of addressing, interpreted as a “bank select” command. Selecting a sound on such an instrument might involve two messages: a bank select controller message, then a program change.
Audio & Midi are not synchronized, what I can do ?
Buy a commercial software package but there is a nasty trick to synchronize both. It's a bit hardcore but works for me:
Simply put one line down to all midi notes on your pattern (use Insert key)
and go to 'Misc. Setup', adjust the latency and just search a value
that will make sound sync both audio/midi.
The stock Sin/Saw/Pulse and Rnd waveforms are too simple/common, is there a way to use something more complex/rich ?
You have to ability to redirect the waveforms of the instruments through the synth pipe by selecting the "wav" option for the oscillator you're using for this synth instrument, samples can be used as wavetables to replace the stock signals.
Sound banks like soundfont (sf2) or Kontakt2 are not supported at the moment
====DAW Audio Evolution 4====
Audio Evolution 4 gives you unsurpassed power for digital audio recording and editing on the Amiga. The latest release focusses on time-saving non-linear and non-destructive editing, as seen on other platforms. Besides editing, Audio Evolution 4 offers a wide range of realtime effects, including compression, noise gate, delays, reverb, chorus and 3-band EQ.
Whether you put them as inserts on a channel or use them as auxillaries, the effect parameters are realtime adjustable and can be fully automated. Together with all other mixing parameters, they can even be controlled remotely, using more ergonomic MIDI hardware.
Non-linear editing on the time line, including cut, copy, paste, move, split, trim and crossfade actions
The number of tracks per project(s) is unlimited .... AHI limits you to recording only two at a time. i.e. not on 8 track sound cards like the Juli@ or Phase 88.
sample file import is limited to 16bit AIFF (not AIFC, important distinction as some files from other sources can be AIFC with aiff file extention). and 16bit WAV (pcm only)
Most apps use the Music Unit only but a few apps also use Unit (0-3) instead or as well.
* Set up AHI prefs so that microphone is available. (Input option near the bottom)
stereo++ allows the audio piece to be placed anywhere and the left-right adjusted to sound positionally right
hifi best for music playback if driver supports this option
Load 16bit .aif .aiff only sample(s) to use not AIFC which can have the same ending. AIFF stands for Audio Interchange File Format
sox recital.wav recital.aiff
sox recital.wav −b 16 recital.aiff channels 1 rate 16k fade 3 norm
sox input.wav output.aiff bass −b 16 rate 48k
performs the same format translation, but also applies four effects (down-mix to one channel, sample rate change, fade-in, nomalize), and stores the result at a bit-depth of 16.
rec −c 2 radio.aiff trim 0 30:00
records half an hour of stereo audio
play existing-file.wav
24bit PCM WAV or AIFF do not work
*No stream format handling. So no way to pass on an AC3 encoded stream unmodified to the digital outputs through AHI.
*No master volume handling. Each application has to set its own volume. So each driver implements its own custom driver-mixer interface for handling master volumes, mute and preamps.
*Only one output stream. So all input gets mixed into one output.
*No automatic handling of output direction based on connected cables.
*No monitor input selection. Only monitor volume control.
select the correct input (Don't mistake enabled sound for the correct input.)
The monitor will feedback audio to the lineout and hp out no matter if you have selected the correct input to the ADC. The monitor will provide sound for any valid input. This will result in free mixing when recording from the monitor input instead of mic/line because the monitor itself will provide the hardware mixing for you. Be aware that MIC inputs will give two channel mono. Only Linein will give real stereo.
Now for the not working part. Attempt to record from linein in the AE4 record window, the right channel is noise and the left channel is distorted. Even with the recommended HIFI 16bit Stereo++ mode at 48kHz.
Channels
Monitor
Gain
Inout
Output
Advanced settings - Debugging via serial port
* Options -> Soundcard In/Out
* Options -> SampleRate
* Options -> Preferences
F6 for Sample File List
Setting a grid is easy as is measuring the BPM by marking a section of the sample. Is your kick drum track "not in time" ? If so, you're stumped in AE4 as it has no fancy variable time signatures and definitely no 'track this dodgy rhythm' function like software of the nature of Logic has. So if your drum beat is freeform you will need to work in freeform mode. (Real music is free form anyway).
If the drum *is* accurate and you are just having trouble measuring the time, I usually measure over a range of bars and set the number of beats in range to say 16 as this is more accurate, Then you will need to shift the drum track to match your grid *before* applying the grid. (probably an iterative process as when the grid is active samples snap to it, and when inactive you cannot see it).
AE4 does have ARexx but the functions are more for adding samples at set offsets and starting playback / recording.
These are the usual features found in DAWs...
* Recording digital audio, midi sequencer and mixer
* virtual VST instruments and plug-ins
* automation, group channels, MIDI channels, FX sends and returns, audio and MIDI editors and music notation editor
* different track views
* mixer and track layout (but not the same as below)
* traditional two windows (track and mixer)
Mixing - mixdown
Could not figure out how to select what part I wanted to send to the aux, set it to echo and return. Pretty much the whole echo effect. Or any effect.
Take look at page17 of the manual.
When you open the EQ / Aux send popup window you will see 4 sends. Now from the menu choose the windows menu.
Menus->Windows-> Aux Returns Window
or press F5
You will see a small window with 4 volume controls and an effects button for each. Click a button and add an effects to that aux channel, then set it up as desired (note the reverb effect has a special AUX setting that improves its use with the aux channel, not compulsory but highly useful). You set the amount of 'return' on the main mix in the Aux Return window, and the amount sent from each main mixer channel in the popup for that channel. Again the aux sends are "prefade" so the volume faders on each channel do not affect them.
Tracking
Effects - fade in
To add some echoes to some vocals, tried to add an effect on a track but did not come out. This is made more complicated as I wanted to mute a vocal but then make it echo at the muting point. Want to have one word of a vocal heard and then echoed off. But when the track is mute the echo is cancelled out.
To correctly understand what is happening here you need to study the figure at the bottom of page 15 on the manual. You will see from that that the effects are applied 'prefade' So the automation you applied will naturally mute the entire signal.
There would be a number of ways to achieve the goal,
You have three real time effects slots, one for smoothing like so
Sample -> Amplify -> Delay
Then automate the gain of the amplify block so that it effectively mutes the sample just before the delay at the appropriate moment, the echo effect should then be heard.
Getting the effects in the right order will require experimentation as they can only be added top down and it's not obvious which order they are applied to the signal, but there only two possibilities, so it wont take long to find out.
Using MUTE can cause clicks to the Amplify can be used to mute more smoothly so that's a secondary advantage.
Signal Processing -
Overdub
[[#top|...to the top]]
===Office===
====Spreadsheet Leu====
Support for some xlsx, and ods functions
====Spreadsheet Ignition====
; Needs ABIv1 to be completed before more can be done
File formats supported
* ascii #?.txt and #?.csv (single sheets with data only).
* igs and TurboCalc(WIP) #?.tc for all sheets with data, formats and formulas.
There is '''no''' support for xls, xlsx, ods or uos ([http://en.wikipedia.org/wiki/Uniform_Office_Format Uniform Unified Office Format]) at the moment.
* Always use Esc key after editing Spreadsheet cells.
* copy/paste seems to copy the first instance only so go to Edit -> Clipboard to manage the list of remembered actions.
* Right mouse click on row (1 or 2 or 3) or column header (a or b or c) to access optimal height or width of the row or column respectively
* Edit -> Insert -> Row seems to clear the spreadsheet or clears the rows after the inserted row until undo restores as it should be...
Change Sheet name by Object -> Sheet -> Properties
Click in the cell which will contain the result, and click '''down arrow button''' to the right of the formula box at the bottom of the spreadsheet and choose the function required from the list provided. Then click on the start cell and click on the bottom right corner, a '''very''' small blob, which allows stretching a bounding box (thick grey outlines) across many cells This grey bounding box can be used to '''copy a formula''' to other cells.
Object -> Cell -> Properties to change cell format - Currency only covers DM and not $, Euro, Renminbi, Yen or Pound etc.
Shift key and arrow keys selects a range of cells, so that '''formatting can be done to all highlighted cells'''.
View -> Overview then select ALL with one click (in empty cell in the top left hand corner of the sheet).
Default mode is relative cell referencing e.g. a1+a2 but absolute e.g. $a$1+$a$2 can be entered.
* #sheet-name to '''absolute''' reference another sheet-name cell unless reference() function used.
;Graphs
use shift key and arrow keys to select a bunch of cells to be graph'ed making sure that x axes represents and y axes represents
* value() - 0 value, 1 percent, 2 date, 3 time, 4 unit ...
;Dates
* Excel starts a running count from the 1st Jan 1900 and Ignition starts from 1st Jan 1AD '''(maybe this needs to change)'''
Set formatting Object -> Cell -> Properties and put date in days
;Time
Set formatting Object -> Cell -> Properties and put time in seconds taken
;Database (to be done by someone else)
type - standard, reference (bezug), search criterion (suchkriterium),
* select a bunch of cells and Object -> Database -> Define to set Datenbank (database) and Felder (fields not sure how?)
* Neu (new) or loschen (delete) to add/remove database headings e.g. Personal, Start Date, Finish Date (one per row?)
* Object -> Database -> Index to add fields (felder) like Surname, First Name, Employee ID, etc. to ?
Filtering done with dbfilter(), dbproduct() and dbposition().
Activities with dbsum(), dbaverage(), dbmin() and dbmax().
Table sorting -
;Scripts (Arexx)
;Excel(TM) to Ignition - commas ''',''' replaced by semi-colons ''';''' to separate values within functions
*SUM(),
*AVERAGE(), MAX(), MIN(), INT(), PRODUCT(), MEDIAN(), VAR() becomes Variance(), Percentile(),
*IF(), AND, OR, NOT
*LEFT(), RIGHT(), MID() becomes MIDDLE(), LEN() becomes LENGTH(),
*LOWER() becomes LOWERCASE(), UPPER() becomes UPPERCASE(),
* DATE(yyyy,mm,dd) becomes COMPUTEDATE(dd;mm;yyyy),
*TODAY(), DAY(),WEEK(), MONTH(),=YEAR(TODAY()),
*EOMONTH() becomes MONTHLENGTH(),
*NOW() should be date and time becomes time only, SECOND(), MINUTE(), HOUR(),
*DBSUM() becomes DSUM(),
;Missing and possibly useful features/functions needed for ignition to have better support of Excel files
There is no Merge and Join Text over many cells, no protect and/or freeze row or columns or books but can LOCK sheets, no define bunch of cells as a name, Macros (Arexx?), conditional formatting, no Solver, no Goal Seek, no Format Painter, no AutoFill, no AutoSum function button, no pivot tables, (30 argument limit applies to Excel)
*HLOOKUP(), VLOOKUP(), [http://production-scheduling.com/excel-index-function-most-useful/ INDEX(), MATCH()], CHOOSE(), TEXT(),
*TRIM(), FIND(), SUBSTITUTE(), CONCATENATE() or &, PROPER(), REPT(),
*[https://acingexcel.com/excel-sumproduct-function/ SUMPRODUCT()], ROUND(), ROUNDUP(), *ROUNDDOWN(), COUNT(), COUNTA(), SUMIF(), COUNTIF(), COUNTBLANK(), TRUNC(),
*PMT(), PV(), FV(), POWER(), SQRT(), MODE(), TRUE, FALSE,
*MODE(), LARGE(), SMALL(), RANK(), STDEV(),
*DCOUNT(), DCOUNTA(), WEEKDAY(),
;Excel Keyboard [http://dmcritchie.mvps.org/excel/shortx2k.htm shortcuts needed to aid usability in Ignition]
<pre>
Ctrl Z - Undo
Ctrl D - Fill Down
Ctrl R - Fill right
Ctrl F - Find
Ctrl H - Replace
Ctrl 1 - Formatting of Cells
CTRL SHIFT ~ Apply General Formatting ie a number
Ctrl ; - Todays Date
F2 - Edit cell
F4 - toggle cell absolute / relative cell references
</pre>
====Document Scanning - Scandal====
Scanner usually needs to be connected via a USB port and not via a hub or extension lead.
Check in Trident Prefs -> Devices that the USB Scanner is not bound to anything (e.g. Bindings None)
If not found then reboot the computer and recheck.
Start Scandal, choose Settings from Menu strip at top of screen and in Scanner Driver choose the ?#.device of the scanner (e.g. epson2.device).
The next two boxes - leave empty as they are for morphos SCSI use only
or put ata.device (use the selection option in bigger box below) and Unit as 0 this is needed for gt68xx
* gt68xx - no editing needed in s/gt68xx.conf but needs a firmware file that corresponds to the scanner [http://www.meier-geinitz.de/sane/gt68xx-backend/ gt68xx firmwares] in sys:s/gt68xx.
* epson2 - Need to edit the file epson2.conf in sys/s that corresponds to the scanner being used
'''Save''' the settings but do not press the Use button (aros freezes)
Back to the Picture Scan window and the right-hand sections.
Click on the '''Information''' tab and press Connect button and the scanner should now be detected.
Go next to the '''Scanner''' tab next to Information Tab should have Color, Black and White, etc. and dpi settings now. Selecting an option Color, B/W etc. can cause dpi settings corruption (especially if the settings are in one line) so set '''dpi first'''. Make sure if Preview is set or not.
In the '''Scan''' Tab, press Scan and the scanner will do its duty.
Be aware that nothing is saved to disk yet.
In the Save tab, change format JPEG, PNG or IFF DEEP. Tick incremental and base filename if necessary and then click the Save button. The image will now be saved to permanent storage.
The driver ignores a device if it is already bond to another USB class, rejects it from being usable. However, open Trident prefs, select your device and use the right mouse button to open. Select "NONE" to prevent poseidon from touching the device. Now save settings. It should always work now.
[[#top|...to the top]]
===Emulators===
==== Amiberry ====
==== Amiga Emu - Janus UAE ====
With Amibridge, AROS attempts to make the UAE emulator seem embedded within but it still is acting as an app
There is no dynarec m68k for each hardware that Aros supports or direct patching of motorola calls to AROS hardware accelerated ones unless the emulator has that included
Try starting Janus with a priority of -1 like this little script:
<pre>
cd sys:system/AmiBridge/emulator
changetaskpri -1
run janus-uae -f my_uaerc.config >nil:
cd sys:prefs
endcli
</pre>
This stops Janus hogging all the CPU time.
===Miscellaneous===
====Screensaver Blanker====
Most blankers on the amiga (i.e. aros) run as commodities (they are in the tools/commodities drawer). Double click on blanker.
Control is with an app called Exchange, which you need to run first (double click on app) or run QUIET sys:tools/commodities/Exchange >NIL: but subsequently can use (Cntrl Alt h).
Icon tool types (may be broken) or command line options
<pre>
seconds=number
</pre>
Once the timing is right then add the following to s:icaros-sequence or s:user-startup
e.g. for 5 minutes
run QUIET sys:tools/commodities/Blanker seconds=300 >NIL:
*[http://archives.aros-exec.org/index.php?function=showfile&file=graphics/screenblanker/gblanker.i386-aros.zip Garshneblanker] can make Aros unstable or slow. Certain blankers crashes in Icaros 2.0.x like Dragon, Executor.
*[ Acuario AROS version], the aquarium screen saver.
Startup: extras:acuariofv-aros/acuario
Kill: c:break name=extras:acuariofv-aros/acuario
Managed to start Acuario by the Executor blanker.
<pre>
cx_priority=
cx_popkey= ie CX_POPKEY="Shift F1"
cx_popup=Yes or No
</pre>
<pre>
Qualifier String Input Event Class
---------------- -----------------
"lshift" IEQUALIFIER_LSHIFT
"rshift" IEQUALIFIER_RSHIFT
"capslock" IEQUALIFIER_CAPSLOCK
"control" IEQUALIFIER_CONTROL
"lalt" IEQUALIFIER_LALT
"ralt" IEQUALIFIER_RALT
"lcommand" IEQUALIFIER_LCOMMAND
"rcommand" IEQUALIFIER_RCOMMAND
"numericpad" IEQUALIFIER_NUMERICPAD
"repeat" IEQUALIFIER_REPEAT
"midbutton" IEQUALIFIER_MIDBUTTON
"rbutton" IEQUALIFIER_RBUTTON
"leftbutton" IEQUALIFIER_LEFTBUTTON
"relativemouse" IEQUALIFIER_RELATIVEMOUSE
</pre>
<pre>
Synonym Synonym
String Identifier
------- ----------
"shift" IXSYM_SHIFT /* look for either shift key */
"caps" IXSYM_CAPS /* look for either shift key or capslock */
"alt" IXSYM_ALT /* look for either alt key */
Highmap is one of the following strings:
"space", "backspace", "tab", "enter", "return", "esc", "del",
"up", "down", "right", "left", "f1", "f2", "f3", "f4", "f5",
"f6", "f7", "f8", "f9", "f10", "help".
</pre>
[[#top|...to the top]]
==== World Construction Set WCS (Version 2.031) ====
WCS is a fractal landscape software such as Scenery Animator, Vista Pro and Panorama. Open sourced February 2022, World Construction Set [https://3dnature.com/downloads/legacy-software/ legally and for free] and [https://github.com/AlphaPixel/3DNature c source].
Announced August 1994 this version dates from April 1996 developed by Gary R. Huber and Chris "Xenon" Hanson" from Questar
<pre>
Assign "WCSProjects:" "Volume:Dir/Dir/WCSProjects"
Assign "WCSFrames:" "Volume:Dir/Dir/WCSFrames"
</pre>
<pre>
Load projects .proj by accessing pull down menu Project -> Open then click on CanyonSunset.proj
OK to changing .par file and enlarge Status Log window to show what is happening
Render by pull down menu Modules -> Render with End equal 1 not 300 then click bottom middle button Render
</pre>
[https://www.youtube.com/watch?v=CxQDmf1ZWG0 Youtube walkthrough of above], [], [],
Also try working with the already built file ColoDemo - Then open with the drop-down menu: Project/Open, then WCSProject:ColoDemo.proj
Which allows you to use altimetric DEM files already included and Loading scene parameters from ColoDemo.par
Once this is done, save everything with a new name to start working exclusively on your project.
Then drop-down menu and select Save As ("NewName".proj name), then drop-down menu to open parameter and select Save All ( .par name)
After launching the software, there is a the Module Control Panel composed of five icons.
It is a dock type shortcut of the first few functions of the drop-down menu
*Database - Load (#?.proj), Append, Create, Edit, Save, Dir List (of WCSProject drawer),
*Data Ops - Extract / Convert Interp DEM, Import DLG, DXF, WDB and export LW map 3d formats
*Map View - Database file Loader leading to Map View Control with option to the Database Editor
*Parameters - Editor for Motion, Color, Ecosystem, Clouds, Waves, management of altimeter files DEM, sclock settings etc
*Render - rendering terrain
These are more in the pull down menu but not in the dock
*Motion Editor
*Color Editor
*Ecosys Editor
Simple minimal workflow
*Load database (1st icon - 1st)
*Set parameters and save .par file (4th icon)
*Render scene (5th icon)
[https://www.youtube.com/watch?v=ZbTwwR2qcc4 Youtube], [],
<pre>
.proj new project name which creates a drawer of additional files
.binary array, ascii array .xyz , z buffer, DTED .dt0, vista 1990s dem, iff conversion
.Obj with .elev, .frd with .hdr maps, - digital elevation model (DEM) is a 3D representation of elevation data in various formats
USGS 7.5MinDEM,
.par
</pre>
Since for the time being no project is loaded, a query window indicates a procedural error when clicking on the rendering icon (right end of the bar). The menu is quite traditional; it varies according to the activity of the windows. To display any altimetric file in the "Mapview" (third icon of the panel), There are three possibilities:
* Loading of a demonstration project.
* The import of a DEM file, followed by texturing and packaging from the "Database-Editor" and the "Color-Editor".
* The creation of an altimetric file in WCS format, then texturing.
The altimeter file editing (display in the menu) is only made possible if the "Mapview" window is active.
The software is made up of many windows and won't be able to describe them all. Know that "Color-Editor" and the "Data-Editor" comprise sufficient functions for obtaining an almost real rendering quality. You have the possibility of inserting vector objects in the "Data-Editor" (creation of roads, railways, etc.)
The Map View (MapView) window
*Database - Objects and Topos
*View - Align, Center, Zoom, Pan, Move
*Draw - Maps and distance
*Object - Find, highlight, add points, conform topo, duplicate
*Motion - Camera, Focus, path, elevation
*Windows - DEM designer, Cloud (.cld) and wave (.wve) editor,
You will notice that by selecting this window and simply moving the pointer to various points on the map you will see latitude and longitude values change, along with the height.
Drop-down menu and Modules, then select MapView and change the width of the window with the map to arrange it in the best way on the screen. With the Auto button the center. Window that then displays the contents of my DEM file, in this case the Grand Canyon. MapView allows you to observe the shape of the landscape from above
ZOOM button
Press the Zoom button and then with the pointer position on a point on the map, press the left mouse button and then move to the opposite corner to circumscribe the chosen area and press the left mouse button again, then we will see the enlarged area selected on the map.
Would add that there is a box next to the Zoom button that allows the direct insertion of a value which, the larger it is, the smaller the magnification and the smaller the value, the stronger the magnification. At each numerical change you will need to press the DRAW button to update the view.
PAN button
Under Zoom you will find the PAN button which allows you to move the map at will in all directions by the amount you want. This is done by drawing a line in one direction, then press PAN and point to an area on the map with the pointer and press the left mouse button. At this point, leave it and move the pointer in one direction by drawing a line and press the left mouse button again to trigger the movement of the map on the screen (origin and end points). Do some experiments and then use the Auto button immediately below to recenter everything.
There are parameters such as TOPO, VEC to be left checked and immediately below one that allows different views of the map with the Style command (Single, Multi, Surface, Emboss, Slope, Contour), each with its own particularities to highlight different details.
Now you have the first basics to manage your project visually on the map. Close the MapView window and go further...
Let's start working on ECOSYSTEMS
If we select Emboss from the MapView Style command we will have a clear idea of how the landscape appears, realizing that it is a predominantly desert region of our planet. Therefore we will begin to act on any vegetation present and the appearance of the landscape.
With WCS we will begin to break down the elements of the landscape by assigning defined characteristics. It will be necessary to determine the classes of the ecosystem (Class) with parameters of Elevation Line (maximum altitude), Relative Elevation (arrangement on basins or convexities with respectively positive or negative parameters), Min Slope and Max Slope (slope). WCS offers the possibility of making ecosystems coexist on the same terrain with the UnderEco function, by setting a Density value.
Ecosys Ecosystem Editor
Let's open it from Modules, then Ecosys Editor. In the left pane you will find the list of ecosystems referring to the files present in our project. It will be necessary to clean up that box to leave only the Water and Snow landscapes and a few other predefined ones. We can do this by selecting the items and pressing the Remove button (be careful not for all elements the button is activated, therefore they cannot all be eliminated).
Once this is done we can start adding new ecosystems. Scroll through the various Unused and as soon as the Name item at the top is activated allowing you to write, type the name of your ecosystem, adding the necessary parameters.
<pre>
Ecosystem1: Name: RockBase Class: Rock Density: 80 MinSlope: 15 UnderEco: Terrain
Ecosystem2: Name: RockIncl Clss: Rock Density: 80 MinSlope: 30 UnderEco: Terrain
Ecosystem3: Name: Grass Class Low Veg Density: 50 Height: 1 Elev Line : 1500 Rel El Eff: 5
Max Slope: 10 – Min Slope: 0 UnderEco: Terrain
Ecosistema4: Name: Shrubs Class: Low Veg Density: 40 Height: 8 Elev Line: 3000
Rel El Eff: -2 Max Slope: 20 Min Slope : 5 UnderEco: Terrain
Ecosistema5: Name: Terrain Class: Ground Density: 100 UnderEco: Terrain
</pre>
Now we need to identify an intermediate ecosystem that guarantees a smooth transition between all, therefore we select as Understory Ecosystem the one called Terrain in all ecosystems, except Snow and Water .
Now we need to 'emerge' the Colorado River in the Canyon and we can do this by raising the sea level to 900 (Sea Level) in the Ecosystem called Water.
Please note that the order of the ecosystem list gives priority to those that come after. So our list must have the following order: Water, Snow, Shrubs, RockIncl, RockBase, Terrain. It is possible to carry out all movements with the Swap button at the bottom. To put order you can also press Short List. Press Keep to confirm all the work done so far with Ecosystem Editor.
Remember every now and then to save both the Project 'Modules/Save' and 'Parameter/Save All'
EcoModels are made up of .etp .fgp .iff8 for each model
Color Editor
Now it's time to define the colors of our scene and we can do this by going to Modules and then Color Editor. In the list we focus on our ecosystems, created first.
Let's go to the bottom of the list and select the first white space, assigning the name 'empty1', with a color we like and then we will find this element again in other environments... It could serve as an example for other situations!
So we move to 'grass' which already exists and assign the following colors: R 60 G 70 B50
<pre>
'shrubs': R 60 G 80 B 30
'RockIncl' R 110 G 65 B 60
'RockBase' R 110 G 80 B 80
' Terrain' R 150 G 30 B 30
<pre>
Now we can work on pre-existing colors
<pre>
'SunLight' R 150 G 130 B 130
'Haze and Fog' R 190 G 170 B 170
'Horizon' R 209 G 185 B 190
'Zenith' R 140 G 150 B 200
'Water' R 90 G 125 B 170
</pre>
Ambient R 0 G 0 B 0
So don't forget to close Color Editor by pressing Keep.
Go once again to Ecosystem Editor and assign the corresponding color to each environment by selecting it using the Ecosystem Color button. Press it several times until the correct one appears. Then save the project and parameters again, as done previously.
Motion Editor
Now it's time to take care of the framing, so let's go to Modules and then to Motion Editor. An extremely feature-rich window will open. Following is the list of parameters regarding the Camera, position and other characteristics:
<pre>
-Camera Altitude: 7.0
-Camera Latitude: 36.075
-Camera Longitude: 112.133
-Focus Attitude: -2.0
-Focus Latitude: 36.275
-Focus Longitude: 112.386
-Camera : 512 → rendering window
-Camera Y: 384 → rendering window
-View Arc: 80 → View width in degrees
-Sun Longitude: 172
-Sun Latitude: -0.9
-Haze Start: 3.8
-Haze Range: 78, 5
</pre>
As soon as the values shown in the relevant sliders have been modified, we will be ready to open the CamView window to observe the wireframe preview. Let's not consider all the controls that will appear.
Well from the Motion Editor if you have selected Camera Altitude and open the CamView panel, you can change the height of the camera by holding down the right mouse button and moving the mouse up and down. To update the view, press the Terrain button in the adjacent window. As soon as you are convinced of the position, confirm again with Keep. You can carry out the same work with the other functions of the camera, such as Focus Altitude...
Let's now see the next positioning step on the Camera map, but let's leave the CamView preview window open while we go to Modules to open the window at the same time MapView. We will thus be able to take advantage of the view from the other together with a subjective one.
From the MapView window, select with the left mouse button and while it is pressed, move the Camera as desired. To update the subjective preview, always click on Terrain.
While with the same procedure you can intervene on the direction of the camera lens, by selecting the cross and with the left button pressed you can choose the desired view. So with the pressure of Terrain I update the Preview. Possibly can enlarge or reduce the Map View using the Zoom button, for greater precision.
Also write that the circle around the cameras indicates the beginning of the haze, there are two types (haze and fog) linked to the altitude. Would also add that the camera height is editable through the Motion Editor panel.
The sun
Let's see that changing the position of the sun from the Motion Editor. Press the SUN button at the bottom right and set the time and the date. Longitude and latitude are automatically obtained by the program. Always open the View Arc command from the Motion Editor panel, an item present in the Parameter List box.
Once again confirm everything with Keep and then save again.
Animation
The animation part is not left-back and also occupies a window. The settings possibilities are enormous. A time line with dragging functions ("slide", "drag"...) comparable to that of LightWave completes this window.
A small window is available for positioning the stars as a function of a date, in order to vary the seasons and their various events (and yes...).
At the bottom of the "Motion-Editor", a "cam-view" function will give you access to a control panel. Different preview modes are possible. The rendering is also accessible through a window. No less than nine pages compose it. At this level, you will be able to determine the backup name of your images ("path"), the type of texture to be calculated, the resolution of the images, activate or deactivate functions such as the depth buffer ("zbuffer"), the blur, the background image, etc.
Once all these parameters have been set, all you have to do is click on the "Render" button.
For rendering go to Modules and then Render. Select the resolution, then under IMA select the name of the image. Move to FRA and indicate the level of fractal detail which of 4 is quite good. Then Keep to confirm and then reopen the window, pressing Render you will see the result. The image will be opened with any viewing program.
Strengths:
* Multi-window.
* Quality of rendering.
* Accuracy.
* Opening, preview and rendering on CyberGraphX screen.
* Extract / Convert Interp DEM, Import DLG, DXF, WDB and export LW map 3d formats
* The "zbuffer" function.
Weaknesses:
* No OpenGL management
* Calculation time.
* No network computing tool.
====Writing CD / DVD - Frying Pan====
Can be backup DVDs (4GB ISO size limit due to use of FileInfoBlock), create audio cds from mp3's, and put .iso files on discs
If using for the first time - click Drive button and Device set to ata.device and unit to 0 (zero)
Click Tracks Button - Drive 1 - Create New Disc or Import Existing Disc Image (iso bin/cue etc.) - Session File open cue file
If you're making a data cd, with files and drawers from your hard drive, you should be using the ISO Builder.. which is the MUI page on the left. ("Data/Audio Tracks" is on the right).
You should use the "Data/Audio tracks" page if you want to create music cds with AIFF/WAV/MP3 files, or if you download an .iso file, and you want to put it on a cd.
Click WRITE Button - set write speed - click on long Write button
Examples
Easiest way would be to burn a DATA CD, simply go to "Tracks" page "ISO Builder" and "ADD" everything you need to burn.
On the "Write" page i have "Masterize Disc (DAO)", "Close Disc" and "Eject after Write" set.
One must not "Blank disc before write" if one uses a CDR
AUDIO CD from MP3's are as easy but tricky to deal with. FP only understands one MP3 format, Layer II, everything else will just create empty tracks
Burning bootable CD's works only with .iso files. Go to "Tracks" page and "Data/Audio Tracks" and add the .iso
====odf====
Every ODF file is a collection of several subdocuments within a package (ZIP file), each of which stores part of the complete document.
* content.xml – Document content and automatic styles used in the content.
* styles.xml – Styles used in the document content and automatic styles used in the styles themselves.
* meta.xml – Document meta information, such as the author or the time of the last save action.
* settings.xml – Application-specific settings, such as the window size or printer information.
To read document follow these steps:
* Extracting .ods file.
* Getting content.xml file (which contains sheets data).
* Creating XmlDocument object from content.xml file.
* Creating DataSet (that represent Spreadsheet file).
* With XmlDocument select “table:table” elements, and then create adequate DataTables.
* Parse child’s of “table:table” element and fill DataTables with those data.
* At the end, return DataSet and show it in application’s interface.
To write document follow these steps:
* Extracting template.ods file (.ods file that we use as template).
* Getting content.xml file.
* Creating XmlDocument object from content.xml file.
* Erasing all “table:table” elements from the content.xml file.
* Reading data from our DataSet and composing adequate “table:table” elements.
* Adding “table:table” elements to content.xml file.
* Zipping that file as new .ods file.
XLS file format
The XLS file format contains streams, substreams, and records.
These sheet substreams include worksheets, macro sheets, chart sheets, dialog sheets, and VBA module sheets.
All the records in an XLS document start with a 2-byte unsigned integer to specify Record Type (rt), and another for Count of Bytes (cb). A record cannot exceed 8224 bytes. If larger than the rest is stored in one or more continue records.
* Workbook stream
**Globals substream
***BoundSheet8 record - info for Worksheet substream i.e. name, location, type, and visibility. (4bytes the lbPlyPos FilePointer, specifies the position in the Workbook stream where the sheet substream starts)
**Worksheet substream (sheet) - Cell Table - Row record - Cells (2byte=row 2byte=column 2byte=XF format)
***Blank cell record
***RK cell record 32-bit number.
***BoolErr cell record (2-byte Bes structure that may be either a Boolean value or an error code)
***Number cell record (64-bit floating-point number)
***LabelSst cell record (4-byte integer that specifies a string in the Shared Strings Table (SST). Specifically, the integer corresponds to the array index in the RGB field of the SST)
***Formula cell record (FormulaValue structure in the 8 bytes that follow the cell structure. The next 6 bytes can be ignored, and the rest of the record is a CellParsedFormula structure that contains the formula itself)
***MulBlank record (first 2 bytes give the row, and the next 2 bytes give the column that the series of blanks starts at. Next, a variable length array of cell structures follows to store formatting information, and the last 2 bytes show what column the series of blanks ends on)
***MulRK record
***Shared String Table (SST) contains all of the string values in the workbook.
ACCRINT(), ACCRINTM(), AMORDEGRC(), AMORLINC(),
COUPDAYBS(), COUPDAYS(), COUPDAYSNC(), COUPNCD(), COUPNUM(), COUPPCD(),
CUMIPMT(), CUMPRINC(),
DB(), DDB(), DISC(),
DOLLARDE(), DOLLARFR(),
DURATION(), EFFECT(), FV(), FVSCHEDULE(),
INTRATE(), IPMT(), IRR(), ISPMT(), MDURATION(), MIRR(), NOMINAL(), NPER(), NPV(),
ODDFPRICE(), ODDFYIELD(), ODDLPRICE(), ODDLYIELD(),
PMT(), PPMT(), PRICE(), PRICEDISC(), PRICEMAT(), PV(), RATE(),
RECEIVED(), SLN(), SYD(), TBILLEQ(), TBILLPRICE(), TBILLYIELD(),
VDB(), XIRR(), XNPV(), YIELD(), YIELDDISC(), YIELDMAT(),
<pre>
</pre>
<pre>
</pre>
<pre>
</pre>
{{BookCat}}
pnow7imlb96xfhdk6aet0940kgxzubn
User talk:Pi zero/Archive 1
3
238374
4640136
4410240
2026-06-13T15:33:47Z
ShakespeareFan00
46022
4640136
wikitext
text/x-wiki
'''Please do not edit the contents of this page. It is for historical reference only.'''
{{-}}
----
__TOC__
== Welcome message ==
Hello, and '''[[Wikibooks:Welcome, newcomers|welcome]]''' to [[Wikibooks]]!
Here are some tips to [[Help|help]] you get started:
* To learn the wiki-markup-language syntax, see [[Help:Editing]].
* Make sure to sign your posts and comments with four tildes, like this: ~~~~
**There is a box at the top of the edit window (if javascript is enabled on your browser) that will insert it too (looks like part of a signature). This will let others know who left it, and make it easy to reply back to you.
* Remember to conduct any editing experiments in the [[Wikibooks:Sandbox|sandbox]].
* You can tell the community something about yourself in your userpage.
** You can get to this page by clicking the tab at the top of the page labeled with your registered username.
* Wikibooks is a collection of open-source textbooks. ([[WB:WIW|What is Wikibooks]]).
* If you are a '''Wikipedian''', see [[Wikibooks:Wikibooks for Wikipedians]] for a primer on how things work here (it's a little different).
** If you want to base your work here on materials from Wikipedia, please use [[WB:RFI]] (requests for importation) to bring the material over in compliance with the GFDL.
* If you're an '''instructor''' and plan on using Wikibooks for a class project, see [[Wikibooks:Guidelines for class projects]]
* Please say hello at the [[Wikibooks:Reading room|Reading Room]] with any questions or ideas.
* Eventually, you might want to read the [[Wikibooks:Manual of Style|Manual of Style]] and [[Wikibooks:Policies and guidelines|Policies and Guidelines]].
** Help us by participating in policy and guideline creation.
** Please take a look at [[Wikibooks:Naming policy]] before starting a new book.
* Remember to maintain a [[Wikibooks:Neutral point of view|Neutral point of view]].
* Explore, [[Wikibooks:Be bold in updating pages|be bold in editing pages]], and have fun!
You will find more resources in [[Wikibooks:Community Portal|Community Portal]]. If you want to ask a question, visit the [[Wikibooks:Study help desk|Study help desk]], the [[Wikibooks:Reading room|Reading Room]], [[Wikibooks:IRC channels|IRC channel]] or [[User_talk:Panic2k4|ask me personally on my talk page]]. For site news, see the [[WB:BB|Bulletin board]]. It might be a good idea to add that page to your "[[Special:Watchlist|watchlist]]" so that you can see when any new information is posted there. You can do that by clicking the tab labeled "watch" at the top of the page.
Good luck! --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 16:20, 11 December 2007 (UTC)
== esoteric templates ==
You mentioned that you have been working on esoteric templates lately. Would you be interesting to helping to improve [[Help:Advanced templates]]? I recently scrapped what was there and started fresh. What was there was largely outdated, unmaintained and very hard to follow. I think having multiple eyes working on it could help to make understanding esoteric templates much easier for the average person. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 02:09, 28 January 2009 (UTC)
:For what little my input might be worth (and what little time I actually have to devote to yet another part of wikibooks on any given week), I'm certainly willing to try to be helpful. (My fatuous remark over at template_talk:wikipedia was, inasmuch as it served any useful purpose, a way of saying that I'm currently unlikely to forget to flush the cache when testing a template.)
:What is meant to be happening? There seem to be three pages still with content, all with merge tags — and BTW each merge tag unfortunately links to the talk page of ''that page'', so that even the two that are proposed to merge with each other wouldn't have their merges discussed in a single place. To my mind, all the merge tags would ideally link to a single section of a single talk page. I've also been reviewing [[Wikibooks:Votes for deletion/Help:A quick guide to templates]], but that too has the familiar feeling of walking into the middle of a complicated conversation... --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 12:50, 28 January 2009 (UTC)
:: For what its worth, I was actually thinking of FlaggedRevs' caching for stable revisions which might of effected the use of a template on some page when I made the remark about revision cache in my edit summary to {{tlx|wikipedia}}.
:: Besides the proposals to delete some help pages and some discussion that has happened on [[Help talk:Contents]] there isn't really anything going on discussion-wise that I know of. I think some goals are to improve the help pages to make them current and useful for new users and contributors of Wikibooks, and to use a consistent style for pages along the way. So far this seems to have taken on the form of rewriting completely or large portions of help pages, trying to keep explanations simple, and trying to use diagrams, tables, examples, etc. that are self-explanatory.
:: I think the merge templates use to link to the same discussion page, I'm not sure what's happened, I guess I'll look into it. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 13:45, 28 January 2009 (UTC)
I've noticed that on your [[Conlang]] pages, your navigation links are not working. Not being familiar with the "esoteric" templates you created, I couldn't say whether it's your list of pages or the template that is the problem. However, I thought I'd point it out. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 17:05, 18 June 2009 (UTC)
: Adding the category markup to Conlang/Navlist broke the navboxes, and the noincludes I added later didn't fix it because they weren't noinclusive enough. The immediate problem is fixed now; thanks. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 19:00, 18 June 2009 (UTC)
== Noincludes around BookCat ==
I don't think you need them. It should evaluate properly when the template it's put in is transcluded onto a book's page. The additional benefit is that helps categorize any new pages that are created with the book template used in them. Correct me if I've missed an instance where this isn't desirable, though. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 20:53, 24 June 2009 (UTC)
: Depends on where the template will be used. For example, if a template is used inside a link, extra markup in the expansion will disable the link (which is what happened when category markup was added to [[Conlang/Navlist]]). If a template is used on a talk page, there shouldn't be a call to BookCat in the expansion, because BookCat will file the talk page in {{nowrap|<tt>Category:Talk:My Book</tt>}}. (If there's a simple way to detect talk spaces, we could modify BookCat to suppress output when called from those.) The dicier the template, the more cautious I'd be inclined to be about it. Some of the techniques being used in [[False Friends of the Slavist]] are fairly dicey. I'm downright paranoid about Navlist.
: That said, you're right, there should be at least a few of those False Friends of the Slavist templates that don't need the noincludes; the sheer mind-numbing repetition of all those {{nowrap|<tt>Template:FFWhatever</tt>}}'s has had me just cutting and pasting the same generic markup onto ''everything''. I'll think about which FF templates are safe to de-noinclude. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 22:40, 24 June 2009 (UTC)
::I've changed the code so that only Wikijunior and the main namespace get the standard BookCat code, with the Template: and Category: namespaces still getting their custom code. No worries about any of the namespaces that aren't specifically defined in {{tlx|BookCat}} anymore. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 23:26, 24 June 2009 (UTC)
::: There's also the <tt>Cookbook:</tt> namespace (I'd forgotten about that myself). I think I'd recommend listing excluded cases rather than listing included ones. To exclude talk spaces, how about this: Wrap the old version of BookCat markup — the one with just three cases, Template Category and #default — in a conditional that compares FULLPAGENAME to TALKPAGENAME, and does nothing if they're the same.
:::: <tt><nowiki>{{#ifeq:{{FULLPAGENAME}}|{{TALKPAGENAME}}|| ... }}</nowiki></tt>
::: Another specific exception might be made, I suppose, for <tt>Subject:</tt> space. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 00:48, 25 June 2009 (UTC)
:::: I don't know why it would be used in any of those namespaces, but I suppose it can't hurt. [[Image:Yes_check.svg|15px| ]] '''Done''' -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 01:01, 25 June 2009 (UTC)
== [[Wikijunior:Languages/Portuguese]] ==
I've reworded, corrected and extended the information. See if you agree with the changes. I also attempted to transfer to the content the notion that people were not directly forced to learn Portuguese and that no coordination of efforts was made to promote the language (or is still being made at least in level equal to other languages like English, French or even Spanish). --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 07:12, 25 January 2010 (UTC)
One thing that is still missing is the [[w:Flag of the Community of Portuguese Language Countries]] (it isn't on Wikimedia Commons) and [[w:Reforms of Portuguese orthography]] that to my understanding is now rectified (the Wikipedia article doesn't reflect that). --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 07:23, 25 January 2010 (UTC)
Made also a small change to the description of colonization on the [[Wikijunior:Languages/French]] page. The later English colonization was not as peaceful, even in the long run, but it was too harsh a wording, used in part what was added to the Portuguese page and made a distinction to North America. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 07:33, 25 January 2010 (UTC)
== [[Template:Conworld/Sub-book]] ==
How did my change mess up formatting? It's a box floating to the side and I checked several of the pages using it and didn't see any problems. Can you point me to a page it messed up? -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 15:20, 23 April 2010 (UTC)
:I observed a couple of anomalies whose specific common cause, if they have one, is unclear. (Keep in mind — this occasionally matters — that I'm viewing these pages with Javascript turned off, which is the way I almost always operate.) [[Conhistory]] ended up with text overlapping with the colored border of the box, but I might not have noticed that if I hadn't gone looking; what I immediately checked was [[Conlang]] (of course), and it had wrecked the layout there. Instead of some text on the left, the flag image in the middle, and a stack of two notices on the right (with their blue borders effectively blending into one), it came out as a clutter of three boxes of miscellaneous height and style strung out horizontally all the way across the top of the page. Besides which, the ambox had smaller text — if I hadn't found problems on another transcluding page I'd probably have customized Conlang to use mbox-side directly.
:What was the motive for switching to ambox? --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 15:35, 23 April 2010 (UTC)
::I noticed you put comments on the talk page of the template. I've responded there with explanations for possible formatting errors and the motivation for the change. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 15:44, 23 April 2010 (UTC)
== What is Wikibooks ==
Just a small point regarding the last change. The bit "...such as proposing theories and solutions..." is problematic since solution based on established theories and practices are good content. I know the difficulty of coming to a consistent text, but that section is becoming too verbose and redundant on the affirmations it makes without providing any good clarification. In that regard I think the examples of unwanted content should be moved to the back of the section and "solutions" (the word) be removed (I can't come up with a good substitute that would make it less objectionable, unless extending the text even further to provide the distinction, the text already points to "If you have done primary research on a topic, publish your results in normal peer-reviewed journals, or elsewhere on the web,"). I will tweak that last bit. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 02:11, 31 May 2010 (UTC)
See if you agree or see any problem... --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 02:26, 31 May 2010 (UTC)
Seemingly the use of "seem", seems problematic. I seem to, in a seemly manner, avoid it most of the time. The word and its relatives. But seemingly it is still very popular, if badly used most of the time. Do you know if the subject is well covered on the [[Subject:English language]] ? Can you point me to a good location. Most google searches I made on the subject point to extremely convoluted or unreliable discussions. Thanks. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 07:19, 1 June 2010 (UTC)
:There's nothing special about the verb ''to seem''. The third person plural is "seem" (as in "they seem"), while the third person singular is "seems" (as in "it seems"). "Some bugs" is a third person plural subject, so it takes the third person plural form of the verb.
{|
|-
|
| style="color: green" | '''Right:'''
| Some bugs seem to be, there.
|-
|
| style="color: green" | '''Right:'''
| There seem to be some bugs.
|-
|
| style="color: red" | '''Wrong:'''
| Some bugs seems to be, there.
|-
|
| style="color: red" | '''Wrong:'''
| There seems to be some bugs.
|}
:The wince-worthily bad grammar of "There seems to be some bugs" is the sort of thing that one can often forgive in ''spoken'' English, on the grounds that the speaker started out by speaking the first part of the sentence, and didn't plan out the end of the sentence until they'd already committed to the first part — so that the singular verb was already "out of their mouth" (or at least, on its way down the neural pipeline thereto) before the plural subject had been chosen. "There seems to be...", and only after having already said that, "some bugs". There is no such excuse when writing, though. (Much of the electronic text on the Internet is, in effect, transcribed speech rather than "writing" in the traditional sense of "formal writing". The key difference is that traditional writing is composed by an iterative process that is able to apprehend the whole, and thus avoid this sort of lag-based subject–verb disagreement.)
:In the hope of simply ''avoiding'' the immediate practical problem, I've proposed a rephrasing of the sentence that doesn't use the verb ''to seem''. I'm only guessing that your difficulty (and, apparently, Thenub's) is tied to that verb. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 12:07, 1 June 2010 (UTC)
==Grammar==
Hi, I am not quite sure how, but I seemed to have been editing an old version when I changed your sentence at [[:Category:Pages where template include size is exceeded]] with the explanation "grammar". My face is even more red when I realized the version I put up wasn't quite correct. As the british say, "Good show". [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 17:30, 1 June 2010 (UTC)
:This is, I think, the second time I've heard of an incident on Wikibooks in which it seemed that somehow an old version was edited. By an admin, I'm pretty sure (it's an awfully vague memory — Mike.lifeguard? Darklama? I have a feeling it might have been before Adringola's time). --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 20:41, 1 June 2010 (UTC)
::I think that was me. It was incredibly embarrassing too (which begs the question - ''why am I admitting it?'' ;-) --[[User:Jomegat|Jomegat]] ([[User talk:Jomegat|talk]]) 23:05, 2 June 2010 (UTC)
::: I think the answer might be that misery loves company. To be honest I have been sleeping an average of 4 hours a night for the past few weeks. This makes me suspect it is not so much a software issue as it is me... [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 07:33, 3 June 2010 (UTC)
== I nominated you for adminship ==
I nominated you for adminship [[Wikibooks:Requests_for_permissions#Pi_zero.C2.A0.28talk.C2.A0.7C.C2.A0email.C2.A0.7C.C2.A0contribs.C2.A0.7C.C2.A0logs.C2.A0.7C.C2.A0rights.29_.28Admin.29|here]]. I believe that you will use admin tools for the use of Wikibooks. [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 13:02, 2 June 2010 (UTC)
==Welcome to the team, admin!==
[[File:Admin T-shirt.PNG|right|thumb|200px|A bit of Wikipedia culture!]]
Thanks for agreeing to help with [[WB:ADMIN|project maintenance]]. There are several scripts you may be interested in using to make common administrative tasks easier. All can be enabled on the ''Gadgets'' tab of ''[[Special:Preferences|my preferences]]'':
*[[User:Mike.lifeguard/TW|Twinkle Speedy]]
*Range and wildcard contributions
*Modify rollback
*AJAX patrolling
*Clean delete reasons
*Autodelete links
As well, you may wish to join us in [[WB:IRC|IRC]] at [[irc:wikibooks|#wikibooks]] for work and play, or on the [[WB:ML|mailing list]] [[mail:textbook-l|textbook-l]]. If you need help with the tools, feel free to leave a message on my talk page.
— <span style="color:#4B0082; font-weight:bold;">[[User:Mike.lifeguard|mikelifeguard]]@[[User talk:Mike.lifeguard|enwikibooks]]:~$ </span> 15:29, 11 June 2010 (UTC)
: Thanks. (<gulp>) --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 21:14, 11 June 2010 (UTC)
::Congrats! [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 00:41, 12 June 2010 (UTC)
== Anchor ==
{{tl|shortcut}} adds an anchor to the page at the location it's specified at, using the shortcut value specified. – [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 16:16, 13 June 2010 (UTC)
:Yes, I noticed that, and experimented with it. However, it doesn't go to the top of the section, but awkwardly to a point slightly further down on the page, just below the top of the shortcut box (like [[Wikibooks:What is Wikibooks#WB:SOURCE|this]]). I was trying it out because it allows for more robust redirects and because it allows shortcuts that use # (like <code>WB:WIW#OR</code> and so on); but it's got a nasty side-effect. When you edit a section with an anchor in its title, the anchor markup is included in the default edit summary. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 16:45, 13 June 2010 (UTC)
== [[Wikibooks:Reading room/Technical_Assistance#Turn_off_.22unreviewed.22_markers_for_a_specific_wikibook.3F]] ==
Hi, I wonder what the changes are at Wikinews about FlaggedRevs. Please comment there. Thanks [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 14:44, 15 June 2010 (UTC)
== A new maintenance template? ==
It seems to be an organizational weakness of the way we have things set up that {{nowrap|[[Template:Rfd|the template provided]]}} for proposing discussion of a page deletion has built into it the assumption that the discussion will be here [at RFD]. The process of discussing a page deletion within the book community is implied by the fact that consensus at the book is {{nowrap|[[WB:Deletion policy#Speedy deletions|speedy-deletion criterion 4]]}}, but the template structurally discourages it. We ought to have things set up to encourage trying local discussion first before coming here. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 14:43, 30 June 2010 (UTC)
: I think {{nowrap|{{tlx|rfd}}}} is fine as is and serves its purpose well, but I think you do have a point about the need to have a way to alert book contributors that there is a discussion on the talk page about whether to delete a page. How about a new maintenance template like {{nowrap|{{tlx|qr del}}}} to match up with some of the other query templates available? --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 18:14, 30 June 2010 (UTC)
:: What I envision seems somewhat different from a {{tl|qr-em}} (or a Wikipedia [[w:template:prod|prod]]). A query/prod is primarily oriented toward the outcome of no local discussion, in which case it escalates to a speedy-deletion request. Here, I think the preferred outcome is local discussion, which is more like, say, {{tl|mergeto}}. (And of course escalation if it happens is to an RFD rather than a SPEEDY.) Of course, {{tl|mergeto}} may sit around for months or years without anything coming of it — but it isn't actually ''necessary'' that that not happen here, either; it's just that if there isn't any local response at all after a reasonable time, it's okay (not necessary, but okay) to escalate to an RFD.
:: BTW, is there a standard length of time to wait, after proposing a structural reorganization of a book, before assuming that the book is abandoned and adopting it? (I'm sure I've heard this advice given a few times, but I don't remember it clearly.) That would seem to be much the same sort of situation as locally proposing a page deletion and then waiting before escalating to an RFD. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 19:32, 30 June 2010 (UTC)
:::It occurs to me that a straightforward name for it might be {{tl|local rfd}}. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 19:42, 30 June 2010 (UTC)
::::I've seen it stated that a book is abandoned if noone responds in a week. That's on the short side, certainly. On the other hand, I've seen one person come running the same day after being gone for months because the page was on their watchlist and they had it set to email them on changes. That's another argument for such a template, in that another person like that wouldn't come back after a sabbatical to find their book nominated for deletion with the clock ticking to improve it before consensus turns against them. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 19:47, 30 June 2010 (UTC)
::: I'm not tied up on a specific template name. I don't see query templates as moving towards a specific outcome though. FWIW Query templates are intended as a middle road where what happens next depends on whether discussion surfaces or not. In this particular case it could mean if no discussion surfaces take it to RFD.
::: I think there isn't any standard length of time to wait. When I was new to Wikibooks, I didn't wait at all before making structural changes. I think only one person ever gave me fuss about doing that too. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 20:01, 30 June 2010 (UTC)
== Redact comments ==
That is legal, I would say. I didn't add or take away from it, and I know that he is not a native English speaker and does have trouble with grammer. I could tell that he wasn't sure how to put it and from his edits it was obvious what he wanted to say. [[User:Arlen22|Arlen22]] ([[User talk:Arlen22|talk]]) 22:40, 6 July 2010 (UTC)
:Don't redact others' comments. It's falsifying the record, by claiming that they said something other than what they said. You may believe that some other phrasing would be a better expression of what the writer intended, and you are welcome to believe that. You're also welcome to make comments about your belief, ask questions about what was meant, etc. — under your name. However, others are also free to judge for themselves what was intended — and to do that they need to see what was written, rather than what you have replaced it with. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 22:49, 6 July 2010 (UTC)
::Well, you have a point. [[User:Arlen22|Arlen22]] ([[User talk:Arlen22|talk]]) 22:57, 6 July 2010 (UTC)
:::To be picky, it should be refactor, rather than redact, unless the implication is one of censoring. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 23:21, 6 July 2010 (UTC)
::::Hm. It fits definition 1 at [[wikt:redact]]. So I was curious, and checked our hardcopy unabridged dictionaries. Although I wasn't surprised to find Wiktionary's definition 1 (in expanded form), I was surprised that I didn't find censorship in any of them. I'd speculate that the censorship sense may be a development of the last decade or two, in which it was first used as a euphemism for censorship and then that sense became a primary meaning of the word because more people had heard that than the historically primary sense. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 00:10, 7 July 2010 (UTC)
== I acted on the merge of [[Complex Analysis Handbook]] ==
There is no need for the RfD a few pages will need a history merge. I removed your signed post (and the one from proponent), since there is no other way to abort the RfD. See if you have any objection to my actions. I have also left a post on the proponent talk page. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 17:27, 11 July 2010 (UTC)
:I commented at [[User talk:Xerol]]. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 18:33, 11 July 2010 (UTC)
::Ok. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 18:44, 11 July 2010 (UTC)
== Wikijunior images ==
Just a note. I've looked at the permissions at Commons and it's not as easy for casual vandals to mess with any of the images as one might otherwise think. You have to be logged in to upload a file and you can't overwrite any files you yourself haven't uploaded until you're autoconfirmed (which I assume has a wait of four days). – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 20:19, 10 August 2010 (UTC)
:Thanks; good to know. That does eliminate vandals toward the casual end of the spectrum, which is something. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 22:38, 10 August 2010 (UTC)
== Grammar ==
Is "I kindly please ask" wrong? --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 02:05, 13 August 2010 (UTC)
: Well, I don't think it's ''right''. The meanings of the individual words don't fit together that way, and I don't think it would be a globally recognized idiom. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 02:00, 14 August 2010 (UTC)
::"Please, I kindly ask..." or "I kindly, please ask" ? I kindly ask is commonly used, I please ask too, even if similar the meaning is not the same. Please denotes a request for a favor for compliance to the target, kindly goes further and denotes the manner the question is being performed . --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 02:20, 14 August 2010 (UTC)
:::I prefer "would you kindly..." myself. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 02:33, 14 August 2010 (UTC)
::::In the situation I was using it, "you" would make it a direct request to one person (since you would become ambiguous), and "kindly" in that form would apply to the requested action not as to qualify the way the request was being made. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 02:54, 14 August 2010 (UTC)
:::::Honestly, to me neither "I kindly ask" nor "I please ask" sounds right. If you're asking someone to do something, "Please do something" is straightforward, and for a difference set of overtones, "I ask that you please do something" can work, too. The word "kindly" can be used in place of "please" in either of those, but when used in that way it will ''sometimes'' come across as quite aggressive, depending on subtleties of context. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 06:52, 14 August 2010 (UTC)
== What events do you see that I wrongly interpreted ? ==
<small>(I know this is a public page but would like that if Pi zero doesn't object, that the dialog would run without any intervention from other parties, this should be considered a private dialog between me and Pi zero, other user may create another thread for any intervention or comment)</small>
#We have discussed your situation and it was found that we don't have any motive to block you locally, in fact it has been determined by the normal decision process that the block should not stand as there is no consensus to support it.
#The only voice objecting to restore you to the normal was by Mike but based in unsubstantiated allegations that you are globally banned.
#Mike has unilaterally and without backing from the community reblocked you (in violation of the local policy) in a reversal of the action by Adrignola in behalf of the community.
#At present you are in fact in limbo, you shouldn't consider yourself blocked or banned by the Wikibooks community but without an admin willing to act there is nothing more we can do.
#This situation you find yourself is not new and is based on the fact that no one is obliged to act, it is comprehensible that Adrignola has excused himself to continue to act further on the subject.
I think these are the only facts I presented, as a reply to the user request for "'''summarize for me about where we stand on this process, and what is the pathway ahead for us?'''". I understand that you don't agree with how I see the situation and would like to understand
in what we diverge.
I will again state how I see each point and why, it will be a bit of a repetition but since you didn't participate from the beginning it may help us to find a common ground.
1 - I'm particularly referring to the more general exposition to the community of the situation that I initiated in 8 August 2010 (not the start of the discussion and analysis of the problem, that was started with the block of the user in his talkpage) resulting in changes that in 10 August 2010 permitted the user to finally formalize a request for unblock, leading me to initiate a countdown of 3 days since the situation was pending resolution as of 5 May 2010 and the block was yet to be validated per request of the steward. In 13 August 2010 and without any opposition besides the harassment made by Mike, Adrignola under normal practices and with the express support of several other Wikibookians acted to restore normality to the situation, since Mike never provided any validity for his argumentation in 13 August 2010 we had a consensus of no support for the blocking the user.
2 - No validation to the claims were presented, in fact I personally talked to the steward that originated the first block and examined the other project as to verify the claims Mike made, no validity was found. This is also corroborated by other Wikibookians posts, Mike is the only one defending that position on Wikibooks (That "Thekohser is banned from all WMF projects.").
3 - By contradicting the action of Adrignola at 13 August 2010 Mike acted unilaterally and in contravention to all other statements made, all against the continuation of the situation (at this point and due to the visibility of the discussion it must be considered that the will of the community was not respected), by the claims and retorts made by Mike there can be no contest to the fact that Mike's action is a violation of the administrators policy and the expressed will of the community.
4 - Since the user has never been blocked locally by a local admin except by Mike (3x IIRC and if we count the sock puppet), we never got a consensus about blocking the user or a violation of our rules that permitted the block to be performed. The user status is pending administrative action to resets the user to normal.
5 - I don't see what you can dispute on this one.
These are the facts, do you disagree or reasonably see how they can be interpreted in another way ? --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 00:15, 27 August 2010 (UTC)
: Please bear with my slow response times; I do mean to compose suitable comments in reply, and must set aside a sufficient block of time in which to do so. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 15:01, 27 August 2010 (UTC)
::Thanks, If I failed to make anything clear, let me know.... --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 17:34, 27 August 2010 (UTC)
=== Some thoughts ===
In order to try to sort out the relations between our views, I'm going to first describe some of my positions, and then comment on your items one at a time. The two lists don't line up one-to-one, which is why I'm keeping them separate.
* Mike.lifeguard is a Wikibooks admin who happens to be (just recently) a Steward. Mike's admin actions on Wikibooks are therefore not necessarily outside interference.
:* In this particular case, I don't think the local effect of Mike's global action constitutes outside interference, either. (I'm not interested, for this comment anyway, in whether or not it's legitimate as a global action.) The only way IMO it could be seen as outside interference would be if Mike actually thought, when doing it, that its local effect on Wikibooks would not be in the best interests of Wikibooks. It seems clear that Mike considered the local effect of that global action to be in the best interests of Wikibooks; therefore, I do not consider it outside interference. If we were to count on external evidences the fact that the user was recently restored to freedom on Wikiversity would have then have also an impact.
:::P01 --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 07:55, 30 August 2010 (UTC)
* Blocking is ultimately a matter of judgment by admins. The Wikibooks policy even says that, although it's not as explicit as it might be about the corollary — that the rest of the blocking policy is ''guidance''. We choose admins that we trust to use the tools ''only'' in the best interests of Wikibooks, and then instead of just turning them loose, we give them general guidance on what is going to be acceptable or unacceptable to us. Such guidance can't be followed properly without exercising common sense, which is one of the reasons we have sapient admins. I like the way the Wikinews blocking policy makes both of these key points right up front (which is a very Wikinewsie thing to do — comparatively, the Wikipedia policy buries the lead):
::"In certain circumstances it may be necessary for an admin to block a user or IP address in the best interests of the site. It is up to admins to use their discretion to decide when to block, and how long for, however for guidance: ..."
::It goes on to talk about when blocking is appropriate and when it isn't; but it's already been made very clear, up front, that that's guidance. The Wikibooks policy has the same nature, but doesn't do as good a job of clarifying how the parts fit together.
:::P02 --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 07:55, 30 August 2010 (UTC)
* When the Wikibooks blocking policy talks about circumstances under which blocking would be an abuse of the tools, it excepts users demonstrably disruptive to the community. Again, that's guidance subject to common sense. It doesn't say what constitutes demonstration (nor should it). What constitutes demonstration ''on Wikibooks'' is already a matter that requires judgment; and judgment is also called for when considering evidence beyond actions taken on this project. It's possible for evidence outside the project to be irrelevant, and possible for it to be relevant; common sense applies.
:P03 --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 07:55, 30 August 2010 (UTC)
* A community discussion on unblocking a user is just that: a community discussion. It's a valuable way for the community to evolve its thinking about the issues involved, and for admins to tap into that thinking. It's ''not'' binding on anyone, per se.
:P04 --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 07:55, 30 August 2010 (UTC)
* Assumption of good faith, as a principle, doesn't ''necessarily'' apply to someone who has demonstrated lack of good faith in the past.
:P05 --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 07:55, 30 August 2010 (UTC)
Now, about your points.
1 - I see a couple of difficulties with this statement.
:* As far as I can see, there is no normal process for deciding whether a block should stand (such decisions are not a normal situation); the discussion that there was, was on the short side (which matters only in proportion to how high a quality of consensus one wants out of the discussion — but for such a serious matter one would presumably aspire to a high quality); and even if there ''were'' a normal process for deciding whether a block should stand, one of the questions to be decided in this case would be whether the default, in the absence of consensus, should be to keep the block or remove it. So if the consensus is on shaky ground, then the judgment of what to do in the absence of consensus would also seem to be on shaky ground.
:* Whatever level of agreement there was when the process was "completed", there is less than that now; so, simply saying that the decision was made is an incomplete depiction of the situation.
:P06 --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 07:55, 30 August 2010 (UTC)
2 - In a moment of sanity, I decided not to go back and actually check all of Mike's comments in the discussion, to see if the existence of a global ban was the sole basis of Mike's objections there — but then the moment passed, and I went back and checked. The global ban was not the sole basis of Mike's objections.
:P07 --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 07:55, 30 August 2010 (UTC)
3 - I disagree that Mike's action was in violation of local policy. (Many of my positions and comments above contribute to this.)
:P08 --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 07:55, 30 August 2010 (UTC)
4 - This one is patently false. Thekohser is in fact blocked, by Mike, who is a Wikibooks admin. "The Wikibooks community" doesn't block users; that is done by admins, such as the local admin who did it in this case.
:P09 --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 07:55, 30 August 2010 (UTC)
5 - The phrasing of this seems to be based —but implicitly, so that it's hard to be sure— on the premise that the block is invalid. That's not the case.
:P10 --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 07:55, 30 August 2010 (UTC)
(I'd write some sort of summary at the bottom, here, but I actually ran off the end of my allocated time block... a while ago, as you might have guessed from the way my later comments got shorter.) --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 04:42, 30 August 2010 (UTC)
:I will probably mess this up a bit since it would require a lot of copy-paste to contextualize my comments. Feel free to reshape it as you like, if it confuses you (I personally don't like people inserting text inside my posts).
:Some of the issues we are discussing goes outside of the established rules we have, but we can address them by our own view points based in acknowledging that both of us have the best interests of the project and the morality and rationality behind the events.
:'''P01''' - That is a contradiction and oversimplification. A contradiction because he basis his actions on outside events (by his own admission), even if I agree with you that he acted locally as an admin.
:Would you sanction an admin <u>unilaterally</u> blocking a registered user here because the user was blocked at Wikipedia ? (We don't do that, even unregistered users have a special treatment and are given special considerations, you can read more on previous discussions about open proxys) Or even more problematic case, would you accept to block a user that was condemned in court, lets say for rape or murder ?
:I know that the subject is problematic but it relates to the motivation behind the action, the relation about the blocked user actions and the "danger" to our project and a need to establish a limit of our scope, as also the freedom that admins have to exert personal judgments. In fact it is clear that Mike stretched that freedom, beyond the acceptable, by consecutively ignoring stated objections and refusing to provide any sort of validation.
:And a oversimplification because the user was not initially blocked by Mike as an admin but by a Steward, with a statement that clearly indicates that the community should validate the situation. If the first was not sufficient, this second fact makes it clear that it was a situation brought to our project from the outside...
:'''P02''' - No, the administrative policy is not a guideline it is a policy, it must be enforced (policies tend to be also more carefully written we shouldn't expect them to intentional give great latitude to interpretation). Admins are free to block but are required to validate their actions by our rules and be rational not violating the BeBold policy, if they expect opposition then they should initiate a discussion. The administrative policy clearly states conditions that a admin shall not block. The user does not fill any of the present conditions therefore it shouldn't be locally blocked by an admin.
:Mike's actions have clearly not been on the best interest of Wikibooks that was made evident not simply by ignoring the direct objections to his actions (as required by BeBold), but by the discussion that took place to validate the steward block, in that discussion he was the only opposing voice, his attempt to "abort" the process was clear, that is demonstrated by his participation on that discussion, that is why I refereed to it as harassment, it shouldn't be acceptable for an admin to act in that way at least without demonstratively provide evidence about his allegations, as was required.
:Sadly we don't have a block policy (aside from the expectations about how admins should act), in any case in the discussion about the validity of the steward block it was clearly established that the user did not present any danger to the project, that in fact he has been a productive Wikibookian. Having the user blocked clearly is prejudicial to Wikibooks not only by the potential of the user but as the message it gives to the other Wikibookians and because it would just be the path of less resistance and lower conflict, if in fact the user misbehaved or WMF decided to block it the subject would be closed.
:'''P03''' - I agree with you in general terms with this view. But not in this particular event, there was a clear opposition to the actions and the community clearly (from the beginning of the block) established that the user was not dangerous, this is corroborated by evidence and no evidence to the contrary was presented, even the alleged issues outside of Wikibooks that people brought forward did not validate any preemptive action. In fact we should by default avoid preemptive actions in our project as any damage can be easily reverted.
:'''P04''' - In general terms this view is problematic, and we already had a problem with it in regards to my own account. We don't have a block policy but even if I regard that special consideration should be given to the acting admin (the one that blocked), by the normal law about reversions and the precedence of consensual decision (communal or not) any action not previously validated by a consensus decision shall be undone until a consensus is archived by an effort to reach a compromise, if it fails to materialize then the action is not consensual, with all the regards to situations of block (like the recent block attempt made to the editfilters). As I have stated that law is the basis of the BeBold and the way we validate any issue, for instance it was made clear in regards to the restitution of the Check User tool. That is the only viable way to address conflicts and prevent prevarications.
:'''P05''' - Assuming good faith is a highly problematic premise (that is the reason that the text is a draft), it is a good starting point to any relations on Wikis but it can quickly be seen as unrealistic and it an extremely fuzzy notion, good faith toward what? In fact I expect that several Wikibookia don't see Mike's actions as in good faith, especially toward the project, clearly not toward that user, as he clearly didn't act impartially and I don't have any expectations that thinks that I have any expectation in his good faith, I made that clearly so when I've gone out of my way to make it clearly stated when I voted against his position as a steward.
:I had however until now an expectation that he would defend our project's best interest, but these recent actions clearly demonstrates that he doesn't. It was repeatedly requested that he closed the issue himself by backing up his actions or by fixing them himself. A clear headed admin would have excused himself from acting more on the issue after the first objections regarding silencing the user on his own talk page.
:'''P06''' - The discussion was running long before I made the issue public to the community (as there was no expectation that people should be aware, besides the administration, that should review the logs, especially the block logs regarding registered users), if you are raising the issue of time I already cleared that point and the way normalization of a contested action should occur. Blocks or unblocks are not specifically stated as a community decision, there is no requirement regarding how publicly announced they should be (I would support making alterations to our draft in regards to make unblock request more visible), the fact is that I established a running process for the discussion an no objection was presented to it and all the arguments made outside of that discussion where considered at least by me (in fact besides Mike no one objected to it in the 7 subsequent days).
:We normally have a 7 days timeframe, but that is only based on practicality, that may vary from situation to situation, and the time may be counted differently being the norm from the last post, barring stated rules that is the normal expectation Wikibookians have), after that time a decision is considered made (for instance in the VfD or Promotion discussions we explicitly close the discussions), in this case the issue is less problematic as we only needed to prove the lack of consensus (I already covered the reasons on another point). So I can clearly state that there is no consensus in the community for the block of the user, this is an established fact.
:'''P07''' This is not extremely relevant as Mike failed to contradict the factually established good intentions of the user, that are even supported by the still unaddressed request for unblock (that was pending the steward request for the community to validate the block). We don't have even to assume good faith. This has to deal with the sequence of the actions is the unblock request addressable if the block is not valid ? If the block is valid then how do we address the unblock as clearly we don't have consensus for the block...
:'''P08''' I'm not invested on establishing this point. I do disagree with you since by his participation and logged actions he clearly is imposing a personal and objected upon position to the community (he isn't working for the community, and it is at least debatable that he has our community best interests in mind). I know that numbers do not count but it wouldn't be sane not to notice that he acted against the stated objections of other Wikibookians, without a basis on local rules, even violating at least one, he then did escalate the issue by reverting a fellow admin and in general has been a cause of disruption (as is stated on the policy, and by several non productive allegations made during the discussions, or even by his lack of participation in issues that he is at least responsible for). It would be fruitless to act like him and request a pull down of his tools, it would indeed be extremely ironic if someone acted like him and without discussion removed his tools, or even blocked him, locally the ground for that action is stronger than those used to block the user.
:'''P09''' You are contradicting something you said above, admins act for the community, not for themselves. Any action can be objected to and the community can be called to validated anything on Wikibooks. Admins are mere Wikibookians on administrative functions, enforcement power belong to all Wikibookians, the special distinction is that admins are granted the tools to exert some of those functions but for the benefit of the community. They aren't sole representatives of the community or even a special cast of enlightened Wikibookians, it is even dangerous if they coordinate actions and establish restricted interpretations of our rules outside of the community view, participation and control.
:'''P10''' The block is invalid, as I defended in the above points, it doesn't have the consensual support of the community (if you still disagree then you should address the user request for unblock and close it). In any case the logical step-aside by Adrignola clearly indicates that he has put the good of the project above his personal judgments as to avoid direct and open conflict, he already made his position clear. This contrasts in the way that Mike has acted, in regards to the good of the project. I made several appeals for him to consider the value of pursuing his personal antagonistically position against the blocked user. The present situation is clearly not on the best interest of the project, as I stated, the user will probably be in limbo until someone decides to put things right.
:I would respect a clear declaration by the WMF to block the user and I'm indeed aware that Pathoschild (the blocking steward) has yet to reply to my last query, in any case I defend that we shouldn't put our spoon in other peoples soup, they should resolve their own problems.
:My interest in this relates to the protection given to Wikibookians and the fairness of the processes we fallow, especially because of my personal experiences here. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 07:55, 30 August 2010 (UTC)
::Having already missed several dates on which I'd hoped to get to this, I really thought I'd ''surely'' be able to clear time for it today. I'm very disappointed that it didn't happen. But I have neither forgotten nor given up; I ''will'' get to it. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 23:52, 5 September 2010 (UTC)
:::No problem, respond to it when you have the time. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 01:43, 6 September 2010 (UTC)
::::I think this discussion is dead (with unpleasant associated memories, to boot), and best laid to rest. I'm thinking I'll do some more archiving soon, and this will go with it. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 23:51, 10 January 2011 (UTC)
== Requested update ==
I'd like to create a table with comparisons between our pseudo-magic words and the built-ins at [[Help:Variables]]. I also hope to document all the templates in [[:Category:Magic word templates]] (unless you get to it first upon seeing this). The purpose of this message is the hope that [[Template:ROOTBOOKNAME]] can be reconfigured to accept an input for a page other than the current one, much like [[Template:FULLBOOKNAME]]. I suspect that an ''if'' to detect the presence of input will be required, but I don't have the confidence to mess with that template since it's used on a tens of thousands of pages. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 22:18, 16 December 2010 (UTC)
:I'll take a look at [[Template:ROOTBOOKNAME]]. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 23:56, 16 December 2010 (UTC)
::Well, I carefully researched it, tested my prospective changes exhaustively, edited the page, and doing a diff before saving discovered that Darklama had made a change a few seconds ahead of me. There goes an hour of my life that's never coming back. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 00:40, 17 December 2010 (UTC)
:::But at least you're a better person having gone through the effort? It's always important to keep those parser functions skills sharp. Thanks anyway, though. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 00:51, 17 December 2010 (UTC)
:::Ya I saw Adrignola's message here before your reply, and decided I could go ahead with getting it done. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 00:53, 17 December 2010 (UTC)
::::Perfectly understandable. Happens all the time, because in cyberspace we tend to pass unseen until we change something (or, perhaps, noticed only by Google and the NSA). Frustrating for me in this case, sure, but it's nobody's fault but maybe mine that I'm a slow worker. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 01:36, 17 December 2010 (UTC)
Looks like [[Template:FULLCHAPTERNAME]] could use a parameter. To save time and effort, the following is what I think should make it work:
<nowiki>{{#if:{{#titleparts:{{{1|{{FULLPAGENAME}}}}}||2}}|{{#titleparts:{{{1|{{FULLPAGENAME}}}}}||2}}|{{{1|{{FULLPAGENAME}}}}}}}</nowiki>
– [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 01:10, 17 December 2010 (UTC)
:This looked solid (and admittedly, it's a lot easier after the rigors of ROOTBOOKNAME than it would have been before :-), so I implemented it and ''then'' did a bit of testing to make sure it worked. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 01:36, 17 December 2010 (UTC)
::Thanks. But I have some bad news. Something broke in the updates. I was looking for examples for documentation and, for instance, [[Wikijunior:Languages/Esperanto]] isn't calling its template anymore (see the red link at top). – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 01:38, 17 December 2010 (UTC)
:::I've put in the version I'd done all that testing on. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 01:51, 17 December 2010 (UTC)
:::Oops, ya I meant to use FULLPAGENAME not ARTICLENAME. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 02:07, 17 December 2010 (UTC)
== Old Administration page ==
Looking through the edit history for [[Wikibooks:Administrators]] I notice the very first action was to move it to the Help namespace. Would you object to a history merge of Help:Administrators into Wikibooks:Administrators, which would effectively be like moving it back? --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 16:46, 16 January 2011 (UTC)
: No objection. Looks like as clean a history merge as one could ask for. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 17:24, 16 January 2011 (UTC)
== Crat/CU ==
Hi, I'm wondering if you will accept a 'crat or CU nomination? Regards [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 16:32, 27 March 2011 (UTC)
: Not at present. I've got too much on my plate as it is. Sorry. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 17:44, 28 March 2011 (UTC)
== Linear Algebra ==
Hi!
I seen that you are assessing Linear Algebra and have contributed to it. It's quite good! Thank you for your contributions!
Yet, I think that I have spotted two flaws that I'd like to draw your attention to. I've posted them on the discussion pages:
[[Talk:Linear_Algebra/Strings]], [[Talk:Linear Algebra/General = Particular + Homogeneous]] and [[Talk:Linear Algebra/Eigenvalues and Eigenvectors]].
I'd be very grateful if you could take a look at my short remarks. [[User:Wisapi|Wisapi]] ([[User talk:Wisapi|discuss]] • [[Special:Contributions/Wisapi|contribs]]) 19:27, 3 August 2011 (UTC)
== Thanks ==
Thanks for correcting the template mistake. Thought I'd fixed them all but seems that I missed that one.--[[User:Xania|ЗAНИA]] [[Image:Flag_of_Italy.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 21:26, 19 August 2011 (UTC)
== Continuing... ==
The idea is that if you use continuing there is the implication that a previous state of opposition has to exist (more or less the issue of using remain, it implies that something previous was present). The use of lingering is more versatile in this instance (it implicates delay, since a straw poll wouldn't not occur if all positions were understood, a position of objection not stated or understood can correctly be considered delayed on its expression). --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 17:01, 7 September 2011 (UTC)
: I see the same difficulty with "lingering" as you describe with "continuing" and "remaining", plus to me "lingering" suggests dubious legitimacy.
: Would "unresolved" work better?
:: A call for consensus is made and any unresolved opposition may be measured with a [[w:Straw poll|straw poll]] to determine the degree of consensus.
: --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 00:22, 8 September 2011 (UTC)
::Seems to work. I believe that lingering suggests something of out of place, waiting correction or definition (not a lack of legitimacy) since consensus is the default state I thought it was perfect for expressing the ideas. I will update the text with "unresolved". --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 03:18, 8 September 2011 (UTC)
== WCI 2011 Proposal :Accelerating Wikibooks. Help Needed! ==
Hello!
I will be delivering a Talk at the Wikimedia Conference India 2011 on the topic of "Accelerating Wikibooks".
Over the next few days, I aim to make the proposal more and more wholesome and relevant. I'd like to discuss with you about the proposal and hope you can recommend me a few names on Wikibooks with whom I can discuss this.
I'd be very happy if you could discuss the proposal at [[User:Thewinster/Accelerating_Wikibooks]]
--[[User:Thewinster|Thewinster]] ([[User talk:Thewinster|discuss]] • [[Special:Contributions/Thewinster|contribs]]) 08:05, 26 September 2011 (UTC)
=== Summary of the proposal ===
This is not a summary of the final talk, only a tentative guideline.
* Create Roadmaps for a book
* Define Learning Outcomes
* Annotate and Discuss new content available from around the web.
* Minor tweaks and fixes which concentrate on crowdsourcing.
* Identifying Small Contribution that advance a book and designing good UIs and triggers according to B.J. Fogg's Behavior Change Model, 8 Step Design Process. The paper can be found here at [http://www.bjfogg.com/design_files/page8_1.pdf Persuasive Design : Eight Step Process by B. J. Fogg]
==Random Wikinews Question==
I just read somewhere the project forked? What happend? --[[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 23:35, 10 November 2011 (UTC)
: Heh. More than you wanted to know, I'm sure. :-)
: There's long been a political division at Wikinews over our review standards. It looks like a sharp division until you look closely at it, and things get really complicated. It's all mixed up, for example, with the Wikipedian AGF issue. Anyway, the most discontented Wikinewsies drifted away or resigned, one gathers they found common cause with some who'd resented being told they had to learn to contribute, and finally a couple of ring-leaders created this fork. Didn't copy our article archive (over eighteen thousand articles), but did copy templates and gadgets and such.
: They contacted individual Wikinewsies off-project and persuaded most of our active reviewers to join the fork. I'd always said, if one tried to have two different "tiers" of review the upper tier (full publication with push to Google News) would starve because everyone's time would be consumed by trying to fix the lower quality stuff coming through. Most of the Wikinewsies who left didn't retire from Wikinews, and very occasionally one of them will come by and help out just a bit with the odd administrative task — but they clearly don't have ''time'' to do anything significant on Wikinews, even if they'd hoped to work both projects.
: And then, of course, it got worse. One of our remaining actives suffered a bad head injury, and another of our remaining actives resigned from all wmf projects on the grounds that wmf had abandoned their neutrality policy by endorsing Italian Wikipedia's shutdown. Both of them are at the other project now. We had two new folks we were training up, but after some training with us they left to work on the other project (and one of them is now turning out to be a major-league troll and sockpuppeteer; go figure).
: There's inevitably some tension, but not actual animosity, between the projects (I'd say, at least on the Wikinews side), and mostly we're on okay terms with Wikinewsies who went over, though we don't hear from most of them much. We're getting along, and keeping up morale. We keep the porch light on, our standards up, and review articles that come along (which includes articles from a class of journalism students who've been assigned to learn to write for us as training!). But certainly things are a lot slower atm at en.wn. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 01:02, 11 November 2011 (UTC)
== hello Pi zero ==
I'am just going around asking people if they want to help with my books. If you would like to help feel free, ok thanks. --[[User:Fdena|Fdena]] ([[User talk:Fdena|discuss]] • [[Special:Contributions/Fdena|contribs]]) 16:35, 29 November 2011 (UTC)
== Counter ==
hi Pi Zero,
I've been reading the Technical Assistance page about the read counter on wikinews. I was wondering if you have found out any more information about how it works and whether we could look at getting a version on wikibooks? Cheers [[User:Pluke|Pluke]] ([[User talk:Pluke|discuss]] • [[Special:Contributions/Pluke|contribs]]) 23:17, 13 March 2012 (UTC)
: I see that thread has now accumulated a comment from bawolff; he's the one I'd eventually have humbly asked to explain it, after I'd tried and failed to figure it out myself. :-) --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 04:06, 14 March 2012 (UTC)
== AGF ==
I do not support the text being passed as a policy but as a general rule it has been applied and worth defending. The reason why it is at times important to remember people is that even if [[n:Wikinews:Never assume]] is general in life and when dealing with what in not fully comprehended, there is something that we at times forget here on this project we are all volunteers and most come here with a positive intention... --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 08:14, 2 April 2012 (UTC)
: But, 'we are all (well, most of us) volunteers and most come here with a positive intention' is itself not an assumption but a deduction, based on our knowledge and experience. And it only gives us probabilistic information about any individual.
: Volunteer projects thrive on idealism. The moment when I was actually hooked on Wikipedia was when I read AGF. I thought, 'wow, the idea of building an encyclopedia based on assuming everyone means well is ''insane''; these people are ''idealists'' — count me in!'. It took me about a year on Wikipedia before I reached the deeper understanding that AGF doesn't mean what it says; that's roughly when I discovered [[w:WP:ZEN]]. And then it took me about another year before I felt I grokked what it actually does mean, at its best. And since then I've spent about three years trying to understand its effect on the dynamics of Wikipedia. Although idealism ''is'' important to a volunteer wiki, frankly Wikipedia could have gotten that from some other principle. When I got to Wikinews, after acclimating to Wikipedia's AGF, I thought, 'wow, the idea of building a wiki without AGF is insane' (as I say, by then I'd been thoroughly brainwashed into AGF); 'these people are ''idealists''; count me in!' I then started on a similar learning curve about 'never assume' on Wikinews as I had about AGF on Wikipedia, only without an existing expression of the principle. 'Never assume' has been best practice on Wikinews practically forever, and we (and I) were struggling to articulate it since about two years ago, but we didn't actually get it written down until about three months ago. And that is an expression of it tailored to Wikinews; how to generalize it for other sisters, such as Wikibooks, or Wikipedia, is a further challenge that I could imagine taking additional years.
: The bottom line on AGF, for me, goes something like this: It's misleading because it doesn't mean what it says; what it actually says to do is something that shouldn't be done; and once the user understands what it really means to have people do, doing that too is bad practice (between what it says should be done, and what it means should be done, I believe it's been largely responsible for the long slow deterioration of the atmosphere on Wikipedia) ''and'' the discrepancy —between what it says and what it means— teaches people the intellectually dishonest practice of saying one thing while meaning another. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 13:09, 2 April 2012 (UTC)
::I agree with all your analysis, just not that we should let the AGF message pass as idealism. I see no reason for it in a system that relies of consensus (strict consensus if applied correctly), that because of that is conservative in nature (slow changing, if the right of block is respected). In such a system any attempt to subvert AGF becomes impossible. I admit that what you call idealism was part of what attracted my to Wikibooks and fully agree with your analysis that each Wikimedia project is distinct, especially in its political/coordination aspect.
::I actively avoid contributing anything to Wikipedia, at best I use the talk pages to raise points (I may correct some spelling on the articles) and that is it. I confess that Wikinews never attracted me as a reader, or a writer, in fact it is the Wikimedia project that I see as less useful. The first time I became aware of it I was expecting at least a good coverage of what is going on in the Wikimedia's projects but that doesn't even seem to be on the radar... --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 22:00, 3 April 2012 (UTC)
== Resume ==
Sorry about that, sometimes shared commonalities on the languages slips in. Not that it is incorrect, in fact because one word or expression is rare or outdated it does not prevent anyone from bringing it up into use (nor should it, my view is that it enriches the language), on the other side creating new words is indeed more problematic, but shares the same core issue, the lack of common understanding. I have more issues personally with weasel words, PC correctness and erosion of meanings for creating ambiguous understanding about the intentions of what is being stated that spending some effort finding a common ground to understand or remember a words meaning. Kudos for you for understanding what I meant, I was extremely tired when I wrote it, it was not my intention to be obtuse. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 02:50, 6 April 2012 (UTC)
: I supposed it was probably a matter of cognates between languages, resulting in an unusual English usage. I just thought it would helpful to you to be aware the usage is unusual. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 14:59, 6 April 2012 (UTC)
::Thanks. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 15:06, 6 April 2012 (UTC)
== Problems with {{tl|BookCat}}{{anchor|Problems with BookCat}} ==
I posted a note on [[template talk:BookCat]] about some trouble I'm having with the "deep-filing" part of that template. Since you seem to be the editor maintaining it, I thought I'd drop you a note. '''[[User:Liam987|<span style="color:#808000;border:1px solid;background:#0055A4;text-shadow:0 5px 8px #850000">Liam987</span>]]''' 12:44, 12 April 2012 (UTC)
: Replied there. Thanks. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 14:07, 12 April 2012 (UTC)
== 7 days conclusion ==
7 days calls to conclusion or for determining consensus have been and are common practice and in accordance with [[Wikibooks:Decision making]].<br>
Multiple examples are abundant, for instance [[Wikibooks talk:Blocking guideline]] and others (it even was a consideration on Mike's discussion regarding global blocking of users).<br>
I personally take offense on how you turned my use of a normal practice as an attempt to bypass or hear your opinion. I also find it disingenuous that you claim that "Wait, didn't I say something earlier about assuming my position was unchanged until-and-unless I retracted it? Wouldn't that mean that the opposition you wanted within seven days already existed at the start of the seven days?" when a request for restatement of opposition is clearly indicated.<br>
More I do sincerely do not believe your claim that you hadn't noticed the statements in a timely fashion, due to the amount of editing I performed on the page and it being put in clear evidence underlined and bold lettering. I had the intention of reminding you to participate but you have been making posts on the same page. So please at least assume that I had no intention to "hide" it from you o4r anyone else, and I will assume that you were indeed blind to what I was doing...
Once again, speaking to me on my talk would have been preferable, it is not that I'm not present or uncooperative. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 04:40, 30 April 2012 (UTC)
:Some miscellaneous thoughts:
:* Panic, I'm not without sympathy for your plight. You're aware, I know, that you tend to be verbose; you've remarked on it recently, I believe. I do suspect you're not conscious of how much of a problem your style can be. The verbosity of your posts tends to make it difficult to read them, not only because of the length but because it can be difficult to pick out the key points. There's also more to it than that. Just as one of '''my''' weaknesses is spending unseen hours revising a comment before posting —not an exaggeration, in fact some of my shortest posts have taken the most time to write— you tend to post and then revise, resulting in a large number of edits for a single comment, and leaving the comment unstable when first posted (or even, occasionally, a few days later). Consequently, to be honest, further edits on your part to a previous post don't tend to attract my attention to the post; rather, I tend to stay away from the post when first submitted out of an awareness it won't be stable, which makes it unfortunately easy to forget to check it later for the stable version.
:* I tend to systematically hedge when talking about others' intentions, because such intentions are largely unknowable by others (as well as sometimes unknown by the person doing the intending), and most often don't ''need'' to be known for the point at hand, anyway. The one word, I think, in my comment that ''might'', conceivably, be taken as suggesting intent on your part was the word "strategy" — and even there, I didn't say what I was describing '''was''' your strategy, I said it '''seemed''' to be. If I'd spent a number of additional hours trying to compose that post, I might have come up with something better (or I might have invested the extra time —that I didn't have to invest anyway— without getting anything for it).
:* The point I was trying to make was relevant to the actual thread; it wasn't some private issue to be settled "off line" on user talk pages. (Indeed, the last time I recall you wanting to take something to user talk pages with me, the net result was that I ended up not having any input into an important discussion on which I had strong opinions that consequently did not get heard. Note, illustrative of one of my previous points, that I'm saying exactly nothing about your intent, which is irrelevant; I'm saying this was the '''consequence''' of the way the weaknesses of my discussion style and the weaknesses of your discussion style interacted). This is likely related to a difference between my perception and your perception of the nature of the thread, which brings me to my next point.
:* I do not see the seven-days-without-objection principle as applicable to this situation; indeed, it seems far, far too bureaucratic for the informal discussion taking place, and informal discussion is far preferable whenever possible. (The principle that "voting is evil" can also be generalized, in spirit, to discourage excessive rigidity of form.) I'll try to comment on that point at the reading room thread — but, as a short comment seems called for there, even this long and rambling comment here has taken me over an hour to write, and I do have other demands on my time, I don't know how long it will take me to do so.
: --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 12:16, 30 April 2012 (UTC)
:::Being verbose may be an issue but was something that I've learned that I must do to be understood, especially when people rarely read more than the last post on a conversation. This is what I've learned from my time in the project, I do try to be concise.
:::What I disagree is the format and mood you imparted on the reply and in its inaccuracies. If I scold someone I do it in private since if done in public it has other implications.
:::The point you did try to makes was about the format of my actions, open criticism surrounded by some minor veiled innuendos. It was not about your position or mine, it was an abortion of the ongoing process. It could as well been done directly with me.
:::I recognise that you may dislike the time limit but the format is permissive to a request for extension, it is better than leaving a discussion open to an inconclusive and end being automatic archived. If there is something that needs to be formal is discussion proposal, so I strongly disagree with you there. Rigidity has noting to do with the concept of voting, any formal process, especially of decision to be valid and fair has to be established before it starts. The informal part was what the discussion we had before I called for consensus.
:::The problems of not being clear is reflect by how you claimed that my previous summarization was a declaration of consensus. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 18:51, 30 April 2012 (UTC)
:::: Being verbose does not, in itself, impart clarity. I'm quite willing to believe you've had experiences in the past in which you said less and were misunderstood, but saying more and being misunderstood is also quite possible. Long statements can easily become very opaque; and while some short statements are unclear, the very clearest statements are short.
:::: I can't tell whether you are ascribing inaccuracies to yourself, or to me. I tentatively hypothesize that you're claiming my comment had minor veiled innuendos in it, which is false as I understand the word ''[[wikt:innuendo|innuendo]]''; I was not attempting to hint at or veil anything, but rather to be open and honest about my concerns.
:::: Your approach to the discussion was high-handed in the extreme. I've noticed you have a tendency toward that, which you should watch out for.
:::: On each of the two occasions, as I recall, you claimed afterward not to have made claims about the existence of consensus. This appears to me to be blatantly false; supposing (as I would prefer to suppose) that neither of us is being disingenuous, this rather strongly reinforces my remarks about failures of clarity (and I'm unsure whether I'm agreeing with you or disagreeing with you on that point). --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 21:49, 30 April 2012 (UTC)
::::: I'm also stating that I'm not agreeing or disagreeing with you. I only do not accept that you can extrapolate your own observations (even if I take them as valid for you, and a consideration for future discussions) to a general felling in the community.
::::: "Your strategy here seems to be to flood the thread with words until everyone is sick of the thread and boycotts it, and then claim that what you want has "consensus"."
::::: It is not your place to speak in behalf of everyone and if you have more information that is not publicly accessible to support the assumption that "everyone is sick" or "boycotts" discussion because of my verbosity or opacity, I would like to read it so I can better address any flaws. I never claim consensus unless there is at least a clear statement on non objection. I do not support the view of a need for expressed support, this is not always possible or even required to validate well defined decision processes. That requirement generates group-think and statements of support not contributive to the discussions but in political support of participants, this is clearly observable.
::::: Since I had previous refuted it, the phrase "Seems like you may even have twice presented a biased "summary" of what had come before and then claimed consensus (I haven't got the stomach to go back to check exactly how it went down before)." is a compounded misrepresentation of facts that had been corrected by myself. It would be acceptable that you invoked confusion of misunderstanding on your part, but clearly there was no basis to affirm that after my correction, I had made such claims.
::::: "I hadn't even noticed the "unless there is opposition within seven days" clause you'd unilaterally imposed, until just now.", as we talked before this is if not only a veiled accusation of me attempting to steam-roll the decision, is a grave misinterpretation of something that is normal practice with overtones of declaring me as being acting with bad intentions.
::::: "On each of the two occasions, as I recall, you claimed afterward not to have made claims about the existence of consensus. This appears to me to be blatantly false" This again includes a veiled accusation that I am at best surreptitious in my actions and a liar at worst. What I said was "It seems that there is a consensus" the key word is <u>seems</u> and that I clearly indicate that it was intended to "help reformulate the proposal". This clearly shows that you are in the wrong on your assertion of my actions and that I've been since then attempting to assure you that I had no intention to close the process with a false claim on consensus in favour of my view.
::::: Do you disagree or can prove that I'm being deceptive in attempting that you acknowledge and even retract claims that clearly, even if non intentional, attack my good name and reputation ? That is all I'm after here. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 22:31, 30 April 2012 (UTC)
== Edit review setting ==
You set the edit review of [[Template:Wikijunior:Countries A-Z/Page layout/Sandbox]] as defaulting to stable. Since the page is intended to be a Sandbox for the template, that sort of spoils the point. Can that be undone? Also since your an admin could you please perform the edits I've requested at [[MediaWiki talk:Perbook/Wikijunior:Countries A-Z.css]]. Thanks, [[User:Liam987|<span style="color:#808000;border:1px solid;background:#0055A4;text-shadow:0 5px 8px #850000">'''Liam987'''</span>]] <small style="font-family:Serif;">[[User talk:Liam987|Talk]]</small> 11:52, 25 May 2012 (UTC)
: I did wonder about the sandbox. The questions raised are
:# who is expected to ''use'' the sandbox; if it'll be used by people who've been around long enough to have been autopromoted to reviewer, it'd seem there can't be any downside to stable-default; and
:# who is expected to ''see'' the sandbox; if it really won't be seen by the young target audience of Wikijunior, there's clearly no need for stable-default.
: A halfway measure is to simply de-sight all the revisions of the page, which should probably be done anyway.
: I had a vague thought that a potential content page named for Wikijunior ought to be default-stable just to avoid possible future confusion (keeping the bookkeeping simple).
: Meanwhile, I'll take a look at the css. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 12:02, 25 May 2012 (UTC)
:: Well... I did take a look at the css. But I don't know css, so I'd really better leave tinkering with it to somebody at least minimally clueful. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 12:07, 25 May 2012 (UTC)
::: Yes, well, I'm not really sure what to do about the sandbox. It probably won't be used much except by me, anyway. [[User:Liam987|<span style="color:#808000;border:1px solid;background:#0055A4;text-shadow:0 5px 8px #850000">'''Liam987'''</span>]] 13:52, 25 May 2012 (UTC)
== Not Spam ==
Hello, I saw you reverting my edits on the notion of them being spam. I would like to know why it is considered spam considering it is a wiki intended for conlanging and offering resources for it. [[User:TheZelos|TheZelos]] ([[User talk:TheZelos|discuss]] • [[Special:Contributions/TheZelos|contribs]]) 10:25, 5 June 2012 (UTC)
: Skipping incidental issues —and being brutally honest— the bottom line was that the target of the link screamed "[[wikt:tourist trap|tourist trap]]" — very '''loud''' advertising that, from its volume alone, represents the commercial gaming industry. The list of links doesn't contain links with that level of commercialism. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 14:12, 5 June 2012 (UTC)
::I fail to see how those pages comes across as it, but could you check the [http://conlang.wikkii.com/wiki/Category:Guides Link] here and see for yourself that it is no tourist trap or anything, it is just a wiki intended to be a source for information about conlanging. I would appriciate if you could atleast look =) [[User:TheZelos|TheZelos]] ([[User talk:TheZelos|discuss]] • [[Special:Contributions/TheZelos|contribs]]) 06:53, 6 June 2012 (UTC)
:::Is it possible that you thought I hadn't followed the link that you'd added? In any case, since you ask I've looked over the set of guide pages you now recommend to my attention.
:::Here's how it looked from my perspective; and then I'll have a suggestion for a possible way forward. The list of "Other resources" on the Conlang wikibook is very spare; it starts, naturally, with those closest to home and works its way cautiously outward — first, other wikibooks (only one, atm); then, links to sister projects (only atm, and not a very good one, so I should really upgrade that part); then a couple of exceptionally high-quality non-wmf pages (with, at most, conservative commercial information directly relating to the content of the site), to which I can think of at least two others of similar quality that should probably be added; and finally a sublist of fairly commercially-conservative pages of a more specialized class. Even things like ZBB are not listed atm. There are, from what I've observed out there, a number of wikis related to conlanging, driven (from what I gather) by commercial advertising and therefore understandably always hungry for ways to rake in more traffic, but none, to be honest, seeming to have anything particularly exceptional about them to make them ''especially'' worthy of inclusion, and I believe most are more developed than the one you added. And the one you added, at least, has loud commercial-gaming ads splashed across the top of each page that do not appear to have anything really to do with conlanging. And your natural inclination was to add this link —''twice''— to the ''top'' of the list of other resources.
:::If I might suggest a possible course of action. There are, as I said, a number of wiki/bulletin board/etc. sites out there, and it might be useful to begin collecting ''on the book's main '''talk''' page'' a list of such things; once we have several of them, we might start a subpage of the book to contain the list, to be linked to from the "Other resources" section visible on the main page of the book. This would allow an outlet for inclusion of such things —which are not, after all, wholly irrelevant to the subject— without giving them the excessive emphasis of placing their individual listings on the same level as the wikibook's table of contents. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 10:46, 6 June 2012 (UTC)
::::Very well, I understand and it sounds reasonable. Thank you for your time. [[User:TheZelos|TheZelos]] ([[User talk:TheZelos|discuss]] • [[Special:Contributions/TheZelos|contribs]]) 11:05, 6 June 2012 (UTC)
== thank you for the welcome and other stuff ==
are my wikibooks appropraite? --[[User:Hexkc245|Hexkc245]] ([[User talk:Hexkc245|discuss]] • [[Special:Contributions/Hexkc245|contribs]]) 01:22, 2 December 2012 (UTC)
: Well, there isn't much to them, yet. A book is a large thing, made up of a number of pages. You should have a notion, when you start a book, of what its approach to its subject will be, and probably about what its table of contents will look like. I'm not sure [[John Cena]] has the potential to be developed into a book. (A whole book about this one person?) A book about Germany seems quite possible, but you should think about what kind of stuff you want in it, etc. And a book about Portland, Maine may be more challenging, but again, it seems possible if you work out how you want to approach the subject.
: Take a look at our book '''[[Using Wikibooks]]'''. It's both an example of a complete book, and has a section about creating a new book. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 01:32, 2 December 2012 (UTC)
== Help on the Geometry Book ==
Regarding your edits, it would be helpful to add a navigation panel, but I don't wanna start an edit war. So could we reach a consensus on this? (And by the way, I'm also studying off of this, so...)[[User:FlashingYoshi|FlashingYoshi]] ([[User talk:FlashingYoshi|discuss]] • [[Special:Contributions/FlashingYoshi|contribs]]) 00:01, 6 December 2012 (UTC)
EDIT: Also, thanks for welcoming, but I'm from Wikipedia, so...
: Hm. I hadn't thought the thing I'd seen there was going to be useful. How to do navigation templates is something of a puzzle; I'm not sure there's any one way of doing it that really works well from all points of view. Perhaps look around some, see some styles, and judge what you'd like most? You could even ask for suggestions at the reading room. I tried something I was hoping would work well on '''[[Conlang]]''', but that too has weaknesses, and I always meant to further improve the tools for it but was distracted by other things.
: (I'm not exactly sure what being from Wikipedia has to do with being welcomed; but, as may be. :-) --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 00:06, 6 December 2012 (UTC)
:: It's just that Í edit on many different projects, so I'm kinda getting tired of being welcomed at every single project. Regarding your suggestion, I might just do a simple "Back" button. But the page has a Print version, so how can I keep the TOC and <==Front/Back==> buttons off of the printed? I'm trying the Acoustics book method, but still keeping the TOC for now on the pages that contain them. [[User:FlashingYoshi|FlashingYoshi]] ([[User talk:FlashingYoshi|discuss]] • [[Special:Contributions/FlashingYoshi|contribs]]) 00:14, 6 December 2012 (UTC)
::: Not to put too fine a point on it, every project is different from all the others. One of the functions of those welcome messages is to give contributors a guide to what about that sister is different. If you aren't reading the welcome messages, you're missing stuff. Myself, I've never gotten past contributing to three sisters because I found that it was so much work to learn enough about each new project, so as to do justice to it when contributing, that once I'd learned three of them I just couldn't afford the effort to learn a fourth.
::: If by "print version" of a book, you mean a page called "''bookname''/Print version" that transcludes all the pages of the book, you can configure a navigation template to suppress itself when transcluded onto a page that ends with "Print version". You'd put a condition around the whole content of the template, something like this (writing this off the cuff):
:::: <nowiki>{{#ifeq:{{SUBPAGENAME}}|Print version|| ... content when not the print version ... }}</nowiki>
::: --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 01:15, 6 December 2012 (UTC)
:::Oh s--- that didn't work...[[User:FlashingYoshi|FlashingYoshi]] ([[User talk:FlashingYoshi|discuss]] • [[Special:Contributions/FlashingYoshi|contribs]]) 22:18, 15 December 2012 (UTC)
::::Never mind, thanks bro! [[User:FlashingYoshi|FlashingYoshi]] ([[User talk:FlashingYoshi|discuss]] • [[Special:Contributions/FlashingYoshi|contribs]])
== Hi ==
Hi, thanks for your welcome message :). Regarding [[Wikibooks:Reading room/Technical Assistance|my question]], who's the most technical savvy user in this site? Thanks. [[User:Bennylin|Bennylin]] ([[User talk:Bennylin|discuss]] • [[Special:Contributions/Bennylin|contribs]]) 08:07, 10 December 2012 (UTC)
: Depends on what kind of thing you want them to be technically savvy about. On some topics, I know about as much as anyone (categories, subjects, templates, flaggedrevs come to mind). --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 13:14, 10 December 2012 (UTC)
::Strange, but suddenly id.wikibooks behave like en.wikibooks. I dunno, probably it's a new feature just rolled out with the new deployment, and I happen to catch it in here first, then it got rolled out on id.wb recently. Thanks, btw. [[User:Bennylin|Bennylin]] ([[User talk:Bennylin|discuss]] • [[Special:Contributions/Bennylin|contribs]]) 13:25, 16 December 2012 (UTC)
::: I've been meaning to check our page where we've recorded all the customized project configuration settings we've requested for en.wb; I suspect that may be where it is. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 19:37, 16 December 2012 (UTC)
==[[:JavaScript]]==
{{tmbox|type=delete|text=
'''[[:JavaScript|JavaScript]] has been nominated for deletion. Please [[Wikibooks:Requests for deletion#JavaScript|share your thoughts]].'''<br/>You are being notified because you have contributed to this work. If you haven't read it already, please see our [[WB:DP|deletion policy]]. [[User:Jeepday|Jeepday]] <small>([[User talk:Jeepday|talk]])</small> 23:55, 11 January 2013 (UTC)}}
== [[Wikijunior:Solar System/Neptune/Proteus]] ==
Thanks for spotting that wording on the Proteus page. I checked the IP editors changes with data on Wikipedia and saw that it was correct but wasn't sure of the best way to phrase it as describing it as a 'day' or 'year' on a moon just didn't seem right.--[[User:Xania|ЗAНИA]] [[Image:Flag_of_Estonia.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 23:18, 14 January 2013 (UTC)
== JS ==
Hi, I've [[User:Kayau/New main page/Featured template/Template:Picture select L|imported]] [[n:template:picture select L]], thinking I could just modify the wikicode to make into into a slideshow. As you most likely already know, that didn't work because there was JS required. Could you help with that, probably by altering my monobook.js (you're an admin so you alter others' monobooks/vectors)? Thanks. [[User:Kayau|Kayau]] <small>([[User talk:Kayau|talk]] · [[Special:Contributions/Kayau|contribs]]) </small> 03:58, 18 January 2013 (UTC)
: In fact, I'd never dealt with that template. Will try as I can scavenge time. On first look at the docs, seems to be partly js and partly css. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 12:10, 18 January 2013 (UTC)
:: Thanks. :) [[User:Kayau|Kayau]] <small>([[User talk:Kayau|talk]] · [[Special:Contributions/Kayau|contribs]]) </small> 12:31, 18 January 2013 (UTC)
esi0upsyww2gceqgaunjei2nyms1u2a
User talk:Kayau/Archive 1
3
241066
4640111
4592042
2026-06-13T15:22:53Z
ShakespeareFan00
46022
4640111
wikitext
text/x-wiki
Welcome, Kayau!
{| style="background:white; border:1px solid #abd5f5;; padding:0px; border-spacing:0px; color: #000000;"
! style="background:#d0e5f5; color: #000000;" | [[Wikibooks:Welcome|Getting started]] with Wikibooks
|-
| style="padding:5px;" |
* Wikibooks is a collection of open-source textbooks. Find out [[WB:WIW|what this means]].
* To sign your name (on discussion pages), use four tildes, like this: ~~~~
* Learn how to [[Using Wikibooks|use Wikibooks]] and learn more about the community.
* [[WB:CCO|Explore]], [[Wikibooks:Be bold|be bold]], and have fun!
|}
Come introduce yourself in the [[Wikibooks:Reading room/General|general reading room]] or your project in the [[Wikibooks:Reading room/Projects|project reading room]]. If you have any questions, you can ask in the [[Wikibooks:Reading room/Assistance|assistance reading room]] or contact me personally. [[User:Kayau|Kayau]] ([[User talk:Kayau|talk]]) 12:11, 18 July 2009 (UTC)
== Ada Programming ==
I hope this is the appropriate place to place my comments. On occasion, I contribute about Ada. I feel a bit upset upon your change on the OO page.
I may say I am profoundly knowledgeable on Ada and I wrote a comment about a nonsense translation of C++ code into Ada. Now what does your comment mean "Hide text as it might look really ugly"? What's ugly here? Do you know anything about Ada?
The translation is really suboptimal (just to avoid the word nonsense or junk). I added my comment about this to invite people to go to the discussion page and give their ideas about a better translation. (I don't know much about C++.) On the discussion page, I made a proposal for such a better translation. Just to hide my comment is not very helpful for people trying to learn Ada, especially if they come from C++.
I'm awaiting your reply at the "Ada Programming/Object Orientation/discussion" page.
AdaMagica
:Thank you, Kayau, for your kind comments. It was the word ''ugly'' which took me on the wrong foot. I would have expected a comment like what you gave me on the Discussion page directly there, not just a misleading comment in the history - I think this is its very purpose, isn't it. Why I was hesitant to replace the text is that I'm not an expert for C++, and I wanted to stimulate others to contribute. Obviously no one did; so today I've provided a (hopefully) better text. AdaMagica, 3 August 2010
== Welcome! ==
Welcoming yourself shows initiative, sure, but what kind of neighbors would we be if it let it go at that?
<div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Kayau!</div>
<div style="width:55%; float:left; margin: .2em; border:1px solid #15304f; background-color:#f4eed7;">
<div style="border-bottom:1px solid #15304f; background-color:#15304f; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#f4eed7;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div>
<div style="border-bottom:1px solid #15304f; padding:0.4em 1em 0.3em 1em;">
'''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>
You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing and ''[[WB:AGF|assume good faith]]'' about the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[Wikibooks:Reading room/General|introduce yourself]] to everyone, and let us know what [[Wikibooks:Reading room/Projects|interests you]].
If you're coming here from other Wikimedia projects, you should read [[Help:Wikibooks for Wikimedians|our primer for Wikimedians]] to get quickly up-to-speed.
</div>
<div style="border-bottom:1px solid #15304f; background-color:#2a62a1; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#e9deaf;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div>
<div style="padding:0.4em 1em 0.3em 1em;">
* See the '''Wikibooks [[Help:Contents|help pages]]''' for common issues.
* Remember, every edit is saved, so if you make mistakes, you can [[Wikibooks:Reverting|revert]] to an earlier version if needed.
* Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]].
* You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]].
</div>
</div>
<div style="width:43%; float:left; margin: .2em; border:1px solid #15304f; background-color:#f4eed7;">
<div style="border-bottom:1px solid #15304f; background-color:#5f96d3; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#15304f;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div>
<div style="border-bottom:1px solid #15304f; padding:0.4em 1em 0.3em 1em;">
* Please fill in [[:w:Help:Edit summary|the edit summary]] and [[Help:Show preview|preview]] your edits before saving.
* Sign your name on [[Help:Talk page|discussion pages]] by typing ~~~~
* User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''!
</div>
<div style="border-bottom:1px solid #15304f; background-color:#5f96d3; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#15304f;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div>
<div style="border-bottom:1px solid #15304f; padding:0.4em 1em 0.3em 1em;">
* '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>.
* Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]).
* To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page.
* If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]], or ask the administrator who deleted the page.
</div>
<div style="background-color:#transparent; padding:0.2em 0.5em 0.2em 0.5em;">Thanks, [[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 15:30, 18 July 2009 (UTC)</div>
</div>
<div style="clear: both; text-align:right; font-size:smaller">(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</div>
Ha! I did the same at the zh. wikipedia, but nowhere else. I never self-welcomed at the simple wikipedia, wiktionary, en wikipedia, simple wikibooks, or anywhere else.
==Deletion==
Hi, I noticed your {{tlx|vfd}} tag at [[A Wonderful Indian History]], don't forget to create the corresponding section for discussion [[Wikibooks:Votes for deletion]] with your reasons why it should be deleted. In some cases you may nominate a page for speedy deletion with a {{tlx|delete}} tag. You can read what makes something eligable for speedy deletion at [[WB:DP|the deletion policy]]. In just created today, you can try a {{tlx|query}} to see if the author is really interested in continuing the project. It is also a nice idea (which I forget more than anyone) to leave a note at the main contributors talk pages to let them know what is going on. Hope your having fun. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 18:20, 19 July 2009 (UTC)
==Templates==
Just an FYI: nearly all templates that go on user talk pages need to be substituted. For instance, I fixed the welcome template above in this same edit by changing it to {{tlxs|welcome}}. Feel free to contact me if you have any questions regarding Wikibooks. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 01:40, 22 July 2009 (UTC)
:Guess I'm just not used to this wiki. Do you need that on talkbacks as well? [[User:Kayau|Kayau]] ([[User talk:Kayau|talk]]) 07:40, 22 July 2009 (UTC)
::(dropping in on the conversation...)
::The welcome templates need to be substituted, as does {{tlx|icon}}. Those are the ones I know about. There are others that '''shouldn't''' be subst'd, like {{tlx|editprotected}} and {{tlx|vfd-survived}}. Evidently, nobody's ever bothered to define <code><nowiki>{{talkback}}</nowiki></code> at Wikibooks. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 20:12, 23 July 2009 (UTC)
== RE:Welcome ==
Hi. Thanks for the welcome. I'm more active in English Wikipedia so you might not see me around here much. :>) [[User:Bejinhan|<font color="#00FFFF">Bejinhan</font>]][[User talk:Bejinhan|<font color="#00FFFF">Talk</font>]] 03:28, 1 August 2009 (UTC)
:Well, I don't go to those departments. What's MOTD? I usually do other stuff there. Is your username there also Kayau? [[User:Bejinhan|<font color="#00FFFF">Bejinhan</font>]][[User talk:Bejinhan|<font color="#00FFFF">Talk</font>]] 06:20, 2 August 2009 (UTC)
:Well, I don't go to those departments often. I usually patrol the different articles for grammar mistakes. [[User:Bejinhan|<font color="#00FFFF">Bejinhan</font>]][[User talk:Bejinhan|<font color="#00FFFF">Talk</font>]] 06:03, 3 August 2009 (UTC)
== User page ==
You could have removed it. I really don't care if people edit my pages, just as long as it is for good. [[User:Iwatchaltonbrown|AltonBrownIsAwesome]] ([[User talk:Iwatchaltonbrown|talk]]) 13:10, 4 August 2009 (UTC)
== [[Geometry for Elementary School/Angles#Angles]] ==
I have uploaded an image, and included it into the page. Let me know what you think of it. Also see my response at my talk page about typesetting equations. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 12:49, 27 April 2010 (UTC)
== Rights change ==
You've been granted the rollback tool. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 12:45, 28 April 2010 (UTC)
== [[Geometry for Elementary School/A proof of irrationality#Irrationality of the square root of 2]] ==
Could you take a look at this section and tell me what you think? Specifically I would like your input about the language. Specifically, do you think this is readable by an older primary school student. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 13:26, 2 May 2010 (UTC)
== BryanBot ==
The list of pages that are watched and updated on [[Wikibooks:Discussion index]] and [[Wikibooks:Administrators' discussion index]] are hidden in the code at the top of the page. The talk pages for the corresponding pages there are likely not listed due to all the talking pretty much taking place on the main page. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 12:36, 3 May 2010 (UTC)
== Concerns about [[Geometry for Elementary School]] ==
I was taking a look at the older versions and and newer versions of this book, and I think there are some issues between what the book originally wanted to do and some of the new sections. The book was trying to give a classic "ruler and compass" introduction to geometry. Unfortunately with those tools there is no way to measure an angle, so one cannot talk about an angle that is 60°. Also, one doesn't usually define congruence in such a way that it matters how you label the vertices. I am not sure how to reconcile the two points of view on the subject, but something should probably be done. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 14:50, 3 May 2010 (UTC)
== I've reshaped your RfD post [[Wikibooks:Requests for deletion#Fuji Finepix Real 3D W1]] ==
The post was a bit confused since you initiated the RfD and latter reposted an unsigned comment that provided the rationals for the RfD, I've joined them together and stamped the last date on the complete text. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 22:33, 5 May 2010 (UTC)
:I never wrote that. It must have been another user forgetting to sign. My language isn't that mature you know. I'm still a kid, [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 13:40, 6 May 2010 (UTC)
:: You are indeed correct the post was made [[http://en.wikibooks.org/w/index.php?title=Wikibooks%3ARequests_for_deletion&action=historysubmit&diff=1783727&oldid=1783698 by Thenub314]] in clarification of you position. He forgot to sign and the next post by you was still auto-commented as belonging to the same thread, in an high traffic edit history it is hard to fallow the participation. My mistake, but since the RfD is now closed, it is important to you that I correct the error ?
:: I've already inferred your age by "grown up" comment you made elsewhere. It is hard to detect vocabulary and proficiency on the use of the language by age, in todays words doesn't mean much and I'm not a natural English speaker. I know some "grown ups" that write like kids and vice versa :) In any case kudos for you to be participating in the project... --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 21:09, 6 May 2010 (UTC)
:::I believe it is still important to re-alter the comment and sign, perhaps, with Thenub314's sig. That way people who are just nosing around at the archives will not be misleaded. By the way, I am not a native speaker either. [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 10:07, 7 May 2010 (UTC)
::::Will do... --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 10:20, 7 May 2010 (UTC)
::::Done ([[Wikibooks:Requests for deletion/Fuji Finepix Real 3D W1#Fuji Finepix Real 3D_W1]]) --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 10:29, 7 May 2010 (UTC)
::::: Oops, thanks for correcting that. [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]]) 10:56, 7 May 2010 (UTC)
== I've removed your the request for deletion of [[Jamaican Creole]] ==
"It just doesn't look very agreeable." isn't strong enough reason to initiate an RfD, even so I've taken a look into the work and I don't see any issue that should place it in danger of deletion or even to consider initiate a discussion about it's future.
You must understand that when you tag a work for RfD you force people that intent on working on it to move away, it has a very strongly negative connotation on any of the work done so far and it is extremely demoralizing. Ultimate if you haven't strong enough reason but you dislike the work for some reason try to address the community working on it or use the general discussion area. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 06:00, 6 May 2010 (UTC)
== Book move ==
Moved your book to [[Chinese Stories]] to title case it as is convention. It's also in [[:Category:Cultural anthropology]], alongside other books such as [[Indian Mythology]] and [[Greek Mythology]]. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 12:45, 7 May 2010 (UTC)
== re screenshots ==
I have responded on my talk page. thanks. --[[User:33rogers|33rogers]] ([[User talk:33rogers|talk]]) 14:58, 13 May 2010 (UTC)
== PDF thumbs ==
[[File:The_Elements_of_Euclid_for_the_Use_of_Schools_and_Colleges_-_1872.djvu|page=13|150px|right]] I figured out how to get a specific page to show up in the thumbnail. <nowiki>[[File:The_Elements_of_Euclid_for_the_Use_of_Schools_and_Colleges_-_1872.djvu|page=13]]</nowiki> will show page 13. I see you have a static thumbnail in the template now, but thought I'd share this anyway. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 01:22, 17 May 2010 (UTC)
:That's cool. I'll try to use that when I need to. However, I've read on wikisource that when dealing with archive.org .djvu files, we should go to archive.org to obtain the jpeg as the quality is higher. [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 10:42, 17 May 2010 (UTC)
== [[Wikibooks:Naming policy]] ==
While the book's title must use title case, the subpages can use title case or sentence case. That means your moves to make the subpages of [[Wikijunior:Biology]] sentence case were just fine, but likewise they also could have been fine with the original title casing as well. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 15:25, 22 May 2010 (UTC)
:Really? Oh darn, I always thought modules have to use sentence case. Is it OK if I don't move it back? It will take a terrible amount of time to do that. :( [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 01:16, 23 May 2010 (UTC)
== re: your comment on "A thought experiment" ==
I just felt it adequate to note that you are the smartest 12-year old I have seen in a long while :) I really wonder whether, if Wikibooks existed ten years ago and I had decent command of English back then, I would be able to make myself at home here as you do. Probably not... Cheers, [[User:Duplode|Duplode]] ([[User talk:Duplode|talk]]) 17:47, 6 June 2010 (UTC)
== Just for you ==
{{User talk page stalker}}
– [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 22:18, 2 July 2010 (UTC)
{{clr}}
[[Wikijunior:Biology]]'s systems pages don't seem to have their navigation matching up with the order on [[Wikijunior:Biology/Systems]]. Just thought you should know. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 20:43, 22 July 2010 (UTC)
== Just a passing thought ==
You could link to "{{nowrap| [[w:WT:WPWPA#Barnstars 2.0]] }}". --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 06:30, 4 July 2010 (UTC)
:I'm just too dratted lazy to remember the section header. :) [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 11:09, 4 July 2010 (UTC)
== Discussion format ==
Feel free to pop out of the bubble textbox if you wish to continue on the other thread. I've advanced a change considering what was already said (even what was removed), regarding the usefulness, interpretation and need of the icons and if they really do help us understand each-other. Please reply there if not dealing with issue regarding format, and again feel free to restore it or adapt a similar approach that you prefer to keep the page usable and the discussion to the point. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 09:17, 16 July 2010 (UTC)
== <nowiki><small></small></nowiki> ==
The change you made is skewing the other chapters [http://en.wikibooks.org/wiki/C%2B%2B_Programming/Chapters Chapters] (affecting the main page) and is extremely hard to read in the deepest level. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 04:12, 27 July 2010 (UTC)
:I have reverted the edits. [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 04:31, 27 July 2010 (UTC)
::Thanks. It also wasn't improving on the core issue. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 04:36, 27 July 2010 (UTC)
== Image ==
[[C++ Programming/Programming Languages]]<br>[[Image:TaxonomyofProgrammingLanguages.png|thumb|right|200px|Image shows most programming languages and their relations from mid 18 hundreds up to 2003 ([[Media:TaxonomyofProgrammingLanguages.png|click here for full size]]).]]{{clear}}
Is there a way to show the full image if a user clicks in the thumbnail ? (At present it goes to the commons page but even then the image is unreadable it has to be clicked in the full image size) --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 02:42, 1 August 2010 (UTC)
:<nowiki>[[Media:TaxonomyofProgrammingLanguages.png]]</nowiki> will produce a link that goes to the full size. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 04:04, 1 August 2010 (UTC)
::Are you sure? It's not really full size for me... [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 04:25, 1 August 2010 (UTC)
:::It is the same display that full image shows on commons (same URL) the size still has to be increased (to be readable), I use an extension that does that, maybe it is the browser that limits the image in some way, but the solution is an improvement. Is there a way to include it on the thumb or will I have to add it as a link in the description ? --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 04:32, 1 August 2010 (UTC)
== Reviewing ==
Please do not sight obvious vandalism such as the edit I had to revert on [[High School Earth Science/Continental Drift]]. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 12:08, 4 August 2010 (UTC)
== Comments ==
You probably noticed that your concerns in the Wikimedia Forum went unnoticed or unanswered. That's typical from what I've seen there. It's simply not the best venue. Instead, I'd suggest subscribing to and posting your comments to the [https://lists.wikimedia.org/mailman/listinfo/foundation-l foundation-l] mailing list, where many high-profile people will see them. You can note the loss of five high-profile people on Wikinews due to infighting, the infighting at Wikiversity, and any personal observations at Wikibooks. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 12:07, 7 August 2010 (UTC)
== On the [[w:On_the_Duty_of_Civil_Disobedience|duty]] of [[w:Civil Disobedience|Civil Disobedience]] ==
* ''I don't know about civil disobedience, but this may start an edit war. [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 10:10, 15 August 2010 (UTC)''
What if they gave a war and no one came?
Kayau, you are about to enter into one of the most fertile periods of learning in life. You will discover that we live in a wide world, rich with fascinating ideas. Among the ideas which were controversial in the 20th Century were ideas promoted by figures like [[w:Mohandas K. Ganhdi|Mohandas K. Ganhdi]] and [[w:Martin Luther King|Martin Luther King]]. They were both assassinated, even though their own methods were scrupulously non-violent.
But this is Cyberspace, Kayau. An assassin can imprison or kill an avatar that promotes an idea, but ideas themselves cannot be killed or imprisoned.
[[w:Victor Hugo|Victor Hugo]], the author who wrote ''[[w:Les Misérables|Les Misérables]]'', said, “You may resist the invasion of armies, but you can’t resist the invasion of ideas.”
—[[betawikiversity:User:Moulton|Moulton]] ([[betawikiversity:User_talk:Moulton|talk]]) 11:31, 15 August 2010 (UTC)
:He's right. --[[User:Abd|Abd]] ([[User talk:Abd|talk]]) 17:07, 15 August 2010 (UTC)
== On the reversion of Moulton comments. ==
This is long, I apologize for that, but I don't have time to make it shorter. :-) There is nothing urgent here, so, please, if you like, read it at leisure.
[http://en.wikiversity.org/wiki/Wikiversity:Community_Review/JWSchmidt_2010#Block_proposal]. I have many times requested that Moulton not ''ever'' revert war over his comments. I have, in fact, suggested that he self-revert "per block of Moulton", and the reason is that this would simultaneously respect the right of a community to add extra control to the contributions of an editor (though blocking), while at the same time making a "proposed edit" that people may read in history, if they wish to, and then those who have read it can take responsibility for any of a number of possible measures:
*Revert it back in as a useful contribution, or at least harmless.
*Refer to the edit in a diff, with comment as to why it was not reverted in, or why it might be useful to look at it.
*Request block of the IP involved at an appropriate noticeboard. Or not.
*Ignore it.
This suggestion of self-reversion has been proposed and used in a number of places. What it does is to tease out legitimate blocking (the purpose of blocking, in general, is to avoid the open appearance of disruptive material), from a desire to censor, to prevent criticism. By doing the reverting himself or herself, the blocked editor is ''cooperating,'' not disrupting, and is simply substituting a self-reverted comment for one submitted by alternate means, such as by email or off-wiki, as on Wikipedia Review.
Moulton has yet to accept this suggestion, but others have, including Thekohser, who cooperated fully and used self-reverted edits to make positive contributions while blocked at Wikiversity. In return, for a time, the contributing IP was not blocked. That period ended when a sysop decided that "the experiment was over," blocked the account that had been open for communication, at first blocked but with Talk page access allowed, all without any disruptive editing at all. (And clearly contrary to consensus, paralleling what's been happening here.) There are sysops who don't understand that unnecessary blocking amplifies and perpetuates disruption. The goal should always be to prevent damage and encourage positive contributions. But over the long term, the rule-bound have a tendency to take over. "A ban is a ban is a ban," comes to be the actual practice. And "evading a ban" becomes a game to be won at all costs. Instead of negotiated "peace agreements," that are likely to be honored, we get a constant need to make reverts, and set IP blocks, including what have sometimes become massive range blocks. All to prevent "disruption."
When there are far easier and less disruptive ways, usually.
In the absence of Moulton's compliance (he has his own reasons, I'm not faulting him, but those reasons do put him at odds with overall wiki welfare, in my view, in spite of his often very cogent criticisms), there remains one practice that is very simple: anyone may revert out the original contributions of a blocked editor, without review of their content. Otherwise a block means nothing, it could be replaced with a "global revert permission." But, then, and this has been well-established on Wikipedia, in spite of attempts to ding editors who revert back in the comments of blocked editors, any editor, by taking personal responsibility for the appropriateness of the material in context, may revert it back in.
And editors really should do that, if it is useful material, without revert warring. The original revert is procedural, not a decision that the content is inappropriate, so the "original assertion," technically, is by the editor who reverts it back in. That comment could have been received by email, as an example, being posted with permission. If another editor reverts, ''that the original editor was blocked is irrelevant.'' The issue becomes the content. As it should be.
Moulton suggested, yesterday, that I could revert his edit back in. I declined to do so, because I am not yet active here (I probably will be in the future). My view is that the revert back in of a reverted edit from a blocked editor should never be by an IP editor, because it raises possible questions about socking, it should be what we might call a "registered member," someone with something to lose if acting disruptively.
I urge editors who value a contribution from Moulton to recognize that they are not helpless, it is the editor who is blocked, not the content. Moulton often makes useful comments, and they should be reverted back in, my opinion. Does this "encourage" him? Sure, but only to make contributions that are useful. Isn't that what policy should be about? If he makes contributions that are disruptive, nobody will revert them back in, he'll be wasting his time. If he does this all the time, people will stop even looking at the edits, as long as they are self-reverted, thus defeating his purpose. If he makes contributions that require revision deletion, such as "outing" edits, not only will nobody revert them back (unless an admin, at great risk!), but the IP will definitely and promptly be blocked.
I'll be arguing at Wikiversity that self-reverted edits should not bring down an IP block, if identified as I've described ("Will revert per block of Named Editor,"). These actually make ban or block enforcement easier, not more difficult. One can then look at the IP contributions to quickly verify that nothing untoward is going on. Self-reversions are quick and easy to check.
And the "censorship" argument is then shot to hell. Blocking becomes, simply, a kind of Flagged Revisions, only at a simpler stage: the contributions of the blocked or banned editor must be "seconded" to appear. There are lots of people to whom that might apply, but because we only have the blunt instrument of "Block!", and we have people who don't understand the purposes, we don't set up a middle ground.
Self-reversion is useful with topic bans, that's where it was first invented, and it worked brilliantly in the first case, a topic-banned editor who was a world-class expert on the topic. Instead of suggesting a complex edit on Talk, cumbersome and inefficient, he made the edit, then self-reverted "per ban." The editor who had ''requested'' the topic ban then reviewed it and accepted almost all of it, making only a few tweaks. Extremely efficient. Created cooperation where there had been discord and opposition.
Self-reversion could even be implemented involuntarily by bot. Trivial to do. And could be very specific, or site-wide. As an editor who has experienced being site-banned for a time, along with helping many other blocked editors, I would vastly prefer being automatically reverted to being blocked, particularly if the bot, say, exempted my user space, because then I could maintain my own user files, my own user page, etc. I have never evaded a ban except on Wikipedia where (1) the ban was completely unclear; that wasn't evasion at all, or (2) with self-reversion, twice. I was blocked both times, the first block was part of the decision to desysop the blocking admin ... the second time, it was never reviewed because by that time, I just did not care enough to go through the process of review. Blocks are bad news when not clearly designed to prevent disruption, but when they become punishment, which is what had happened. --[[User:Abd|Abd]] ([[User talk:Abd|talk]]) 17:06, 15 August 2010 (UTC)
== Numbering support votes for CU ==
Unlike other flags which are handled by consensus, the CheckUser right, on those projects without an ArbCom, is only granted by the stewards if there are 25 supporting votes in the project. We've always numbered support votes for CU; if you recall back to Adrignola's CU nomination, not only did we count support votes, but we sent out the drum corps to round up the last few votes he needed... [[User:Chazz|Chazz]] <small>([[User talk:Chazz|talk]])</small> 05:55, 16 August 2010 (UTC)
:Actually I was on a Wikibreak then. [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 06:00, 16 August 2010 (UTC)
::Wikinews numbers CU votes, too. It's a courtesy to the Stewards. Per {{nowrap|[[Meta:Checkuser policy#Access to CheckUser|Meta policy]]}}, some Steward is going to have to verify that there were really at least 25 ayes. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 10:49, 16 August 2010 (UTC)
:::<edit conflict>I don't numbering !votes - the stewards could count them, can't they? But this is policy I can't challenge. <s>And, um, Pi zero, did you just type Wikinews in CamelCase?</s> Oh, I see you didn't. :-) [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 10:52, 16 August 2010 (UTC)
== Query ==
Are you able to see [[Special:AbuseFilter/13]]? – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 13:50, 17 August 2010 (UTC)
:Nope. [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 14:18, 17 August 2010 (UTC)
::Excellent. That was the intended result. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 14:21, 17 August 2010 (UTC)
== TUSC token 125e99aff7317b8bf1d06fb2eedd920f ==
I am now proud owner of a [http://tools.wikimedia.de/~magnus/tusc.php TUSC] account!
== Re: Geometry for Elementary School ==
I would love to help, but my memory of geometry is faint at best. Even three years ago, when I was last on this site and when I was taking geometry, I was unable to help because much of it was indeed done. Again, I'd love to help, but I will stick with what I know. --[[User:Freiberg|Freiberg]] ([[User talk:Freiberg|talk]]) 14:24, 19 August 2010 (UTC)
== Note ==
If you would like an ndash, you can use the HTML code for it: – (see the wikitext). Calling a template for that is a bit unnecessary. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 14:56, 19 August 2010 (UTC)
:But convenient too. :) [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 14:58, 19 August 2010 (UTC)
== historical documents? ==
saw you wrote on my talk page...but it wasnt there. [[User:Tannertsf|Tannertsf]] ([[User talk:Tannertsf|talk]]) 12:30, 19 September 2010 (UTC)
:I meant to write on Tannersf's talk page, but realised I wrote on yours instead, so I removed it. Are you, by any chance, the same person as Tannersf? [[User:Kayau|Kayau]] ([[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]]) 13:43, 19 September 2010 (UTC)
yes...we are the same. Tannertsf is my main, and current account. the other one is my old account i had 5 years ago. it is defunct now. - [[User:Tannertsf|Tannertsf]] ([[User talk:Tannertsf|talk]]) 15:55, 19 September 2010 (UTC)
:Thanks for the clarification. I wonder if you could define a scope for the historical documents book, because I have doubts whether it is suitable here. I have tried to find such a definition with no success. Thanks. [[User:Kayau|Kayau]] ([[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]]) 09:16, 20 September 2010 (UTC)
::The book seems to be out of scope. Its content should be at Wikisource. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 12:27, 20 September 2010 (UTC)
:::It's been RfD'ed before so I want to make sure first. :) [[User:Kayau|Kayau]] ([[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]]) 13:21, 20 September 2010 (UTC)
== deleting historical documents ==
Kayau...you can get rid of my historical documents book. It shouldn't be here, it should be at wikisource. Thanks. - [[User:Tannertsf|Tannertsf]] ([[User talk:Tannertsf|talk]]) 10:31, 2 October 2010 (UTC)
== [[Investiture of the Gods]] ==
I was wondering if your language skills would permit you to explain to me why we have [[Investiture of the Gods/Chapter 16]] and [[Investiture of the Gods/chapter 16b]] for [[s:zh:封神演義/卷016|封神演義/卷016]], for instance. There are many pages in that book tagged for merger (the #b or #.5 ones) but they refer to different titles for the chapters. Are they simply different translations? – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 13:07, 20 October 2010 (UTC)
:Yes, I believe they are, but the text itself wasn't translated. I personally prefer the former though; IMO its title is more accurate. The prose is also more readable. [[User:Kayau|Kayau]] ([[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]]) 13:40, 20 October 2010 (UTC)
:<small>P.S. I think the most direct translation would be Ziya burns the Pipa monster. [[User:Kayau|Kayau]] ([[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]]) 13:41, 20 October 2010 (UTC)</small>
::That is helpful. Thanks. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 14:56, 20 October 2010 (UTC)
== Follow-up ==
Image credit links are now available on the main page. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 14:01, 16 December 2010 (UTC)
== Bug note ==
There's a bug since the update to MediaWiki 1.17 affecting imports. See [[bugzilla:27486|bug 27486]]. You'll have to choose "all" as the destination namespace to attribute Wikipedia properly as the source, for now. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 15:59, 18 February 2011 (UTC)
:Thanks [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 16:01, 18 February 2011 (UTC)
:Consider adding a note to whatever MW: page houses the message in [[special:import]]? [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 16:03, 18 February 2011 (UTC)
::Hmm, well, I was hoping it would get fixed soon enough that it wouldn't be a problem. Consider adding a proposal to the [[WB:PROPOSALS|reading room]] for "suppressredirect" for importers. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 16:12, 18 February 2011 (UTC)
:::I don't think I'm gonna propose that cos I've already thought of a reason to oppose it. :D [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 16:14, 18 February 2011 (UTC)
== Ownership worries ==
Its custodianship from my perspective. How is this issue generally handled? [[User:KieranMaher|marz]] ([[User talk:KieranMaher|discuss]] • [[Special:Contributions/KieranMaher|contribs]]) 23:38, 25 February 2011 (UTC)
:I believe I have resolved the problem by pluralising 'author'. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 01:35, 26 February 2011 (UTC)
::Many thanks for your editorial assistance. [[User:KieranMaher|marz]] ([[User talk:KieranMaher|discuss]] • [[Special:Contributions/KieranMaher|contribs]]) 02:50, 26 February 2011 (UTC)
== Is there a group working on math materials? ==
I much appreciate your many contributions in elementary school mathematics. Links have been set up from my website www.k-12math.info to a number of them. Is there a group within Wikibooks putting together elementary and secondary school mathematics information? Thanks.
Jim Kelly
:There's a coordination amongst contributors to mathematics books at [[Wikibooks:WikiProject Mathematics]]. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 15:33, 13 May 2011 (UTC)
== [[Wikibooks:Requests for deletion/God and Religious Toleration]] ==
I want to point you at the German Wikibooks. The same author started a German version named "Gott (God)". We started an own deletion discussion based on "theory finding" and "NPOV violation". After a strong [[:de:Wikibooks:Löschkandidaten/ 2011-05/ Gott|discussion]], the author accepted to delete the book. I shall do so. -- [[User:Juetho|Juetho]] ([[User talk:Juetho|discuss]] • [[Special:Contributions/Juetho|contribs]]) 16:19, 8 June 2011 (UTC)
== WCI conference 2011 : Would like to discuss a few things ==
Hello!
I will be delivering a Talk at the Wikimedia Conference India 2011 on the topic of "Accelerating Wikibooks".
Over the next few days, I aim to make the proposal more and more wholesome and relevant. I'd like to discuss with you about the proposal and hope you can recommend me a few names on Wikibooks with whom I can discuss this.
I'd be very happy if you could discuss the proposal at [[User:Thewinster/Accelerating_Wikibooks]]
--[[User:Thewinster|Thewinster]] ([[User talk:Thewinster|discuss]] • [[Special:Contributions/Thewinster|contribs]]) 08:03, 26 September 2011 (UTC)
=== Summary of the proposal ===
This is not a summary of the final talk, only a tentative guideline.
* Create Roadmaps for a book
* Define Learning Outcomes
* Annotate and Discuss new content available from around the web.
* Minor tweaks and fixes which concentrate on crowdsourcing.
* Identifying Small Contribution that advance a book and designing good UIs and triggers according to B.J. Fogg's Behavior Change Model, 8 Step Design Process. The paper can be found here at [http://www.bjfogg.com/design_files/page8_1.pdf Persuasive Design : Eight Step Process by B. J. Fogg]
6cewhsuim3ehtvsgznzgjexosvyqoc3
User talk:92.43.64.66
3
241642
4640113
2076969
2026-06-13T15:23:15Z
ShakespeareFan00
46022
4640113
wikitext
text/x-wiki
== October 2010 ==
[[File:Information.svg|25px|link=]] We welcome and appreciate [[Special:Contributions/92.43.64.66|your contributions]], but some of your recent edits had to be undone. Please see [[Wikibooks:What is Wikibooks|What is Wikibooks?]] to learn more about what contributions are beneficial to Wikibooks. Please take a look at the [[Wikibooks:Welcome|welcome page]] to learn more about contributing to this project. If you would like to experiment further, please use the [[Wikibooks:Sandbox|sandbox]] instead. Thank you.<!-- please help --> – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 13:48, 14 October 2010 (UTC)
==[[:User:Aram Pitts]]==
{{tmbox|type=delete|text=
'''[[:User:Aram Pitts|User:Aram Pitts]] has been nominated for deletion. Please [[Wikibooks:Requests for deletion#User:Aram Pitts|share your thoughts]].'''<br/>You are being notified because you have contributed to this work. If you haven't read it already, please see our [[WB:DP|deletion policy]]. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 15:40, 31 March 2011 (UTC)}}
k3tw8r624u9xew8j0s8omc3wtjprif7
User talk:72.53.144.176
3
241878
4640133
2097326
2026-06-13T15:32:29Z
ShakespeareFan00
46022
4640133
wikitext
text/x-wiki
Hi! Thanks for your work on the electronics book. I have been busy moving some of the new pages you created so that they fall within the book's hierarchy. Do not be alarmed. Also, you should consider creating an account here. --[[User:Jomegat|Jomegat]] ([[User talk:Jomegat|talk]]) 17:12, 17 October 2010 (UTC)
:Also, please quit recreating the chapters I've moved for you, and work on the moved version instead. --[[User:Jomegat|Jomegat]] ([[User talk:Jomegat|talk]]) 17:21, 17 October 2010 (UTC)
== [[Trigonometry Course]] ==
I have nominated this book for [[Wikibooks:Requests_for_deletion#Trigonometry_Course|deletion]], as it overlaps too much with [[trigonometry]]. I hope that you will be able to contribute to the latter.--[[User:Wisden|Wisden]] ([[User talk:Wisden|discuss]] • [[Special:Contributions/Wisden|contribs]]) 16:41, 24 February 2011 (UTC)
:Please DO NOT delete the "request for deletion" tag on this book. This should not be removed until the discussion regarding its deletion has been formally concluded. [[User:Recent Runes|Recent Runes]] ([[User talk:Recent Runes|discuss]] • [[Special:Contributions/Recent Runes|contribs]]) 19:15, 19 May 2011 (UTC)
== Please consider creating an account and logging in ==
You get a lot more if you log in, eg you can become a [[WB:REVIEWER|reviewer]]. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 16:15, 27 March 2011 (UTC)
rxpchnm27716iffloh1nqk262ug44fc
Template talk:Unsigned
11
242252
4640065
4415604
2026-06-13T12:35:04Z
ShakespeareFan00
46022
4640065
wikitext
text/x-wiki
{{permprot}}
== Thai wikilink ==
Hello;
Can you add interwikilink ([[:th:แม่แบบ:ไม่ได้ลงชื่อ]]) to [[Template:Unsigned|this template]] ?
Thank you. --[[User:B20180|B20180]] ([[User talk:B20180|discuss]] • [[Special:Contributions/B20180|contribs]]) 05:02, 13 June 2012 (UTC)
:{{done}}, see [https://en.wikibooks.org/w/index.php?title=Template%3AUnsigned%2Fdoc&action=historysubmit&diff=2363033&oldid=1955046 diff] for the [[Template:Unsigned/doc|documentation page]]. Regards, <small style="font: 12px Courier New;display:inline;border:#009 1px dashed;padding:1px 6px 2px 7px;white-space:nowrap">[[User talk:Mabdul|<span style="color:#000">mabdul</span>]]</small> 09:16, 13 June 2012 (UTC)
d02l818aeexofneopdzyrfogjgl89a5
Talk:First Aid/Archive 2
1
242321
4640197
1955718
2026-06-13T16:23:51Z
ShakespeareFan00
46022
4640197
wikitext
text/x-wiki
{{talk archive}}
==[[First Aid/Templates]]==
These templates can be used throughout the wikibook. ''' – [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 17:05, 11 July 2007 (UTC)
==What needs to be done?==
A [[First Aid/What needs to be done?|list of tasks]] needing to be done - feel free to move things around on this page as things get done. ''' – [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 17:06, 11 July 2007 (UTC)
== Useful content may be found here ==
There ''may'' be useful content here. Please be ''very'' careful when taking content from here, as much of it is out-of-date and/or non-standard. That said, there may be plenty to copy and paste if appropriate. [[Adventist Youth Honors Answer Book/Health and Science/First Aid, Basic]] and [[Adventist Youth Honors Answer Book/Health and Science/First Aid, Standard]]. [[User:Mike.lifeguard|Mike.lifeguard]] 00:18, 24 June 2007 (UTC)
:Also here: [[Scouting/BSA/First Aid Merit Badge|Scouting:BSA - First Aid Merit Badge]] [[User:Mike.lifeguard|Mike.lifeguard]] 01:52, 24 June 2007 (UTC)
:[http://circ.ahajournals.org/content/vol112/22_suppl/ The 2005 standards from ILCOR in Circulation] [[User:Mike.lifeguard|Mike.lifeguard]] 04:49, 27 June 2007 (UTC)
::[[First Aid/Appendix C: Sources]] was created, and these sources were included in it. [[User:Mike.lifeguard|Mike.lifeguard]] 18:15, 30 June 2007 (UTC)
== Processing page text ==
This stuff was added by [[User:Whiteknight]] as "processing page text", but I don't think its supposed to do what it's doing, so I removed it. Also, I don't think it renders the same when you preview vs save. I dunno what's going on there.
<pre>
{{shelf|Games and athletics}}
{{DDC|700|790}}
{{LOC|G|GV}}
{{shelf|Health science}}
{{DDC|600|610}}
{{LOC|R}}
</pre>
[[User:Mike.lifeguard|Mike.lifeguard]] 23:12, 28 June 2007 (UTC)
:Sorry about that. I made those edits with a bot, based on the lists of books on the bookshelf. If this book got tagged twice, it must be shelved on two different shelves. The templates do render correctly, although I will admit that perhaps they aren't the most aesthetically pleasing of all templates. That's something we can work on in the future, of course. The important part is that the templates put this book into the correct Dewey Decimal ({{tlx|DDC}}) and Library of Congress ({{tlx|LOC}}) categories, so that the book can be found more easily. If you have any other questions about this, let me know. --'''Whiteknight''' ([[User:Whiteknight|Page]]) ([[User talk:Whiteknight|Talk]]) 23:32, 28 June 2007 (UTC)
::Having those additional categorizations is fine, but the text at the bottom of the page but before the categories bar is a nuisance. Can't those template be changed so you still get the tags in that bottom bar where Category:First Aid is, but no text above it, where the content is? If not, leave them (I doubt anyone will read to the end of the disclaimers anyway) but it should be possible, though I have no idea how. [[User:Mike.lifeguard|Mike.lifeguard]] 23:38, 28 June 2007 (UTC)
:::Yeah, we can work to change the templates. Like i said, they were just a first attempt at a categorization, and we can make them prettier or we can even make them disappear entirely if we want. I'll figure something out about it and let you know. --'''Whiteknight''' ([[User:Whiteknight|Page]]) ([[User talk:Whiteknight|Talk]]) 01:22, 29 June 2007 (UTC)
:::Okay, I made them invisible for now. --'''Whiteknight''' ([[User:Whiteknight|Page]]) ([[User talk:Whiteknight|Talk]]) 01:28, 29 June 2007 (UTC)
== Emergency Childbirth ==
{{TextBox|
The most important principle of emergency childbirth is to recognise that women have been giving birth for tens of thousands of years in the total absence of any medical support whatsoever. With this in mind it should be obvious that under normal conditions, very little intervention should be necessary. The primary role of all who are assisting the mother should be to make her as comfortable as possible.
The guideline '''first do no harm''' is imperative for emergency childbirth.
<B>Do's</b>
*Do contact the emergency services or the mother's doctor for assistance, especially if the timing of the birth is unexpected.
*Do comfort and reassure the expectant mother.
*Do have her position herself in the most comfortable position possible. This could be lying down, squatting, kneeling on all fours, etc.
*Do have plenty of absorbant materials (cloths, towels, or newspaper) available as needed.
*Do attempt to provide privacy. In a crowd, bystanders can be asked to stand in a circle with their backs to the scene to create an artificial privacy area.
*Do use protective precautions <i>including gown and face mask (when available)</i>.
<B>Don'ts</b>
*Do not put anything into the vagina or womb.
*Do not pull on the cord or the baby.
*Do not have the woman cross her legs to try to delay labor.
}}
The content was included on [[First Aid/Ch10Sec2Birth]], which is probably getting deleted. If we want to include it, there it is. [[User:Mike.lifeguard|Mike.lifeguard]] 06:55, 29 June 2007 (UTC)
:Childbirth seems like more than the lay rescuer would be able to help with. If it can eventually be rewritten to make it more lay-rescuer friendly such as (provide privacy and put absorbant materials under the mother and let the birth happen by itself while waiting for advanced care), it might be suitable to use. [[User:Mike6271|Mike6271]] 02:13, 6 July 2007 (UTC)
::I don't think this should be included, even in [[First Aid/Advanced Topics]], although I suppose someone will want it to be included there. If we decide to include the section, it'd have to go there, and it'd have to be re-written for lay rescuers. ''' – [[User:Mike.lifeguard|Mike.lifeguard]]''' | <sup>[[User talk:Mike.lifeguard|talk]]</sup> 02:18, 6 July 2007 (UTC)
:::Well, think of it this way, we can offer this as an instructional guide and note that it is Advanced (Remember that no rescuer is required to go beyond their training). After all, lay rescuers are more than likely going to be the only trained individuals during such a time as birth can happen very quickly. --[[User:Nugger|Nugger]] 23:45, 15 July 2007 (UTC)
::::My point was just that I don't consider it to be part of first aid. Even advanced first aid. If we had a textbook aimed at EMTs/Paramedics/whatever then it would be far more appropriate there. Perhaps you ([[User:Nugger|Nugger]]) and [[User:Owain.davies|Owain.davies]] and [[User:Mike6271|Mike6271]] could start one and include this sort of thing. Or maybe a book on midwifery... ''' – [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 23:54, 15 July 2007 (UTC)
::::This topic is more suitable for a first responder course. [[User:Firefighter04|Firefighter04]] 18:32, 23 July 2007 (UTC)
:::::So, the suggestion here is that no layperson will ever need to deal with this? If someone happens to have to deal with this, shouldn't they be advised ''somehow''? [[Special:Contributions/72.50.169.6|72.50.169.6]] ([[User talk:72.50.169.6|talk]]) 03:21, 6 March 2009 (UTC)
== Victims, patients, casualties ==
I know this has been discussed on EN Wikipedia, with many of the same people, but i am not comfortable with the use of 'victim' to describe the person being treated.
Victim always implies that the harm has been cuased to them (usually a victim of crime), but you couldn't say that someone was the the 'victim' of a vicious paper cut, or a tragic 'victim' at the hands of a particularly nasty hole in the ground.
(See the [http://en.wiktionary.org/wiki/victim Wiktionary entry] if you want a definition)
Some things are just accidents! (although i'm sure there are lawyers out there who would disagree...)
My personal preference is for 'patient', as this is standard terminology for most people, and this is how it tends to be dealt with in research papers (for instance papers on bystander CPR). I know some people feel that patients are something that only doctors have, but certainly my ambulance service deals in patients as opposed to anything else.
Alternatively you could use 'casualty', as this has wide recognition, but in my opinion this really only refers to trauma patients. You aren't usually a 'casualty' of a stomach ache (or a victim for that matter), but you could be a 'patient with stomach ache'
In either case, i think victim is inappropriate, and needs to be changed.
Thoughts? [[User:Owain.davies|Owain.davies]] 08:31, 3 July 2007 (UTC)
:I did weigh in on this debate on WP, so feel free to read my comments [[w:Talk:First aid#"Victim"|there]] if you like. The definition at wiktionary includes "An unfortunate person who suffers from a disaster or other adverse circumstance." I'd call a heart attack or a dislocated shoulder an "adverse circumstance". As well, I think it's incredibly important, especially in Wikibooks (where we do how-tos and try to teach people - this isn't an encyclopedia) to be clear that first aiders are ''not'' healthcare providers - they are lay rescuers. So yes, paramedics, nurses, doctors (etc...) can have patients. But ''first aiders'' don't. I agree that casualty is inappropriate, but the correct alternative is victim, not patient. [[User:Mike.lifeguard|Mike.lifeguard]] 19:00, 3 July 2007 (UTC)
::I have previously read your comments on WP, and I see what you're saying, but i don't think you can be a 'victim' of a headache. That single wiktionary definition is just the one definition, and every other one i can find (inc on other dictionary sites) gives a meaning where a victim involves someone being at fault. No fault = no victim. [[User:Owain.davies|Owain.davies]] 19:23, 3 July 2007 (UTC)
:: I will just add, that the majority of opinion at WP was against the use of victim, as i'm sure you know. For the record, the 'official' terminology in the UK for first aiders (as agreed by all the major first aid providers) is 'casualty', although as i said, i'm not a fan. There is no reason that the person being treated has to be a victim right up until the ambulance arrive, when they suddenly become a patient. As for diagnosis, i hope that first aiders can diagnose a simple level - even if it's just diagnosing cardiac arrest! [[User:Owain.davies|Owain.davies]] 19:27, 3 July 2007 (UTC)
:::The entire LSS disagrees with you, as ''victim'' is the word they use consistently in all their texts. Keep in mind that headache, stomachache, vicious paper cut, and "a tragic 'victim' at the hands of a particularly nasty hole in the ground" are not things that will ever be included in this WB - that's not first aid.
:::Casualty=dead, so I agree that this is entirely inappropriate
:::Patient=healthcare setting, not first aid, so this is also entirely inappropriate, especially considering that as the WB is attempting to ''teach'', it is crucial to maintain the distinction between lay rescuers and healthcare providers.
:::Victim is the only alternative I can think of, and is widely used, though not in the UK, apparently. -[[User:Mike.lifeguard|Mike.lifeguard]] 19:32, 3 July 2007 (UTC)
::Pardon my ignorance, but who are the LSS? Life Saving Society? Presumably you mean ILSF (i am a member and am well aware that they use victim predominantly, but that is because it is appropriate for drowing and other marine injuries - BUT you will note that they use Patient in relation to injuries etc. once the person is on land [http://www.ilsf.org/medical/policy_05.htm see here]) As for headache, stomach ache, twisted ankle from hole in the ground and paper cut - these are PRECISELY the sort of first aid that most people will end up dealing with! I've done many of these in my time on ambulances (yes people really do call for that), in the workplace and as a lifeguard!) It's a slight pet peeve of mine that some people spend all their time describing worst case scenario (and don't get me wrong, you need to be ready) but gloss over the minor stuff which makes up the majority of the work! I do apologise, i've looked back, and this does look like a rant, but i'm just trying to reach a conclusion on this. On a minor point, i don't think casualty means dead, but i think it should be restricted to trauma patients [[User:Owain.davies|Owain.davies]] 20:38, 3 July 2007 (UTC)
:::I didn't mean the international federation - they don't actually train anyone. The LSS is the Canadian 'arm', widely regarded as a leader in training, especially lifeguarding (but also first aid). The international federation is 'just' an umbrella organization (not that it isn't important).
:::In regards to the most common things people will be dealing with. Take headaches as an example - it's not included in the Standard level. That's the/my criterion for inclusion in the book (with the exception of the [[First Aid/Advanced Topics|Advanced Topics]] section). Which is why anything that doesn't fall inside that is being 'relegated' to that section or being deleted. That's not to say that we don't have room for advanced topics - clearly there is room, but we're keeping it separate for a reason (it's outside the Standard standard of care; forgive that unfortunate use of words).
:::I can agree that casualty is for those people suffering from a trauma injury, and as such would be a runner-up to victim in my mind. Patient is absolutely off-limits: as I said before, this Wikibook needs to keep the lay rescuer/healthcare provider distinction crystal clear; using patient would blur the line more than casualty. Acceptable to you as well? -[[User:Mike.lifeguard|Mike.lifeguard]] 01:27, 5 July 2007 (UTC)
::They don't actually train anyone, but they do set the standards for all national societies. I'm a member of the RLSS and SLSA (UK ILSF members) as well as the British Red Cross, and patient is definitely standard. I find it hard to believe that things like headaches are not covered in standard first aid, this would pretty much always be on a standard first aid course here. I can't really reconcile to the use of victim, because apart from the one very narrow definition on wikitionary, no-one else seems to agree that it applies to anything other than something which has a perpetrator. If you don't like paper cuts and headaches, i wouldn't say that you are the 'victim' of an asthma attack, because nobody caused it. Given the outcome of this debate on WP (which i didn't take part in), and the lack of any further support, i think patient has got to be the right answer. [[User:Owain.davies|Owain.davies]] 06:05, 5 July 2007 (UTC)
::Being from the US, patient is pretty much always used in more advanced first aid or healthcare CPR classes. However, when using patient, it (as Mike said) implies something more than what the lay-rescuer provides. Looking at a boy scout handbook, it says "first aid is the first help given the victim of an accident or other health emergency." Although victim does make it seem like something happened to the individual in a "more violent" way, by using victim, the lay-rescuer will not feel like he has to exceed his scope of practice to help the victim. Although at my EMS agency we call them "patients," in a lay-rescuer situation, victim would be more appropriate here as patient implies more than just basic care. [[User:Mike6271|Mike6271]] 02:10, 6 July 2007 (UTC)
::American Red Cross uses 'victim' throughout their materials. In response to the idea that one cannot be victim of something like a headache, I would respond that from a first aid standpoint, the person is a victim of some unknown sudden illness, of which headache is a symptom. [[User:68.225.184.156|68.225.184.156]] 02:18, 13 July 2007 (UTC)
{{Question}} Have we reached a consensus? It looks like we're going to use victim for everything except in [[First Aid/Advanced Topics]], where we'll have the option of using patient. ''' – [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 00:29, 10 July 2007 (UTC)
:Sounds good. I will use victim from now on. [[User:Mike6271|Mike6271]] 19:15, 14 July 2007 (UTC)
==Spelling==
How should the spelling work here? Oedema is the same thing as edema, just with a different spelling. Should we go with American English or English English? [[User:Mike6271|Mike6271]] 03:24, 6 July 2007 (UTC)
:I have a preference for Canadian English, being Canadian. Hopefully you (American, I think) and [[User:Owain.davies]] (British, I think) will battle it out. Then you'll need a compromise position, which will be Canadian English, being halfway between the two, more or less. Which is exactly what I want. ''Let the evil scheme commence''
:In reality, I don't care that much - do whatever you want. ''' – [[User:Mike.lifeguard|Mike.lifeguard]]''' | <sup>[[User talk:Mike.lifeguard|talk]]</sup> 03:35, 6 July 2007 (UTC)
::In theory, we should use the first variant used - Canadian in this case. So it's really up to Mike... [[User:Owain.davies|Owain.davies]] 06:02, 6 July 2007 (UTC)
:::Maybe try using something like Oedema (US: Edema) would work as I tried in [[First_Aid/Extended_Assessment]] so that someone from the US reading it will know that Oedema is the same as Edema. Unless it is obvious as to what it is, does anyone support using the (US: usspelling) format so we can keep it in Canadian English? [[User:Mike6271|Mike6271]] 15:14, 6 July 2007 (UTC)
:No sense not having both. Write "The patient might have Oedema (edema)...". Whatever you do, just be consistant. If you need to have a glossary at the end of your book to explain terms like this, that might help to keep everybody on the same page. --'''Whiteknight''' ([[User:Whiteknight|Page]]) ([[User talk:Whiteknight|Talk]]) 16:08, 6 July 2007 (UTC)
::It is indeed. Thanks! ''' – [[User:Mike.lifeguard|Mike.lifeguard]]''' | <sup>[[User talk:Mike.lifeguard|talk]]</sup> 20:16, 9 July 2007 (UTC)
::There is a [[First Aid/Appendix A: Glossary|Glossary]] for terms like this. When you find them, please add them. As well, feel free to include alternate spellings. ''' – [[User:Mike.lifeguard|Mike.lifeguard]]''' | <sup>[[User talk:Mike.lifeguard|talk]]</sup> 16:25, 6 July 2007 (UTC)
::: Is there any way to make it "jump" to the term? [[User:Mike6271|Mike6271]] 19:04, 6 July 2007 (UTC)
::::Only if you make a section for each term. Then you can do something like [[First Aid/Appendix A: Glossary#term]] and it'll jump to that section. That'll make the glossary really bulky though. There might be a workaround that I'm not aware of - take a look through the help stuff? ''' – [[User:Mike.lifeguard|Mike.lifeguard]]''' | <sup>[[User talk:Mike.lifeguard|talk]]</sup> 20:53, 6 July 2007 (UTC)
:::::To create a tag to jump to, without having to create a section, use the {{tlx|anchor}} template. For instance, if you wanted to jump to "Band-Aid", you would write:
::::: ;{{tlx|Anchor|Band-Aid}}Band-Aid: ...
:::::Hope this is what you are talking about. --'''Whiteknight''' ([[User:Whiteknight|Page]]) ([[User talk:Whiteknight|Talk]]) 17:54, 9 July 2007 (UTC)
::::::It sure is! Thanks ''' – [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 00:47, 10 July 2007 (UTC)
== Proposal ==
I'd like to propose splitting the [[First Aid/Emergency First Aid & Initial Action Steps]] module.
*The BLS chapter would match [[First Aid/CPR summary]] by turning into:
:'''A'''rea
:'''A'''wake
:'''A'''mbulance
:[[First Aid/A for Airway|'''A'''irway]]
:[[First Aid/B for Breathing|'''B'''reathing]]
:[[First Aid/C for Compressions|'''C'''ompressions]] (remember that there is no circulation check, so C for Compressions is a reinforcement of those changes)
:[[First Aid/D for Deadly Bleeding|'''D'''eadly bleeding]] (see last bullet for more on defib)
*[[First Aid/Life-Threatening Medical Emergencies]] would be deleted, since it essentially says "there's some other stuff you'll need EMS for. We'll tell you that on other pages"... well, we're gonna tell them on the other pages - they don't need a heads-up.
*The [[First Aid/Emergency First Aid & Initial Action Steps#Treatment|3Ps]] <s>would be moved to "Purpose of First Aid" in [[First Aid/Issues in Providing Care|Issues in Providing Care]].</s> are already covered in [[First Aid/What Is First Aid?|First Aid/What Is First Aid]]
*[[First Aid/Emergency First Aid & Initial Action Steps#Emergency First Aid and Initial Action Steps]] <s>is already covered elsewhere</s> would be covered in Area
*[[First Aid/Emergency First Aid & Initial Action Steps#Assessing]] moves to Area
*[[First Aid/Emergency First Aid & Initial Action Steps#Calling for Help]] moves to Ambulance
*Defibrillation will be mentioned in Ambulance as well - lay rescuers should attempt to obtain an AED and AED-trained responder at the same time as calling EMS. AED ''use'' must stay in [[First Aid/Advanced Topics]] since it required advanced training.
''' – [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 19:54, 15 July 2007 (UTC)
::AED does not require advanced training, however I can understand where you are coming from as some areas have not upgraded to new standards. (Most newer AEDs have step-by-step instructions with visual aids so that anyone could use an AED efficiently. I have also stated this elsewhere, but I don't agree with the way the ABCs are handled. Maybe change it to A for Assessment in the steps of first-aid and change the ABCs to Airway, Breathing, Circulation. --[[User:Nugger|Nugger]] 23:52, 15 July 2007 (UTC)
:::The training organizations disagree with you - they all recognize the need for AED-specific training. I happen to agree with you; I think AEDs are so easy to use that training is not needed. But again, what we think doesn't matter - we go by what the experts say. And they say that it requires training, so it must therefore stay in [[First Aid/Advanced Topics]].
:::I don't understand why we would want anything called A for Assessment. The whole premise of the BLS chapter is assessment and intervention.
:::Please also read my comments [[Talk:First Aid/C for Compressions#I believe|here]]. ''' – [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 00:02, 16 July 2007 (UTC)
::::I revoke my statements as it was confusion on my part. Details [[Talk:First Aid/C for Compressions#I believe|here]] --[[User:Nugger|Nugger]] 00:13, 16 July 2007 (UTC)
==Name Change==
Most of the content in this book is primarily taught in a certified first responder course rather than a basic first aid course. I took a basic first aid course and it basically went over soft tissue injuries, control of bleeding, and musculoskeletal injuries (e.g. splinting, etc.) and medical emergencies but not childbirth, patient assessment (Check, Call, Care is all I learned in the BFA class), and in-depth kind of stuff. <small>—The preceding [[w:Wikipedia:Sign your posts on talk pages|unsigned]] comment was added by [[User:Firefighter04|Firefighter04]] ([[User talk:Firefighter04|talk]] • [[Special:Contributions/Firefighter04|contribs]]) {{{2|}}}.</small>
:It should stay first aid. Some of the topics are more advanced, but they are all basic first aid topics that anyone can do. There is much more to being a First Responder than what is covered in this section. I don't know why you changed it to Certified First Responder without any vote from the contributers. [[User:Mike6271|Mike6271]] 19:35, 23 July 2007 (UTC)
:I moved it back to first aid. [[User:Mike6271|Mike6271]] 19:38, 23 July 2007 (UTC)
==Request that [[First Aid/Abuse & Neglect]] Be Merged==
I am requesting that the article [[First Aid/Abuse & Neglect]] be merged into the book [[First Aid|Certified First Responder]] (formerly known as "First Aid"). [[User:Firefighter04|Firefighter04]] 18:36, 23 July 2007 (UTC)
{{Done}} ''' – [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 23:12, 23 July 2007 (UTC)
==First Aid Kits==
Should we have a section on first aid kits and what a personal/home first aid kit should contain? [[User:Mike6271|Mike6271]] 03:27, 12 November 2007 (UTC)
:Yes, I think that would be useful. [[User:Owain.davies|Owain.davies]] 19:31, 12 November 2007 (UTC)
::Absolutely. I'd say it should probably be an appendix. '''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 02:26, 13 November 2007 (UTC)
:::Will someone add the page...I don't...want to break it :-P <small>—The preceding [[w:Wikipedia:Sign your posts on talk pages|unsigned]] comment was added by [[User:Mike6271|Mike6271]] ([[User talk:Mike6271|talk]] • [[Special:Contributions/Mike6271|contribs]]) 00:34, November 20, 2007.</small>
::::[[Image:Yes_check.svg|15px| ]] '''{{{1|Done}}}''' - [[First Aid/Appendix E: First Aid Kits]]. '''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 00:43, 20 November 2007 (UTC)
== [[WB:FBN#First Aid (PDF)]] ==
Did you guys notice that this book is up for Featured Book status? Feel free to comment on the discussion. '''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 00:46, 20 November 2007 (UTC)
:[[Image:Yes_check.svg|15px| ]] '''This is now a featured book.''' '''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 18:33, 12 December 2007 (UTC)
== Disclaimers ==
How to we feel about removing the disclaimers? They're redundant as all of Wikibooks is covered by those disclaimers (they were adapted from the boilerplate disclaimers which apply to everything). I think the originals are enough, and they're a bit hideous next to the TOC. I'll remove them at some point unless there's objection. Keep in mind that we have mini-disclaimers throughout (ie when we talk about administering epi-pens, we say "only if it's legal to do so" etc) '''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 10:16, 20 November 2007 (UTC)
:[[Image:Yes_check.svg|15px| ]] '''{{{1|Done}}}''' '''– [[User:Mike.lifeguard|<span style="color:Indigo">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:Indigo">talk</span>]]</sup> 18:20, 25 November 2007 (UTC)
::I do not know what disclaimers were there previously, but I [http://en.wikibooks.org/w/index.php?title=First_Aid&diff=1676828&oldid=1648277 have added] a brief sentence in the body text just to draw people's attention to the general disclaimer. There is always the possibility that somebody adds wrong information (whether maliciously or with good intentions), and that somebody else reads it before it can be removed, and later relies on it in an emergency situation. There has to be a balance, and I don't think that it is necessary to give lengthy disclaimers on the front page when people can just click the link to the disclaimer page, but I do think that the potential harm in that situation is enough to justify giving the link more prominence than just the foot of the page. [[User:Alan Iwi|Alan Iwi]] ([[User talk:Alan Iwi|talk]]) 15:47, 8 December 2009 (UTC)
:::Avoiding disclaimers in content is standard practice, so I have removed that. The disclaimer is already linked on every single page of the wiki, and that is sufficient. Note we already do more than that where it actually makes sense to do so ''because doing so is part of the lesson''. — [[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]] | <sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 01:57, 11 March 2010 (UTC)
==[[Wikiversity:First Aid]]==
Someone just added this; thought you might be interested to take a look. I've added a link from there to this WikiBook. -- [[User:Jtneill|Jtneill]] - <small>[[User talk:Jtneill|Talk]] - [[Special:Contributions/Jtneill|c]]</small> 08:42, 17 September 2008 (UTC)
== Wilderness First Aid ==
This section should probably be pulled out of Advanced Topics and should stand on its own. It is really a different method of first aid. [[User:Geo.plrd|Geo.plrd]] ([[User talk:Geo.plrd|talk]]) 15:42, 27 October 2008 (UTC)
:I'd suggest rather than splitting it up that you use subpages. Most treatment needn't be repeated - it's ''RED'' no matter your location - what is probably most important is covering exposure, transportation etc. '''— [[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 16:29, 27 October 2008 (UTC)
::I will use subpages. However I believe that this subject merits a chapter of its own as treatments in wilderness first aid can be radically different than those undertaken under normal conditions. [[User:Geo.plrd|Geo.plrd]] ([[User talk:Geo.plrd|talk]]) 16:39, 27 October 2008 (UTC)
:::It has it's own section which can be as large as need be (is that a "chapter"?)
:::Probably the best thing to do where treatment varies only a bit is to say "Refer to [[Wherever]], but note that ''something different regarding treatment in the wilderness''
:::For things which are ''massively'' different, only then would I recommend that you rewrite the section. Probably beginning with ''principles'' of wilderness first aid would be good - you will then be able to say for each condition "Here is how we treat it differently in the wilderness" with reference to those principles. Perhaps I'll grab you on IRC if I'm not making sense. '''— [[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 21:19, 27 October 2008 (UTC)
== Emergency Contact Appendix? ==
Would be wise/feasible to create an appendix with emergency numbers for each country? [[User:Geo.plrd|Geo.plrd]] ([[User talk:Geo.plrd|talk]]) 16:39, 27 October 2008 (UTC)
:Sounds fine, however I would recommend not bothering with local numbers, which is what I think you meant - things like 911 and equivalents, poison control centres etc '''— [[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 21:16, 27 October 2008 (UTC)
:I don't mean local numbers, but the national emergency and poison control numbers. [[User:Geo.plrd|Geo.plrd]] ([[User talk:Geo.plrd|talk]]) 01:43, 28 October 2008 (UTC)
lnf4wu1voxe52lm4fyqax1m4aa9a6qb
User talk:Sah005
3
242430
4640145
4594029
2026-06-13T15:37:45Z
ShakespeareFan00
46022
4640145
wikitext
text/x-wiki
<div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Sah005!</div>
<div style="width:55%; float:left; margin: .2em; border:1px solid #15304f; background-color:#f4eed7;">
<div style="border-bottom:1px solid #15304f; background-color:#15304f; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#f4eed7;">[[File:Crystal Clear app kedit.png|20px|link=]] '''First steps tutorial'''</div>
<div style="border-bottom:1px solid #15304f; padding:0.4em 1em 0.3em 1em;">
'''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>
You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing and ''[[WB:AGF|assume good faith]]'' about the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[Wikibooks:Reading room/General|introduce yourself]] to everyone, and let us know what [[Wikibooks:Reading room/Projects|interests you]].
If you're coming here from other Wikimedia projects, you should read [[Help:Wikibooks for Wikimedians|our primer for Wikimedians]] to get quickly up-to-speed.
</div>
<div style="border-bottom:1px solid #15304f; background-color:#2a62a1; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#e9deaf;">[[File:Icon apps query.svg|20px|link=]] '''Getting help'''</div>
<div style="padding:0.4em 1em 0.3em 1em;">
* See the '''Wikibooks [[Help:Contents|help pages]]''' for common issues, or read [[Using Wikibooks]] for a more user-friendly introduction to the project.
* Remember, every edit is saved, so if you make mistakes, you can [[Wikibooks:Reverting|revert]] to an earlier version if needed.
* Get help from the community in the [[WB:HELP|user assistance room]] or in our [[irc:wikibooks|IRC channel]].
* Files must be uploaded to [[commons:Wikimedia Commons|Wikimedia Commons]], unless they are copyrighted and need to be uploaded here under [[w:fair use|fair use]]. If you need to upload a [[Wikibooks:MEDIA#Non-free use|non-free]] file, you may [[WB:RFP|request permission]] to do so. Please be sure to provide the required {{tl|information}}: a [[WB:FILES|license tag]] and source are always required; non-free files require a {{nowrap|{{tl|non-free use rationale}}}}.
</div>
</div>
<div style="width:43%; float:left; margin: .2em; border:1px solid #15304f; background-color:#f4eed7;">
<div style="border-bottom:1px solid #15304f; background-color:#5f96d3; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#15304f;">[[File:Transmission icon.png|20px|link=]] '''Goodies, tips and tricks'''</div>
<div style="border-bottom:1px solid #15304f; padding:0.4em 1em 0.3em 1em;">
* Please fill in [[:w:Help:Edit summary|the edit summary]] and [[Help:Show preview|preview]] your edits before saving.
* Sign your name on [[Help:Talk page|discussion pages]] by typing ~~~~
* User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''!
</div>
<div style="border-bottom:1px solid #15304f; background-color:#5f96d3; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#15304f;">[[File:Nuvola filesystems trashcan full.png|20px|link=]] '''Made a mistake?'''</div>
<div style="border-bottom:1px solid #15304f; padding:0.4em 1em 0.3em 1em;">
* '''Please make sure you follow our [[WB:NP|naming policy]]''' - pages should be named like <code>Book Title/Chapter Title</code>.
* Need to rename a page? Use the ''move'' tab (only becomes available once your account is 4 days old - until then, ask for [[WB:HELP|help]]).
* To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page.
* If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:RFD|RFD]] archives if applicable. You can request undeletion at [[WB:RFU]], or ask the administrator who deleted the page.
</div>
<div style="background-color:#transparent; padding:0.2em 0.5em 0.2em 0.5em;">Thanks. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|talk]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 07:49, 24 October 2010 (UTC)</div>
</div>
<div style="clear: both; text-align:right; font-size:smaller">(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</div>
mjz2hnyahh1d6bicnq7a23460xy27xo
User talk:86.138.217.178
3
242433
4640107
1957099
2026-06-13T15:19:49Z
ShakespeareFan00
46022
4640107
wikitext
text/x-wiki
[[File:Information.svg|25px|link=]] We welcome and appreciate [[Special:Contributions/86.138.217.178|your contributions]], but some of your recent edits had to be undone. Please see [[Wikibooks:What is Wikibooks|What is Wikibooks?]] to learn more about what contributions are beneficial to Wikibooks. [[::User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|talk]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 13:32, 24 October 2010 (UTC)
137eu54tz0vo9a9bl40pu2qtenh520r
4640108
4640107
2026-06-13T15:20:13Z
ShakespeareFan00
46022
4640108
wikitext
text/x-wiki
[[File:Information.svg|25px|link=]] We welcome and appreciate [[Special:Contributions/86.138.217.178|your contributions]], but some of your recent edits had to be undone. Please see [[Wikibooks:What is Wikibooks|What is Wikibooks?]] to learn more about what contributions are beneficial to Wikibooks. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|talk]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 13:32, 24 October 2010 (UTC)
a3bwyq1odaqyj2fmjyi0u26d59l9i23
Wikibooks:Requests for deletion/Unlingvae
4
244677
4640127
4624703
2026-06-13T15:29:18Z
ShakespeareFan00
46022
4640127
wikitext
text/x-wiki
== [[Unlingvae]] ==
{{closed|1=Consensus to delete. [[User:QuiteUnusual|<span style="color:#E66C2C">'''QU'''</span>]] <sup>[[User talk:QuiteUnusual|<span style="color:#306754">TalkQu</span>]]</sup> 18:17, 1 December 2010 (UTC)}}
This is another [[WB:OR|original research]] constructed language. Searching for information on this language to attempt to verify that it has some notability or actual use or even some scholarly backing reveals only this book and mirrors of our content. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 23:54, 1 November 2010 (UTC)
:'''Delete'''. Looks like a no-brainer to me. The first hit is WB. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|talk]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 14:26, 2 November 2010 (UTC)
:[[Image:Symbol delete vote.svg|15px]] '''Delete''' Agreed, search engines only find us (and mirrors) when searching for this book, seems to be OR to me. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 18:17, 9 November 2010 (UTC)
:[[File:Symbol delete vote.svg|15px]] '''Delete''' as Original research. I couldn't find anything outside of Wikibooks that didn't point back to Wikibooks either. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 20:42, 9 November 2010 (UTC)
{{End closed}}
d426i1zzja9d1bm35op45odphg2nyv9
Wikibooks:Reading room/Archives/2010/November
4
244678
4640150
2016432
2026-06-13T15:39:39Z
ShakespeareFan00
46022
4640150
wikitext
text/x-wiki
{{talkarchive}}
== Splitting a book ==
I've been considering giving each error message on [[GCC Notebook]] it's own page using the error message as the title, but some of them are extremely long and/or contain non alpha-numeric characters. I've looked the official naming policy page and the style guides, but didn't find anything specific related to page name length or special characters to avoid. Are there any set restrictions or recommendations in those two areas? [[User:Phosgram|Phosgram]] ([[User talk:Phosgram|talk]]) 06:46, 9 November 2010 (UTC)
: "/" is used to separate a book's name from chapter and page names. ":" is used to separate works into different namespaces. Those two characters should be considered special characters to avoid reusing with a different meaning. I suggest no more than 3 to 5 words for chapter or page names, because longer titles can be harder for people to remember, to find, and to retype correctly. Some GCC documents I've read group related error messages, that could possibly be more useful for readers than giving each error its own page. You should also consider that error messages can change from version to version and that might be another reason to group errors than to give each error its own page. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 11:15, 9 November 2010 (UTC)
:: Avoiding just those 2 characters shouldn't be a problem. I'm not sure about 3 to 5 words per page name, that might be overly limiting, maybe 5 to 7 (this would be just for error message pages). I had planned on grouping error messages that had the same, or almost the same, root cause, but I don't want to over-group as I think I'd lose too much context. I mainly wanted the book to be a verbose reference for resolving errors and code bugs reported by GCC's C/C++ compilers as I've yet to find a good one, but didn't want to title it "g++ errors" as that's probably too narrow a scope. I was thinking of changing the title to something like "Debugging with GCC" before splitting it up though. Differing error messages shouldn't be a problem, I planned on including sample source code that would produce the error message on the error pages ([[GCC_Notebook/Draft|something like this]]), so it wouldn't be too difficult to keep track of changes. Thanks for the advice. [[User:Phosgram|Phosgram]] ([[User talk:Phosgram|talk]]) 04:35, 10 November 2010 (UTC)
== Bamboozled by book Categories ==
OK. So I want the [[Trigonometry]] book to appear both under 'geometry' and under 'K12-mathematics' under the [[:Subject:Mathematics]] listing. My attempts to do so are not working. What am I doing wrong? [[User:JamesCrook|JamesCrook]].
: You want to add {{tlx|subjects|geometry|k12-mathematics}} to [[Trigonometry]]. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 13:19, 11 November 2010 (UTC)
:: Sorry for some mistakes in reporting what I'm trying to do. I'm still not getting the book [[Trigonometry]] to appear at the page [[:Subject:K-12_mathematics]]. Could you make the change please and then I can look and see what you actually did? Does a cache need to be flushed or something? [[User:JamesCrook|JamesCrook]] ([[User talk:JamesCrook|talk]]) 21:25, 11 November 2010 (UTC)
:::Since both ''K-12 mathematics'' and ''Geometry'' appear at the bottom of [[Trigonometry]], you can be confident that they will show up at [[Subject:K-12 mathematics]]. In fact, they already appear for me. A cache does need to be flushed. To simplify this for you in the future, visit [[Special:Preferences]], click the ''Gadgets'' tab, and then check the box for the ''Add purge tab'' gadget and save the page. Then visit the subject page, hover over the drop-down arrow and choose the "p" option to '''p'''urge the page. Alternatively, add <tt>?action=purge</tt> to the URL of the subject page. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 21:34, 11 November 2010 (UTC)
Bamboozled by categories? -- Take a ticket! (Armchair, 25/11/10, UTC 13:05)
== Relative measure for Images? ==
Can anybody please tell me? ...Is there a facility to use relative measure for image sizing?
That is to say, instead of expressing an image size in only pixels. This would allow users to better design layouts that can adapt to the screen size of the reader. This is particularly desirable for images in a bounding table cell at the head of a page.
Any thoughts? Regards to all, [[User:Armchair|Armchair]] ([[User talk:Armchair|talk]]) 16:27, 26 November 2010 (UTC)
: I thought this use to be possible, but doesn't seem to work now. If you don't include the image size, I think the image's actual size will be used unless the image is bigger than the maximum size set by a user in their preferences. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 19:35, 26 November 2010 (UTC)
== PD-Translations on Wikibooks? ==
Hi, there is a discussion (see [[s:Wikisource:Scriptorium#Where they are hosted]]), whether '''Wikisource-based''' translations (such as [[s:Category:Wikisource translations]]) do belong to Wikisource, or maybe to Wikibooks, or somewhere else. What do you think? --[[User:D.H|D.H]] ([[User talk:D.H|talk]]) 11:17, 28 November 2010 (UTC)
: I think Wikisource is the place when the translation intends to preserve the original meaning with no other changes. If the intentions is to also provide an updated work of educational value, I think the answer depends on what form the work is intended to take. If the work is intended to take on an encyclopedia quality it should be forked to Wikipedia after translation. If the work is intended to take on a form that is within Wikibooks' scope than it should be forked to Wikibooks after translation. If the work is intended to be some other kind of learning material it should be forked to Wikiversity after translation.
: Different language editions of Wikisource may have different inclusion requirements about translations too. Whether translations intended to preserve the original meaning belong at the target language Wikisource project or should be moved there after completion is best left up to Wikisource. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 12:41, 28 November 2010 (UTC)
== Bottom border of tables missing in Internet Explorer 8 ==
Hi,
I note that whereas Opera and Firefox depict the bottom borders of tables correctly, IE8 does not.
For examples see [http://en.wikibooks.org/wiki/Editing_Wikitext/Tables_Ready_to_Use '''Tables Ready to Use''']
Any ideas, folks?
Regards to all, [[User:Armchair|Armchair]] ([[User talk:Armchair|talk]]) 22:27, 24 November 2010 (UTC)
: Is this a problem you've noticed in the last day or two, or is this been around awhile? I've been told of similar problems with the borders for the tabs in the vector skin. Do you know if this problem is unique to Wikibooks or have you noticed this problem at other wikimedia projects as well? The problems I've heard were only noticed at Wikibooks. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 23:10, 24 November 2010 (UTC)
::While I notice the tab border problem, I'm looking at the above-linked page and I don't see a difference for me between Firefox and IE8 with regards to the tables. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 01:07, 25 November 2010 (UTC)
Given this new information. What operating system and operating system number are you both using with IE8? --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 11:29, 25 November 2010 (UTC)
I have been off the net for a while so I do not know whether or not it is recent. I use a new computer with Windows 7, fully updated. Oops!; it seems to be working today on all three browsers. [[User:Armchair|Armchair]] ([[User talk:Armchair|talk]]) 12:57, 25 November 2010 (UTC)
...Tell a lie... it still seems to be a problem; it is intermittent! [[User:Armchair|Armchair]] ([[User talk:Armchair|talk]]) 17:09, 27 November 2010 (UTC)
: Well the problem I was told about appears to be fixed now. Maybe the problem is similar. Check for any unclosed tags. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 20:25, 27 November 2010 (UTC)
== Translation to other languages ==
I could not find any help on how to make translation in other languages. For instance, I would like to translate wikibook on Python in Serbian. How can I start the translation? <small><span class="autosigned">—Preceding [[w:Wikipedia:Signatures|unsigned]] comment added by [[User:Milanpopovic|Milanpopovic]] ([[User talk:Milanpopovic|talk]] • [[Special:Contributions/Milanpopovic|contribs]]) 15:19, 14 November 2010 (UTC)</span></small><!-- Template:Unsigned -->
:[[:sr:Python|click here]] to start translating. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|talk]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 13:11, 15 November 2010 (UTC)
fvpkrg40tcyv4vwagmc0wv56u8viwhb
Template talk:Talk header
11
245273
4640077
4007798
2026-06-13T12:44:08Z
ShakespeareFan00
46022
4640077
wikitext
text/x-wiki
{{Talkheader}}
{{permprot}}
== Archive format ==
Sequent archives aren't particularly helpful when you need to find things in a specific time period, which is most of the time. I think we should update this template to support archives of the format: <tt>/Archives/Year/Month</tt>. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 17:38, 16 January 2011 (UTC)
:Okay, but we should use the form YYYY/MM then, as in 2011/01 so they go up in a standard numeric order. This would have to be in addition to the plain number format already present since it's used in several other places. I somewhat regret not having done it that way for the [[Wikibooks:Reading room/Archives|discussion room archives]] (though I use it for my own talk archives). – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 17:43, 16 January 2011 (UTC)
== Interwikilink ==
Hello; Can you add interwikilink to [[:th:แม่แบบ:อธิบายหน้าพูดคุย]] ? Thank you. --[[User:B20180|B20180]] ([[User talk:B20180|discuss]] • [[Special:Contributions/B20180|contribs]]) 11:26, 13 January 2013 (UTC)
== Delete ==
This template should ideally be deleted from Wikibooks. --[[User:Dan Polansky|Dan Polansky]] ([[User talk:Dan Polansky|discuss]] • [[Special:Contributions/Dan Polansky|contribs]]) 08:28, 5 November 2017 (UTC)
mnqlffywos5f9xx24fw85q1u6bwj70p
MediaWiki:Right-abusefilter-modify
8
245518
4640103
4524414
2026-06-13T15:13:16Z
Codename Noreste
3441010
Boldly adjusting to match the English Wikipedia.
4640103
wikitext
text/x-wiki
Manage edit filters
bbpmpqnj7em2dhfls39dvfe0uodh0kr
Wikibooks:Requests for deletion/Twenty Questions For Twenty Preachers: An early 21st Century Perspective
4
245607
4640050
4624843
2026-06-13T12:15:37Z
ShakespeareFan00
46022
4640050
wikitext
text/x-wiki
== [[Twenty Questions For Twenty Preachers: An early 21st Century Perspective]] ==
{{closed|Closed as [[File:Symbol delete vote.svg|15px]] '''Delete'''—[[WB:OR|original research]]. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 00:01, 16 December 2010 (UTC)}}
This appears to be [[WB:OR|original research]], with the premise of the book looking to be the interviewing of various people and documenting their responses. See the book's [[Twenty Questions For Twenty Preachers: An early 21st Century Perspective/Foreword|foreword]]. Despite the protests in that foreword, conducting an interview is, in fact, primary research of the type [[WB:OR]] refers to. This would be fine at Wikiversity. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 17:55, 1 November 2010 (UTC)
*[[File:Symbol delete vote.svg|15px]] '''Delete'''. Original research. [[User:QuiteUnusual|<span style="color:#E66C2C">'''QU'''</span>]] <sup>[[User talk:QuiteUnusual|<span style="color:#306754">TalkQu</span>]]</sup> 18:35, 1 November 2010 (UTC)
* I'd suggest checking with the contributors to be sure, but this looks like it could be within Wikinews's scope to me. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 18:56, 1 November 2010 (UTC)
* I'm not sure about its newsworthiness. In any case, it should not be kept in Wikibooks. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|talk]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 14:28, 2 November 2010 (UTC)
* [[Image:Symbol delete vote.svg|15px]] '''Delete''' Seems like original research and no recent work has been done. Also, I prefer not to see religious topics on Wikibooks.--[[User:Xania|ЗAНИA]] [[Image:Flag_of_Italy.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 22:56, 3 December 2010 (UTC)
* [[Image:Symbol delete vote.svg|15px]] '''Delete''' per Xania's first point, but I can't see why there shouldn't be religious topics on here.--[[User:Wisden|Wisden]] ([[User talk:Wisden|talk]]) 18:48, 4 December 2010 (UTC)
*:It's likely due to difficulty with original research issues, like much of the commentary at [[Biblical Studies]]. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 22:38, 4 December 2010 (UTC)
:[[File:Symbol delete vote.svg|15px]] '''Delete''' Works of journalism are out of scope. --[[User:Swift|Swift]] ([[User talk:Swift|talk]]) 23:28, 15 December 2010 (UTC)
{{end closed}}
046o10x3bru32o47vrqfo6ju82z20tw
Wikibooks:Requests for deletion/WikiSci
4
245609
4640130
2001264
2026-06-13T15:30:40Z
ShakespeareFan00
46022
4640130
wikitext
text/x-wiki
== [[WikiSci]] ==
{{closed|Closed as [[File:Symbol delete vote.svg|15px]] '''Delete'''—[[WB:OR|original research]]. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 00:05, 16 December 2010 (UTC)}}
This book is being used to document [[WB:OR|original research]]. As stated on the main page, "WikiSci is an attempt for researchers to organize research efforts in a task-oriented manner, facilitating much better idea exchange". I suggest that <s>this book</s> [[WikiSci/Wiki as A Time Saver for Researchers]] be transwikied to [[v:|Wikiversity]]. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 15:47, 25 October 2010 (UTC)
*'''Transwiki''' the subpage per Adrignola. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|talk]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 14:05, 26 October 2010 (UTC)
**'''Delete''' the rest. I guess the rest of the book does not really fit the scope of WV. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|talk]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 14:46, 1 November 2010 (UTC)
* [[File:Symbol comment vote.svg|15px]] '''Comment''' I think we could use some clarification on this one and should hold off judgment of intent until than. One way the scope could be interpreted is to mean they intend to teach researchers how to organize their own research in a task-oriented manner in order to facilitate exchanging ideas much better, which wouldn't involve original research at all. Part of the book's intent might be to teach researchers how to use wiki technology in there research efforts as well, which also wouldn't be original research. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 14:14, 26 October 2010 (UTC)
*:It's hard to say. There's not really any content there beyond the structure. To top it off, all the pages were IP-created, so it's not possible to try to get in contact with the original author of the book. This book may not be going anywhere. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 14:24, 26 October 2010 (UTC)
*:: If this book isn't going anywhere, I don't see it going anywhere at Wikiversity either. I doubt collecting every research effort under one single resource would make sense at Wikiversity. Wikiversity welcomes individual research efforts already as separate resources. If this is about teaching how to organize research, I think Wikiversity probably already has this covered and the only part of the book worth salvaging would be "Wiki as A Time Saver for Researchers" which could easily either be the start of a book itself at Wikibooks or be a resource page in its own right at Wikiversity. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 14:47, 26 October 2010 (UTC)
*[[File:Symbol delete vote.svg|15px]] '''Delete''' This book appears to be an effort to organize readers of various usenet newsgroups. It didn't work, and has had plenty of time for that to have happened (if it were going to happen). It serves no purpose. --[[User:Jomegat|Jomegat]] ([[User talk:Jomegat|talk]]) 12:40, 27 October 2010 (UTC)
*: I agree that the newsgroup subpages serve no purpose now. I think the "Wiki as A Time Saver for Researchers" subpage can be saved and be used to start a new book on using wikis for research though, ''without'' discussing original ideas or involving original research. A quick look shows there are about 55 thousand results for using wiki for research at Google Scholar which could be used to cite sources. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 13:26, 15 November 2010 (UTC)
*[[File:Symbol delete vote.svg|15px]] '''Delete''' Being a presumptuous newcomer, I don't see this as being appropriate for Wikibooks. If contributors can find a better place for all or part of it, by all means move it.--[[User:Wisden|Wisden]] ([[User talk:Wisden|talk]]) 10:21, 1 December 2010 (UTC)
:[[File:Symbol delete vote.svg|15px]] '''Delete''' Original research. Aside from being outside the scope of this project, WikiSci has a very naïve approach to the scientific process. With a flawed premise, the project is doomed to failure. --[[User:Swift|Swift]] ([[User talk:Swift|talk]]) 23:14, 15 December 2010 (UTC)
{{end closed}}
9r7k6dx63fxhc5nhy5raplhx30kq8pk
User talk:41.232.191.9
3
245814
4640117
2006389
2026-06-13T15:24:39Z
ShakespeareFan00
46022
4640117
wikitext
text/x-wiki
{{tmbox|type=notice|text='''Please help <u>''improve''</u> Wikibooks'''.
Yes, you can indeed edit most pages here, as [[Special:Contributions/41.232.191.9|you've recently noticed]]. If you want to test out different features of wiki syntax, please use the [[Wikibooks:Sandbox|sandbox]] in the future. If you would like to help improve Wikibooks, see [[WB:WIW|What is Wikibooks]]. You should also [[Special:UserLogin|create an account]] so your contributions can be attributed to you, amongst other benefits. If you have questions, or need help, ask at the [[WB:HELP|Reading Room Assistance]] page. Thanks. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|talk]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 03:03, 20 December 2010 (UTC)}}
r3j0gmhnkfpdbmuztr856varzr0oc6t
Wikibooks:Reading room/Archives/2010/December
4
246090
4640120
4415743
2026-06-13T15:26:00Z
ShakespeareFan00
46022
4640120
wikitext
text/x-wiki
{{talkarchive}}
== The Nth appeal ==
Have we descended to begging, or what? I am getting tired of continually closing appeals. I thought they ain't supposed to come up again. -[[User:Arlen22|Arlen22]] ([[User talk:Arlen22|talk]]) 17:07, 2 December 2010 (UTC)
:Tricky, aren't they? I added the gadget back in to [[Special:Preferences]] that allows you to hide the banner permanently. It's in the browsing gadgets section. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 17:31, 2 December 2010 (UTC)
::And that will only affect fund-raisers, correct? -[[User:Arlen22|Arlen22]] ([[User talk:Arlen22|talk]]) 17:57, 2 December 2010 (UTC)
:::Yes, it only targets the central notice and not the site notice. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 19:04, 2 December 2010 (UTC)
:::: Adrignola your a genius, though for a while I was beginning to wonder exactly how many images of Jimbo there were. It seemed like they were grains of sand on the beach. The more man must be blind from all the camera flashes. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 22:49, 2 December 2010 (UTC)
== [[WB:OWN]] ==
For a little while now I have been wanting to hash out WB own. Since it came up in a minor issue, and some felt that it might never become a policy. I thought perhaps some more eyes could be useful, particularly because a there is some dispute as to if the page should be about the nature of Copyrights at wikibooks, or if it should be similar to [[w:WP:OWN]] and the other ownership policies at WMF sites. Since it was just a few of us discussing it I thought I might
seek a larger audience for discussion. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 00:28, 3 December 2010 (UTC)
:I wasn't aware that we had many problems with edit wars here, probably because we are more accepting of different books covering similar subjects in different ways than Wikipedia would be with their articles. Does the proposed policy actually add much to our basic ground rules anyway? We wouldn't necessarily want people making edits just in order to exert their "right" to do so. Class projects could be deterred or people who have their books deleted could treat this policy as a licence to insert their deleted material into existing books. [[User:Recent Runes|Recent Runes]] ([[User talk:Recent Runes|talk]]) 17:48, 3 December 2010 (UTC)
::I've seen the occasional "edit war", but it is usually when someone is new and / or unfamiliar with the WB inclusion criteria... it stops fairly quickly. I think people do feel more strongly though that they own "their" books because most books are written by one person. Of course they do own the copyright, just not the right to direct the content. I think though that the current discussion on ownership is more related to a bit of WB history. [[User:QuiteUnusual|<font color="#E66C2C">'''QU'''</font>]] <sup>[[User talk:QuiteUnusual|<font color="#306754">TalkQu</font>]]</sup> 18:01, 3 December 2010 (UTC)
::: Indeed there is a long and checkered history at WB on this topic. However I think Thenub314 and myself had the intent to focus on present issues, and intended to avoid reviving discussion of past issues. Panic and I have a history of disagreement on this topic as well, so in that respect it might of been unrealistic to think discussion of past issues could be avoided. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 18:44, 3 December 2010 (UTC)
:: Wikibooks hasn't always been accepting of different books covering the same subject and edit wars have happened. I think creating a new book on a subject as a way to deal with the frustrations of an edit wars isn't the best solution, since it discourages collaboration, discussion and compromise, and allows people to justify ownership by way of suggesting people can just fork even for the tiniest of reasons. While I wish not to deter class projects, I think helping teachers to understand anyone even non-students can edit would be healthy for Wikibooks. I think people can treat many existing policies as a license to insert deleted material into books, but all of them that I know of mention the need to stop, discuss, and compromise when there are disagreements, including that proposal. Edits wars often go unnoticed and are often tolerated because the Wikibooks community has a history of not taking a firm and united stance against it and has been unable to agree what if anything should be done about it. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 18:19, 3 December 2010 (UTC)
::: To be clear there hasn't recently been any serious problem. My attention was called to the page by [http://en.wikibooks.org/w/index.php?title=Marijuana_Cultivation&diff=1944935&oldid=1938553 this edit] and the ensuing conversation. And my limited on wiki experience (as well as gut instinct) tells me the worst kind of problems occur when there is no clear guideline/policy to work from. Without something official there are many cries of "foul play" by both sides and things quickly become poisonous.
::: Also I am hopeful WB is growing, I personally have noticed a lot of new people editing books that had previously been derelict for some time, the recent changes now goes by faster then I put the time in to keep up with, etc. Mostly it seems to me there haven't been many problems in part because we have a we don't often have multiple people working on the same book at the same time. And so I hope to help make sure things run smoothly.
::: As a final comment, there is brewing a bit of a disagreement between myself and Panic (see [[Talk:C++ Programming/About the Book/Authors]] for details if your interested.) This is a bit of putting the cart before the horse though. The executive summary would be this: it was my interest in [[WB:OWN]] that much older history involving the [[C++ Programming]] book. Since I had contributed to it before, and I on the talk page Panic welcomed authors to add their name I decided to add mine. This lead to some discussion (and disagreement) about whether or not I should be on the authors list along side Panic.
::: Quite probably I am the one who is incorrect, since I seem to frequently hold unusual points of view. But in that case I could really use this policy to clarify my understanding. And if I could use it, less experienced people could too. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 19:10, 3 December 2010 (UTC)
:::: I wouldn't call it a disagreement (since we don't have an established conflict) but a small difference of opinion and continued exchange of view points that I took as a result of your position in relation to the text draft.
:::: In any case Darklama and you have at least agreed that there is some good on having this subject further discussed so we should attempt to centralize the discussions. In any case I would like to see more people in support of the fragmentation of the [[WB:OWN]] content before we decide how to proceed, this is important but not an urgent subject. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 19:31, 3 December 2010 (UTC)
::::: We will have to agree to disagree as to whether or not we have a disagreement. :) [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 20:26, 3 December 2010 (UTC)
:::::: That is an interesting concept :) but there can be a disagreement without the other party taking an active role, or even being aware it is a quarrel. In all this subject matter I haven't been a promoter, initiator of a state of conflict and so refute that role. I find myself reacting to actions that I hope are not intended to create antagonism, and it is in that spirit that I act without pushing anyone to agree with my own position on the mater. I see that as futile outside of a broader discussion. In fact I already expressed my limitations regarding how I see the pertinence and importance of this subject and promoted changes, alerting even to the fact that there was already a previously established lack of consensus, hence a fertile ground for escalation.
:::::: We are entering a time of the year where is customarily for the community to have blow outs, as people tend to have more time indoors to ruminate issues and take actions out of proportion. I urge people to keep focused on generalities that if resolved will be more productive and probably dissipate any perceived personal conflicts that may exist. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 21:45, 3 December 2010 (UTC)
::: My understanding was that the community had refused the definition of forks (even if we don't have a policy or guideline on that, only the draft, forks as in '''duplication of content''' is not permitted, my understanding is that this was consensual to all), the only way to have different books covering the same subject is if there is intrinsic distinction regarding the scope or presentation.
::: I do disagree to the idea that volunteers must be made to collaborate to the detriment of providing free content, I put providing usable content above the need to engage in political/structural even editorial discussions, even if people fail to come to an understanding the provided content can always be used. There is also a difficulty in establishing what collaboration means or how to enforce it, I don't think it can be enforced, only requested, even similar books can be seen as collaborating in some instances, over time merges of content can always be made if the content is available.
::: I have thought about the issue of editorial control as part of the contributions and discussions made to this draft and Darklama's point about class projects is pertinent and relates to the issues of forced collaboration and editorial control, to me the issue seems simple, since we don't have a strict policy on managing user space, it is feasible to start and run the project in the teacher's user space with stated edit permissions to some users, this puts the work under a stricter editorial control without violating our rules, this practice is not new nor problematic, even if I think we intentionally do not publicize the possibility. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 19:49, 3 December 2010 (UTC)
::::For others' benefit the forking proposal is at [[Wikibooks:Forking]]. Regarding running a book development in user space with more than just the user contributing to his/her own space and with restriction on who can edit, in my mind that would end up prompting rules to be created where none currently exist or an expansion of [[WB:HOST]]. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 21:34, 3 December 2010 (UTC)
:::::I agree that the solution shouldn't be promoted or if so expressly indicated as non-optimal. But the reality is that to a small degree this is already happening and there is an established practice that provides some basic guidelines, unless hugely abused I don't see it as an issue. We do in fact have a need to put some guidelines on the use of the userspace, not an urgent subject, but as you personally experienced not so long ago (the deletion of a page IIRC) things are not exactly clear or consensual.
:::::I do have an issue with your invocation of the [[WB:HOST]] (as is) in regards to the userspace. I remember a prominent figure of Wikimedia promoting the use of that space for users to run blog like content, any rules we create for managing that space should be based on the impact to the project. User space is still under the general license agreement so any content will be reusable. In fact I see making user spaces more active and creative as factors to increase visibility to the project and promote general support/donations to Wikimedia in general. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 22:06, 3 December 2010 (UTC)
:::::: Well, you'll have to point me to the situation I personally experience as it doesn't ring any bells. If you can point to the prominent figure mentioned above that would also be good. User space is a big can of worms and the use of that space actually dovetails nicely into the page targeted by this thread since it's the most likely to be seen as owned. That can lead to problems with deleted content being recreated in userspace, offensive content being located in userspace causing disputes over what can be considered offensive, and the use of userspace as one's own website space. I've seen heated discussion at en.wiki over something as simple as people making fake "you have new messages" notices on their main userpage. Even more than books, user pages are the most likely to prompt "it's mine and I'll do what I want with it". – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 23:46, 3 December 2010 (UTC)
::::::: I was referring to the time a user blanked his talk page a page and you deleted/restored it. Not very important now but it remains in my memory.
::::::: I did have to do some research, the person that "seems" to support the idea(I can't find the original source, it was in a mailing list. I also can't put it in any real context from memory), was Jimbo Wales, as per a previous dialog we had on the subject of valid uses for the userspace ([http://en.wikibooks.org/wiki/Wikibooks:Reading_room/Archives/2010/June#Inappropriate_userpages.3F here]). Why not start a draft so to attempt to crystallize the community views on the issue. That would be useful as a way to deal slowly with this complicated issue, we already had some RfDs and there is a lack of establishing consistency in regards to administrative actions on that space (privacy etc). --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 02:33, 4 December 2010 (UTC)
::::Regarding '''forking''' or '''duplication of content''', I suppose it depends on how narrowly the term "subject" is being defined. If we think of a given high school "subject" then how many different curriculums and examinations are there around the world in all the different English-speaking countries? In the USA I think all the States set their own curriculums, and in the UK, Canada, Australia and India etc. different standards are also applied. Each curriculum or exam could presumably be used to justify a different Wikibook, regardless of the amount of "duplication" observable at a given point in time. [[User:Recent Runes|Recent Runes]] ([[User talk:Recent Runes|talk]]) 23:28, 3 December 2010 (UTC)
::::: I agree, but I kind of felt the [[WB:Forking]] tried to take different curriculum into account, because two books aimed at different audiences. A "Highers" level book in Scotland vs. an "A-level" book in England, etc. <small><span class="autosigned">—Preceding [[w:Wikipedia:Signatures|unsigned]] comment added by [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]] • [[Special:Contributions/Thenub314|contribs]]) 05:10, 4 December 2010 (UTC)</span></small><!-- Template:Unsigned -->
== Flagged Revisions feature update: November 23 ==
We are currently planning to roll out a new version of the FlaggedRevs extension to all wikis on Tuesday, November 23 starting roughly 3:15pm PST (23:15 UTC). This is used for Pending Changes on en.wikipedia.org and Flagged Revisions on many other wikis. This will have a [https://bugzilla.wikimedia.org/show_bug.cgi?id=25294 new reject button], some [https://bugzilla.wikimedia.org/show_bug.cgi?id=25289 diff page load optimizations] to help complicated diff pages load faster by displaying the diff prior to displaying the old revision, and many under-the-hood code improvements.
We have several test environments in place with FlaggedRevs/Pending Changes configured:
* 1.16wmf4 core + trunk FlaggedRevs extension (this is the closest to a production environment):
** en.wikipedia.org: http://prototype.wikimedia.org/flaggedrevs/Main_Page
** de.wikipedia.org: http://prototype.wikimedia.org/flaggedrevsde/
* trunk core + trunk FlaggedRevs extension (this is a more experimental version of the core software with the same version of the extension):
** de.wikipedia.org: http://prototype.wikimedia.org/de.wikipedia.org/
** pl.wikipedia.org: http://prototype.wikimedia.org/pl.wikipedia.org/
Please [http://techblog.wikimedia.org/2010/11/pending-changesflagged-revisions-update/#comments let us know if you have any problems]. Thanks! -- [[User:RobLa-WMF|RobLa-WMF]] ([[User talk:RobLa-WMF|talk]]) 07:17, 23 November 2010 (UTC)
:Bit late to try testing as the rollout starts today... Guess we'll find out. Your test configuration is probably very different to the WB config anyway. [[User:QuiteUnusual|'<font color="#E66C2C">''QU'''</font>]] <sup>[[User talk:QuiteUnusual|<font color="#306754">TalkQu</font>]]</sup> 12:22, 23 November 2010 (UTC)
::I've noticed that the update contained the author's modifications that disregarded current projects' use of the system. Namely that higher quality revisions cannot be given precedence for being shown over lower quality revisions. Now the only option is stable or latest. [http://en.wikibooks.org/w/index.php?title=User_talk:Darklama&oldid=1943118#bug_14618 Not that this was a surprise]. Glad to see performance concerns at en.wiki override other projects that have been using this extension for far longer and I'm glad to see testing is performed here before rollout. (sarcasm) Maybe that would have caught the errors in the [[Special:Log/stable|stability log]] that appear now. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 23:32, 3 December 2010 (UTC)
== Is it possible to use JavaScript for table filtering? ==
I have some tables in my book and at the moment I have the sorting option for them. Was wondering if it's possible to use javascript to add a filter so that only table rows with the value in the filter can be shown. I know that it's possible with javascript but is javascript enabled in wikibooks? Else is it possible to do that with CSS? [[User_talk:Pithikos|Pithikos]] 13:03, 26 November 2010 (UTC)
:Per-book JavaScript can be set up for [[Lua in SpringRTS]] if you provide the code. For the protection of readers, only administrators can set this up and it will have to be vetted by our JavaScript expert, [[User:Darklama|Darklama]]. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 15:28, 26 November 2010 (UTC)
:: I wouldn't go as far as to say anything needs to be vetted by me. I'm willing to review and make improvements where I see an opportunity to do so, just like anyone can with anything on Wikibooks. Anyone with any JavaScript knowledge could do the same. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 21:19, 26 November 2010 (UTC)
::: Well the code is not mine. Here it is: http://www.vonloesch.de/node/23?filt=javascript <br /> It's the filter2() that I was thinking to use. Beyond that I would need to use <code><form><input name="filt" onkeyup="filter2(this, 'sf')" type="text"></form></code> and probably replace 'sf' with 'wikitable sortable' to work on my tables. That's just the filter field but I noticed that the <form> tag is not allowed in wiki. So there are two things needed. Summarizing: Can I have every page linked to the javascript code? Do I have to tell an admin where I need the filter field? [[User_talk:Pithikos|Pithikos]] 1:59, 30 November 2010 (UTC)
:::: Using the per-book JavaScript will mean the javascript code would be used for every page of the book. I will work on adjusting the code you wish to use for this wiki. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 12:58, 30 November 2010 (UTC)
You can now add class="filter" to any table within [[Lua in SpringRTS]] and it should work. See [[Lua in SpringRTS/Callins]] for an example. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 00:13, 2 December 2010 (UTC)
:Thank you loads!! It looks fantastic! :) [[User_talk:Pithikos|Pithikos]] 2:11, 3 December 2010 (UTC)
::<font color="red">Update:</font> It seems there is a minor problem with the filter. If you enter "xx" in the field the filter will work for "x". If you enter "xxx" the filter will work for "xx" and so on. It seems that it waits for any keystroke to start the filter. So you can enter "xx" in the filter field and as long as you press a key, only then it is going to filter the term. Works like that even for caps-lock.<br />
::It wouldn't be a big problem if it wasn't about the backspace as now if you enter "xx" and press backspace, it's going to search for the term "xx" instead of "x" that the user will see in the field. [[User_talk:Pithikos|Pithikos]] 12:21, 3 December 2010 (UTC)
::: My mistake, I was capturing a different event to trigger the filter. Seems to work as expected now, you may have to clear your web browser cache in order for it to see the changes. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 16:34, 3 December 2010 (UTC)
::::Ok, works perfekt now :) [[User_talk:Pithikos|Pithikos]] 20:36, 3 December 2010 (UTC)
== Pre Tag Font Changed ==
The preformatting tags are meant to be Courier, a monospaced font.
They have been changed, I assume in a stylesheet. Descriptions elsewhere depend on the Courier font. If another font is needed by users, it can be done with an inline style.
I have no access to the stylesheets, so can some kind authorized admin please consider correction? Regards, [[User:Armchair|Armchair]] ([[User talk:Armchair|talk]]) 20:11, 3 December 2010 (UTC)
<pre>Preformatted text</pre>
:I have noticed no such change. The {{tag|pre}} tags just add exactly that straight into the HTML output and there are no entries in [[MediaWiki:Common.css]], [[MediaWiki:Vector.css]], [[MediaWiki:Monobook.css]], or http://bits.wikimedia.org/skins-1.5/common/shared.css that address the tag to change the font. It is browser dependent. If it does not appear correctly somewhere, please note the location so that we can troubleshoot. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 21:18, 3 December 2010 (UTC)
:: There are actually several places where pre can be effected due to style inheritance rules. http://bits.wikimedia.org/skins-1.5/vector/main-ltr.css is the main one for anyone using the vector skin, where it explicitly sets the font-family with monospace before Courier. Anyways I've fixed this now. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 21:26, 3 December 2010 (UTC)
== [[ATS: Programming with Theorem-Proving]] ==
I'd like to draw attention to the new book that we (Hongwei Xi and me) have begun writing. My intention is to make ATS more accessible to a wider audience of programmers, so I will follow the track of the book on Haskell. Hongwei has written a lot about ATS already, but his writings are more technical in style, which makes them hard to follow for many people. I hope that this book will be useful for others. For now, the book contains two tiny chapters, but that's a start.
Since I have no experience in writing (wiki-)books (and certainly lack educational skills), help and advice are much appreciated. --[[User:Ashalkhakov|Ashalkhakov]] ([[User talk:Ashalkhakov|talk]]) 09:54, 9 December 2010 (UTC)
: I wouldn't let your lack of book writing and educational skills worry you too much. Most contributors could probably say the same about themselves. I still feel like I don't have the skills and I've been helping Wikibooks for about 5 years now. Your intention is great and should be enough to get started. Hongwei Xi could focus on the technical aspects of the language, while you compliment their writing to make it easier for more people to follow. Working together like that could allow you both to focus on your individual strengths and could allow your strengths to be used together to make a great book. More people with similar or different strengths may also join the two of you in writing the book at some point, and that could also help to improve the book. I encourage you to welcome anyone that decides to join in, learn what they want to do, and possibly offer some suggestions of where the book could use the help in the area that people want to work on. That is one way to work together in writing a book in any case. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 13:40, 9 December 2010 (UTC)
== Copyright issues with IB Physics ==
One page [[IB_Physics/Physics_and_Physical_Measurement]] tries to limit the copyright by saying that "Any IB syllabus statements included here are NOT under any free license and remain property of the IBO. They are reproduced here for personal study purposes only." Is this allowed here, and would it require the material affected to be clearly identified (which it seems not to be)?
Also, someone has added a link to a printable version on Google docs, which seems not to include any licence statement. Is that OK? [[User:Recent Runes|Recent Runes]] ([[User talk:Recent Runes|talk]]) 13:37, 12 December 2010 (UTC)
: [{{fullurl:IB Physics/Physics and Physical Measurement|oldid=1021731}} The notice was added in the second edit by the page's creator.]. I don't know when the Google Docs version was created. [http://kstruct.com/ib/index.php?title=Topic_1_-_Physics_and_Physical_Measurement&oldid=598 Topic 1 - Physics and Physical Measurement] was started in December 2006 though which predates the page at Wikibooks. That Wiki's [http://kstruct.com/ib_notes/KstructIB:Copyrights copyright notice] says submitted work is under the CC-BY-SA license too and has no such notice either. [http://www.ibo.org/faq/ IBO's FAQs] states that syllabus and past examination papers can be purchased from the IB store, but are available free of charge to universities and governments. Based on this information I would conclude that syllabus are not free to use. The notice may be trying to alert people to that fact for or when any syllabus are used. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 14:28, 12 December 2010 (UTC)
: I also just found [http://www.thestudentroom.co.uk/w/index.php?title=Revision:Measurement&oldid=9778 Revision:Measurement] which was started in August 2006. That website's terms states users maintain ownership of their submitted works, but anyone else may only use submitted works from the website for private non-commercial research and studying unless permission is obtained from them. I'm not sure if there is any way for us to determine whether the person that submitted Revision:Measurement also submitted Topic 1 - Physics and Physical Measurement, if another person did, or if permission was obtained from the website to license under the CC-BY-SA. There are also many other websites that use it and they have all rights reserved notices, but I wasn't able to determine when the work was added to them. Might need to delete this after all. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 15:11, 12 December 2010 (UTC)
::I think we can ignore the text on the student room site as this one [http://kstruct.com/ib_notes/Topic_1_-_Measurement] from the Kstruct IB notes site dates from September 2005. This seems to be the original text, so we should credit it with a link really. Regarding the notice on "syllabus statements", I think this should be removed or changed to say that no material should be copied from the IBO site as it would not be available under a compatible license.
::The Google docs copy of this page seems to have been created recently. Although it does not credit Wikibooks, perhaps we don't need to make a fuss about it as the only way anyone is likely to find that document is via the Wikibooks page. [[User:Recent Runes|Recent Runes]] ([[User talk:Recent Runes|talk]]) 17:57, 12 December 2010 (UTC)
::: I didn't notice there was another much older copy at Kstruct. Good catch. Yes credit should be given, hopefully Kstruct is the original source. Wikibooks is the only website I found with the syllabus statement. If a warning against copying syllabus from the IBO site is to be kept around, I think the top of [[Talk:IB Physics]] might make more sense. Hopefully no one has already copied IBO's syllabuses into the book. I guess Wikibooks would of heard about it from IBO, if there has been. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 18:23, 12 December 2010 (UTC)
== Alignment of Collapsible Tables ==
The ''collapsible'' class defines the behavior of collapsible tables, but within that class the alignment must have been css-defined as ''left''. The upshot of this is that an HTML attribute used in a table that makes use of the class, cannot override the class's style, and as such cannot align such a table to center.
Am I right in assuming that if the collapsible class alignment style were not specified at all, it would still default left, and yet also allow in-line changes by users?
Thanks, and regards to all, [[User:Armchair|Armchair]] ([[User talk:Armchair|talk]]) 16:56, 8 December 2010 (UTC)
:The default would be for text in a cell to be left-aligned unless it's a header row. Also, one thing that's annoyed me as well is the border applied to tables using the ''collapsible'' class. My opinion is that no formatting should be applied except for that needed for the "show/hide" link. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 17:47, 8 December 2010 (UTC)
:: The show/hide link really only exist to deal with web browsers that don't support click events anywhere else. Anywhere within the cell can be clicked for web browsers that support it. Part of that is setting the background and border, and changing their style when the mouse is over the area to make this fact more intuitive for users. The tooltip for that area is also changed to reflect the current expanded/collapsed state. The text alignment of a table's contents should be able to be set and respected, but web browsers are never guaranteed to respect alignment of tables themselves with respect to their place on a page. Also there is no left alignment set for any part of the collapsible class that I could find. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 19:13, 8 December 2010 (UTC)
Is there any objections to making the collapsible divs and tables look more like the collapsible elements in vector skin's sidebar and toolbox? Since people are probably familiar with them by now, I think that would be one way to minimize styling while keeping them intuitive. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 13:04, 14 December 2010 (UTC)
:Can I just say that you're a design genius? Let's make Wikipedia jealous. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 13:56, 14 December 2010 (UTC)
== How do I start a book? ==
Nearly all instructions insist that it is possible to type a subject name into some box 'on the left'. What box on the left? When I use the one at the top-right of the screen I get nonsense, and no offer to make any page whatsoever. How, physically is a new blank page obtained? I thank you, somewhat lost, [[User:Armchair|Armchair]] ([[User talk:Armchair|talk]]) 13:06, 16 December 2010 (UTC)
: Well, as you may be aware of, the default skin was changed to Vector, and so the search box is now at the upper-right. We've been updating the help pages in a furious spurt lately and you can find updated instructions at [[WB:CREATE]]. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 13:32, 16 December 2010 (UTC)
: I'm not sure when it happened, but the search page no longer seems to include a link to a page when it doesn't exist. That was the bases for that recommendation. Wikipedia's search page still does, so it may have been a local change. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 13:44, 16 December 2010 (UTC)
::I noticed this behaviour a while ago, I don't think it changed that recently. It might be nice to have a "create a book" link that actually created the framework a little like the "new article" creator on WP. [[User:QuiteUnusual|<font color="#E66C2C">'''QU'''</font>]] <sup>[[User talk:QuiteUnusual|<font color="#306754">TalkQu</font>]]</sup> 14:35, 16 December 2010 (UTC)
::: I think I've noticed it for months now, just couldn't pinpoint when. If you click on the '''Gadgets''' tab in your [[Special:Preferences|preferences]] you'll notice under '''Book Gadgets''' there is a '''Book Designer Gadget'''. So this already exists. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 14:55, 16 December 2010 (UTC)
:::: Ah yes, I had forgotten that. I meant really though that it would be nice if the gadget was listed on the navigation somewhere so it was obvious to a new contributor. [[User:QuiteUnusual|<font color="#E66C2C">'''QU'''</font>]] <sup>[[User talk:QuiteUnusual|<font color="#306754">TalkQu</font>]]</sup> 23:53, 16 December 2010 (UTC)
:::::Right now we have a bit of a confusing setup. In the print/export menu in the sidebar there is already a link to "create a book". That's the PediaPress tool and it talks about creating books in terms of collections of wiki pages. While this works at Wikipedia, with its Book namespace, we need to localize the tool here because we have actual books. I'll see if I can resolve that in the interface messages. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 00:19, 17 December 2010 (UTC)
== ''Selected'' class not working ==
Hello again,
I note that setting the ''selected'' class with ''collapsible'' no longer opens with the box dropped. See [http://en.wikibooks.org/w/index.php?title=Editing_Wikitext/Making_Templates_A101&stable=0#Add_Classes '''Add Classes'''] . Thanks, [[User:Armchair|Armchair]] ([[User talk:Armchair|talk]]) 15:31, 18 December 2010 (UTC)
: <nowiki>{{{myclass}}}</nowiki> was removed from {{tl|dropthing}}. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 17:38, 18 December 2010 (UTC)
;Thank you:I could not figure it out - it works well now. [[User:Armchair|Armchair]] ([[User talk:Armchair|talk]]) 22:56, 18 December 2010 (UTC)
<br />
== Batch uploading pages ==
I was wondering if there is a tool to upload multiple pages for a book at once.<br />
I was thinking to make a page for each function in http://en.wikibooks.org/wiki/Lua_in_SpringRTS/Callins with each page having the same look as http://en.wikibooks.org/wiki/Lua_in_SpringRTS/Callins/UnitCreated%28%29 <br />
So if I make a script and get for example 20 text pages(in wiki format) is there a way to upload them all at once under the chapter "Callins"? <font style="color:green;">[[User_talk:Pithikos|Pithikos]]</font> 16:52, 19 December 2010 (UTC)<br />
== ''Template:Hidden begin'' not working ==
I notice that the template for [[Template:Hidden_begin|hidden text]] (click to show, click to hide) no longer hides text. Looking at the information page for [[Template:Hidden begin]], none of the examples are now clickable. Just me (e.g. javascript settings, cache or something) or is it general? -- [[User:JamesCrook|JamesCrook]] ([[User talk:JamesCrook|talk]]) 22:30, 22 December 2010 (UTC)
: Was general. Needed to be updated, which I did. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 00:03, 23 December 2010 (UTC)
Thank you! Appreciated. --[[User:JamesCrook|JamesCrook]] ([[User talk:JamesCrook|talk]]) 12:34, 23 December 2010 (UTC)
== The protection 'topicon' ==
In Chrome, the green lock on [[WB:RR/G]] as well as this page covers the word 'log' in 'log out'. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|talk]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 02:25, 20 December 2010 (UTC)
:What skin are you using? I've been observing this phenomenon for any protected page for the last few days (but it may have been happening longer, and I just noticed because I've been dealing with protected pages lately). I figured maybe it was because I use monobook. I'm running Firefox, as it happens. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 04:21, 20 December 2010 (UTC)
::I'm using monobook too. The problem also appears on IE8. [[::User:Kayau|Kayau]] {{toolbar|separator=dot
|[[::User talk:Kayau|talk]]
|[[::Special:Emailuser/Kayau|email]]
|[[::Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 05:51, 20 December 2010 (UTC)
The CSS for the topicon div is in [[MediaWiki:Monobook.css]] and [[MediaWiki:Vector.css]] and matches that seen in Wikipedia's implementation. Potentially Darklama can take a look. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 13:38, 20 December 2010 (UTC)
: I think Wikipedia's stylesheets assume that there is no site notice and no fund raising banner. Wikipedia repositions the icons when there is a site notice and/or fund raising banner using javascript. I think Wikibooks should instead use a system that can fallback when JavaScript and CSS are not available. I suggest a notice/message box that alerts people that the page is locked or whatever. After that I think JavaScript could be used to either place an icon next to the page title based on the notice/message box, or replace the notice/message box with an icon next to the page title. I think either way having a fall back and not relying on CSS to position the icons would be better than the way Wikipedia does it. Heck Wikipedia seems to already position some icons next to the page title, so there own methods are inconsistent. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 14:34, 20 December 2010 (UTC)
::I see you added the tagline back to the pages. That would make us the only English-language site besides Wikipedia that added it back. I can understand a system that doesn't require JavaScript, but wanting to make it so it doesn't require CSS seems to be pushing it. I seriously doubt many people are using Lynx. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 19:14, 20 December 2010 (UTC)
::: Perhaps not many people are using Lynx, but the point is to try to fail gracefully in a way that maintains usability for all and it shouldn't require a lot of work to do. I went looking at the various skins cleaning out things which ought to be consist across skins and what wasn't being used any more. I added the things which ought to be consistent across skins to the commons stylesheet. The monobook skin was still showing the tagline except for on the Main Page. I have no objections to hiding the tagline in all skins or in just some skins if that is really what is wanted. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 20:53, 20 December 2010 (UTC)
::::My personal opinion is that it looks cleaner without the tagline. The tagline is also present in the HTML page title and there is our logo in the upper-left. I don't know how others feel, though. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 23:01, 20 December 2010 (UTC)
::::: Fair enough. I've updated what the tagline and the HTML page title says, so now it really shouldn't matter either way. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 23:35, 20 December 2010 (UTC)
===Obscured Page Title===
The 'percent completed' link obscures the page title on first opening. Not a lot more I can say about that! Regards to all, [[User:Armchair|Armchair]] ([[User talk:Armchair|talk]]) 19:51, 20 December 2010 (UTC)
: I noticed I made about 4 changes before having seen your comment. I'm curious, is this still a problem? --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 21:06, 20 December 2010 (UTC)
Hi, It seems to have been fixed. Thanks, [[User:Armchair|Armchair]] ([[User talk:Armchair|talk]]) 21:42, 20 December 2010 (UTC)
:It's obscured now in Firefox 3.0.15 (I should upgrade some day). --[[User:Jomegat|Jomegat]] ([[User talk:Jomegat|talk]]) 01:15, 21 December 2010 (UTC)
:The JavaScript and CSS can be cached for up to 30 days. Have you tried [[w:Wikipedia:Bypass your cache|bypassing your browser's cache]]? – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 13:03, 21 December 2010 (UTC)
::Well, it's different today. Instead of covering the page title, it covers the [edit] link for the top-section (I have that enabled in my gadgets). Changing the width of the browser makes no difference - the stage icon is placed smack over the [edit] link regardless. Disabling the gadget "fixes" the problem, depending on the definition of "fix". :-/ --[[User:Jomegat|Jomegat]] ([[User talk:Jomegat|talk]]) 13:30, 21 December 2010 (UTC)
::: Adrignola and I both made some changes. Is anything still covered/obscured? --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 15:13, 22 December 2010 (UTC)
::::Yes. Now the stability notice covers the stage icon. See [[Adventist Youth Honors Answer Book]]. --[[User:Jomegat|Jomegat]] ([[User talk:Jomegat|talk]]) 15:15, 22 December 2010 (UTC)
::::: From my perspective that is good news, because the short stability notice plays havoc with lots of our templates to begin with. I think the only non-temporary solution to that problem would be to force it to be on its own line like with the long stability notice. I'll try to work on doing just that later today. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 16:36, 22 December 2010 (UTC)
::::::Seems OK now. Thanks. --[[User:Jomegat|Jomegat]] ([[User talk:Jomegat|talk]]) 21:10, 22 December 2010 (UTC)
== Language courses - audio material ==
The course [[Dutch]] is pretty much all from my hand (I used the username Iarlagab here before I consolidated to SUL-account) and I am looking for ways to improve the book and make it more attractive to people who have no knowledge of the language at all.
Probably all author of language books are dealing with the same issues and it would be nice if we could pool our experiences a bit. If that has already been done somewhere I'd appreciate a link.
I have been experimenting with adding more audio information, including 1-2 minute long drill files on pronunciation / the conversations / memorizing numerals etc and I would not mind a bit of feedback on that. There is also a technical question. If I put the sound file directly on the page using "Image" and push the button I get a strange echoing effect unless I push the arrow key again. Of course I can also use the audio template, but then I get sent to a separate page where I cannot see the text anymore. In some cases like the drills that is fine, but not if I am trying to let people hear the pronunciation of a written piece of text.
E.g.:
[[Image:Nl-Dutch-hoeheetu-drill.ogg|40px|noicon]]
versus:
{{audio|Nl-Dutch-hoeheetu-drill.ogg|Hoe heet u?}}
Merry Christmas!
[[User:Jcwf|Jcwf]] ([[User talk:Jcwf|talk]]) 19:59, 24 December 2010 (UTC)
: Wikimedia Commons may already have what every language book needs: [[Commons:Category:Dutch pronunciation|Category:Dutch pronunciation]] --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 20:05, 24 December 2010 (UTC)
: Another idea. If Commons doesn't have what you need my guess is the wiktionary in the language you want pronunciations from does since audio pronunciations seem to be a priority there. For example at German Wikipedia's [[:de:wikt:English|English]] entry you can find out how you pronounce Englisch. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 20:13, 24 December 2010 (UTC)
::I work mostly at nl.wikt and upload such files for pronunciation with some regularity. And yes those are useful here too, particularly in vocabulary lists or exercises with images intended to build vocabulary. However, they are typically single words (or spoken versions of entire wikipedia pages). Not pronunciation of listening/speaking ''drills''. You cannot learn to speak a language without training your ears and your mouth. This is why commercial language courses come with tapes/ cd's whatever. Some of them like the Pimsleur ones ''only'' come with that. No written text at all. The philosophy behind that is that the way a child acquires language (entirely by ear) is still the best way. I am looking at ways to include that kind of ideas into the language book and wonder if there are others here with experience in generating such material.[[User:Jcwf|Jcwf]] ([[User talk:Jcwf|talk]]) 21:42, 24 December 2010 (UTC)
::: Well even if they don't have what is needed, I think those are the people who are most likely to have the experience to know how to create the listening/speaking drills. I think people have wanted audio drills for a long time now. I figure there would already be what is needed if there were people at any of the language Wikibooks with the expertise to do it. OTOH the people who could help could just be unaware that files are wanted, and I have thought Wikibooks could benefit from some audio/video/diagram/illustration/image/media wanted templates to encourage people to create and add those type of things to books. BTW I'm not experiencing any echoing sound when first playing the audio file above. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 22:20, 24 December 2010 (UTC)
::::The {{tl|WikiProject Languages}} header for the talk pages I placed on all the language books can use the {{para|needs-bite|yes}} parameter to add pages needing audio clips to [[:Category:Language pages needing sound bites]]. If you want to be more invasive, there's always {{tl|images}} and {{tl|need soundbite}}. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 01:16, 25 December 2010 (UTC)
::::: Yes, I am aware we already have some templates, but those aren't quiet what I had in mind. I will probably get around to creating something along the lines of what I have in mind eventually, like I began to do with {{tl|media quality}}. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 09:28, 25 December 2010 (UTC)
:An alternative approach could be to go into greater depth on a topic like weather forecasts which have regular time-slots on Dutch radio stations which are streamed on-line. New material is produced every day, which has a balance of repetitive and varying vocabulary over a fairly limited range. [[User:Recent Runes|Recent Runes]] ([[User talk:Recent Runes|talk]]) 22:59, 24 December 2010 (UTC)
::RE: the echo effect. I only get this strange effect in firefox, not in explorer. In firefox I also get that sound files will start re-playing spontaneouly, sometimes two simultaneously if I have used more than one button on a page.
[[User:Jcwf|Jcwf]] ([[User talk:Jcwf|talk]]) 16:19, 25 December 2010 (UTC)
::RE: {{tl:media quality}} As long as commons is systematically thwarting the uploads of sound files (they are '''''extremely tedious''''' to produce, especially the one-word ones and even more tedious to upload), I really do not think that anyone here has any business putting such punitive templates on other people's pages. Especially someone who has never produced or uploaded any .ogg files, Darklama. [http://commons.wikimedia.org/w/index.php?title=Special:Contributions&limit=500&target=Darklama see]. In fact producing longer drill-files is easier because you only have to upload once. There is a new beta for batch upload, but I cannot get is to work. [[User:Jcwf|Jcwf]] ([[User talk:Jcwf|talk]]) 16:30, 25 December 2010 (UTC)
::: Would you also object to anyone adding templates that request expansion or improvements be made to a book when they have never edited or produced a book before? I didn't have audio specifically in mind when I created media quality. I had in mind a set of templates that served similar purposes to the maintenance templates used for books for use in the File namespace to suggest or request improvements when a person cannot, could not, or doesn't know how to help themselves. In the context of audio, a request for quality improvements might apply to an audio file with background noise that interferes with following what a speaker is saying. If I were to come across an audio file with the sound of airplanes taking off in the background that overshadowed the speaker trying to teach or explain something for example, I would have no problems with pointing out the audio needs to be improved despite my own inability to produce a replacement myself. I see nothing wrong with doing that. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 17:18, 25 December 2010 (UTC)
== Applicability of flagged revisions? ==
I was wondering whether all Wikibooks pages are supposed to be subject to having revisions approved. If not, are all ''Featured'' books at least supposed to be subject to that? I observed that some unexplained blanking by a user who had never edited before or since went unnoticed for a long time at [[Introduction to Sociology/Social Movements]]. It does not appear that edits to that page are subject to review, even though the book is Featured. [[User:Belteshazzar|Belteshazzar]] ([[User talk:Belteshazzar|talk]]) 23:20, 18 December 2010 (UTC)
: I'm not sure how the recent update for Wikipedia's benefit might have affected Wikibooks. However the decision as to whether books are to have stable revisions or not was suppose to be left up to the contributors of individual books. The default was to not be subject to review, unless book contributors request it. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 23:26, 18 December 2010 (UTC)
::I asked because I noticed that other pages in [[Introduction to Sociology]] ''do'' have notes in the edit history about revisions being approved or checked, while the one in question doesn't. [[User:Belteshazzar|Belteshazzar]] ([[User talk:Belteshazzar|talk]]) 23:36, 18 December 2010 (UTC)
:::I don't know why that would be the case. Why people review and when they decide to review seems to depend on each reviewer. There doesn't seem to be a good way to judge what a review or a failure to review means. I choice not to review at all personally, but my edits may be approved or checked automatically by the system, and that may be true for other people as well. The Wikibooks community has had trouble agreeing on specifics when it comes to the use of the review tool, which is why its been left up in air and to book contributors to decide. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 23:59, 18 December 2010 (UTC)
:I've made an effort to review the front page of every single book on the wiki as part of my past efforts in development status tagging. Beyond that, I only checked that every page of a featured book was reviewed for a couple books, some time ago. It only takes an initial review for a page to be subject to it. I'd take a statement that someone doesn't want a page reviewed the same way I'd take a statement that someone doesn't want me to fix typos on the page. It's a wiki, there are others here and trying to help and there will be others editing and reviewing your work. The configuration got revised with the update for Wikipedia's benefit to make it so reviewers have new pages they create automatically reviewed. I'm not going to complain. Go for them all or not at all. However I can tell, observing review tags for pages edited many many hours ago in recent changes, that Darklama is not the only one choosing not to review. Sometimes I question what all the hand-wringing is for whenever there's a mention of removing flagged revisions since so few participate. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 03:57, 19 December 2010 (UTC)
::I will typically review every page I edit, and tend to look through RC and pick out vandalism targets, etc., to review so there is a stable version. As I've said before, if people wanted to we could have every page reviewed within a few weeks with a concerted effort - it only took me on my own about two weeks to do virtually the whole Cookbook. [[User:QuiteUnusual|<font color="#E66C2C">'''QU'''</font>]] <sup>[[User talk:QuiteUnusual|<font color="#306754">TalkQu</font>]]</sup> 19:33, 19 December 2010 (UTC)
9fqcb3od58c556705ya5j5t8e9r5xwt
4640128
4640120
2026-06-13T15:29:41Z
ShakespeareFan00
46022
4640128
wikitext
text/x-wiki
{{talkarchive}}
== The Nth appeal ==
Have we descended to begging, or what? I am getting tired of continually closing appeals. I thought they ain't supposed to come up again. -[[User:Arlen22|Arlen22]] ([[User talk:Arlen22|talk]]) 17:07, 2 December 2010 (UTC)
:Tricky, aren't they? I added the gadget back in to [[Special:Preferences]] that allows you to hide the banner permanently. It's in the browsing gadgets section. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 17:31, 2 December 2010 (UTC)
::And that will only affect fund-raisers, correct? -[[User:Arlen22|Arlen22]] ([[User talk:Arlen22|talk]]) 17:57, 2 December 2010 (UTC)
:::Yes, it only targets the central notice and not the site notice. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 19:04, 2 December 2010 (UTC)
:::: Adrignola your a genius, though for a while I was beginning to wonder exactly how many images of Jimbo there were. It seemed like they were grains of sand on the beach. The more man must be blind from all the camera flashes. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 22:49, 2 December 2010 (UTC)
== [[WB:OWN]] ==
For a little while now I have been wanting to hash out WB own. Since it came up in a minor issue, and some felt that it might never become a policy. I thought perhaps some more eyes could be useful, particularly because a there is some dispute as to if the page should be about the nature of Copyrights at wikibooks, or if it should be similar to [[w:WP:OWN]] and the other ownership policies at WMF sites. Since it was just a few of us discussing it I thought I might
seek a larger audience for discussion. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 00:28, 3 December 2010 (UTC)
:I wasn't aware that we had many problems with edit wars here, probably because we are more accepting of different books covering similar subjects in different ways than Wikipedia would be with their articles. Does the proposed policy actually add much to our basic ground rules anyway? We wouldn't necessarily want people making edits just in order to exert their "right" to do so. Class projects could be deterred or people who have their books deleted could treat this policy as a licence to insert their deleted material into existing books. [[User:Recent Runes|Recent Runes]] ([[User talk:Recent Runes|talk]]) 17:48, 3 December 2010 (UTC)
::I've seen the occasional "edit war", but it is usually when someone is new and / or unfamiliar with the WB inclusion criteria... it stops fairly quickly. I think people do feel more strongly though that they own "their" books because most books are written by one person. Of course they do own the copyright, just not the right to direct the content. I think though that the current discussion on ownership is more related to a bit of WB history. [[User:QuiteUnusual|<font color="#E66C2C">'''QU'''</font>]] <sup>[[User talk:QuiteUnusual|<font color="#306754">TalkQu</font>]]</sup> 18:01, 3 December 2010 (UTC)
::: Indeed there is a long and checkered history at WB on this topic. However I think Thenub314 and myself had the intent to focus on present issues, and intended to avoid reviving discussion of past issues. Panic and I have a history of disagreement on this topic as well, so in that respect it might of been unrealistic to think discussion of past issues could be avoided. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 18:44, 3 December 2010 (UTC)
:: Wikibooks hasn't always been accepting of different books covering the same subject and edit wars have happened. I think creating a new book on a subject as a way to deal with the frustrations of an edit wars isn't the best solution, since it discourages collaboration, discussion and compromise, and allows people to justify ownership by way of suggesting people can just fork even for the tiniest of reasons. While I wish not to deter class projects, I think helping teachers to understand anyone even non-students can edit would be healthy for Wikibooks. I think people can treat many existing policies as a license to insert deleted material into books, but all of them that I know of mention the need to stop, discuss, and compromise when there are disagreements, including that proposal. Edits wars often go unnoticed and are often tolerated because the Wikibooks community has a history of not taking a firm and united stance against it and has been unable to agree what if anything should be done about it. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 18:19, 3 December 2010 (UTC)
::: To be clear there hasn't recently been any serious problem. My attention was called to the page by [http://en.wikibooks.org/w/index.php?title=Marijuana_Cultivation&diff=1944935&oldid=1938553 this edit] and the ensuing conversation. And my limited on wiki experience (as well as gut instinct) tells me the worst kind of problems occur when there is no clear guideline/policy to work from. Without something official there are many cries of "foul play" by both sides and things quickly become poisonous.
::: Also I am hopeful WB is growing, I personally have noticed a lot of new people editing books that had previously been derelict for some time, the recent changes now goes by faster then I put the time in to keep up with, etc. Mostly it seems to me there haven't been many problems in part because we have a we don't often have multiple people working on the same book at the same time. And so I hope to help make sure things run smoothly.
::: As a final comment, there is brewing a bit of a disagreement between myself and Panic (see [[Talk:C++ Programming/About the Book/Authors]] for details if your interested.) This is a bit of putting the cart before the horse though. The executive summary would be this: it was my interest in [[WB:OWN]] that much older history involving the [[C++ Programming]] book. Since I had contributed to it before, and I on the talk page Panic welcomed authors to add their name I decided to add mine. This lead to some discussion (and disagreement) about whether or not I should be on the authors list along side Panic.
::: Quite probably I am the one who is incorrect, since I seem to frequently hold unusual points of view. But in that case I could really use this policy to clarify my understanding. And if I could use it, less experienced people could too. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 19:10, 3 December 2010 (UTC)
:::: I wouldn't call it a disagreement (since we don't have an established conflict) but a small difference of opinion and continued exchange of view points that I took as a result of your position in relation to the text draft.
:::: In any case Darklama and you have at least agreed that there is some good on having this subject further discussed so we should attempt to centralize the discussions. In any case I would like to see more people in support of the fragmentation of the [[WB:OWN]] content before we decide how to proceed, this is important but not an urgent subject. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 19:31, 3 December 2010 (UTC)
::::: We will have to agree to disagree as to whether or not we have a disagreement. :) [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 20:26, 3 December 2010 (UTC)
:::::: That is an interesting concept :) but there can be a disagreement without the other party taking an active role, or even being aware it is a quarrel. In all this subject matter I haven't been a promoter, initiator of a state of conflict and so refute that role. I find myself reacting to actions that I hope are not intended to create antagonism, and it is in that spirit that I act without pushing anyone to agree with my own position on the mater. I see that as futile outside of a broader discussion. In fact I already expressed my limitations regarding how I see the pertinence and importance of this subject and promoted changes, alerting even to the fact that there was already a previously established lack of consensus, hence a fertile ground for escalation.
:::::: We are entering a time of the year where is customarily for the community to have blow outs, as people tend to have more time indoors to ruminate issues and take actions out of proportion. I urge people to keep focused on generalities that if resolved will be more productive and probably dissipate any perceived personal conflicts that may exist. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 21:45, 3 December 2010 (UTC)
::: My understanding was that the community had refused the definition of forks (even if we don't have a policy or guideline on that, only the draft, forks as in '''duplication of content''' is not permitted, my understanding is that this was consensual to all), the only way to have different books covering the same subject is if there is intrinsic distinction regarding the scope or presentation.
::: I do disagree to the idea that volunteers must be made to collaborate to the detriment of providing free content, I put providing usable content above the need to engage in political/structural even editorial discussions, even if people fail to come to an understanding the provided content can always be used. There is also a difficulty in establishing what collaboration means or how to enforce it, I don't think it can be enforced, only requested, even similar books can be seen as collaborating in some instances, over time merges of content can always be made if the content is available.
::: I have thought about the issue of editorial control as part of the contributions and discussions made to this draft and Darklama's point about class projects is pertinent and relates to the issues of forced collaboration and editorial control, to me the issue seems simple, since we don't have a strict policy on managing user space, it is feasible to start and run the project in the teacher's user space with stated edit permissions to some users, this puts the work under a stricter editorial control without violating our rules, this practice is not new nor problematic, even if I think we intentionally do not publicize the possibility. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 19:49, 3 December 2010 (UTC)
::::For others' benefit the forking proposal is at [[Wikibooks:Forking]]. Regarding running a book development in user space with more than just the user contributing to his/her own space and with restriction on who can edit, in my mind that would end up prompting rules to be created where none currently exist or an expansion of [[WB:HOST]]. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 21:34, 3 December 2010 (UTC)
:::::I agree that the solution shouldn't be promoted or if so expressly indicated as non-optimal. But the reality is that to a small degree this is already happening and there is an established practice that provides some basic guidelines, unless hugely abused I don't see it as an issue. We do in fact have a need to put some guidelines on the use of the userspace, not an urgent subject, but as you personally experienced not so long ago (the deletion of a page IIRC) things are not exactly clear or consensual.
:::::I do have an issue with your invocation of the [[WB:HOST]] (as is) in regards to the userspace. I remember a prominent figure of Wikimedia promoting the use of that space for users to run blog like content, any rules we create for managing that space should be based on the impact to the project. User space is still under the general license agreement so any content will be reusable. In fact I see making user spaces more active and creative as factors to increase visibility to the project and promote general support/donations to Wikimedia in general. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 22:06, 3 December 2010 (UTC)
:::::: Well, you'll have to point me to the situation I personally experience as it doesn't ring any bells. If you can point to the prominent figure mentioned above that would also be good. User space is a big can of worms and the use of that space actually dovetails nicely into the page targeted by this thread since it's the most likely to be seen as owned. That can lead to problems with deleted content being recreated in userspace, offensive content being located in userspace causing disputes over what can be considered offensive, and the use of userspace as one's own website space. I've seen heated discussion at en.wiki over something as simple as people making fake "you have new messages" notices on their main userpage. Even more than books, user pages are the most likely to prompt "it's mine and I'll do what I want with it". – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 23:46, 3 December 2010 (UTC)
::::::: I was referring to the time a user blanked his talk page a page and you deleted/restored it. Not very important now but it remains in my memory.
::::::: I did have to do some research, the person that "seems" to support the idea(I can't find the original source, it was in a mailing list. I also can't put it in any real context from memory), was Jimbo Wales, as per a previous dialog we had on the subject of valid uses for the userspace ([http://en.wikibooks.org/wiki/Wikibooks:Reading_room/Archives/2010/June#Inappropriate_userpages.3F here]). Why not start a draft so to attempt to crystallize the community views on the issue. That would be useful as a way to deal slowly with this complicated issue, we already had some RfDs and there is a lack of establishing consistency in regards to administrative actions on that space (privacy etc). --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 02:33, 4 December 2010 (UTC)
::::Regarding '''forking''' or '''duplication of content''', I suppose it depends on how narrowly the term "subject" is being defined. If we think of a given high school "subject" then how many different curriculums and examinations are there around the world in all the different English-speaking countries? In the USA I think all the States set their own curriculums, and in the UK, Canada, Australia and India etc. different standards are also applied. Each curriculum or exam could presumably be used to justify a different Wikibook, regardless of the amount of "duplication" observable at a given point in time. [[User:Recent Runes|Recent Runes]] ([[User talk:Recent Runes|talk]]) 23:28, 3 December 2010 (UTC)
::::: I agree, but I kind of felt the [[WB:Forking]] tried to take different curriculum into account, because two books aimed at different audiences. A "Highers" level book in Scotland vs. an "A-level" book in England, etc. <small><span class="autosigned">—Preceding [[w:Wikipedia:Signatures|unsigned]] comment added by [[User:Thenub314|Thenub314]] ([[User talk:Thenub314|talk]] • [[Special:Contributions/Thenub314|contribs]]) 05:10, 4 December 2010 (UTC)</span></small><!-- Template:Unsigned -->
== Flagged Revisions feature update: November 23 ==
We are currently planning to roll out a new version of the FlaggedRevs extension to all wikis on Tuesday, November 23 starting roughly 3:15pm PST (23:15 UTC). This is used for Pending Changes on en.wikipedia.org and Flagged Revisions on many other wikis. This will have a [https://bugzilla.wikimedia.org/show_bug.cgi?id=25294 new reject button], some [https://bugzilla.wikimedia.org/show_bug.cgi?id=25289 diff page load optimizations] to help complicated diff pages load faster by displaying the diff prior to displaying the old revision, and many under-the-hood code improvements.
We have several test environments in place with FlaggedRevs/Pending Changes configured:
* 1.16wmf4 core + trunk FlaggedRevs extension (this is the closest to a production environment):
** en.wikipedia.org: http://prototype.wikimedia.org/flaggedrevs/Main_Page
** de.wikipedia.org: http://prototype.wikimedia.org/flaggedrevsde/
* trunk core + trunk FlaggedRevs extension (this is a more experimental version of the core software with the same version of the extension):
** de.wikipedia.org: http://prototype.wikimedia.org/de.wikipedia.org/
** pl.wikipedia.org: http://prototype.wikimedia.org/pl.wikipedia.org/
Please [http://techblog.wikimedia.org/2010/11/pending-changesflagged-revisions-update/#comments let us know if you have any problems]. Thanks! -- [[User:RobLa-WMF|RobLa-WMF]] ([[User talk:RobLa-WMF|talk]]) 07:17, 23 November 2010 (UTC)
:Bit late to try testing as the rollout starts today... Guess we'll find out. Your test configuration is probably very different to the WB config anyway. [[User:QuiteUnusual|'<font color="#E66C2C">''QU'''</font>]] <sup>[[User talk:QuiteUnusual|<font color="#306754">TalkQu</font>]]</sup> 12:22, 23 November 2010 (UTC)
::I've noticed that the update contained the author's modifications that disregarded current projects' use of the system. Namely that higher quality revisions cannot be given precedence for being shown over lower quality revisions. Now the only option is stable or latest. [http://en.wikibooks.org/w/index.php?title=User_talk:Darklama&oldid=1943118#bug_14618 Not that this was a surprise]. Glad to see performance concerns at en.wiki override other projects that have been using this extension for far longer and I'm glad to see testing is performed here before rollout. (sarcasm) Maybe that would have caught the errors in the [[Special:Log/stable|stability log]] that appear now. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 23:32, 3 December 2010 (UTC)
== Is it possible to use JavaScript for table filtering? ==
I have some tables in my book and at the moment I have the sorting option for them. Was wondering if it's possible to use javascript to add a filter so that only table rows with the value in the filter can be shown. I know that it's possible with javascript but is javascript enabled in wikibooks? Else is it possible to do that with CSS? [[User_talk:Pithikos|Pithikos]] 13:03, 26 November 2010 (UTC)
:Per-book JavaScript can be set up for [[Lua in SpringRTS]] if you provide the code. For the protection of readers, only administrators can set this up and it will have to be vetted by our JavaScript expert, [[User:Darklama|Darklama]]. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 15:28, 26 November 2010 (UTC)
:: I wouldn't go as far as to say anything needs to be vetted by me. I'm willing to review and make improvements where I see an opportunity to do so, just like anyone can with anything on Wikibooks. Anyone with any JavaScript knowledge could do the same. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 21:19, 26 November 2010 (UTC)
::: Well the code is not mine. Here it is: http://www.vonloesch.de/node/23?filt=javascript <br /> It's the filter2() that I was thinking to use. Beyond that I would need to use <code><form><input name="filt" onkeyup="filter2(this, 'sf')" type="text"></form></code> and probably replace 'sf' with 'wikitable sortable' to work on my tables. That's just the filter field but I noticed that the <form> tag is not allowed in wiki. So there are two things needed. Summarizing: Can I have every page linked to the javascript code? Do I have to tell an admin where I need the filter field? [[User_talk:Pithikos|Pithikos]] 1:59, 30 November 2010 (UTC)
:::: Using the per-book JavaScript will mean the javascript code would be used for every page of the book. I will work on adjusting the code you wish to use for this wiki. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 12:58, 30 November 2010 (UTC)
You can now add class="filter" to any table within [[Lua in SpringRTS]] and it should work. See [[Lua in SpringRTS/Callins]] for an example. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 00:13, 2 December 2010 (UTC)
:Thank you loads!! It looks fantastic! :) [[User_talk:Pithikos|Pithikos]] 2:11, 3 December 2010 (UTC)
::<font color="red">Update:</font> It seems there is a minor problem with the filter. If you enter "xx" in the field the filter will work for "x". If you enter "xxx" the filter will work for "xx" and so on. It seems that it waits for any keystroke to start the filter. So you can enter "xx" in the filter field and as long as you press a key, only then it is going to filter the term. Works like that even for caps-lock.<br />
::It wouldn't be a big problem if it wasn't about the backspace as now if you enter "xx" and press backspace, it's going to search for the term "xx" instead of "x" that the user will see in the field. [[User_talk:Pithikos|Pithikos]] 12:21, 3 December 2010 (UTC)
::: My mistake, I was capturing a different event to trigger the filter. Seems to work as expected now, you may have to clear your web browser cache in order for it to see the changes. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 16:34, 3 December 2010 (UTC)
::::Ok, works perfekt now :) [[User_talk:Pithikos|Pithikos]] 20:36, 3 December 2010 (UTC)
== Pre Tag Font Changed ==
The preformatting tags are meant to be Courier, a monospaced font.
They have been changed, I assume in a stylesheet. Descriptions elsewhere depend on the Courier font. If another font is needed by users, it can be done with an inline style.
I have no access to the stylesheets, so can some kind authorized admin please consider correction? Regards, [[User:Armchair|Armchair]] ([[User talk:Armchair|talk]]) 20:11, 3 December 2010 (UTC)
<pre>Preformatted text</pre>
:I have noticed no such change. The {{tag|pre}} tags just add exactly that straight into the HTML output and there are no entries in [[MediaWiki:Common.css]], [[MediaWiki:Vector.css]], [[MediaWiki:Monobook.css]], or http://bits.wikimedia.org/skins-1.5/common/shared.css that address the tag to change the font. It is browser dependent. If it does not appear correctly somewhere, please note the location so that we can troubleshoot. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 21:18, 3 December 2010 (UTC)
:: There are actually several places where pre can be effected due to style inheritance rules. http://bits.wikimedia.org/skins-1.5/vector/main-ltr.css is the main one for anyone using the vector skin, where it explicitly sets the font-family with monospace before Courier. Anyways I've fixed this now. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 21:26, 3 December 2010 (UTC)
== [[ATS: Programming with Theorem-Proving]] ==
I'd like to draw attention to the new book that we (Hongwei Xi and me) have begun writing. My intention is to make ATS more accessible to a wider audience of programmers, so I will follow the track of the book on Haskell. Hongwei has written a lot about ATS already, but his writings are more technical in style, which makes them hard to follow for many people. I hope that this book will be useful for others. For now, the book contains two tiny chapters, but that's a start.
Since I have no experience in writing (wiki-)books (and certainly lack educational skills), help and advice are much appreciated. --[[User:Ashalkhakov|Ashalkhakov]] ([[User talk:Ashalkhakov|talk]]) 09:54, 9 December 2010 (UTC)
: I wouldn't let your lack of book writing and educational skills worry you too much. Most contributors could probably say the same about themselves. I still feel like I don't have the skills and I've been helping Wikibooks for about 5 years now. Your intention is great and should be enough to get started. Hongwei Xi could focus on the technical aspects of the language, while you compliment their writing to make it easier for more people to follow. Working together like that could allow you both to focus on your individual strengths and could allow your strengths to be used together to make a great book. More people with similar or different strengths may also join the two of you in writing the book at some point, and that could also help to improve the book. I encourage you to welcome anyone that decides to join in, learn what they want to do, and possibly offer some suggestions of where the book could use the help in the area that people want to work on. That is one way to work together in writing a book in any case. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 13:40, 9 December 2010 (UTC)
== Copyright issues with IB Physics ==
One page [[IB_Physics/Physics_and_Physical_Measurement]] tries to limit the copyright by saying that "Any IB syllabus statements included here are NOT under any free license and remain property of the IBO. They are reproduced here for personal study purposes only." Is this allowed here, and would it require the material affected to be clearly identified (which it seems not to be)?
Also, someone has added a link to a printable version on Google docs, which seems not to include any licence statement. Is that OK? [[User:Recent Runes|Recent Runes]] ([[User talk:Recent Runes|talk]]) 13:37, 12 December 2010 (UTC)
: [{{fullurl:IB Physics/Physics and Physical Measurement|oldid=1021731}} The notice was added in the second edit by the page's creator.]. I don't know when the Google Docs version was created. [http://kstruct.com/ib/index.php?title=Topic_1_-_Physics_and_Physical_Measurement&oldid=598 Topic 1 - Physics and Physical Measurement] was started in December 2006 though which predates the page at Wikibooks. That Wiki's [http://kstruct.com/ib_notes/KstructIB:Copyrights copyright notice] says submitted work is under the CC-BY-SA license too and has no such notice either. [http://www.ibo.org/faq/ IBO's FAQs] states that syllabus and past examination papers can be purchased from the IB store, but are available free of charge to universities and governments. Based on this information I would conclude that syllabus are not free to use. The notice may be trying to alert people to that fact for or when any syllabus are used. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 14:28, 12 December 2010 (UTC)
: I also just found [http://www.thestudentroom.co.uk/w/index.php?title=Revision:Measurement&oldid=9778 Revision:Measurement] which was started in August 2006. That website's terms states users maintain ownership of their submitted works, but anyone else may only use submitted works from the website for private non-commercial research and studying unless permission is obtained from them. I'm not sure if there is any way for us to determine whether the person that submitted Revision:Measurement also submitted Topic 1 - Physics and Physical Measurement, if another person did, or if permission was obtained from the website to license under the CC-BY-SA. There are also many other websites that use it and they have all rights reserved notices, but I wasn't able to determine when the work was added to them. Might need to delete this after all. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 15:11, 12 December 2010 (UTC)
::I think we can ignore the text on the student room site as this one [http://kstruct.com/ib_notes/Topic_1_-_Measurement] from the Kstruct IB notes site dates from September 2005. This seems to be the original text, so we should credit it with a link really. Regarding the notice on "syllabus statements", I think this should be removed or changed to say that no material should be copied from the IBO site as it would not be available under a compatible license.
::The Google docs copy of this page seems to have been created recently. Although it does not credit Wikibooks, perhaps we don't need to make a fuss about it as the only way anyone is likely to find that document is via the Wikibooks page. [[User:Recent Runes|Recent Runes]] ([[User talk:Recent Runes|talk]]) 17:57, 12 December 2010 (UTC)
::: I didn't notice there was another much older copy at Kstruct. Good catch. Yes credit should be given, hopefully Kstruct is the original source. Wikibooks is the only website I found with the syllabus statement. If a warning against copying syllabus from the IBO site is to be kept around, I think the top of [[Talk:IB Physics]] might make more sense. Hopefully no one has already copied IBO's syllabuses into the book. I guess Wikibooks would of heard about it from IBO, if there has been. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 18:23, 12 December 2010 (UTC)
== Alignment of Collapsible Tables ==
The ''collapsible'' class defines the behavior of collapsible tables, but within that class the alignment must have been css-defined as ''left''. The upshot of this is that an HTML attribute used in a table that makes use of the class, cannot override the class's style, and as such cannot align such a table to center.
Am I right in assuming that if the collapsible class alignment style were not specified at all, it would still default left, and yet also allow in-line changes by users?
Thanks, and regards to all, [[User:Armchair|Armchair]] ([[User talk:Armchair|talk]]) 16:56, 8 December 2010 (UTC)
:The default would be for text in a cell to be left-aligned unless it's a header row. Also, one thing that's annoyed me as well is the border applied to tables using the ''collapsible'' class. My opinion is that no formatting should be applied except for that needed for the "show/hide" link. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 17:47, 8 December 2010 (UTC)
:: The show/hide link really only exist to deal with web browsers that don't support click events anywhere else. Anywhere within the cell can be clicked for web browsers that support it. Part of that is setting the background and border, and changing their style when the mouse is over the area to make this fact more intuitive for users. The tooltip for that area is also changed to reflect the current expanded/collapsed state. The text alignment of a table's contents should be able to be set and respected, but web browsers are never guaranteed to respect alignment of tables themselves with respect to their place on a page. Also there is no left alignment set for any part of the collapsible class that I could find. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 19:13, 8 December 2010 (UTC)
Is there any objections to making the collapsible divs and tables look more like the collapsible elements in vector skin's sidebar and toolbox? Since people are probably familiar with them by now, I think that would be one way to minimize styling while keeping them intuitive. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 13:04, 14 December 2010 (UTC)
:Can I just say that you're a design genius? Let's make Wikipedia jealous. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 13:56, 14 December 2010 (UTC)
== How do I start a book? ==
Nearly all instructions insist that it is possible to type a subject name into some box 'on the left'. What box on the left? When I use the one at the top-right of the screen I get nonsense, and no offer to make any page whatsoever. How, physically is a new blank page obtained? I thank you, somewhat lost, [[User:Armchair|Armchair]] ([[User talk:Armchair|talk]]) 13:06, 16 December 2010 (UTC)
: Well, as you may be aware of, the default skin was changed to Vector, and so the search box is now at the upper-right. We've been updating the help pages in a furious spurt lately and you can find updated instructions at [[WB:CREATE]]. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 13:32, 16 December 2010 (UTC)
: I'm not sure when it happened, but the search page no longer seems to include a link to a page when it doesn't exist. That was the bases for that recommendation. Wikipedia's search page still does, so it may have been a local change. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 13:44, 16 December 2010 (UTC)
::I noticed this behaviour a while ago, I don't think it changed that recently. It might be nice to have a "create a book" link that actually created the framework a little like the "new article" creator on WP. [[User:QuiteUnusual|<font color="#E66C2C">'''QU'''</font>]] <sup>[[User talk:QuiteUnusual|<font color="#306754">TalkQu</font>]]</sup> 14:35, 16 December 2010 (UTC)
::: I think I've noticed it for months now, just couldn't pinpoint when. If you click on the '''Gadgets''' tab in your [[Special:Preferences|preferences]] you'll notice under '''Book Gadgets''' there is a '''Book Designer Gadget'''. So this already exists. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 14:55, 16 December 2010 (UTC)
:::: Ah yes, I had forgotten that. I meant really though that it would be nice if the gadget was listed on the navigation somewhere so it was obvious to a new contributor. [[User:QuiteUnusual|<font color="#E66C2C">'''QU'''</font>]] <sup>[[User talk:QuiteUnusual|<font color="#306754">TalkQu</font>]]</sup> 23:53, 16 December 2010 (UTC)
:::::Right now we have a bit of a confusing setup. In the print/export menu in the sidebar there is already a link to "create a book". That's the PediaPress tool and it talks about creating books in terms of collections of wiki pages. While this works at Wikipedia, with its Book namespace, we need to localize the tool here because we have actual books. I'll see if I can resolve that in the interface messages. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 00:19, 17 December 2010 (UTC)
== ''Selected'' class not working ==
Hello again,
I note that setting the ''selected'' class with ''collapsible'' no longer opens with the box dropped. See [http://en.wikibooks.org/w/index.php?title=Editing_Wikitext/Making_Templates_A101&stable=0#Add_Classes '''Add Classes'''] . Thanks, [[User:Armchair|Armchair]] ([[User talk:Armchair|talk]]) 15:31, 18 December 2010 (UTC)
: <nowiki>{{{myclass}}}</nowiki> was removed from {{tl|dropthing}}. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 17:38, 18 December 2010 (UTC)
;Thank you:I could not figure it out - it works well now. [[User:Armchair|Armchair]] ([[User talk:Armchair|talk]]) 22:56, 18 December 2010 (UTC)
<br />
== Batch uploading pages ==
I was wondering if there is a tool to upload multiple pages for a book at once.<br />
I was thinking to make a page for each function in http://en.wikibooks.org/wiki/Lua_in_SpringRTS/Callins with each page having the same look as http://en.wikibooks.org/wiki/Lua_in_SpringRTS/Callins/UnitCreated%28%29 <br />
So if I make a script and get for example 20 text pages(in wiki format) is there a way to upload them all at once under the chapter "Callins"? <font style="color:green;">[[User_talk:Pithikos|Pithikos]]</font> 16:52, 19 December 2010 (UTC)<br />
== ''Template:Hidden begin'' not working ==
I notice that the template for [[Template:Hidden_begin|hidden text]] (click to show, click to hide) no longer hides text. Looking at the information page for [[Template:Hidden begin]], none of the examples are now clickable. Just me (e.g. javascript settings, cache or something) or is it general? -- [[User:JamesCrook|JamesCrook]] ([[User talk:JamesCrook|talk]]) 22:30, 22 December 2010 (UTC)
: Was general. Needed to be updated, which I did. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 00:03, 23 December 2010 (UTC)
Thank you! Appreciated. --[[User:JamesCrook|JamesCrook]] ([[User talk:JamesCrook|talk]]) 12:34, 23 December 2010 (UTC)
== The protection 'topicon' ==
In Chrome, the green lock on [[WB:RR/G]] as well as this page covers the word 'log' in 'log out'. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|talk]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 02:25, 20 December 2010 (UTC)
:What skin are you using? I've been observing this phenomenon for any protected page for the last few days (but it may have been happening longer, and I just noticed because I've been dealing with protected pages lately). I figured maybe it was because I use monobook. I'm running Firefox, as it happens. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 04:21, 20 December 2010 (UTC)
::I'm using monobook too. The problem also appears on IE8. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|talk]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 05:51, 20 December 2010 (UTC)
The CSS for the topicon div is in [[MediaWiki:Monobook.css]] and [[MediaWiki:Vector.css]] and matches that seen in Wikipedia's implementation. Potentially Darklama can take a look. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 13:38, 20 December 2010 (UTC)
: I think Wikipedia's stylesheets assume that there is no site notice and no fund raising banner. Wikipedia repositions the icons when there is a site notice and/or fund raising banner using javascript. I think Wikibooks should instead use a system that can fallback when JavaScript and CSS are not available. I suggest a notice/message box that alerts people that the page is locked or whatever. After that I think JavaScript could be used to either place an icon next to the page title based on the notice/message box, or replace the notice/message box with an icon next to the page title. I think either way having a fall back and not relying on CSS to position the icons would be better than the way Wikipedia does it. Heck Wikipedia seems to already position some icons next to the page title, so there own methods are inconsistent. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 14:34, 20 December 2010 (UTC)
::I see you added the tagline back to the pages. That would make us the only English-language site besides Wikipedia that added it back. I can understand a system that doesn't require JavaScript, but wanting to make it so it doesn't require CSS seems to be pushing it. I seriously doubt many people are using Lynx. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 19:14, 20 December 2010 (UTC)
::: Perhaps not many people are using Lynx, but the point is to try to fail gracefully in a way that maintains usability for all and it shouldn't require a lot of work to do. I went looking at the various skins cleaning out things which ought to be consist across skins and what wasn't being used any more. I added the things which ought to be consistent across skins to the commons stylesheet. The monobook skin was still showing the tagline except for on the Main Page. I have no objections to hiding the tagline in all skins or in just some skins if that is really what is wanted. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 20:53, 20 December 2010 (UTC)
::::My personal opinion is that it looks cleaner without the tagline. The tagline is also present in the HTML page title and there is our logo in the upper-left. I don't know how others feel, though. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 23:01, 20 December 2010 (UTC)
::::: Fair enough. I've updated what the tagline and the HTML page title says, so now it really shouldn't matter either way. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 23:35, 20 December 2010 (UTC)
===Obscured Page Title===
The 'percent completed' link obscures the page title on first opening. Not a lot more I can say about that! Regards to all, [[User:Armchair|Armchair]] ([[User talk:Armchair|talk]]) 19:51, 20 December 2010 (UTC)
: I noticed I made about 4 changes before having seen your comment. I'm curious, is this still a problem? --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 21:06, 20 December 2010 (UTC)
Hi, It seems to have been fixed. Thanks, [[User:Armchair|Armchair]] ([[User talk:Armchair|talk]]) 21:42, 20 December 2010 (UTC)
:It's obscured now in Firefox 3.0.15 (I should upgrade some day). --[[User:Jomegat|Jomegat]] ([[User talk:Jomegat|talk]]) 01:15, 21 December 2010 (UTC)
:The JavaScript and CSS can be cached for up to 30 days. Have you tried [[w:Wikipedia:Bypass your cache|bypassing your browser's cache]]? – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 13:03, 21 December 2010 (UTC)
::Well, it's different today. Instead of covering the page title, it covers the [edit] link for the top-section (I have that enabled in my gadgets). Changing the width of the browser makes no difference - the stage icon is placed smack over the [edit] link regardless. Disabling the gadget "fixes" the problem, depending on the definition of "fix". :-/ --[[User:Jomegat|Jomegat]] ([[User talk:Jomegat|talk]]) 13:30, 21 December 2010 (UTC)
::: Adrignola and I both made some changes. Is anything still covered/obscured? --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 15:13, 22 December 2010 (UTC)
::::Yes. Now the stability notice covers the stage icon. See [[Adventist Youth Honors Answer Book]]. --[[User:Jomegat|Jomegat]] ([[User talk:Jomegat|talk]]) 15:15, 22 December 2010 (UTC)
::::: From my perspective that is good news, because the short stability notice plays havoc with lots of our templates to begin with. I think the only non-temporary solution to that problem would be to force it to be on its own line like with the long stability notice. I'll try to work on doing just that later today. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 16:36, 22 December 2010 (UTC)
::::::Seems OK now. Thanks. --[[User:Jomegat|Jomegat]] ([[User talk:Jomegat|talk]]) 21:10, 22 December 2010 (UTC)
== Language courses - audio material ==
The course [[Dutch]] is pretty much all from my hand (I used the username Iarlagab here before I consolidated to SUL-account) and I am looking for ways to improve the book and make it more attractive to people who have no knowledge of the language at all.
Probably all author of language books are dealing with the same issues and it would be nice if we could pool our experiences a bit. If that has already been done somewhere I'd appreciate a link.
I have been experimenting with adding more audio information, including 1-2 minute long drill files on pronunciation / the conversations / memorizing numerals etc and I would not mind a bit of feedback on that. There is also a technical question. If I put the sound file directly on the page using "Image" and push the button I get a strange echoing effect unless I push the arrow key again. Of course I can also use the audio template, but then I get sent to a separate page where I cannot see the text anymore. In some cases like the drills that is fine, but not if I am trying to let people hear the pronunciation of a written piece of text.
E.g.:
[[Image:Nl-Dutch-hoeheetu-drill.ogg|40px|noicon]]
versus:
{{audio|Nl-Dutch-hoeheetu-drill.ogg|Hoe heet u?}}
Merry Christmas!
[[User:Jcwf|Jcwf]] ([[User talk:Jcwf|talk]]) 19:59, 24 December 2010 (UTC)
: Wikimedia Commons may already have what every language book needs: [[Commons:Category:Dutch pronunciation|Category:Dutch pronunciation]] --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 20:05, 24 December 2010 (UTC)
: Another idea. If Commons doesn't have what you need my guess is the wiktionary in the language you want pronunciations from does since audio pronunciations seem to be a priority there. For example at German Wikipedia's [[:de:wikt:English|English]] entry you can find out how you pronounce Englisch. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 20:13, 24 December 2010 (UTC)
::I work mostly at nl.wikt and upload such files for pronunciation with some regularity. And yes those are useful here too, particularly in vocabulary lists or exercises with images intended to build vocabulary. However, they are typically single words (or spoken versions of entire wikipedia pages). Not pronunciation of listening/speaking ''drills''. You cannot learn to speak a language without training your ears and your mouth. This is why commercial language courses come with tapes/ cd's whatever. Some of them like the Pimsleur ones ''only'' come with that. No written text at all. The philosophy behind that is that the way a child acquires language (entirely by ear) is still the best way. I am looking at ways to include that kind of ideas into the language book and wonder if there are others here with experience in generating such material.[[User:Jcwf|Jcwf]] ([[User talk:Jcwf|talk]]) 21:42, 24 December 2010 (UTC)
::: Well even if they don't have what is needed, I think those are the people who are most likely to have the experience to know how to create the listening/speaking drills. I think people have wanted audio drills for a long time now. I figure there would already be what is needed if there were people at any of the language Wikibooks with the expertise to do it. OTOH the people who could help could just be unaware that files are wanted, and I have thought Wikibooks could benefit from some audio/video/diagram/illustration/image/media wanted templates to encourage people to create and add those type of things to books. BTW I'm not experiencing any echoing sound when first playing the audio file above. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 22:20, 24 December 2010 (UTC)
::::The {{tl|WikiProject Languages}} header for the talk pages I placed on all the language books can use the {{para|needs-bite|yes}} parameter to add pages needing audio clips to [[:Category:Language pages needing sound bites]]. If you want to be more invasive, there's always {{tl|images}} and {{tl|need soundbite}}. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 01:16, 25 December 2010 (UTC)
::::: Yes, I am aware we already have some templates, but those aren't quiet what I had in mind. I will probably get around to creating something along the lines of what I have in mind eventually, like I began to do with {{tl|media quality}}. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 09:28, 25 December 2010 (UTC)
:An alternative approach could be to go into greater depth on a topic like weather forecasts which have regular time-slots on Dutch radio stations which are streamed on-line. New material is produced every day, which has a balance of repetitive and varying vocabulary over a fairly limited range. [[User:Recent Runes|Recent Runes]] ([[User talk:Recent Runes|talk]]) 22:59, 24 December 2010 (UTC)
::RE: the echo effect. I only get this strange effect in firefox, not in explorer. In firefox I also get that sound files will start re-playing spontaneouly, sometimes two simultaneously if I have used more than one button on a page.
[[User:Jcwf|Jcwf]] ([[User talk:Jcwf|talk]]) 16:19, 25 December 2010 (UTC)
::RE: {{tl:media quality}} As long as commons is systematically thwarting the uploads of sound files (they are '''''extremely tedious''''' to produce, especially the one-word ones and even more tedious to upload), I really do not think that anyone here has any business putting such punitive templates on other people's pages. Especially someone who has never produced or uploaded any .ogg files, Darklama. [http://commons.wikimedia.org/w/index.php?title=Special:Contributions&limit=500&target=Darklama see]. In fact producing longer drill-files is easier because you only have to upload once. There is a new beta for batch upload, but I cannot get is to work. [[User:Jcwf|Jcwf]] ([[User talk:Jcwf|talk]]) 16:30, 25 December 2010 (UTC)
::: Would you also object to anyone adding templates that request expansion or improvements be made to a book when they have never edited or produced a book before? I didn't have audio specifically in mind when I created media quality. I had in mind a set of templates that served similar purposes to the maintenance templates used for books for use in the File namespace to suggest or request improvements when a person cannot, could not, or doesn't know how to help themselves. In the context of audio, a request for quality improvements might apply to an audio file with background noise that interferes with following what a speaker is saying. If I were to come across an audio file with the sound of airplanes taking off in the background that overshadowed the speaker trying to teach or explain something for example, I would have no problems with pointing out the audio needs to be improved despite my own inability to produce a replacement myself. I see nothing wrong with doing that. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 17:18, 25 December 2010 (UTC)
== Applicability of flagged revisions? ==
I was wondering whether all Wikibooks pages are supposed to be subject to having revisions approved. If not, are all ''Featured'' books at least supposed to be subject to that? I observed that some unexplained blanking by a user who had never edited before or since went unnoticed for a long time at [[Introduction to Sociology/Social Movements]]. It does not appear that edits to that page are subject to review, even though the book is Featured. [[User:Belteshazzar|Belteshazzar]] ([[User talk:Belteshazzar|talk]]) 23:20, 18 December 2010 (UTC)
: I'm not sure how the recent update for Wikipedia's benefit might have affected Wikibooks. However the decision as to whether books are to have stable revisions or not was suppose to be left up to the contributors of individual books. The default was to not be subject to review, unless book contributors request it. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 23:26, 18 December 2010 (UTC)
::I asked because I noticed that other pages in [[Introduction to Sociology]] ''do'' have notes in the edit history about revisions being approved or checked, while the one in question doesn't. [[User:Belteshazzar|Belteshazzar]] ([[User talk:Belteshazzar|talk]]) 23:36, 18 December 2010 (UTC)
:::I don't know why that would be the case. Why people review and when they decide to review seems to depend on each reviewer. There doesn't seem to be a good way to judge what a review or a failure to review means. I choice not to review at all personally, but my edits may be approved or checked automatically by the system, and that may be true for other people as well. The Wikibooks community has had trouble agreeing on specifics when it comes to the use of the review tool, which is why its been left up in air and to book contributors to decide. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 23:59, 18 December 2010 (UTC)
:I've made an effort to review the front page of every single book on the wiki as part of my past efforts in development status tagging. Beyond that, I only checked that every page of a featured book was reviewed for a couple books, some time ago. It only takes an initial review for a page to be subject to it. I'd take a statement that someone doesn't want a page reviewed the same way I'd take a statement that someone doesn't want me to fix typos on the page. It's a wiki, there are others here and trying to help and there will be others editing and reviewing your work. The configuration got revised with the update for Wikipedia's benefit to make it so reviewers have new pages they create automatically reviewed. I'm not going to complain. Go for them all or not at all. However I can tell, observing review tags for pages edited many many hours ago in recent changes, that Darklama is not the only one choosing not to review. Sometimes I question what all the hand-wringing is for whenever there's a mention of removing flagged revisions since so few participate. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 03:57, 19 December 2010 (UTC)
::I will typically review every page I edit, and tend to look through RC and pick out vandalism targets, etc., to review so there is a stable version. As I've said before, if people wanted to we could have every page reviewed within a few weeks with a concerted effort - it only took me on my own about two weeks to do virtually the whole Cookbook. [[User:QuiteUnusual|<font color="#E66C2C">'''QU'''</font>]] <sup>[[User talk:QuiteUnusual|<font color="#306754">TalkQu</font>]]</sup> 19:33, 19 December 2010 (UTC)
14djfz9die238q7xt4mrb5hqu4qtyai
User talk:Adrignola/2011/01
3
246328
4640162
2051028
2026-06-13T15:46:58Z
ShakespeareFan00
46022
4640162
wikitext
text/x-wiki
== You mistake hosting for planning a layout. ==
You thought that I was hosting, when I was just planning a layout, and it's not relevant under [[User:Wd930]].
:Hosting is very much still relevant in user space. If content in user space is not supporting work on Wikibooks, it doesn't belong here on Wikimedia servers. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 15:04, 2 January 2011 (UTC)
If that's true, then can't I do that stuff in my sandbox, or the sandboxes (public)?
== Thanks ==
Thanks for your recent help in formatting a contribution I have started to make. I still have a lot to learn about the process, grammar, and syntax. I appreciate you extra effort. I am interested also in learning about contributing images to the commons, because my field is very image-dependent. [[User:MJWhiteDerm|MJWhiteDerm]] ([[User talk:MJWhiteDerm|talk]]) 04:06, 4 January 2011 (UTC)
:No problem. I try to "nurture" new contributors by leading by example and instructing on both the peculiarities of Wikibooks and the syntax of editing. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 04:39, 4 January 2011 (UTC)
== Ongoing vandalism ==
Hi, could you please block {{user|70.157.40.15}}? He's been on a blanking spree, I can only revert him. You seem to be around judging by RC, so I thought I'd ask you. Thanks. [[User talk:Tempodivalse#top|'''''Tempodivalse''''']] 04:41, 6 January 2011 (UTC)
:A feisty one. Blocked for two weeks. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 04:44, 6 January 2011 (UTC)
::Thank you! :-) [[User talk:Tempodivalse#top|'''''Tempodivalse''''']] 04:44, 6 January 2011 (UTC)
== [[Wikibooks:Nurture]] ==
I would of tagged it with essay myself, but I wanted someone else to decide if it really should be an essay, or proposed as something more. A version of IAR is 1/3 right. I was looking at IAR, BEANS, and PRUNE, they all seemed like pages about nurturing works and the project in a healthy way to me. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 21:38, 3 January 2011 (UTC)
:I'm sure many guidelines and policies originally started as essays. If one gains traction, it certainly could be proposed as something more. [[w:WP:PRUNE|WP:PRUNE]] and [[w:WP:BEANS|WP:BEANS]] don't seem to quite match up with the nurture page, though. We don't really have all that many rules, so suggestions to ignore them would need some justification. It should be interesting to see how the page develops. Possible extensions to the page might incorporate [[Wikibooks:Forking]] with regards to pruning on a larger scale. Sometimes I do feel like a gardener. More analogies: dead growth (inactive, poor-quality books) might be fertilized or removed, spread-out plants (shallow scope books) might be grafted together, weeds (vandalism) should be pulled. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 05:03, 4 January 2011 (UTC)
:: I aimed for a positive tone and to be consistent, which is why they don't quiet match up. Plus WP:BEANS is a bit recursive in being a not to rule that tells you not to write not to rules. I wanted to avoid that, and I think I achieved some success in that by briefly mentioning how cautioning against unwise actions may give them the idea to do it, and from there began to focus on nurturing instead. I wrote it like that because I saw potential for expanding into the many ways we could be more nurturing which is a positive approach compared to the many not to pages that WP has. I did give a brief justification as to when rules should be ignored, "when a rule prevents healthy growth and maturity". Feel free to expand the page with more analogies and more ways to be nurturing. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 12:03, 4 January 2011 (UTC)
::: I added “Which means "Keep your nose clean"”. <small><span class="autosigned">—Preceding [[w:Wikipedia:Signatures|unsigned]] comment added by [[User:Wd930|Wd930]] ([[User talk:Wd930|talk]] • [[Special:Contributions/Wd930|contribs]]) </span></small><!-- Template:Unsigned -->
:::: Neither beans nor noses are mentioned which unfortunately means keeping one's nose clean has no/is out of context. Also this essay isn't about keeping ones nose clean at all because gardening can get dirty which is the exact opposite of keeping your nose clean. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 23:32, 6 January 2011 (UTC)
== Adrignola ==
That doesn't make sense, so I was still doing it after you said something about hosting. I thought that it is just a fun thing.
Do you think that I should use a public sandbox, or mine? <small><span class="autosigned">—Preceding [[w:Wikipedia:Signatures|unsigned]] comment added by [[User:Wd930|Wd930]] ([[User talk:Wd930|talk]] • [[Special:Contributions/Wd930|contribs]]) </span></small><!-- Template:Unsigned -->
:It's hard for me to say for sure, as I look at [[Special:PrefixIndex/User:Wd930|all the subpages of your user page]] in determining what the intention is. I could certainly see how some of it could be related to work for textbooks. [http://en.wikibooks.org/w/index.php?limit=50&tagfilter=&title=Special%3AContributions&contribs=user&target=Wd930&namespace=0&tagfilter=&year=&month=-1 You haven't made any edits at all to any textbooks] to provide an idea of which though. The username you are using is [http://toolserver.org/~vvv/sulutil.php?user=Wd930 blocked indefinitely] at Wikipedia as being a sockpuppet of the account WGroup, which had its content deleted as being unrelated to work there. It is for these reasons that I am a bit wary. Could clarify what your goals are, beyond a "fun thing"? – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 22:55, 6 January 2011 (UTC)
== Copyright issue on charts ==
I am not sure about the copyrights on the charts hence wanted your suggetions. I have been using charts published online by various sites like yahoo / icharts.in / indiabulls (using metastock online). I have them on my blog http://learnthetrick.blogspot.com can I use these charts for the wikibook Technical analysis.
:Raw "factual" data can't be protected by copyright, except if <s>the</s> you are directly using charts that have any special and unique design. It is also proper to quote the original source of the data (or the value of the chart will be null). --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 15:41, 9 January 2011 (UTC)
:: Thank you that means I can create a chart from the published data and then use them in wikibooks. In fact I think to make the book genuinely worthy I will use chart made only from the factual data. [[User:Yndesai|Yndesai]] ([[User talk:Yndesai|talk]]) 16:01, 9 January 2011 (UTC)
== Links to my old username ==
Hi!
Could you edit [http://en.wikibooks.org/w/index.php?title=User_talk:Adrignola/2009/07&action=edit this protected archive] and fix my signatures as I did [http://en.wikibooks.org/w/index.php?title=Wikibooks_talk:Manual_of_Style/Archive_1&diff=prev&oldid=2015253 here]? Thanks you very much! [[:pt:User:Helder.wiki|Helder]] 20:51, 10 January 2011 (UTC)
:[[File:Yes_check.svg|15px|link=|alt=]] '''Done'''. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 22:02, 10 January 2011 (UTC)
== [[Bioinformatics]] text ==
I wasn't sure of the protocol. I wasn't happy with the text that I saw so I thought I'd start fresh. However, if the text has been abandoned I'd be happy to have me and my class appropriate it. Thanks, [[User:PaulWLepp|PaulWLepp]] ([[User talk:PaulWLepp|talk]])
OK. We will definitely take this project on. You can remove the Intro Bioinfo. page. I have a some experience with these - the Ecology text was largely written by my classes. [[User:PaulWLepp|PaulWLepp]] ([[User talk:PaulWLepp|talk]])
Say, can you also remove the flag at the top of the page? Thanks, [[User:PaulWLepp|PaulWLepp]] ([[User talk:PaulWLepp|talk]])
:[[File:Yes_check.svg|15px|link=|alt=]] '''Done'''. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 17:33, 12 January 2011 (UTC)
== Edit Goal ==
According to [http://stats.wikimedia.org/wikibooks/EN/PlotDatabaseEdits1.png Edits Per Day] it would seem we've already likely surpassed the 2006 high in September 2009. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 05:14, 13 January 2011 (UTC)
:One problem in comparing the two is that [[:File:English Wikibooks Edits.png]] uses totals for the month while the other shows totals per day. If edits per day were at a ''sustained'' higher value in 2006, then we might not have passed the high. Note the tight and tall collection of data points around July 2006 that contributed to that month's peak value. Using that graph's average trend line, it would suggest peak average was in September 2007, however, and using its metrics, our average has not surpassed that since. Averages have also dipped below fr.wikibooks and de.wikibooks a few times in the past, though the margin has widened since. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 13:47, 13 January 2011 (UTC)
== Userbox merges? ==
I was thinking the educational, location, religion, and zodiac userboxes should be merged too like was done previously with the user language and programming language userboxes. They could become {{tl|user education}}, {{tl|user location}}, {{tl|user religion}}, and {{tl|user zodiac}} respectively. There may be other userbox templates with the same theme that might be worth merging as well, maybe like {{tl|user group}} to replace the administrator/bureaucrat/checkuser/etc userbox templates. What do you think? --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 22:39, 7 January 2011 (UTC)
:I like the idea for user groups and zodiac signs for sure. Those already use similar designs and would be good candidates. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 22:42, 7 January 2011 (UTC)
:: One done. One to go. I think the others should use a consistent style too though. Being consistent arguably would make them more neutral and would give the appearance of not favoring one person's education, location or religion over another. I think userboxes can be seen as a way to share a single or class of information about a user. I think by having a unified style for information in the same class, people will also be able to more quickly find and focus on what information is important to them. I've also been tempted to replace "This user is..." with "I..." --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 16:19, 15 January 2011 (UTC)
:::Well, the others might not be hard to do as well. They'll probably have to employ switches, though. The education ones for degree types will probably be no trouble. Some of the religion ones are formatted to coordinate with the icons, so those might not look as good unified. But, feel free. I didn't import that many/all of the educationones so that will save the trouble bringing in the rest. The religion ones are a pain because Wikipedia moved them to User:UBX/* or deleted them entirely (making some religions entirely unrepresented). – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 16:43, 15 January 2011 (UTC)
== Updating templates ==
Thanks for updating {{tl|tag}}. I'd gladly update other templates as well, but everything seems to be protected by default. The following templates should probable be updated from en.wiki as well: {{tl|reflist}}, {{tl|refbegin}} (fixes hanging indents!) and {{tl|refend}}. [[User:Edokter|Edokter]] ([[User talk:Edokter|talk]]) 19:35, 14 January 2011 (UTC)
:Those have now been updated, along with their documentation and the CSS in [[MediaWiki:Common.css/References.css]]. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 20:06, 14 January 2011 (UTC)
::One minor point; {{tl|reflist}} should have <tt>class="reflist references"</tt> instead of <tt>class="reflist references-small"</tt> (or references-small should be added back to references.css; that class has been deprecated on en.wiki). [[User:Edokter|Edokter]] ([[User talk:Edokter|talk]]) 20:22, 14 January 2011 (UTC)
:::Whoops. Missed that section of the documentation. The template itself now uses <tt>class="reflist references"</tt> too. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 20:31, 14 January 2011 (UTC)
== Deleting redirect means broken links ==
Hi, I know you mean well in cleaning up the Programming: namespace. However, you must be aware that there are websites which link to content on WikiBooks, and some of these web sites were written before 2009. When I checked out a WikiBook linked from http://hype-free.blogspot.com/2007/08/postgresql-replace-into.html I found a disconcerting message: "This page has been deleted."
The log says:
deleted "[[Programming:Converting MySQL to PostgreSQL]]" (Orphaned or broken redirect: content was: '#REDIRECT [[Converting MySQL to PostgreSQL]]' (and the only contributor was 'Adrignola'))
[[Converting MySQL to PostgreSQL]] is not orphaned/broken; rather, it is useful reference material. Please consider adding the redirect back so that people can find it! ([http://www.w3.org/Provider/Style/URI Cool URIs Don't Change])
Thanks, Patrick Horn [[Special:Contributions/67.188.214.127|67.188.214.127]] ([[User talk:67.188.214.127|discuss]]) 22:38, 15 January 2011 (UTC)
:I know several books have been renamed with redirects suppressed. I haven't been the only one to delete on-wiki orphaned redirects. Potentially a compromise would be to retain only redirects for book roots, but that would still yield grief if a link was to a subpage. I like to think that the chain is not broken because I do ''not'' use clean deletion reasons and retain the former redirect's content in the notice that appears on the former location. The linked document argues for proper naming of links in the first place so that they don't ''have'' to be changed. I quote: "The message here is, however, that many, many things can change and your URIs can and should stay the same. They only can if you think about how you design them." Problem is, pages on Wikibooks can and ''do'' have to be changed. Naming convention fixes in the past create a single redirect. If none were deleted, whenever a new contributor comes along and renames ''any'' page of a book, we get a double redirect that has to be fixed by hand with no bots running at Wikibooks. If not fixed, readers visiting the first location for the content get stopped just as with the notice noted above and just as similarly have to click the redirect to continue on. Anyone else's thoughts on this? Let me know so I can plan future actions accordingly. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 04:45, 16 January 2011 (UTC)
::I agree that orphaned redirects should be deleted as they are detected, most of these deletion actions will have no other impact than to keep the project clean, having said that I must remark that this is probably not the most important task to do on the project, if anyone requests a restoration/fix it should be done, since this "pages" are clearly of marginal importance. The only reason I see as to require a deletion of a redirect is if the location is needed for a new book/page. Maintenance of redirects (fixing them) should be avoided, they should be just deleted but it should be up to the one acting on it, there need not be any consistency on the action.
::Requests to restore redirects because of outside linkage, like the one above, should be encouraged to first fix the source and some notice should be added to the redirect talk page if found that there is a valid reason to fix/maintain it, so to avoid revisiting the issue again and again. It is clearly beneficial to the project that links from outside continue to work... --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 06:12, 16 January 2011 (UTC)
:::<[[w:WP:TPS|TPS]]>I agree with Adrignola and most of what Panic said, but I'm a bit sceptical about the part, 'they should be just deleted but it should be up to the one acting on it, there need not be any consistency on the action'. If there is no consistency on the action, one may argue that some redirects are 'treated unfairly'. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 15:08, 16 January 2011 (UTC)
::::This is solved by documenting the need of the redirect on its talk page. I doubt that a deletion would occur if the admin was aware of the "special" situation, it would also clearly define that the redirect was intentional and state the party that has invested interest in its survival, permitting a dialog if the situation really needs a change. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 15:36, 16 January 2011 (UTC)
From [[Wikibooks:Deletion policy#Speedy deletions]]: "Orphaned redirects that do not conform with [[Wikibooks:Naming policy]] or where the names are unlikely to be inadvertently searched for by anyone." Programing: does not confirm with with our Naming policy. I think it is highly unlikely that most people would be surprised to find a link in a 3 year old archive is broken. Also if someone did search for "Converting MySQL to PostgreSQL" they would immediately find where it moved to. I think consistently and indiscriminately deleting redirects is what should be expected. However I admit when I've been deleting Programming: redirects I've been keeping the book/top-root redirect intact for now because of past discussions as to what extend redirects should be deleted or kept intact. Wiktionary uses a script to redirect people to the lowercase form of a definition when the capital form of a page does not exist. I have been thinking for some time now that we could do something similar for deleted redirects when a link to where the page has moved to is included in deletion reason. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 15:39, 16 January 2011 (UTC)
== Question from Special:Userrights page ==
Hi,
I have a Question fro you again. I have created a bug https://bugzilla.wikimedia.org/show_bug.cgi?id=26643 to gain some access to grant some rights like rollback. bug has fixed. i was asking 6 groups. it says they have added 6. but i only can see 3. What do you think? where is mistake? pls reply in [http://si.wikibooks.org/wiki/%E0%B6%B4%E0%B6%BB%E0%B7%92%E0%B7%81%E0%B7%93%E0%B6%BD%E0%B6%9A_%E0%B7%83%E0%B7%8F%E0%B6%9A%E0%B6%A0%E0%B7%8A%E0%B6%A1%E0%B7%8F%E0%B7%80:%E0%B6%B6%E0%B7%92%E0%B6%9F%E0%B7%94%E0%B7%80%E0%B7%8F here] [[User:බිඟුවා|බිඟුවා]] ([[User talk:බිඟුවා|discuss]] • [[Special:Contributions/බිඟුවා|contribs]]) 02:30, 17 January 2011 (UTC)
Nice. Opened Jan 9, closed Jan 17. Meanwhile [[bugzilla:26344|bug 26344]] opened Dec 15 is still open. Quite a few [https://bugzilla.wikimedia.org/buglist.cgi?keywords=shell&query_format=advanced&keywords_type=allwords&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=VERIFIED&component=Site%20requests&resolution=---&product=Wikimedia requests] for LiquidThreads out there but I also see quite a few open requests. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 04:24, 17 January 2011 (UTC)
:The bug is now closed. Thanks to whoever provided the encouragement, you good Samaritan, you. We can see, for instance, on [[:Category:Horticulture/Templates/Examples]] that links to parent categories are working (and the wiki has not crashed). I have a feeling that we're the first to turn on subpages for categories given our naming scheme. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 04:49, 18 January 2011 (UTC)
== [[Template:Scrabble board]] ==
You want to take another look at the {{tl|Scrabble board}} template? It's no longer working with [[Scrabble/Playing the X]]. --[[User:Jomegat|Jomegat]] ([[User talk:Jomegat|discuss]] • [[Special:Contributions/Jomegat|contribs]]) 18:19, 18 January 2011 (UTC)
: Should be fixed now. When Adrignola moved the other templates as subpages, he also updated the template using relative paths which means it was looking for "Scrabble/Playing the X/tile" and such. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 19:13, 18 January 2011 (UTC)
::Thanks for the fix. We all have our days... – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 21:08, 18 January 2011 (UTC)
== remove IP block ==
Hi. I'm trying to get an IP block removed. I detailed the situation here: http://en.wikibooks.org/wiki/Wikibooks:Reading_room/Administrative_Assistance Basically, I'm a long time contributor to wikibooks, I thought it might be fun to play with TOR, set up a TOR relay server on my computer (without knowing the Wikipedia consequences), and now my home IP address (96.228.140.71) is blocked from editing. As soon as I realized the problem, I stopped the TOR relay and uninstalled the software. Tempodivalse said you could put an IP block exempt on my account. I'm gearing up to write another wikibook over the next few months (with the help of my students) and would really like access again from my home account. Can you help? --[[User:Rcragun|Rcragun]] ([[User talk:Rcragun|discuss]] • [[Special:Contributions/Rcragun|contribs]]) 19:49, 19 January 2011 (UTC)
: (Breaking in, here.)
: I was just reading this thread at the reading room, and I'm a bit puzzled. I don't see any record of a block on 96.228.140.71, neither {{plainlinks|{{fullurl:Special:Log|type=block&user=96.228.140.71&month=-1}}|locally}} nor {{plainlinks|{{fullurl:meta:Special:Log|type=gblblock&user=96.228.140.71&month=-1}}|globally}}. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 19:53, 19 January 2011 (UTC)
::Per an admin (Kingpin13) at Wikipedia, it's apparently the TorBlock extension that is flagging the IP and preventing me from editing pages. Here's the actual message I receive when I try to edit:
:::You do not have permission to edit this page, for the following reason: Your IP address, 96.228.140.71, has been automatically identified as a tor exit node. Editing through tor is blocked to prevent abuse. You can view and copy the source of this page:
::So, not sure if there is anything that can be done about it, but that's what he/she says is the problem.--[[User:Rcragun|Rcragun]] ([[User talk:Rcragun|discuss]] • [[Special:Contributions/Rcragun|contribs]]) 20:18, 19 January 2011 (UTC)
:::If my understanding of MediaWiki's TorBlock is correct, and things haven't changed since I had the tools, then IPBE ''should'' fix this problem. A lot of people from China, the Middle East, etc., where WMF projects are sometimes blocked, have to use Tor, but can still edit via IPBE. ([[w:WP:IPBE]]: "It can also be used to allow editing via an anonymizing proxy such as Tor.") In the meantime, you could try to edit via a proxy service (a lot of web-based ones are free). [[User talk:Tempodivalse#top|'''''Tempodivalse''''']] 20:30, 19 January 2011 (UTC)
Rcragun, you now have IP block exemption applied to your account, which should allow you to edit. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 20:36, 19 January 2011 (UTC)
:Hooray! It works! Thank you! Lesson learned. I'll avoid tor in the future.--[[User:Rcragun|Rcragun]] ([[User talk:Rcragun|discuss]] • [[Special:Contributions/Rcragun|contribs]]) 20:44, 19 January 2011 (UTC)
== The Guidance Barnstar ==
{| style="border: 1px solid gray; background-color: #fdffe7;"
|rowspan="2" valign="middle" | [[Image:Compass barnstar.png|80px]]
|rowspan="2" |
|style="font-size: x-large; padding: 0; vertical-align: middle; height: 1.1em;" | '''The Guidance Barnstar'''
|-
|style="vertical-align: middle; border-top: 1px solid gray;" | Thanks for your HELP Adrignola. [[User:බිඟුවා|බිඟුවා]] ([[User talk:බිඟුවා|discuss]] • [[Special:Contributions/බිඟුවා|contribs]]) 04:43, 20 January 2011 (UTC)
|}
== Bulk moving pages ==
Hi,
I'm really sorry to have to ask this but I haven't been able to find a quick solution. I maintain the [[A-level_Computing]] book and it currently has a focus on a particular exam board, AQA. Other people are keen on starting an OCR (another exam board) page so it would be good to turn [[A-level_Computing]] into a splash page linking to both books. moving all the current A-level_Computing/... pages to A-level_Computing/AQA/...
Is there an easy way to do this that maintains maintains the internal links?
Thanks [[User:Pluke|Pluke]] ([[User talk:Pluke|discuss]] • [[Special:Contributions/Pluke|contribs]]) 13:05, 29 January 2011 (UTC)
:Please do not create splash pages. See [[Wikibooks:Manual of Style#Main page]]. I would advise following the lead of [[A-level Mathematics]] in using a deeper structure so that both AQA and OCR content belong to the same book and are linked from the main contents. (As an admin) I can move all the pages currently in the book down one level ''at one time'' into an AQA structure and fix the links if that is desired. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 13:35, 29 January 2011 (UTC)
::Hi Adrignola, That sounds perfect, if you could move all the current pages to /AQA that would be great, then I'll edit the main page in lines with the Mathematics page. Thanks [[User:Pluke|Pluke]] ([[User talk:Pluke|discuss]] • [[Special:Contributions/Pluke|contribs]]) 18:09, 29 January 2011 (UTC)
:::All done! – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 22:52, 29 January 2011 (UTC)
::::Thanks for this! Much appreciated [[User:Pluke|Pluke]] ([[User talk:Pluke|discuss]] • [[Special:Contributions/Pluke|contribs]]) 11:09, 30 January 2011 (UTC)
== External link deletion ==
I noticed you deleted a bunch of external link pages back in June with the edit summary "external link; no longer needed". I haven't been on wikibooks for a while and didn't notice until now. Was there a discussion around this? -- [[User:Prod|Prod]] ([[User talk:Prod|discuss]] • [[Special:Contributions/Prod|contribs]]) 23:17, 30 January 2011 (UTC)
:Yes, there was [[Wikibooks:Reading_room/Archives/2010/June#CAT:Links_to_external_webpages|a discussion]]. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 05:04, 31 January 2011 (UTC)
::Thanks! -- [[User:Prod|Prod]] ([[User talk:Prod|discuss]] • [[Special:Contributions/Prod|contribs]]) 23:44, 31 January 2011 (UTC)
pibhcfu7nj5rtg7maftwal1q05paozy
Wikibooks:Requests for deletion/Mathematics Handbook
4
246395
4640144
2015143
2026-06-13T15:37:18Z
ShakespeareFan00
46022
4640144
wikitext
text/x-wiki
== [[Mathematics Handbook]] ==
{{closed|Closed as [[File:Symbol delete vote.svg|15px]] '''Delete'''—consensus for deletion due to poor content. New version of book being worked on under name following deletion. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 04:05, 3 January 2011 (UTC)}}
[[Image:Symbol delete vote.svg|15px]] '''Delete''' This book has profound scoping issues. It attempts to cover everything from introducing addition through calculus, and in the particular case can be viewed as a fork of many existing books. The material that exists is not very well written and inaccurate in places, so it doesn't make sense to merge the material into existing books as it has nothing to add. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 18:33, 9 November 2010 (UTC)
:[[File:Symbol delete vote.svg|15px]] '''Delete'''/[[File:Symbol merge vote.svg|15px]] '''Merge'''. This is another low quality/poorly translated book by the same IP user who added several other books with similar quality of content. The scope of the book is too far-reaching and the content like past books appears to be a rip of content at another language Wikibooks with no attribution. Merge what is useful into the books with a more narrowly-defined scope and delete anything that is redundant or nonsensical. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 19:27, 9 November 2010 (UTC)
:What do you mean by "profound scoping issues"? Some math books cover everything from Addition to Calculus and beyond. I think a book with that scope is fine. Expecting a book to be very well written in slightly over a week is expecting too much. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 21:09, 9 November 2010 (UTC)
::[[File:Symbol comment vote.svg|15px]] '''Comment''' I only meant that I thought the scope was much too far reaching, but I suppose on that point we will have to disagree. I didn't mean to imply that the book should be well written in a single week. I only meant to explain why I didn't thought a merge was appropriate (as I don't see the existing material adding much to the current books). [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 22:11, 9 November 2010 (UTC)
:'''AGF and wait'''. I think the IP might come back and explain/alter the scope. Perhaps wait a month or two before considering deletion. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|talk]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}}
:: [[Special:Contributions/Sluutu|Sluutu]] contributed November 8th. Sluutu could perhaps be the same IP user. Even if they are not the same person, there was at least someone else also contributing to it. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 15:08, 12 November 2010 (UTC)
:[[File:Symbol delete vote.svg|15px]] '''Delete'''. Content minimal and inferior to content we already have. Has already been here long enough for benefit of the doubt. If contributor comes back we should direct them to the existing material. [[User:JamesCrook|JamesCrook]] ([[User talk:JamesCrook|talk]]) 14:18, 12 November 2010 (UTC)
::[[File:Symbol comment vote.svg|15px]] '''Comment''' I agree that lack of attribution is an issue (even if it is to work by the same author on other Wikis) but perhaps it is better to allow this contributor to create their own books than to add their material to existing books. [[User:Recent Runes|Recent Runes]] ([[User talk:Recent Runes|talk]]) 17:33, 14 November 2010 (UTC)
* [[File:Symbol delete vote.svg|15px]] '''Delete''' I think we can do a lot better than this.--[[User:Wisden|Wisden]] ([[User talk:Wisden|talk]]) 10:24, 1 December 2010 (UTC)
:[[File:Symbol keep vote.svg|15px]] '''Keep''' Looks more like musings than than text of any real educational value. Still, I don't see how this is out of scope. I think it could be of use to someone as a handbook; clear and to the point. --[[User:Swift|Swift]] ([[User talk:Swift|talk]]) 23:19, 15 December 2010 (UTC)
{{end closed}}
gscvthoqf4tchr8mi3ouflwzznujn18
User talk:Holomanga
3
246566
4640137
2021726
2026-06-13T15:34:20Z
ShakespeareFan00
46022
4640137
wikitext
text/x-wiki
<div style="text-align:center; font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Holomanga!</div>
<!-- FIRST COLUMN -->
<div style="width:49.5%; float:left; margin:0em; padding:0em;">
<div style="margin:0.2em; border:1px solid #15304f; background-color:#f4eed7;">
<div style="border-bottom:1px solid #15304f; background-color:#89b5e7; padding:0.2em 0.5em; font-size:110%; font-weight:bold;">[[File:Crystal Clear app kedit.png|20px|link=|alt=]] '''First steps tutorial'''</div>
<div style="padding:0.4em 1em 0.3em 1em;">
'''[[WB:WIW|Wikibooks]] is for developing free [[WB:WIW|textbooks]] collaboratively.'''<br/>
You do not need technical skills to [[Using Wikibooks|contribute]]. You can [[WB:BOLD|change just about anything]], and [[WB:AGF|changes can be made easily]]. Please [[WB:CHAT|introduce yourself]] to everyone, and let us know what [[WB:PROJECTS|interests you]].
If you are used to other Wikimedia projects, you should read [[Wikibooks:Wikibooks for Wikimedians|our Wikimedians primer]] to get quickly up-to-speed.
</div>
</div>
<div style="clear:both; padding-right:1em; text-align:right; font-size:smaller">(Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</div>
</div>
<!-- SECOND COLUMN -->
<div style="width:49.5%; float:left; margin:0em; padding:0em;">
<div class="collapsible" style="margin:0.2em; border:1px solid #15304f; background-color:#f4eed7; text-align:left;">
<div class="title" style="border-bottom:1px solid #15304f; background-color:#89b5e7; padding:0.2em 0.5em; font-size:110%; font-weight:bold;">[[File:Icon apps query.svg|20px|link=|alt=]] '''Getting help'''</div>
<div class="NavContent" style="padding:0.4em 1em 0.3em 1em;">
* Read the [[Using Wikibooks]] book for a friendly introduction to the project, or our [[Help:Contents|help pages]] for more information.
* You can get friendly help from the community in the [[WB:HELP|user assistance room]] or our [[irc:wikibooks|IRC channel]].
* Upload freely licensed files to [[commons:Wikimedia Commons|Wikimedia Commons]]. You may [[WB:RFP|request permission]] to upload [[w:fair use|fair use]] files locally. Please include author and source {{tl|information}} and a {{nowrap|{{tl|non-free use rationale}}}} for [[WB:FU|non-free]] files.
</div>
</div>
<div class="collapsible" style="margin:0.2em; border:1px solid #14304f; background-color:#f4eed7; text-align:left;">
<div class="title" style="border-bottom:1px solid #15304f; background-color:#89b5e7; padding:0.2em 0.5em; font-size:110%; font-weight:bold;">[[File:Nuvola filesystems trashcan full.png|20px|link=|alt=]] '''Made a mistake?'''</div>
<div class="NavContent" style="padding:0.4em 1em 0.3em 1em;">
* You can [[WB:REVERT|restore]] a previously saved version.
* Pages should follow the [[WB:NP|<code>'''Book Title/Chapter Title'''</code>]] naming convention.
* Need to rename a page? Use the ''move'' tab (is available once your account is 4 days old - until then, ask for [[WB:HELP|help]]).
* To request a page be deleted, add {{tlx|delete|''your reason''}} to the top of the page.
* Was a page you made deleted? Please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:RFD|RFD]] archives if applicable. You can request undeletion at [[WB:RFU]], or ask the administrator who deleted the page.
</div>
</div>
<div class="collapsible selected" style="margin:0.2em; border:1px solid #15304f; background-color:#f4eed7; text-align:left;">
<div class="title" style="border-bottom:1px solid #15304f; background-color:#89b5e7; padding:0.2em 0.5em; font-size:110%; font-weight:bold;">[[File:Transmission icon.png|20px|link=|alt=]] '''Goodies, tips and tricks'''</div>
<div class="NavContent" style="padding:0.4em 1em 0.3em 1em;">
* Please fill in [[WB:ES|the edit summary]] and [[WB:PREVIEW|preview]] your edits before saving.
* Sign your name on [[WB:TALK|discussion pages]] by typing ~~~~
* User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''!
</div>
</div>
</div>
<div style="clear:both;"> </div> [[User talk:Tempodivalse#top|'''''Tempodivalse''''']] 18:57, 7 January 2011 (UTC)
==[[Wikijunior:Future]]==
I have nominated your book for a Wikiversity transwiki. Please see [[Wikibooks:RFD#Wikijunior:Future]] for the rationale. Regards [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 13:31, 25 January 2011 (UTC)
er6hehp3tffz9j5ojvrgogiqz2xp7kh
Wikibooks:Requests for deletion/Issue Guide (2)
4
246687
4640140
2015149
2026-06-13T15:35:53Z
ShakespeareFan00
46022
4640140
wikitext
text/x-wiki
== [[Issue Guide]] ==
{{closed|Closed as [[File:Symbol keep vote.svg|15px|alt=|link=]] '''kept''' due to no support for deletion. Renaming can be done by anyone and discussion of the name can occur on the book's talk page. NPOV issues have not arisen since the previous nomination. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 15:21, 10 January 2011 (UTC)}}
I am re-nominating [[Issue Guide]] for deletion. The past conversation is [[Wikibooks:Requests for deletion/Issue Guide | here]]. It's been three years since the last RFD, and no new content has been added. --[[Special:Contributions/24.69.155.10|24.69.155.10]] ([[User talk:24.69.155.10|talk]]) 05:45, 20 December 2010 (UTC)
:'''Transwiki''' Debatepedia. I think it doesn't fit into 'textbooks, annotated texts, instructional guides, and manuals'. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|talk]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 05:50, 20 December 2010 (UTC)
:: Very cool project, [http://debatepedia.idebate.org Debatepedia]. I wasn't aware of it. It is not a Wikimedia project but it is also a non-profit, note that I didn't find any info on the licensing issues, if you have the time to research that it would be great (it may not be compatible). I'm mostly just putting the link up since I had to search it and didn't want to edit your post. I take the chance also to give you the idea to substitute your signature with a user template (sorry for not posting this last bit on your usertalk but it relates to the above post and saves time)... --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 10:28, 20 December 2010 (UTC)
:: I see I was mentioned in the previous discussion, but did not participate in it. I think someone may have misrepresented my position in that discussion. I moved "Morality/Murder" into the Issue Guide book because the book "Morality" did not exist. The Issue Guide book seems within scope to me. The book appears to make a good attempt to maintain a NPOV by presenting the two major sides of each issue. The issues the book attempts to coverer seem like what might be covered by a political or social science textbook to me. A book being inactive is not a reason to delete. I think there is enough substance to this book that anyone could expanded it to address any shortcoming they might see. I think in political and social science just explaining the major opinions could be considered a good start to teaching the issues this book attempts to cover. That said, if the consensus is towards deletion than I suggest transwiki this to Wikiversity. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 22:20, 20 December 2010 (UTC)
::[[File:Symbol keep vote.svg|15px]] '''Keep''' If no new content has been added, then nothing has changed to theoretically result in an RFD outcome that is anything different than before. Examining the book myself I agree that it seems to try to stick to NPOV. I myself have taken a class that used a textbook titled "Opposing Viewpoints" and used it for research in preparation for in-class debates against fellow students on controversial topics. This is in scope. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 22:58, 20 December 2010 (UTC)
: [[File:Symbol keep vote.svg|15px]] '''Keep''' I've an impression, from somewhere, that studying sets of contrasting opinions was a standard Scholastic exercise during the European Dark Ages. That's a pretty long-standing precedent.
: The outcome of the previous RFD was that, although the book hadn't gone astray from NPOV yet, it might do so as it evolved in the future, and if so it could then be re-nominated. While some RFD outcomes are conditional on further improvements being made, this one was conditional on possible degradation not occurring. Since nobody is claiming that such degradation has occurred, the previous decision should stand.
: Keeping it here would neither prevent it from being exported on Wikiversity, nor make any difference to whether it could be exported to debatepedia. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 00:24, 21 December 2010 (UTC)
::Do you know what license debatepedia uses ? --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 09:37, 21 December 2010 (UTC)
:::Debatepedia uses the [http://debatepedia.idebate.org/en/index.php/MediaWiki:Copyright GFDL]. Because content at Wikibooks is dual-licensed, you can choose the license of your choice and one of those licenses here is the GFDL. Therefore the licensing is compatible. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 13:18, 21 December 2010 (UTC)
: [[File:Symbol comment vote.svg|15px]] '''Comment''' If this book is to be kept, perhaps it should be re-named to reflect the fact that it is extremely centered on Western social and moral issues. The name Issue Guide is too broad for the content, in my opinion. Thoughts? [[User:Thereen|Thereen]] ([[User talk:Thereen|talk]]) 02:32, 21 December 2010 (UTC)
:: The current title does suggest an impossibly broad scope for the book. The question becomes, though, just what should the scope be? Just because all the issue now listed are of a certain kind, that doesn't mean it couldn't easily be expanded to cover more. The scope and the title should probably be refined together. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|talk]]) 03:06, 21 December 2010 (UTC)
::: How about using "Social Ethics" or "Social Philosophy"? --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 03:40, 21 December 2010 (UTC)
:<!--no icon--> Works breaking NPOV fall in a very wide gray area. I read our policies on NPOV as preventive measures, to make works support the different views of possible contributors, preventing conflict. In every field there are sections that collide among themselves the severity of the POV issue, if it is offensive to the community or if it is preventing others to contribute or even if the issue is unfixable should be the reasons to bring a project with POV issues to a community discussion over a deletion, as it certainly will not be a good way to kick start the work even if it could cause someone to fix the issue.
: A WikiBook is a ever evolving project, any NPOV issue if not grave enough to put the book project at risk or cause issues about participation should remain tagged to the situation made clear to that book community as only an interested party would be willing to fix the issue.
: I defended the keep on the previous discussion and my arguments are still valid, but, since there was no change on the situation I'm willing to support a Transwiki if the decision is inclined that way and if a good location that preserves the content is found. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 09:37, 21 December 2010 (UTC)
{{keep}} I couldn't support it in its previous form, but with a few extra words it has now become a debaters handbook. --[[User:JamesCrook|JamesCrook]] ([[User talk:JamesCrook|talk]]) 17:39, 8 January 2011 (UTC)
{{end closed}}
oxlppqehqo0muewtuf468t2y8bhvrb5
Wikibooks:Requests for deletion/Investiture of the Gods
4
246886
4640118
4372379
2026-06-13T15:24:58Z
ShakespeareFan00
46022
4640118
wikitext
text/x-wiki
{{talkarchive}}
== [[Investiture of the Gods]] ==
{{closed|{{done}} [[s:Portal:Investiture_of_the_Gods]]. To note that it is not a clean work for our main namespace, though it loosely fits within our scope of Annotated works, and it can await a translation, hence it has been moved to our portal namespace which is a more flexible work space. [[User:Billinghurst|Billinghurst]] ([[User talk:Billinghurst|discuss]] • [[Special:Contributions/Billinghurst|contribs]]) 23:16, 14 January 2011 (UTC)}}
This book violates [[WB:SOURCE]]; namely, that Wikibooks is not a repository for source texts. This book wholly consists of a translation of ''Fengshen Yanyi'', seen at [[s:zh:封神演義|Chinese Wikisource]], with no annotations to make it an annotated text for suitable inclusion. It is out of scope. I propose that it be transwikied to English Wikisource. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 02:20, 11 January 2011 (UTC)
: Wikisource recently sought feedback from Wikibooks on where translations of source texts belong. I support moving this book to Wikisource, and hope that issue has been resolved or this will help to resolve the issue for Wikisource. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 12:08, 11 January 2011 (UTC)
*'''Transwiki''' WS per Adrignola [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|talk]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 06:19, 12 January 2011 (UTC)
{{end closed}}
2nu7nph29as13hs4vu765ajuqwkl9bj
Wikibooks:Reading room/Archives/2011/January
4
247191
4640152
2051031
2026-06-13T15:41:05Z
ShakespeareFan00
46022
4640152
wikitext
text/x-wiki
{{talkarchive}}
== Missing edits in edit count ==
For some reason, my edit count listed in [[Special:Preferences]] is only 5, while I have more than 50 contributions listed in [[Special:Contributions/MC10]]. Can someone explain why? Thanks. <span style="font-family:Verdana;color:#000000;font-weight:bold;">—[[User:MC10|<span style="color:#000000">mc10</span>]] ([[User talk:MC10|<span style="color:#000000">t</span>]]/[[Special:Contributions/MC10|<span style="color:#000000">c</span>]])</span> 01:50, 1 January 2011 (UTC)
:I have the same issue. According to prefs, I have 56 edits, although a look at my contribs shows around a hundred. My guess is that the counter doesn't include transwiki edits. [[User talk:Tempodivalse#top|'''''Tempodivalse''''']] 02:06, 1 January 2011 (UTC)
::Indeed. Both of you made many edits to templates at Wikipedia and those have been pulled in via history imports of useful templates. Your preferences edit count reflects the true value of the number of edits at Wikibooks. In a way, your reputations precede you. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 16:24, 1 January 2011 (UTC)
== [[Bicycles]] ==
Hello all! I was hoping to get some input on the [[Bicycles]] wikibook. I'd really like to make it more useful and more accessible to readers, and perhaps get it on its way to being a Featured Book. I would appreciate some opinions on the book, and suggestions on what might be done. I do recognize there is an NPOV issue throughout the book, and I will be fixing that in the coming month. Thanks in advance, [[User:Thereen|Thereen]] ([[User talk:Thereen|talk]]) 08:14, 4 January 2011 (UTC).
:A very basic item would be to add navigation links to the pages. The modifications page is pretty light on content with only one subpage. I don't know how involved you are with bicycle repair, but pictures for the maintenance pages would be helpful. [[Bicycles/Maintenance and Repair/Wheels and Tires/Fixing a flat|Fixing a flat]] is a good example. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 15:38, 4 January 2011 (UTC)
::I can volunteer to help out a bit with the book. I noticed that the book explains safety, types or riding, maintenance, etc., quite well, but currently doesn't mention how to actually ''ride'' a bike (i.e. for an absolute beginner who's never ridden before). Maybe it should, to be totally comprehensive? A lot of people still cannot ride a bicycle, not like it's common knowledge. [[User talk:Tempodivalse#top|'''''Tempodivalse''''']] 17:03, 5 January 2011 (UTC)
:::Excellent suggestion! I had not considered a comprehensive approach to actually riding a bicycle. Any work done on the book would be extremely welcomed. Frankly I'm a bit baffled by the process of overhauling a text. [[User:Thereen|Thereen]] ([[User talk:Thereen|talk]]) 06:34, 6 January 2011 (UTC)
::::Okay. I've decided to be [[WB:BOLD]] and split the book up into two major sections. I'm not sure this is ideal, but it's the best I could come up with at the moment. Please make suggestions or edit things as you see fit. [[User talk:Tempodivalse#top|'''''Tempodivalse''''']] 16:30, 6 January 2011 (UTC)
== [[Scrabble]] ==
I've been wanting to create a Wikibook on the [[Scrabble]] board game. However, does this particular game meet the "noteworthiness" criteria for game subjects? (I note we have a [[Monopoly]] wikibook , which is similar in popularity.) It is somewhat popular; last year there was a [[w:World Scrabble Championship|World Scrabble Championship]] with a large prize pool. Thoughts? [[User talk:Tempodivalse#top|'''''Tempodivalse''''']] 02:19, 8 January 2011 (UTC)
:I wasn't aware there was a noteworthiness criteria for game subjects, but maybe you've read some stipulation somewhere that I've forgotten. I know there's policy against video game strategy guides, but [[:Category:Board games|board games]] have a lot of precedence here. Looking at what you've done to expand the existing [[Accordion]] book, I'd be interested to see how one on Scrabble would look. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 03:20, 8 January 2011 (UTC)
::I didn't mean that there ''is'' a definite noteworthiness criteria, just that what I gather there seems to be an "unwritten rule" of not writing about obscure things not deemed useful to many people. For instance, we have many card game books as well as [[Go]] and [[Monopoly]], so I thought that a Scrabble book would be in the same vein. [[User talk:Tempodivalse#top|'''''Tempodivalse''''']] 03:23, 8 January 2011 (UTC)
:::I found [[w:User:Denelson83/Scrabble board]] which might be useful to adapt for your purposes. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 04:47, 8 January 2011 (UTC)
::::Thanks! That will be helpful. I think I'll start the book soon seeing as there is some precedence for board games. [[User talk:Tempodivalse#top|'''''Tempodivalse''''']] 18:27, 8 January 2011 (UTC)
== What the outside world says about Wikibooks ==
Is there a page which provides links to external comments about Wikibooks? Links to material like the research papers written by Curtis Bonk and his collegues ([http://wiki-riki.wikispaces.com/Research+Papers+and+Reports here]), or any relevant discussions on Meta could be brought together for handy reference. [[User:Recent Runes|Recent Runes]] ([[User talk:Recent Runes|talk]]) 22:09, 11 January 2011 (UTC)
There is [[Wikibooks:Wikibooks in the media]] though Adrignola marked it a historical page. Nobody had added to it in 3 years probably because people rarely notice when Wikibooks makes the news. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 22:13, 11 January 2011 (UTC)
:Here's a recent brief mention (7th January) [http://mashable.com/2011/01/07/online-education-websites/]: "Using the principles that power Wikipedia, everyone can now create their own wiki with platforms like PBWorks or Wikia.com. Wikified educational content can be found at Curriki.org, Wikiversity.org and Wikibooks."--[[User:Wisden|Wisden]] ([[User talk:Wisden|talk]]) 14:20, 12 January 2011 (UTC)
::OK, but I think we are looking for something more substantial like the Bonk papers that might be interesting for people to read. As serious research or comment on Wikibooks is not published frequently, my question relates more to where we can record the most significant examples. The [[Wikibooks:Wikibooks in the media]] page does not seem quite right, so maybe a section for external links could be added to our [[Wikibooks:Welcome]] page. [[User:Recent Runes|Recent Runes]] ([[User talk:Recent Runes|talk]]) 22:40, 12 January 2011 (UTC)
:::Also, such resources can be used to back up additions to our [[w:Wikibooks|entry at Wikipedia]], which has not seen much love in comparison to [[w:Wikipedia|Wikipedia's entry on Wikipedia]]. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 01:22, 13 January 2011 (UTC)
== Backgrounds in Monobook ==
Why are the backgrounds of all the non-mainspace pages changed to white? :( They're still shaded in WP and ZHWB... [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|talk]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 06:45, 12 January 2011 (UTC)
:Are you using the "awesome background" gadget? I've not known the background on Monobook or Vector to be anything ''other'' than white. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 13:59, 12 January 2011 (UTC)
::Not that kind of background. The background of the things that are placed above that kind of background. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 15:09, 16 January 2011 (UTC)
::: The background has always looked the same to me for any namespace at any Wikimedia project with any skin, without the use of any gadgets and without changing my personal skin. Maybe the background change only works with some web browser? --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 15:53, 16 January 2011 (UTC)
:::: In the past, and in WP and ZHWB right now, all pages in monobook but mainspace pages are slightly shaded, both in Chrome and IE. I don't use any gadgets or scripts that change this. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 10:30, 17 January 2011 (UTC)
== Centering Equations ==
I am adding pages to an existing Wikibook. My equations (png-rendered) are all left-aligned, and I think they'd look much clearer if they were in the centre. Any idea how to achieve this? (I'd like to avoid changing CSS if possible, as I'm not the owner of the book.) Sample page at [[SPM/The_DCM_Equation._3._Networks_and_Matrices#Networks_and_Dynamic_Equations]] . Thanks! <span style="font-size: smaller;" class="autosigned">—Preceding [[w:Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/81.86.160.116|81.86.160.116]] ([[User talk:81.86.160.116|discuss]]) 10:05, 22 January 2011 (UTC)</span><!-- Template:UnsignedIP2 -->
:Looks like <nowiki><center> ... </center></nowiki> does the trick, as in <center><math>z(t + 1) = Az(t) \,</math></center> --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 17:06, 22 January 2011 (UTC)
::[[Wikibooks:Manual of Style#Mathematics|Wikibooks:Manual of Style]] suggests that equations should only be tabbed over with <nowiki>:</nowiki> however. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 19:03, 22 January 2011 (UTC)
: Thanks very much to both of you, looking much better now.
== book wikification help needed ==
Hi, I wrote Croatian Chess book and uploaded it at WikiMedia [http://commons.wikimedia.org/w/index.php?title=File%3ACroatian_chess_2nd_ed.pdf&page=1# Croatian_chess_2nd_ed.pdf]. I'd really appreciate if any of you reading this could volunteer to get the book wikified properly. TIA! <small><span class="autosigned">—Preceding [[w:Wikipedia:Signatures|unsigned]] comment added by [[User:Mmlacak|Mmlacak]] ([[User talk:Mmlacak|discuss]] • [[Special:Contributions/Mmlacak|contribs]]) 03:43, 23 January 2011 (UTC)</span></small><!-- Template:Unsigned -->
== Editor review ==
I'm wonder if the WB community could do a [[w:WP:ER|editor review]] for me. Just tell me what things I've done wrong, how I should improve etc. Thanks! [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 14:38, 24 January 2011 (UTC)
:[[History of Hong Kong]] is coming along pretty well. So is [[Wikijunior:The Book of Estimation]]. Hope you finish them both. [[Wikijunior:Particles]] is very nice and is complete. There was a while when I thought we lost you to Wikia. I'd be hard-pressed to come up with criticisms when you've been working steadily on content creation for some time now. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 15:15, 24 January 2011 (UTC)
::Thanks! (LOL I just stopped editing for a while because my book on the ancient history of Hong Kong was overdue. :P) [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 15:31, 24 January 2011 (UTC)
== Digital Radiography - Physics Text ==
I'm planning a wikibook entitled [[Basic Physics of Digital Radiography]] and would welcome any contributions.
The intent is an undergrad text which succinctly explains the physical basis of X-Rays and their contemporary application in diagnostic radiography. The wikibook is addressed primarily to students with foundations in anatomy and physiology and could also be of interest to physics and engineering students requiring a topic overview.
I'll provide an outline before I start the text proper. Any advice appreciated and acknowledged.
Kieran
[[User:KieranMaher|marz]] ([[User talk:KieranMaher|talk]]) 02:03, 11 January 2011 (UTC)
:Just have to say that I look forward to it, given that the book you contributed heavily to previously, [[Basic Physics of Nuclear Medicine]] was declared a featured book. Some changes since you last did most of your work: free images are now uploaded to a shared media repository but are used just as they always have, and the upload link is in the same place; images of formulas will likely be deleted there as unnecessary—see [[m:Help:Displaying a formula]] for information on how to do it with the built-in code. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 03:25, 11 January 2011 (UTC)
== Attribution in [[An Introduction to Molecular Biology]] ==
This book is being written by copying material from Wikipedia, so far without attribution. I have left the author a message on their talk page, but I think it would be useful for someone who knows the correct procedure to give the author some more practical guidance. [[User:Recent Runes|Recent Runes]] ([[User talk:Recent Runes|discuss]] • [[Special:Contributions/Recent Runes|contribs]]) 19:23, 26 January 2011 (UTC)
:As an administrator, you know the procedure, however. It's to request an import of the history at [[Wikibooks:Requests for import]]. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 22:15, 26 January 2011 (UTC)
::So are we saying all the existing material from Wikipedia needs to be deleted (probably complete pages in some cases) and all significant source pages copied here using the RFI procedure? I get the impression that the guy is copying extracts from a number of different Wikipedia pages into one book page, so he might then need administrative help merging their histories together. Although I was aware such processes existed, as I had not performed them myself I was not completely clear about the practical details. [[User:Recent Runes|Recent Runes]] ([[User talk:Recent Runes|discuss]] • [[Special:Contributions/Recent Runes|contribs]]) 22:58, 26 January 2011 (UTC)
:::Sorry to butt in, but wouldn't simply having a prominent boilerplate notice (like "''This page includes content copied from the English Wikipedia''") be enough for attribution purposes in lieu of a transwiki? Both projects operate under 3.0 licenses, so they should be compatible, right? [[User talk:Tempodivalse#top|'''''Tempodivalse''''']] 23:04, 26 January 2011 (UTC)
:::: Either you people help me merging history or i should follow idea of Tempodivalse. Please let me know the procedure. Thanks[[User:Kaushlendratripathi|'''''kaushlendratripathi''''']]
::::If the content is from various sources per page, then scratch the idea of importing histories. That'd be too much work and would yield a useless page history. We do have {{tl|WikipediaCredit}} for fulfilling Tempo's idea. But that's almost too generic and I'm not sure if it's compliant with the attribution requirement for the licensing. The best practice would have been to make a different edit adding content for each source used, copying and pasting the link from the browser address bar that you see when you click on "permanent link" in the toolbox for each Wikipedia page used as a source. But I've thought of a solution that provides attribution, works without importing history, and works even if the content is already there; you can use [[WB:REFS|inline references]] to provide permanent links to the Wikipedia pages in question. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 00:25, 27 January 2011 (UTC)
:::::As an example I tried it on the page [[An_Introduction_to_Molecular_Biology/Macromolecules_and_Cells]] - is that right? [[User:Recent Runes|Recent Runes]] ([[User talk:Recent Runes|discuss]] • [[Special:Contributions/Recent Runes|contribs]]) 00:39, 27 January 2011 (UTC)
::::::that i have already told to Runes that i will add reference (including inline refrences) later. I thinks this idea is good. Please let me know. Any other idea and suggestions are welcome. thanks [[User:Kaushlendratripathi|'''''kaushlendratripathi''''']]
::::::::HI guys i am going to write again. If any other suggestion please let me know. thanks. [[User:Kaushlendratripathi|'''''kaushlendratripathi''''']]
::::::The inline referencing test by Recent Runes looks good. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 01:25, 27 January 2011 (UTC)
:::::::I see that {{tl|WikipediaCredit}} had only been used previously for 4 pages. Given its questionable status regarding compliance with licensing requirements, I think its use should be discouraged. (Except perhaps where detailed source references and links are also shown in the page history.) [[User:Recent Runes|Recent Runes]] ([[User talk:Recent Runes|discuss]] • [[Special:Contributions/Recent Runes|contribs]]) 23:59, 27 January 2011 (UTC)
::::::::Shameful. If only the creator of {{tl|Network Plus Certification/Footer}} had known then what we know now. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 01:35, 28 January 2011 (UTC)
::::::::::I am agree with Adrignola . Now i think i should promote this banner. I will add references later on any way this book, which i have started is going to be very useful for both college and University Graduate students. [[User:Kaushlendratripathi|'''''kaushlendratripathi''''']]
:::::::::::I was in agreement that the template ''shouldn't'' be promoted, though. Please use the references notation discussed above and demonstrated by Recent Runes. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 14:35, 28 January 2011 (UTC)
::::::::::::ok i will remove the banner. <small><span class="autosigned">—Preceding [[w:Wikipedia:Signatures|unsigned]] comment added by [[User:Kaushlendratripathi|Kaushlendratripathi]] ([[User talk:Kaushlendratripathi|discuss]] • [[Special:Contributions/Kaushlendratripathi|contribs]]) </span></small><!-- Template:Unsigned -->
:::::::::::::Maybe [[Wikipedia:Wikipedia:Citing Wikipedia]] helps. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 06:46, 29 January 2011 (UTC)
axu7aklt9klsckba47xfunuev4xj6vi
User talk:A1437053~enwikibooks
3
247580
4640106
2896514
2026-06-13T15:19:30Z
ShakespeareFan00
46022
Attempting to solve lints - Please ignore the notification this edit generated.
4640106
wikitext
text/x-wiki
<div style="text-align:center; font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, A1437053!</div>
<!-- FIRST COLUMN -->
<div style="width:49.5%; float:left; margin:0em; padding:0em;">
<div style="margin:0.2em; border:1px solid #15304f; background-color:#f4eed7;">
<div style="border-bottom:1px solid #15304f; background-color:#89b5e7; padding:0.2em 0.5em; font-size:110%; font-weight:bold;">[[File:Crystal Clear app kedit.png|20px|link=|alt=]] '''First steps tutorial'''</div>
<div style="padding:0.4em 1em 0.3em 1em;">
'''Wikibooks is for [[WB:AGF|collaborative]] development of free [[WB:WIW|textbooks]].'''
You do not need technical skills to [[Using Wikibooks|contribute]]. You can [[WB:BOLD|easily change most books]]. Please [[WB:CHAT|introduce yourself]], and let us know what [[WB:PROJECTS|interests you]].
If you already contribute at other Wikimedia projects, our [[Wikibooks:Wikibooks for Wikimedians|Wikimedia Orientation]] should quickly get you started.
</div>
</div>
<div style="clear:both; padding-right:1em; text-align:right; font-size:smaller">(Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</div>
</div>
<!-- SECOND COLUMN -->
<div style="width:49.5%; float:left; margin:0em; padding:0em;">
<div class="collapsible" style="margin:0.2em; border:1px solid #15304f; background-color:#f4eed7; text-align:left;">
<div class="title" style="border-bottom:1px solid #15304f; background-color:#89b5e7; padding:0.2em 0.5em; font-size:110%; font-weight:bold;">[[File:Icon apps query.svg|20px|link=|alt=]] '''Getting help'''</div>
<div class="NavContent" style="padding:0.4em 1em 0.3em 1em;">
* Read the [[Using Wikibooks]] book for a friendly introduction to the project, or our [[Help:Contents|help pages]] for more information.
* You can get friendly help from the community in the [[WB:HELP|user assistance room]] or our [[irc:wikibooks|IRC channel]].
* Upload freely licensed files to [[commons:Wikimedia Commons|Wikimedia Commons]]. You may [[WB:RFP|request permission]] to upload [[w:fair use|fair use]] files locally. Please include author and source {{tl|information}} and a {{nowrap|{{tl|non-free use rationale}}}} for [[WB:FU|non-free]] files.
</div>
</div>
<div class="collapsible" style="margin:0.2em; border:1px solid #14304f; background-color:#f4eed7; text-align:left;">
<div class="title" style="border-bottom:1px solid #15304f; background-color:#89b5e7; padding:0.2em 0.5em; font-size:110%; font-weight:bold;">[[File:Nuvola filesystems trashcan full.png|20px|link=|alt=]] '''Made a mistake?'''</div>
<div class="NavContent" style="padding:0.4em 1em 0.3em 1em;">
* You can [[WB:REVERT|restore]] a previously saved version.
* Pages should follow the [[WB:NP|<code>'''Book Title/Chapter Title'''</code>]] naming convention.
* Need to rename a page? Use the ''move'' tab (is available once your account is 4 days old - until then, ask for [[WB:HELP|help]]).
* To request a page be deleted, add {{tlx|delete|''your reason''}} to the top of the page.
* Was a page you made deleted? Please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:RFD|RFD]] archives if applicable. You can request undeletion at [[WB:RFU]], or ask the administrator who deleted the page.
</div>
</div>
<div class="collapsible selected" style="margin:0.2em; border:1px solid #15304f; background-color:#f4eed7; text-align:left;">
<div class="title" style="border-bottom:1px solid #15304f; background-color:#89b5e7; padding:0.2em 0.5em; font-size:110%; font-weight:bold;">[[File:Transmission icon.png|20px|link=|alt=]] '''Goodies, tips and tricks'''</div>
<div class="NavContent" style="padding:0.4em 1em 0.3em 1em;">
* Please fill in [[WB:ES|the edit summary]] and [[WB:PREVIEW|preview]] your edits before saving.
* Sign your name on [[WB:TALK|discussion pages]] by typing ~~~~
* User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''!
</div>
</div>
<div style="text-align:right; padding:0.2em 0.5em 0.2em 0.5em;">Thanks. Regards, [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 06:30, 31 January 2011 (UTC)</div>
</div>
<div style="clear:both;"> </div>
== Your account will be renamed ==
<div class="plainlinks mw-content-ltr" lang="en" dir="ltr">
Hello,
The developer team at Wikimedia is making some changes to how accounts work, as part of our on-going efforts to provide new and better tools for our users like cross-wiki notifications. These changes will mean you have the same account name everywhere. This will let us give you new features that will help you edit and discuss better, and allow more flexible user permissions for tools. One of the side-effects of this is that user accounts will now have to be unique across all 900 Wikimedia wikis. See [[m:Special:MyLanguage/Single User Login finalisation announcement|the announcement]] for more information.
Unfortunately, your account clashes with another account also called A1437053. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name A1437053~enwikibooks that only you will have. If you like it, you don't have to do anything. If you do not like it, you can [[Special:GlobalRenameRequest|pick out a different name]].
Your account will still work as before, and you will be credited for all your edits made so far, but you will have to use the new account name when you log in.
Sorry for the inconvenience.
Yours,<br />[[m:User:Keegan (WMF)|Keegan Peterzell]]<br />Community Liaison, Wikimedia Foundation
</div> 22:54, 17 March 2015 (UTC)
<!-- SUL finalisation notification -->
== Renamed ==
<div class="plainlinks mw-content-ltr" lang="en" dir="ltr”>
This account has been renamed as part of [[m:Special:MyLanguage/Single User Login finalisation announcement|single-user login finalisation]]. If you own this account you can [[{{#special:userlogin}}|log in using your previous username and password]] for more information. If you do not like this account's new name, you can choose your own using this form after logging in: [[{{#special:GlobalRenameRequest}}]]. -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]])
</div> 04:28, 19 April 2015 (UTC)
<!-- SUL post-rename notification -->
1hjb85z0n29rqdcvxne2ksszcvqazj2
Wikibooks:Requests for deletion/The Practice of Learning Theories
4
247583
4640119
4372384
2026-06-13T15:25:33Z
ShakespeareFan00
46022
4640119
wikitext
text/x-wiki
{{talkarchive}}
== [[The Practice of Learning Theories]] ==
{{closed|Closed as [[File:Symbol redirect vote.svg|15px|alt=|link=]] '''transwikied''' to [[v:Learning theories in practice|Learning theories in practice]] at Wikiversity. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 16:07, 31 January 2011 (UTC)}}
There is a [[The Practice of Learning Theories/Constructivism in Math|page]] in a this class project book where the original author stated:
:''The objective of this monograph is to contrast my personal teaching practice in a Houston Independent School District (HISD) elementary school against the major contributions of constructivist theorists, their epistemological considerations, and the practice derived from its framework, which are deeply connected and provide structuring forces upon each other (Ainley & Pratt, 2001).''
Being essentially a personal essay with a particular POV, it is not possible for future authors to contribute new material to the page. An author of one of the referenced books also objects to comments about his work. More generally, the page contains original research and could also be seen to fall foul of the HOST and NPOV policies, so it should be deleted (or transwikied to WV). [[User:Recent Runes|Recent Runes]] ([[User talk:Recent Runes|talk]]) 19:57, 6 January 2011 (UTC)
:<s>'''Delete''': Wikibooks [[WB:BLOG|is not a blog]].</s> [[File:Symbol redirect vote.svg|15px|alt=|link=]] '''Transwiki''': I agree that the remainder of the book contains primarily original research after taking a look at the other pages. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 15:25, 10 January 2011 (UTC)
This is just one page of a book containing other material with varying amounts of original research. Even after deleting this page, perhaps the rest of the book would be more suitable for Wikiversity. [[User:Recent Runes|Recent Runes]] ([[User talk:Recent Runes|talk]]) 19:03, 7 January 2011 (UTC)
:'''Interwiki transfer.''' Please encourage users to take work like this to Wikiversity. In fact, it's not necessary to have user permission to move a book to Wikiversity. Such a move is generally superior to deletion if there is any possible redeeming value, and in any case, it's a lot friendlier than a disappeared file! A soft redirect can be left in place for a time. I've not looked at the book itself, just saw this deletion request, and assuming that what is stated here is accurate, this would be very good for Wikiversity. The reasons given for deletion here would not apply to Wikiversity. There might be other reasons not stated that could be problems there, but we could deal with that, there. Quick solution, any editor could do it, would be to userfy temporarily.
:However, I'm starting to work on general education resources at Wikiversity, and have access to a lot of people with expertise there. The author would be very welcome, indeed. --[[User:Abd|Abd]] ([[User talk:Abd|talk]]) 22:26, 8 January 2011 (UTC)
::'''Interwiki transfer.''' There are a number of essay pages in this book written from a personal perspective, but if this is acceptable in Wikiversity then perhaps they need not be deleted if the whole book is transwikied. Being a completed class project, I don't expect there will be many more contributions from past students now they have their grades. However, the book could still serve as an example and framework for new essay pages in this area as proposed by the course tutor in his [[The_Practice_of_Learning_Theories/Ending_POLT|closing remarks]]. From my limited knowledge of Wikiversity I suppose the material might be considered a learning project in [[Wikiversity:Category:Learning_theory]]. [[User:Recent Runes|Recent Runes]] ([[User talk:Recent Runes|talk]]) 17:31, 9 January 2011 (UTC)
:::'''Comment''' I have done a quick review of all the pages in the book, and saved my comments on the main [[Talk:The_Practice_of_Learning_Theories|talk page]] for the book. By my reckoning, there are about seven pages with similar problems to the one which kicked off this discussion. So, if the decision was to keep the book here, I think they all might need to be deleted. [[User:Recent Runes|Recent Runes]] ([[User talk:Recent Runes|talk]]) 00:40, 11 January 2011 (UTC)
:'''Transwiki''' WV per above. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|talk]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 06:21, 12 January 2011 (UTC)
{{end closed}}
1zq9drxe4k3mzg7f0zb7n8l5tvnuu23
Wikibooks:Requests for deletion/Signs for Selecting a Spouse for a Successful Marriage
4
247584
4640143
2024070
2026-06-13T15:36:56Z
ShakespeareFan00
46022
4640143
wikitext
text/x-wiki
== [[Signs for Selecting a Spouse for a Successful Marriage]] ==
{{closed|Closed as [[File:Symbol redirect vote.svg|15px|alt=|link=]] '''transwikied''' to [[v:Spouse selection according to Baha'i writings|Spouse selection according to Baha'i writings]] at Wikiversity. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 16:08, 31 January 2011 (UTC)}}
According to the main author: "there is still little solid [research] evidence to support one system over another", "My approach was to synthesize and categorize the guidance from the Baha'i writings on the topic", "try to bring in what external sources I could to illuminate or support my points". All this put together suggests this work is intended to advance a specific point of view and involves primary research on topic that is either not noteworthy or too narrowly defined to be educationally useful in book form. I propose to transwiki this work to Wikiversity where primary research and advancing a POV is within scope and a narrowly defined topic like this might find new contributors since this work hasn't had any significant contributions in 2 years. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 14:59, 7 January 2011 (UTC)
: [[File:Symbol redirect vote.svg|15px]] '''Transwiki''': [[WB:OR|original research]] and Wikibooks [[WB:SOAP|is not a soapbox]]. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 16:01, 7 January 2011 (UTC)
: [[File:Symbol redirect vote.svg|15px]] '''Transwiki''' Welcome to Wikiversity. I do suggest that any transwikied page(s) have a Wikiversity sponsor, someone there who will watch it. Darklama is a Wikiversity sysop, so maybe he'll do it, but I will also do so in general, unless I personally find a page offensive. --[[User:Abd|Abd]] ([[User talk:Abd|talk]]) 03:57, 9 January 2011 (UTC)
: [[File:Symbol redirect vote.svg|15px|alt=|link=]] '''Transwiki''' Please. [[User:Thereen|Thereen]] ([[User talk:Thereen|talk]]) 05:55, 10 January 2011 (UTC)
: Looks like a clear '''transwiki''' to WV. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|talk]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 06:20, 12 January 2011 (UTC)
{{end closed}}
ovfob4hcn46wy6h5c0z081hdegmh7ph
Wikibooks:Requests for permissions/Achlochan
4
247854
4640153
2026132
2026-06-13T15:41:37Z
ShakespeareFan00
46022
4640153
wikitext
text/x-wiki
{{talk archive}}
==+Administrator==
I would like to apply for admin-ship of Wiki Junior. What shall I do?
Thanks,
--[[User:Achlochan]]
:These tools are not something that the community hands out to just anyone who asks. Rather, the tools are granted to those who have operated here for a while and have demonstrated that the community can invest trust in them. You have made two edits here, both of which were to make this request. Clearly we have nothing upon which to base such trust. If you wish to serve as an administrator here, you need to participate as an editor first. It will take time for that trust to be established. --[[User:Jomegat|Jomegat]] ([[User talk:Jomegat|talk]]) 13:53, 11 January 2011 (UTC)
:[[Image:X mark.svg|15px| ]] '''Not done'''. Jomegat sums it up and I have a hard time considering this as a legitimate request. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 15:13, 11 January 2011 (UTC)
:Please also note that you cannot be an administrator of Wikijunior (not Wiki Junior) alone. One can only be the admin of the entire Wikibooks. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|talk]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 06:48, 12 January 2011 (UTC)
2kx0qq0rm4bx2jpfefrud4f9tjr8bmk
Wikibooks:Requests for deletion/Bartending/Techniques/Stirred cocktails/Extra Extra Dry Martini
4
247960
4640104
4622860
2026-06-13T15:17:57Z
ShakespeareFan00
46022
4640104
wikitext
text/x-wiki
== [[Bartending/Techniques/Stirred cocktails/Extra Extra Dry Martini]] ==
{{closed|Consensus for deletion—inappropriate for Wikibooks' scope. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 21:58, 7 February 2011 (UTC)}}
This article is essentially a piece of satire, and thus not a useful addition to a serious book about bartending. There is already a serious [[WB:NPOV]] discussion of ultra-dry Martinis as part of [[Bartending/Cocktails/Martini]] --[[User:Fishpi|Fishpi]] ([[User talk:Fishpi|discuss]] • [[Special:Contributions/Fishpi|contribs]]) 11:24, 29 January 2011 (UTC)
* {{comment}} It is certainly satire, and in my opinion not very funny.--[[User:Wisden|Wisden]] ([[User talk:Wisden|discuss]] • [[Special:Contributions/Wisden|contribs]]) 17:08, 29 January 2011 (UTC)
*'''Delete''' since two editors have identified it as satire. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 02:11, 30 January 2011 (UTC)
* [[File:Symbol delete vote.svg|15px|alt=|link=]] '''Delete''' Not helpful. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 03:41, 30 January 2011 (UTC)
* {{del}} An old and hoary joke. If you want to drink gin, for pete's sake call it gin. [[User:Chazz|Chazz]] <small>([[User talk:Chazz|talk]])</small> 03:44, 30 January 2011 (UTC)
*{{del}} Unhelpful entry. I don't get the joke ... [[User talk:Tempodivalse#top|'''''Tempodivalse''''']] 03:56, 30 January 2011 (UTC)
*Looks like snowballing. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 14:37, 30 January 2011 (UTC)
::Snowballing is not a [[WB:SPEEDY|speedy deletion criterion]].
::Besides, apparently that's made with [[w:Snowball (disambiguation)#Food and drink|Advocaat, lemonade, and lime juice]]. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 16:38, 30 January 2011 (UTC)
:::Um, [[User:Red4tribe/SNOW|snowballing]] is not a speedy criterion, but WB is not a bureaucracy, and since this module doesn't have a ghost of a chance of being kept, it makes sense to delete it immediately. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 02:28, 31 January 2011 (UTC)
:::: On one hand, deliberation time for deletions is a protection against admins taking it on themselves to make snap judgments before all voices have been heard. That's a very important principle, as allowing everyone to be heard is a community value, so one wants to be very leery of compromising the principle. Being careful about certain things does not require a bureaucracy. And what's on the other side? Nothing. The page has already been there for ''four and a half years''; the time to do this right is trivial. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 07:06, 31 January 2011 (UTC)
:::::I believe the very slim chance of this being kept justifies a hasty snowball deletion. If anyone wants to raise objection to the deletion they can request undeletion. Still, arguing about snowballing isn't the wisest thing to do, so I won't argue for snowballing. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 07:29, 31 January 2011 (UTC)
:::::: For the sake of completeness, WB's deletion policy requires RfD discussions not be closed until a week after the last comment. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 12:59, 31 January 2011 (UTC)
:::::::That's exactly why they invented snowball: for [[w:WP:IAR|IAR]]. :) [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 13:30, 31 January 2011 (UTC)
::::::::There may have been circumstances where I've closed discussions before a week has passed since the last comment. However, I wouldn't close any involved discussions less than a week since the ''first'' comment. I've tried to apply the former to RFPs and people got impatient. On RFDs and "snowballing", I wouldn't compromise beyond the latter, unless it was a clear speedy deletion (which I think we have done). Overall, the nomination has been open for two days. If you're looking for something to do, we could use comment on the stalled discussion for [[Relationships]] above. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 13:54, 31 January 2011 (UTC)
:::::::::Not important or anything but CSD doesn't count as snowballing because it's not IAR. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 14:34, 31 January 2011 (UTC)
{{outdent|:::::::::}} I don't condone snowballing or ignoring of rules and neither has precedence at Wikibooks. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 16:02, 31 January 2011 (UTC)
*[[File:Symbol delete vote.svg|15px|alt=|link=]] '''Delete''' It's just a piece of satire. [[Special:Contributions/90.202.242.175|90.202.242.175]] ([[User talk:90.202.242.175|discuss]]) 16:15, 1 February 2011 (UTC)
{{end closed}}
ewx60ugk2l9yy06hsa98nhalm32rkjs
Wikibooks:Reading room/Proposals/2011/January
4
247984
4640163
4623383
2026-06-13T15:47:27Z
ShakespeareFan00
46022
4640163
wikitext
text/x-wiki
{{talkarchive}}
== Incubator Proposal ==
Apparently there has been some discussion on foundation-l about using Wikibooks as an incubator for new projects (or sub-projects, I wasn't part of the original conversation so I don't know all the details). The example given was that a "spin off" could be created, say "Wikibooks How To Guide", that could be developed and then launched when ready with some fanfare and publicity. This feels a little like how Wikijunior was developed. We could build it here, maybe in its own namespace, and then if it doesn't take off or develop the way we think it will then it could be left in WB or moved into the mainspace. This would also link into my views on the discussion on the deletion process (above) where I had suggested a way of hiding developing material away would help improve the WB experience for a casual reader... so, thoughts? Anybody up for creating a Wikibooks Incubator here? [[User:QuiteUnusual|<font color="#E66C2C">'''QU'''</font>]] <sup>[[User talk:QuiteUnusual|<font color="#306754">TalkQu</font>]]</sup> 21:19, 25 October 2010 (UTC)
: I hadn't seen the discussion on foundation-l. My understanding is WMF decided Wikibooks couldn't do it and the Wikibooks community supported this by including [[WB:INCUBATOR]]. If we ignore that though, I think [[incubator:]] would be the best place for new projects to be developed. If that project were closed by next suggestion would be [[wikiversity:]] before wikibooks because its scope is broader and I think Wikibooks has become more focused sense incubation was last allowed here and as it is incubation of Wikijunior and the Cookbook is messy at times. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 00:15, 26 October 2010 (UTC)
:I was writing this as Darklama replied. I read through the thread on the list over this including the two replies from Robert Horning [http://lists.wikimedia.org/pipermail/foundation-l/2010-October/061777.html] [http://lists.wikimedia.org/pipermail/foundation-l/2010-October/061849.html]. Definitely, [[WB:INCUBATOR]] would need to go for this to happen. Despite being very active here, I am not what I'd consider an old-timer, so I do not know its origins, though I see a [[Wikibooks_talk:What_is_Wikibooks/Archive_1#Wikibooks_is_not_a_seed_for_another_wikisite|reference]] to it being there back in December 2005. Rob Horning wrote on the list "How-to books are on Wikibooks mainly due to the long-ago viewpoint that Wikibooks ought to be an incubator project for all kinds of ideas that didn't quite fit on Wikipedia... and the Wikibooks community was generally willing to try them out for a time." So maybe the community was no longer willing at some point and put that entry in [[WB:WIW]]. I'm vaguely familiar with the video game strategy guide purge; what if they were in a separate namespace as an incubator project—would the outcome still have been the same? However, things have changed. Many of the "old-timers" are gone, Jimbo Wales and Wikibooks co-founder Karl Wick are no longer involved, and today WMF functionaries [[Wikibooks:Reading_room/General#Five-year_WMF_targets|don't seem to pay us much heed]]. So I don't think anyone would swoop in from high to call for the removal of incubated content.
:Bringing up Wikijunior above is an interesting example. From what I've heard from others and read at [[m:Wikijunior#Online_Project|m:Wikijunior]] ("Wikijunior aims to produce a separate website"—http://wikijunior.org), Wikijunior was supposed to be split out at some point. Certainly that has not happened. It's quite likely that anything we would incubate would never leave the nest. The Cookbook is theoretically supposed to be a book, and Wikijunior is like a mini-me version of Wikibooks for children. They, at least, aren't concerns with regard to diluting the Wikibooks "brand". I'd be concerned with compatibility with the main project for any incubation. I've not seen any new policies or guidelines ratified during my time here, and someone's statement on Meta that my talk page is often more active than the reading rooms is apt, so I lack confidence that something this groundbreaking would have the administrative support or community involvement to work. I would have to see specific incubation proposals before I could be sure. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 00:47, 26 October 2010 (UTC)
:: I think the inclusion of How-to books use to be controversial in Wikibooks' past, but I think that has long been resolved. I think there isn't a need to incubate How-tos and there is no longer any need in general to find them a new home at some other/new project. I think part of resolving that problem came when a way was found to reclassify individual how to books into specific subject areas. If proposed works are compatible with our main project there isn't likely to be any need to incubate because they would likely already be within Wikibooks' scope, and if they are not compatible with our main project, they are more likely to be compatible with Wikiversity and it would be better to host the works there. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 01:11, 26 October 2010 (UTC)
::: No, the WMF hasn't at all decided against Wikibooks doing incubation, and I know at least a couple of WMF board members who would actively look forward to such action. Frankly, community initiative is what is needed here, and the strongest community for this is the Wikibooks community. The new languages incubator is too tied up in bureaucracy, and Wikiversity isn't really a strong enough and mature enough community for this. So I would say, step up Wikibooks, and give us the community leadership we need :)--[[User:Pharos|Pharos]] ([[User talk:Pharos|talk]]) 02:55, 26 October 2010 (UTC)
::::Additionally, the incubator says clearly on its main page that it is only for new languages of existing projects. I recall some people saying that Wikibooks lost contributors when the video game strategy guides were forced out. Part of me wonders if we could gain additional participation with fresh ideas. Robert Horning's [http://lists.wikimedia.org/pipermail/foundation-l/2010-October/061849.html post] states "Previously, nearly all "project incubator" efforts were done strictly on Meta, Wikibooks, or as sub-pages in the "User:" space on Wikipedia", so there's support for it at Wikibooks. On the list, Samuel Klein mentioned a proposal for a new project, [[m:WikiScholar|WikiScholar]]. That would work great at Wikiversity since it's a complement and deals with original research; people were discussing creating a Cite namespace there already and that proposal is for a universal bibliography. There may be a few easily-integrated proposals that Wikibooks can take in quickly without clashing with its scope, if they have enough support. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 03:41, 26 October 2010 (UTC)
::::: A decision to not allow Wikibooks to incubate by the WMF is at least part of Wikibooks lore and dates back to at least 2004 when [[Meta:New project policy]] was policy. Maybe the decision was simply lost with time, but that isn't to say that today WMF couldn't reverse a decision or choose to ignore a previous one.
:::::: I don't know of any such decision; all projects are welcome to create new namespaces or incubate new wikiprojects or larger Projects as they see fit. This isn't the sort of decision in which the WMF has ever involved itself to my knowledge, though individual people may have shared their opinions from time to time -- as I am now. [[User:Sj|Sj]] ([[User talk:Sj|talk]]) 15:49, 26 October 2010 (UTC)
::::: Anyways I still think the incubator or Wikiversity would be the better places. Yes Incubator says its only for new languages of existing projects, but there is no reason its scope couldn't be expanded. I've read what I could find about the current discussion of incubation of new projects in the archives for foundation-l now and I see that people have also said that Incubator and its scope was never officially approved and agreed to by the whole Wikimedia communities, which seems like a good reason to reexamine what its purpose really should be. How is Wikiversity not strong and mature enough for incubation? I think incubation helped Wikibooks in the past to a degree reach any strength and maturity you see in us, but Wikibooks also with time outgrew it as part of continuing to grow, strengthen, mature and having gained a decent focus. I think now Wikiversity and new projects would benefit more from being hosted there. New projects would benefit from the fact one of Wikiversity's goals is to experiment with new ways wiki technology can be used as a tool to educate people, and Wikiversity would benefit because new projects would help it to grow, strength the community, help it reach maturity, and help bring focus to its goals. I haven't looked at the list of proposed new projects lately, but a lot of them when I last looked were things which were already within Wikibooks' or Wikiversity's scope. I think that is the real reason why there hasn't been any new projects approved since Wikiversity. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 07:15, 26 October 2010 (UTC)
Looking over some of the more popular [[m:proposals for new projects|proposals for new projects]] at Meta, [[m:Wikinac|Wikinac]] is an almanac and might be possible here, [[m:WikiEarth|WikiEarth]] is an atlas covered by Commons' [[commons:Atlas|Atlas]], [[m:Wikikids|Wikikids]] is a children's encyclopedia that could have been lumped into Wikijunior if its scope hadn't gotten limited, [[m:Medical dictionary wiki|Medical dictionary wiki]] could be put in Wiktionary, [[m:WikiMusic|WikiMusic]] seems to be getting infringed on by [[Songbook]] and [[Tablature]], [[m:Wikiscope|Wikiscope]] could be put in Meta or Strategy, [[m:Wikithink|Wikithink]] is a duplicate of Wikiversity, not sure about [[m:Wikihistory|Wikihistory]], [[m:Essentialpedia|Essentialpedia]] is a fork of Wikipedia, and [[m:Wikitainment Guides|Wikitainment Guides]] is not in scope for the WMF. There are others. But that page in general is ignored and the sortable list is only there because I refactored the page about a year ago. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 13:07, 26 October 2010 (UTC)
: I guess you see what I mean than? Wikikids could be Wikijunior at Wikipedia btw. Books in [[Subject:History]] probably covers or should cover everything that WikiHistory would likely cover. Entertainment Wikia is probably where people should contribute for something like Wikitainment Guides because as you said not in scope for WMF. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 14:06, 26 October 2010 (UTC)
:: I do not understand our current bias against game guides, as opposed to guides for other software. (I would understand it better were it framed in terms of making both equally educational, rather than an opposition to a certain subject area.) I don't think we suffer from a 'dilution of brand' by letting people develop educational materials about what interests them, including gaming, entertainment, and other popular culture. I do think it is appropriate to hold all works to a standard of educational value and excellence, but when that translates into a restriction by ''subject matter'' it crosses the line into topic censorship, which we elsewhere discourage. [[User:Sj|Sj]] ([[User talk:Sj|talk]]) 15:49, 26 October 2010 (UTC)
::: Magazines like Nintendo Power isn't likely to be considered educational by current standards in most contexts. Wikibooks doesn't restrict works by ''subject matter'', but by the purpose. Annotated texts of electronic games, the cultural significants of electronic games, the literary significants of electronic games, and the educational use of electronic games in classrooms to teach subjects are all examples in which electronic game coverage is considered educational and within scope. I'm not happy with the exact method of exclusion and I think we can do better, but I do think its fair and reasonable to exclude certain aspects of gaming based on whether its educational or not. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 17:38, 26 October 2010 (UTC)
:I am very skeptical that wikibooks is the place to incubate new projects. I think that I agree with Darklama that incubator or WV are better suited, particularly since any particular project looking for a place to incubate could start a WV learning project to experimentally find out if a that project idea could work on a wiki. A second thought that occurs to me reading through Adrignola's commment is that it might be sensible for projects that are looking a place to incubate to turn to the most similar existing project. For example, the wiktionary people would have a much better idea about how to help organize a medical terms dictionary then we would here. Somehow if we tried to incubate the medical dictionary wiki here we would be failing to utilize the wiktionary communities hard earned expertise about creating dictionary's on a wiki. And worse we would be trying to re-solve the problems they've encountered for ourselves. [[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 16:43, 26 October 2010 (UTC)
:: Yes I think turning to similar projects for incubation is the way to go. If you start putting all incubations on just one project you start to blur the lines between the projects and confuse people where exactly people should be concentrating their efforts. I'm not concerned with diluting projects, but with further blurring the lines between what Wikibooks and Wikiversity are for example. If a dictionary of medical terms were to be start being hosted at Wikibooks than you would blur the lines between what Wikibooks and Wiktionary are too. Existing projects are better prepared to contribute to new projects which are similar to their goals and interests as well. If we begin saying dictionary of medical terms can be hosted at Wikibooks than other dictionaries would want to be hosted at Wikibooks as well, and than you might as well turn Wiktionary into a book and merge Wiktionary with Wikibooks. I personally wouldn't object to Wiktionary and Wikipedia both becoming books at Wikibooks, but I seriously doubt most people would be happy with that idea, and so we should try to find the most appropriate place for new projects instead of trying to make Wikibooks into the place for everything. Wikiversity is more appropriate for everything else that is educational and doesn't fit into another project already. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 17:38, 26 October 2010 (UTC)
:::I agree with Darklama's assessment. It makes no sense to incubate unbooklike projects here (such as dictionaries or research projects). I don't think we need to change anything for us to be an incubator of books. That's pretty much what we do already. --[[User:Jomegat|Jomegat]] ([[User talk:Jomegat|talk]]) 12:46, 27 October 2010 (UTC)
::::It's no so much incubating books, but book-like projects, or at least that's what I thought was being proposed. So, WikiHowTo, the guide to do-it-yourself, could start here in its own namespace or incubator namespace because that would make it easier to structure it for future spin-off. In doing so it could have a different manual-of-style, and would have different standards around inclusion criteria, etc. [[User:QuiteUnusual|<font color="#E66C2C">'''QU'''</font>]] <sup>[[User talk:QuiteUnusual|<font color="#306754">TalkQu</font>]]</sup> 14:55, 27 October 2010 (UTC)
::::: The point is anyone is free to make a do-it-yourself book right now and it doesn't require a new namespace to do it. Every book has its own manual-of-style to begin with and standards around which material is included, etc. Books don't need to be spun-off in the future because they are in scope right now. To say that such work will have their own project in the future would be to limit the type of books Wikibooks are allowed in to have in the future in some arbitrary way that isn't likely to make any sense. BTW we already have do-it-yourself/howto books like [[How To Assemble A Desktop PC]]. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 16:50, 27 October 2010 (UTC)
:::::: Hmmm, I guess I didn't explain myself very well, probably by choosing a bad example (and yes I know we have how to guides)... Perhaps I should use different terminology. If today somebody started writing recipes (i.e., if we didn't have the Cookbook) they would probably get deleted for not fitting the inclusion criteria. If, instead, someone started an "incubator" discussion saying a cookbook should be developed starting by importing recipes from other projects and then overlaying them with technique, ingredient and equipment guides a debate would follow. At some point we'd arrive at agreement on the scope of this idea and a change to the inclusion criteria to allow it to develop. People would "sign up" to support it and help get it started. Over time it would develop and then, maybe, someone would then propose spinning it off to create Wikicook. All I'm suggesting is that this debate, creation of a "sub project" that extends the inclusion criteria, etc., is carried out here where it is a small change to our scope rather than at Meta as a "proposal for a new project". [[User:QuiteUnusual|<font color="#E66C2C">'''QU'''</font>]] <sup>[[User talk:QuiteUnusual|<font color="#306754">TalkQu</font>]]</sup> 22:01, 28 October 2010 (UTC)
:::::::I personally am open to hearing out new ideas. As I said before, it would depend on the proposal. We certainly could benefit from greater appeal and participation. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|talk]]</small> 22:22, 28 October 2010 (UTC)
:::::::I see what you mean now. That is a great idea. Remember that the incubated project has to fit into the scope of the wiki (as your cookbook example did) that is incubating it. That is what DarkLama was talking about concerning Wiktionary vs Wikibooks vs Wikiversity for incubating projects. Wow, we have it all planned out already. -[[User:Arlen22|Arlen22]] ([[User talk:Arlen22|talk]]) 13:04, 30 October 2010 (UTC)
Wading into here after a long, long absence from the Reading Room. Contrary to the statements made by SJ, there was a decision made by the WMF board of trustees about the status of Wikibooks as a project incubator, but it was done very informally and made through private e-mails (some of which I no longer have, unfortunately) talk pages, Founation-l, Meta, and other places. The universal decision that was supported by all of the then members of the board of trustees universally said that Wikibooks was not to be the incubator for new projects. I really nailed them down on that and then made numerous changes to policy statements both here and on Meta to send that point home. Previously, the almost universal statement on Meta about how people should work with new project ideas was "try it on Wikibooks first".
I was an admin here on Wikibooks and tired of constantly deleting content that clearly didn't fit on Wikibooks, some of which were huge projects. One in particular that I got into a full blown wheel war over (not just a mere edit war) was the archiving of Wikimania content on Wikibooks. I got bold and moved most of it to Meta, only to have Jimbo come back and get the developers to reinstate all of the content, which promptly got a VfD discussion and had it deleted by "community consensus" a couple of weeks later. It is now on a completely separate wiki, which IMHO is how it should have been dealt with in the first place. My #1 objection to the Wikimania content is that none of it was even remotely linked from the front page and was mostly added in stealth. It wasn't until there were hundreds of pages on Wikibooks that I even noticed that the content was even on this wiki. In other words, Wikibooks was being used merely as a web hosting service and nothing more. Wikibooks policies were being clearly ignored and it was a project entirely unto itself.
I could name some other similar kinds of projects that came up from time to time, many of which I was able to successfully relocate onto other projects, including Wikiversity (I pretty much got the ball started to create that as a sister project), Wikisource (multiple projects including one complete language project there I helped to create), and Wiktionary. I simply got tired of having to contradict people who were told by admins on other projects (notably editors and admins on Wikipedia and Meta) that Wikibooks was the place for their concepts.
To support the notion that there needed to be a project incubator, I even went so far as to create another sister project proposal to create a project incubator. Well, we got [http://incubator.wikimedia.org/wiki/Main_Page the Wikimedia incubator], but the new project incubator concept itself got thrown out of the window somewhere along the line after co-opting the name and even many of those who wanted to help manage the project.
To top this off, Wikicities (now Wikia) was conceived and for quite some time strongly encouraged to be the incubator for new projects. Certainly it is by far and away much easier to create a new Wikia project than it is to create a Wikimedia sister project. I needn't go into how much easier.
Most of the effort and the reasons for coming up with many of the policies now being dealt with here came from those working here on Wikibooks trying to find an identity for this project. Keep in mind that Wikibooks itself was from a spin-off from Wikipedia, in part because Karl Wick started to write the [[Organic Chemistry]] Wikibook (currently that effort is still on Wikipedia as [[w:Outline of organic chemistry]] in a slightly different form, but the early edits for Karl Wick are still there) and that for a couple of years there wasn't even a requirement that the content written here on en.Wikibooks was even in English. It was during my tenure as admin that the final non-English content was finally transwikied or deleted, with the final deletions far more recent than you would imagine. Wikibooks was perceived as a dumping ground for nearly everything that didn't fit elsewhere, and keep in mind that places like Wikia didn't exist for people who wanted to create another wiki. Their option was to either do without, or host the software on their own computer equipment.
Enough of the history of Wikibooks lesson. The question here is on how to move forward. I suppose that I burned most of the bridges that brought project incubation to Wikibooks, so I guess I'm to be blamed for the current status in that regard. Wikiversity also has been much more open to trying new things out and has been going through a similar kind of self-identification that Wikibooks went through earlier. How-to books came to Wikibooks before that process of rejecting the project incubation happened, which is why for good or ill it is here to stay. Besides, How-to manuals are much more book-like than much of the other content that was removed some time ago and has pretty much stood the test of time as being compatible with the rest of the Wikibooks community. I won't even get started on Wikijunior as that is a huge can of worms by itself. --[[User:Robert Horning|Rob Horning]] ([[User talk:Robert Horning|talk]]) 22:47, 13 November 2010 (UTC)
:Many things to digest, and thanks - it is really useful to know the history [[User:QuiteUnusual|<font color="#E66C2C">'''QU'''</font>]] <sup>[[User talk:QuiteUnusual|<font color="#306754">TalkQu</font>]]</sup> 21:52, 15 November 2010 (UTC)
::Thanks for the feedback, Rob et al. Since there seemed to be consensus for "book-like" subprojects, how about starting a draft at [[Wikibooks:Incubators]]/[[Wikibooks:Seedbed]]/[[Wikibooks:Subprojects]]?--[[User:Pharos|Pharos]] ([[User talk:Pharos|talk]]) 18:08, 14 December 2010 (UTC)
::: I think there isn't a need for such a page. If they are books-like they are already within scope and go in the main space following our naming policy --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 18:17, 14 December 2010 (UTC)
:::: FYI, I've started a very brief draft here: [[Wikibooks:Incubator]].--[[User:Pharos|Pharos]] ([[User talk:Pharos|talk]]) 21:39, 27 December 2010 (UTC)
::::: We've had a good back-and-forth in developing this page, and I've now also added a section on approving "major projects": [[Wikibooks:Incubator]].--[[User:Pharos|Pharos]] ([[User talk:Pharos|discuss]] • [[Special:Contributions/Pharos|contribs]]) 20:49, 17 January 2011 (UTC)
== Wikibooks concept Proposal ==
Since I am a kind of outsider, excuse me if I do not follow the status quo. As I recently became a student, my greatest concern is "what to read now?". My proposal is simple. I would like to see a wikipage that answers the question "What books/articles should one read and in what order shoud one read them in order to become familiar with a subject?" I guess this can be a kind of the wikilibrary for wikiversity or the way to study your subject for the wikischolar journal. (so to speak in wiki-terms)
It’s simple as it gets:
# People share impressions of books
# and their contents in a subject
# organize these books together,
# not only to cover the subject, but
# to create a kind of hierarchy
# of the very way you have to go through
# if you really want to get to know the subject.
For instance, lets say one would like to understand the concept of Modernism. In order to do so, one goes to the wikibooks page of Modernism. One finds there relevant reference books concerning epochs, which precede the epoch of Modernism (eg. Craske, M. (1997) Art in Europe 1700-1830: A History of the Visual Arts in an Era of Unprecedented Urban Economic Growth, Oxford Paperbacks.) This might serve as a recommended preliminary reading, that prepares one to grasp the concept of Modernism in a particular context, which, in this case, is Modernism of art. That book is followed by another one (eg. Brettel, R. (1999) Modern Art 1851-1929: Capitalism and Representation, Oxford Paperbacks ). Note that these are only examples! The whole referencing system should not be that linear. These books cover Modernism only in terms of visual arts, which is essential, but still not that comprehensive.
Moreover, this page should provide one with the best resources. For instance, given that Craske’s book is thorough enough so that one could get the necessary preparation for their study on Modernism of Visual Arts, there should be no need to flood the page with hunderts of other references. If that is not the case, then other more exhaustive books should be recommended.( Of course, such referencing hierarchy should be organized according to different levels of interest. In this way separate sub-hierachies are formed, which might be labelled “easy, medium and hard”. That is how the referencing system would be appropriate for deeply interested as well as for people who need just a quick dive in the subject. Note that it is important where these books are available! Everyone knows that a good study will often send you miles away from home just to get to read some 20 pages from a book only available in some National Library for instance.)
To get back on the track: My idea is to have books and articles classified according to their main subject and a recommended order to read them.
In other words, my idea is to link the knowledge of world with the right approach to it. (offer an inovative strategy for efficient and independent acquirement of knowledge)
Since this literary means to create an information stream, which does not exist in the digital world yet, it still remains to be discussed, which is the best possible way to sort out that information.
A comment next to books "what is this book to cover from the subject", “this book will give you a view of...” should make it easy to exclude the less needed books for understanding Modernism.
It is important, that the project covers subjects in as many as possible different languages, so that as many as possible users can take advantage of it. That is how the multilingual way of studying a subject is presented.Note that studies are made in different languages, so this project might also need a way to present the "multi-lungial" way of studying a subject, because not all studies can be made only in english or in german or in french, most of the good studies include multi-lingual sources. That is not to say that it is needed to sepparate these wikipage's like in wikipedias way in different languages, but to create as I said the multy-lingual/babylonian page which contents all the suggested works in original(german, russian, ect)and then to separate page’s so that for instance the "german way" of studying the subject(for people who speak only german) is shown, which way suggests not the originals of the books(lets say originals that are in Russian), but the translations of these originals(if they exist) concerning the subject. So to speak there is no german equivalent of Modern Art 1851-1929 Capitalism and Representation, so you should either read it in english or suggest a german book that covers some or most of the content.
To generalize:
The multy-lingual/babylonian page shows you all the books in different languages.
The german page shows you the books in german and the translations in german from the other languages.
There also may be a german/russian/hindu page, that is to say an option to exclude all books which are in languages you can not read.
Next, one must be provided with information where to find the needed book. For that purpose, a link to a online resourse/a bookshop/ a library must be presented.
One more thing: This linkage system can be a good adviser for fiction. For instance: If you want to actualy read Modernism try Thomas Mann, if you liked him than read Hermann Hesse as well. If you want to get serious about them you can try reading C.G. Jung or a lecture about Hermann Hesse and Religion, ect ect.
I am posting my proposal here, since I contacted Wiki and they re-directed me.As far as the name of the concept is concerned, Wikibooks sounds like a realy nice name for this concept, although not the only one appropriate. WikiStudy or WikiBookLink would work as well. <small><span class="autosigned">—Preceding [[w:Wikipedia:Signatures|unsigned]] comment added by [[User:Ivan Gospodinov|Ivan Gospodinov]] ([[User talk:Ivan Gospodinov|discuss]] • [[Special:Contributions/Ivan Gospodinov|contribs]]) 16:44, 21 January 2011 (UTC)</span></small><!-- Template:Unsigned -->
: I think most books already describe what is or will be covered. Every book should already have a table of contents with chapters and pages listed in the order to be read. I think any books with [[Template:Prerequisite|prerequisites]] already mention them. I think most of our books don't have any specific prerequisites though, because they try to cover the entire subject starting from the beginning for beginners. If there was a book about Modernism in Art for example, it would likely discuss art and art techniques from 1800 through 2011 that is of significants to Artists. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 13:29, 22 January 2011 (UTC)
:: I was not speaking about the wikibooks, but for the real paper books(I assume there has been a misunderstanding?) I was talking about how books should be listed in the order to be read. Like a huge prerequisite page. <small><span class="autosigned">—Preceding [[w:Wikipedia:Signatures|unsigned]] comment added by [[User:Ivan Gospodinov|Ivan Gospodinov]] ([[User talk:Ivan Gospodinov|discuss]] • [[Special:Contributions/Ivan Gospodinov|contribs]]) 15:42, 22 January 2011 (UTC)</span></small><!-- Template:Unsigned -->
::: In that case I think [[v:|Wikiversity]] could be used for that purpose. I recently learned there is a [http://www.openlibrary.org Open Library] project though, which might also be worth a look for this. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 15:09, 22 January 2011 (UTC)
:::: [http://www.openlibrary.org Open Library] seems like a pretty good data base for books, but again its not quite what I have in mind. One can easily find books there, or get lost in books, but again one may never know if the book he chose to read was the most appropriate. I don't know if its just me, but I think there are millions of books who are not worth reading. Mainly because there are thousends of books who cover more or explain better and hundreds of books who will always be read, no matter how old are they. No one can find the time to read all desirable books, but if you have the right adviser, you can concentrate your reading "time" in just the right amount of books, which will provide you the knowledge you were seeking(and spare you all the needless information)Yes, maybe the Wikiversity is the place for this concept, but the don't have a proposal page, how should I contact them? .<small><span class="autosigned">—Preceding [[w:Wikipedia:Signatures|unsigned]] comment added by [[User:Ivan Gospodinov|Ivan Gospodinov]] ([[User talk:Ivan Gospodinov|discuss]] • [[Special:Contributions/Ivan Gospodinov|contribs]]) 16:42, 22 January 2011 (UTC)</span></small><!-- Template:Unsigned -->
::::: Visit the [[v:Wikiversity:Colloquium|Colloquium]]. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 15:48, 22 January 2011 (UTC)
bqq6pkrisboxu425rqmvbqs3aoyp7v6
User talk:Adrignola/2011/02
3
249095
4640158
2076640
2026-06-13T15:44:26Z
ShakespeareFan00
46022
4640158
wikitext
text/x-wiki
{{talk archive}}
== Quenya to Neo-Quenya ==
May I ask why you moved a complete wikibook because of a question asked 3 years ago and to which no-one responded favourably?
Furthermore I removed the banner about "the no longer featured" because it isn't necessary to remind users of something from years ago.
[[User:Dirk math]] ([[User talk:Dirk math|discuss]] • [[Special:Contributions/Dirk math|contribs]]) 07:14, 4 February 2011 (UTC)
:<[[w:WP:TPS|Talk page stalking]]> Swift is a respected member of the Wikibooks community. As no one has opposed the proposition that the book is related to Neo-Quenya, I would have moved the book too. However, as you are the creator of the book and are disputing the move, I shall move it back in a jiffy.
:You also mentioned the no longer featured banner. While it may not be significant to you that a book was demoted from featured status years ago, it may to some others and in any case I don't think it's common to remove the banner. I have undone your edit, but you may start a discussion concerning such banners in the [[WB:RR|reading rooms]] (or any other place) if you wish. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 08:37, 4 February 2011 (UTC)
::The tag is merely informative and it's use is limited in time. I would substitute the tag by a post in the book's talk page, similar to what we do with surviving a RfD, in fact tagging the work with that tag without going deeply into why it was added in the talk page is not very useful, if we do indeed intent in keeping people working and improving the works...
::Also regarding the reversal of the move by Adrignola February 2011 executing Swift request from October 2008 my opinion is that it was wrong to undo the move without addressing Swift opinion (since the user is active and present) even if [[User:Dirk math]] is the creator, he failed to oppose the proposal in the proper way (talk page of the work or by talking to Swift directly) and time (2008 to 2011). --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 09:56, 4 February 2011 (UTC)
:::I am not advocating Dirk math's opinions by reverting the move. Simply because another user disputes the move is reason enough to move it back because consensus is not reached, and if consensus is not reached the status quo should be maintained. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 13:12, 4 February 2011 (UTC)
::::Take a look at Darklama's statements in the recent RFD on the book (which Dirk math, one edit in Dec 2009 and hiatus in Dec 2007, did not participate in) for the rationale as to why Neo-Quenya is the more accurate descriptor of the book's content. It was my hope that under the new name we wouldn't see a ''third'' RFD, thus avoiding putting the content in jeopardy again. If Dirk math was opposed to the move, a statement should have been made there (as noted above, present since 2008), rather than simply removing tags I applied without even so much as an edit summary to explain. Statements noting opposition would have been taken seriously, but as it stands this appears to be a case of [[WB:OWN|ownership]]. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 13:56, 4 February 2011 (UTC)
:::::DL's statements make sense, but I would like to see Dirk math's. Since he's opposing it, surely he has a reason. If he doesn't soon, or he 'loses' to DL's or other's arguments, then I see no reason why the book cannot be moved to Neo-Quenya, but I'd prefer to give him the benefit of doubt right now. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 14:04, 4 February 2011 (UTC)
::::::Some thoughts about these statements:
::::::* Why should I have to change something in a book that I'm satisfied with? I didn't see any reason to change anything after its completion in 2007. So it seems a strange kind of reproach to say that someone didn't edit a book, to my knowledge continuous reworking isn't a requirement.
::::::* Neo-Quenya is the name given to all versions of Quenya that date from after the death of Tolkien. So just like a book about Modern English wouldn't be called Modern English (as opposed to e.g. a book about Middle English), it is strange to use the title Neo-Quenya when there is no Quenya without the Neo prefix (maybe the difference would be relevant if Quenya was restricted to describe Tolkien's research and not the language as it nowadays used by its fans).
::::::* And I didn't know that you have to reply to a remark someone makes on a talk page or somehow after three years it gets promoted to general opinion....
::::::* The RFD, I thought, was based upon the principle that invented languages aren't suitable for wikibooks. I don't want to become part of that discussion, but the reason I wrote the book was that I get a lot of questions about Quenya and it would be good to have the present state of the language all in one place. If wikibooks isn't the right place for invented languages, so be it. [[User:Dirk math|Dirk math]] ([[User talk:Dirk math|discuss]] • [[Special:Contributions/Dirk math|contribs]]) 19:08, 4 February 2011 (UTC)
== RE: References ==
You're completely right! I'm sorry, I was sort of on auto-pilot removing the wikimarkup. I'll put them back in now. --[[User:Thereen|Thereen]] ([[User talk:Thereen|discuss]] • [[Special:Contributions/Thereen|contribs]]) 03:36, 19 February 2011 (UTC)
== MediaWiki edit notices ==
FYI. The edit notice code you removed from [[MediaWiki:Clearyourcache]] was being used in limited capacity for [[MediaWiki:Common.js]] and its subpages with [[MediaWiki:Editnotices/Common.js]]. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 18:54, 12 February 2011 (UTC)
:Hmm. Okay, I added it back in. [[w:Template:Editnotice]] is something I'm considering. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 19:14, 12 February 2011 (UTC)
::I've got the basic system set up and applied to the MediaWiki namespace via [[MediaWiki:Editnotice-8]]. I see the notice when editing [[MediaWiki:Common.js]] but not when viewing it, as it looks when you view [[w:MediaWiki:Common.js]]. Other than that it seems to be working. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 18:40, 17 February 2011 (UTC)
::: Take a look at [[w:MediaWiki:Clearyourcache]], if you want to see why. They place the message above rather than below as I had done. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 14:49, 20 February 2011 (UTC)
== MerlLinkBot ==
Hi, why is my bot now unapproved again? [http://en.wikibooks.org/w/index.php?title=User%3AMerlLinkBot&action=historysubmit&diff=2051353&oldid=1964593]. I think the bot was approved to run without flag. The bot flag discussion in 2009 was archived to [[Wikibooks:Requests for permissions/Archive 8#MerlLinkBot.C2.A0.28_talk.C2.A0.7C.C2.A0_email.C2.A0.7C.C2.A0_contribs.C2.A0.7C.C2.A0logs.29_.28Bot.29]] but this page was deleted, so i cannot give you a working link. But perhaps you can browse the archive. [[User:Merlissimo|Merlissimo]] ([[User talk:Merlissimo|discuss]] • [[Special:Contributions/Merlissimo|contribs]]) 14:41, 22 February 2011 (UTC)
:The archive is at [[Wikibooks:Requests_for_permissions/MerlLinkBot]]. You misunderstand the parameter. It indicates that the bot is ''unapproved'' for the bot flag itself. That is not to say that it cannot actually operate. It just hasn't been ''approved'' for the flag. If you read the wording on the template as it appears on the bot page you'll see that it simply states that same information. I just revised the template to distinguish between bots without the flag and those with, as well as those that had been approved for the flag but had it removed due to inactivity. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 15:26, 22 February 2011 (UTC)
::Ok, i read the "This bot does not yet have the approval of the community" which i thought is not correct. My bot is global active, but in general there are not so many weblinks affected on this wiki. [[User:Merlissimo|Merlissimo]] ([[User talk:Merlissimo|discuss]] • [[Special:Contributions/Merlissimo|contribs]]) 16:01, 22 February 2011 (UTC)
== Thoughts on the main page! ==
I love it. Who was working on the new code behind it? I wish there were a better cross-Project wikicode crew that could share some of these techniques more readily. Here we really need some way to help people page through or visaulize books the way Wikisource does it, especially when one is converting a sourcebook to a wikibook for editing. It could be 'faux' page thumbnails, simply guessed at by some script by rendering the wikitext in longer Chapter-length wikipages... or one thumbnail per top level section... or? [[User:Sj|Sj]] ([[User talk:Sj|discuss]] • [[Special:Contributions/Sj|contribs]]) 08:24, 24 February 2011 (UTC)
:I give credit to [[User:Darklama|Darklama]] for the actual visual design. Regarding code behind it, I used some templates imported from Wikipedia that were used to show random links over the recent changes there for wanted articles and modified their use to instead pull featured book templates. While the code has some complexity to it, those wanting to feature new books don't have to know the details, as instructions are shown on [[Template:Goodbook]] and the other first-level templates shown in the wikicode for the Main Page. This system is quite easier to get ahold of than the previous one where there were a bunch of parser functions right in the main page code, bewildering any admins trying to figure it out. Now if we could only feature some more books... – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 01:05, 25 February 2011 (UTC)
== On CK12 ==
My friend Josh Gay was one of their techies and author-community organizers before leaving (he couldn't bear to stay after the license change) and he has some software that will complete the book conversions to mediawiki in a way that is compatible with wikibooks; you and he should perhaps work together on making the rest of the books better-formatted here.
There's also a lot of work to be done to properly format the Light and Matter bokos and to keep them up to date; I Wuold like nothign better than to have some of thsoe atuhros use wikibooks (with suitable client software, perhaps) to update their works year over year. When authors are able to actually use WB as their platform, the community will be able to grow more reasonably. [[User:Sj|Sj]] ([[User talk:Sj|discuss]] • [[Special:Contributions/Sj|contribs]]) 08:26, 24 February 2011 (UTC)
:I found his LinkedIn page but I don't know if he's got an account with Wikimedia. If so, then we could get in touch. There are several feature requests for Wikibooks/Wikisource in place at Bugzilla, but they have not gotten the attention they deserve. This would be in line with MZMcBride's [http://lists.wikimedia.org/pipermail/foundation-l/2011-February/064123.html comments] that the Wikimedia Foundation is stringing the other projects along, "pretending as though one day they'll get the attention they desperately need to grow". – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 01:11, 25 February 2011 (UTC)
== ! ==
Thanks for the heads up.[[User:Geofferybard|Geofferybard]] ([[User talk:Geofferybard|discuss]] • [[Special:Contributions/Geofferybard|contribs]]) 00:43, 25 February 2011 (UTC)
== Many Thanks! ==
Many thanks for your editorial support with the [[Basic_Physics_of_Digital_Radiography|Basic Physics of Digital Radiography]]. Would it be OK to acknowledge your input on the cover page? [[User:KieranMaher|marz]] ([[User talk:KieranMaher|discuss]] • [[Special:Contributions/KieranMaher|contribs]]) 23:43, 25 February 2011 (UTC)
:Sure, though I don't know if I'd really deserve any credit. I do many little fixes all over the place, that book included, as part of my role here. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 23:48, 25 February 2011 (UTC)
== No Fiction at Wikibooks?! ==
No fiction or poetry on WikiBooks?
But, they're books....??!!!
A book is a book.
There are wikibooks covering many topics which could be categorized as fiction.
<ul>
<li>Religion</li>
<li>Political Science</li>
<li>Economic Theory</li>
<li>Various Cooking Instructions <strong>(YUCK!)</strong></li>
</ul>
Why not something obviously listed as fiction?
Then we'd have a place to categorize all of those as well. Life would be less confusing for many, I'm sure.
Best Regards,
Pete
:I am a humble servant to policy. [[Wikibooks:What is Wikibooks?]] defines fiction as out of scope. There were many in the past that liked strategy guides here as well, but they were deemed out of scope and removed. Fiction can be especially poisonous to our reputation. Having information that is not verifiable (based on facts) would lead readers to believe that nothing on Wikibooks can be taken seriously. We are already quite lax in terms of not requiring references for information that appears to be reasonable on the surface. But fiction would be over the line. Books on religion can at least reference theological materials that represent the cornerstones of followers' beliefs, such as the Bible or Koran. Political science books can reference real-life events and people and the campaigns and behaviors they have engaged in. I'm not a fan of the Cookbook to be honest, but it's here to stay and is at least verifiable in that you can cook the recipe yourself and make corrections. Fiction is not something you can verify, it is not textbook material, and it is something that would be deleted on sight. I know the official slogan is "open books for an open world", but as you'll read in our policy document linked above, we deal with textbooks in a much stricter definition of the word. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 22:52, 26 February 2011 (UTC)
Hello,
No sweat, I'll move it over to creative commons or something.
Pete
== Thank you for help with the Public Policy and Citizen Participation Book! ==
Wow. Import the history. I have no clue how that might work.
I wonder how the copyright things works on print outs. Also, do User ID's have attribution rights, ''per se'', or is it just a courtesy?
I suppose it is covered by the link.
So if I edit over everything, I wonder if I still am required to cite? Probably no simple answer,
but Wikibooks policies probably cover most issues.
Just a little food for thought.
[[User:Geofferybard|Geofferybard]] ([[User talk:Geofferybard|discuss]] • [[Special:Contributions/Geofferybard|contribs]]) 03:24, 27 February 2011 (UTC)
:You are welcome. [[Wikibooks:Copyrights]] deals with a lot of your questions. You are right that the link shown when printing a page or generating a PDF serves to fulfill the attribution requirement of the [[WB:CC-BY-SA]] license. While there may not be policies to cover all issues, that is one area we do have covered. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 04:53, 27 February 2011 (UTC)
h8vtevj8eqpqhzg71eh1spr4pyq5wa5
Wikibooks:Reading room/Archives/2011/February
4
249271
4640093
4639411
2026-06-13T13:05:05Z
ShakespeareFan00
46022
4640093
wikitext
text/x-wiki
{{talkarchive}}
== I'd like to wikiobookify "Optimizing Code for Speed" ==
Hi all, [[Optimizing Code for Speed]] should be wikibookified per the request of a moderator (which prevents making it a 100% completion status.). I don't mind it being split into pages, but I'd like to know how to do it exactly. Is there a script somewhere or a page explaining the process? [[User:Shlomif|Shlomif]] ([[User talk:Shlomif|discuss]] • [[Special:Contributions/Shlomif|contribs]])
:It's really simple. Just copy the contents of each of the sections into a subpage. for example, the introduction goes to [[Optimizing Code for Speed/Introduction]]. After you've done that, turn the book into a table of contents. You can see how this is done by looking at a random book. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl:Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 13:50, 4 February 2011 (UTC)
== Quizzes and Exams ==
Hey guys, do we have a multiple choice quiz function on the English wikibooks? On the Icelandic wikibooks, we have <nowiki><quiz display=simple></nowiki> and we can produce a nice self assessment on Wikibooks. See [http://is.wikibooks.org/wiki/Enska/L%C3%A6r%C3%B0u_ensku_1/Spurningakeppni_A here]. If we do, what's the code? Thanks! --[[User:Girdi|Girdi]] ([[User talk:Girdi|discuss]] • [[Special:Contributions/Girdi|contribs]]) 01:38, 5 February 2011 (UTC)
:That is possible there by virtue of the [[mw:Extension:Quiz|Quiz extension]] installed. We would have to show consensus and file a request for it to be installed here. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 13:32, 5 February 2011 (UTC)
:: Ah I see. So let's do it! It'd be great for many of these books to incorporate an interactive quiz function. Where do we start the consensus? :) --[[User:Girdi|Girdi]] ([[User talk:Girdi|discuss]] • [[Special:Contributions/Girdi|contribs]]) 13:53, 5 February 2011 (UTC)
::: The best place would be [[WB:Reading room/Proposals]]. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 14:58, 5 February 2011 (UTC)
== "Future of Wikimedia" ==
Came across this recently-created essay. It's an interesting examination and helps foster thoughts on long-term planning. See [[m:User:Yair rand/Future of Wikimedia]]. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 05:08, 6 February 2011 (UTC)
: That's a refreshing contrast to the usual "we should put all our resources into Wikipedia, and the unimportant side projects are welcome to try to survive". (It's also interesting to me as a Wikinewsie that, while I agree ''that'' it has massive potential, I disagree with or doubt other things said about it, and feel Wikinews's current key challenge is missing from the account... but I digress. :-)
: Regarding Wikibooks, I'm interested that the author draws xyr correspondence between Wikibooks and Wikipedia by analogizing our books to Wikipedia's ''pages''. I disagree with that. An independent project has the psychologically significant property that its mainspace text wikilinks are internal to the project.
:* Wikinews suffers, psychologically, because its mainspace text wikilinks are often, in some articles almost entirely, to Wikipedia. (I mean to do something about that... again I digress.)
:* Wikipedia mainspace text mostly wikilinks to Wikipedia pages.
:* Wiktionary mainspace text mostly wikilinks to Wiktionary pages.
:* But Wikibooks mainspace text, once it matures, mostly wikilinks ''within the same book''. So each book feels like an independent project, analogous not to a single Wikipedia page but to the whole of Wikipedia — only with such a small scope that it's almost impossible to build and maintain a significant contributing community. This also explains the difficulty with a single person writing a book by xyrself.
: Moving forward, we may view ourselves as shepherds of a very large flock of tiny projects (though it may be less like herding sheep, and more like [[wikt:herding cats|herding cats]]). Obvious subgoals include
:* helping users find a book they might be interested in contributing to. (Goes back to my thoughts on keyword searching. :-)
:* helping a book to establish and maintain a coherent style despite long dry spells between significant contributions: it should be possible to pick up an "abandoned" book without having to reinvent the wheel (unless, of course, one wants to). If I chose a random book, even a random book whose subject I'm competent in, and tried to contribute to it, I might have to either ignore the intended organization, and thus potentially degrade it, or spend a pile of up-front time figuring out how the book was meant to be organized and how, if at all, I feel it ought to be reorganized. Even with that effort, subtle aspects of the previously envisioned organization might never become evident to me. My point is, we want to make it easier for the past contributors to a book to successfully liaise with later contributors across time.
:* helping books to coordinate with each other, for synergy. An obvious goal, that falls trippingly off the tongue and is very hard to know how to go about.
: --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 13:56, 6 February 2011 (UTC)
::Someone recently made the point that we're like a collection of wikis within one. That matches up with your comments and recent discussions at [[Wikibooks talk:Incubator]]. I do find the essay's overall theme, "a Wikipedia surrounded by successful projects will have a far better future than without" to be insightful. The cross-wiki watchlists and bug fixes/feature requests would help to encourage greater participation. The software is deficient in supporting the idea of wikis within a wiki, from watching a book at once to per-book CSS/JavaScript. As Wikipedia is quite mature, the opportunity for growth is at the other projects. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 16:48, 6 February 2011 (UTC)
== Page counts are incorrect ==
It appears that a definition I read somewhere about pages having to be in a content namespace and '''having a link to another page''' for them to be counted as content pages in [[Special:Statistics]] is correct. I checked the value of <nowiki>{{NUMBEROFARTICLES}}</nowiki> before and after adding a link to a page with none ([[.NET Development Foundation/Iterators]]), for example, and it caused the value to increment. It's too bad [[Special:DeadendPages]] is disabled. The implications of this are that the values shown on the main page, in the local statistics, at stats.wikimedia.org, and especially in [[m:List of Wikimedia projects by size]] all severely under-report our progress. [[A-level Chemistry/AQA/Module 5/Periodicity]] with all its content wouldn't be counted, for instance. I've found that [[w:Wikipedia:Dead-end pages]] has instructions that will produce a list of pages that can then have navigation templates applied, rectifying the count. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 21:57, 24 January 2011 (UTC)
:It can be changed to count commas instead of links - [[mw:Manual:$wgUseCommaCount]]. [[User:Bawolff|Bawolff]] ([[User talk:Bawolff|discuss]] • [[Special:Contributions/Bawolff|contribs]]) 22:34, 24 January 2011 (UTC)
::A good find! Too bad it doesn't apply retroactively. Maybe the developers would run the update script. We need to show consensus for changing $wgUseCommaCount to true here, though. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 23:53, 24 January 2011 (UTC)
:::Given the general lack of wikilinks here - especially as we encourage a book navigation structure - I think using the comma count method is both sensible and likely to gain consensus. [[User:QuiteUnusual|<span style="color:#E66C2C">'''QU'''</span>]] <sup>[[User talk:QuiteUnusual|<span style="color:#306754">TalkQu</span>]]</sup> 15:27, 4 February 2011 (UTC)
::::Just a question... why commas? [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 15:37, 4 February 2011 (UTC)
:::::because that's the only other option the MediaWiki software supports [[User:QuiteUnusual|<span style="color:#E66C2C">'''QU'''</span>]] <sup>[[User talk:QuiteUnusual|<span style="color:#306754">TalkQu</span>]]</sup> 15:38, 4 February 2011 (UTC)
:::::: Maybe if we ask developers nicely other options could be added. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 16:02, 4 February 2011 (UTC)
::::::: yes, despite my glib answer I did think that... I struggled a bit to get beyond why any character (i.e., a page length > 1) wouldn't be the most sensible option. Presumably there was some logic in choosing "wikilink or comma" as the options but I can't think of one. Perhaps a <nowiki>{</nowiki> would be a good choice for us as most / all pages will include a transcluded template? [[User:QuiteUnusual|<span style="color:#E66C2C">'''QU'''</span>]] <sup>[[User talk:QuiteUnusual|<span style="color:#306754">TalkQu</span>]]</sup> 16:43, 4 February 2011 (UTC)
:::::::: I think the problem with wikilinks could be fixed for Wikibooks if the criteria for it were the use of wikilinks on a page OR a page is linked to from another page. Generally books have a table of contents with wikilinks to their pages, so if the criteria were updated to that than just having a table of contents should be enough to ensure all its pages were counted. Another option I can think of would be to count all pages which are categorized. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 19:46, 4 February 2011 (UTC)
::::::::: Wondering, could we hotwire {{tl|BookCat}} so that every page (or every content-space page) it's on would have a link, without causing that link to be obnoxiously visible? (And how much of a problem would it then be that we're not using {{tl|BookCat}} in Cookbook space?) --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 19:57, 4 February 2011 (UTC)
:::::::::: If links through template inclusion were enough to have a page counted, I think most pages would already be counted due to the use of navigational aids. I wonder if page statistics even matter. Other than to perhaps determine average book length, I think how many books Wikibooks has is the statistics that is most relevant to us. I think counting pages based on template inclusion is a good idea, but I think multiple ways for a page to be counted would help to ensure more pages are counted without people having to go out of their way to make sure a page is counted. Another option could be the presents of any one of "!", "?", or "." since at least one is guaranteed to be present in properly formed sentence. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 21:30, 4 February 2011 (UTC)
::::::::::: We can wish for many things, but any significant feature requests requiring new code rather than configuration changes seem to just flounder in the bug reporting system for years. Changing this configuration value will at least increase accuracy in the meantime. Page statistics do matter with regards to mindshare. If charts at stats.wikimedia.org make it appear that we are stagnating, the foundation will not see it as a priority to have the developers handle the big feature requests outstanding for Wikibooks (such as watching a whole book at once), people primarily contributing to Wikipedia will not want to invest time in a "second-class" project, and changes to extensions such as Flagged Revisions will continue to not be discussed with us ahead of time. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 00:08, 5 February 2011 (UTC)
<small>Positions at [[WB:PROPOSALS|proposals reading room]].</small> – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 23:14, 6 February 2011 (UTC)
== [[MediaWiki:Gadget-searchbox.js]] ==
Hello, I've installed [[wikt:fr:MediaWiki:Gadget-searchbox.js]] from [[wikt:pl:MediaWiki:Gadget-searchbox.js]]. It adds the text treatment functions: "go to line n°", "change the capitalization", "search and replace" (eventually "replace all"). [[User:Sonia|Sonia]] ([[User talk:Sonia|discuss]] • [[Special:Contributions/Sonia|contribs]]) 09:33, 10 February 2011 (UTC)
:I'm not sure that would be needed. I can click "Advanced" in the Vector toolbar, then on [[File:Vector toolbar search-replace button.png|link=]] to get a search and replace box that allows for case sensitive operations and replacement of all terms. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 14:04, 10 February 2011 (UTC)
::I've just developed an additional button to sort alphabetically a list. [[User:JackPotte|JackPotte]] ([[User talk:JackPotte|discuss]] • [[Special:Contributions/JackPotte|contribs]]) 16:30, 11 February 2011 (UTC)
== weird tabs ==
Hi all, I've had this strange issue with vector on wikibooks recently, where the tabs on vector and the search bar are all duplicated at the bottom of the page below the categories. As I'm currently unable to upload to commons, I can't provide a screenshot- has anyone else had a similar problem? [[User:Sonia|Sonia]] ([[User talk:Sonia|discuss]] • [[Special:Contributions/Sonia|contribs]]) 09:33, 10 February 2011 (UTC)
:It's almost like you have the "Bottom tabs" gadget in [[Special:Preferences]] enabled, but as far as I was aware it only worked for Monobook and hadn't been updated for Vector. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 14:05, 10 February 2011 (UTC)
:: I think it is possible that gadget is enabled. I had updated that gadget to work with both Monobook and Vector some time ago. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 14:09, 10 February 2011 (UTC)
:::Might be a problem with the recent maintenance. Have you purged and cleared your cache? [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 14:11, 10 February 2011 (UTC)
:::Yeah, it's the gadget, as Sonia's description matches what I see when enabling it. It was probably updated since Sonia was last here. I updated the description of it to reflect Darklama's update. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 16:03, 10 February 2011 (UTC)
::::Heh- I hadn't even realized that was enabled. Thanks all, and sorry for the unnecessary question :P [[User:Sonia|Sonia]] ([[User talk:Sonia|discuss]] • [[Special:Contributions/Sonia|contribs]]) 05:25, 11 February 2011 (UTC)
== Mathematical equation entry ==
I am wondering what the formatting code is for entry of mathematical equations? I would like to be able to generate formulas in my native math applications and convert them to a code that Wikibooks will understand. [[User:Kurtfairfield|Kurtfairfield]] ([[User talk:Kurtfairfield|discuss]] • [[Special:Contributions/Kurtfairfield|contribs]]) 00:40, 17 February 2011 (UTC)
: You might find this helpful: [[Wikibooks:WikiProject Mathematics#Typesetting]]. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 02:38, 17 February 2011 (UTC)
== 1.17 Update ==
Some issues I've seen, and I don't know whether or not they are temporary: [[Template:Navbox]] is not styled; the protection icons via [[Template:pp-meta]] are not in the correct location anymore, the default style of wikitables has changed (good thing, we don't need purple clashing with everything), the [[Template:Mbox|Mbox]] suite is not styled. Very odd because the big thing was a change to JavaScript implementation, not CSS. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 13:49, 11 February 2011 (UTC)
: I hope the issues are temporary as well. You could say there are two big changes actually. MediaWiki 1.17 is intended to speed up load time and decrease hits to their servers, if I understand correctly, by combining, compressing, and anticipating what JavaScript and CSS is or is not needed. I believe this second big change is intended to not to have any visibly noticeable affect though, besides people possibly noticing pages load faster. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 14:01, 11 February 2011 (UTC)
::I think I know what the problem is, though I only know of one solution to fix it. The linked CSS pages at [[MediaWiki:Common.css]] are not loading. Only solution would be to combine them again. Most Wikimedia sites don't try to do what we are doing here. I will maybe file a bug report. MediaWiki namespace syntax highlighting can be removed ([[bugzilla:10871|bug 10871]]). – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 14:31, 11 February 2011 (UTC)
::: I think in theory at least this should be fixable locally without a need to combine them again. Would be a pity if all that effort to make our CSS more manageable and the discussion of specific CSS problems easier went to waste. I think it should be reported as a bug though, as it may be an unintended side effect. If you do decide to report it, make sure to file it as a 1.17 bug. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 15:05, 11 February 2011 (UTC)
::::Reported as [[bugzilla:27328|bug 27328]]. Closed as WONTFIX with comment "Site CSS is loaded from load.php instead of index.php. You have to add "index.php" before the question mark." That doesn't make sense. If it's loaded from load.php, shouldn't it have load.php before the question mark? [http://en.wikibooks.org/wiki?title=MediaWiki:Common.css/Infobox.css&action=raw&ctype=text/css This gets content], [http://en.wikibooks.org/wiki/index.php?title=MediaWiki:Common.css/Infobox.css&action=raw&ctype=text/css this doesn't], and [http://en.wikibooks.org/wiki/load.php?title=MediaWiki:Common.css/Infobox.css&action=raw&ctype=text/css neither does this]. Maybe it makes sense to you? – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 15:39, 11 February 2011 (UTC)
:::::: The problem seems to be the minimization library they use does not yet support remapping urls used in import statements. The bug now sits at REOPENED, so hopefully that is a sign someone is now willing to work on it. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 19:04, 11 February 2011 (UTC)
:::::::There's an [http://lists.wikimedia.org/pipermail/textbook-l/2011-February/001577.html IRC meeting] for you to attend, Darklama. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 13:24, 12 February 2011 (UTC)
:::::::: Unfortunately I seem to keep missing those IRC meetings. We should be fine, unless there are any more undocumented surprises. They say the office hour meetings are logged, so I should be able to read through that, if I miss the IRC meeting again. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 14:19, 12 February 2011 (UTC)
{{outdent|::::::::}}
I managed to attend the office hour IRC meeting this time. The good news, right now this bug is considered a blocker that will need to be fixed before 1.17 is released. Other than that, I think as a community, we probably need to discuss what if anything to do about scripts in user space. People sometimes copy scripts from other wikimedia projects, and don't keep up with changes made to fix bugs and updates to mediawiki. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 19:28, 14 February 2011 (UTC)
:We don't have any gadgets that reference scripts in user space, but my concern would be whether our gadgets are getting dated, with too many that won't work with Vector (and thus appear to be broken to new users using the default theme and not knowing about Monobook) and whether they will work after the update (or even whether they have been unmaintained and could break any day now—Whiteknight's Visual Book Designer). Short of using a bot to replace functions that are clear replacements, I feel scripts in user space should be maintained by the user. If they were created across multiple wikis, [[User:Pathoschild|Pathoschild]] has a bot that will update CSS/JS globally for a user seeking to update. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 20:50, 14 February 2011 (UTC)
:: People asked would things break at the meeting. 1.17 is intended to maintain backwards compatibility according to the mediawiki developers. I think the mediawiki developers don't expect things to break, but will fix them if they do and are reported to bugzilla. The old methods will still be around in 1.17.
:: When Wikibooks was updated to 1.16 I began to update scripts in MediaWiki space to keep on top of things. While I trust the mediawiki developers to keep things working right now, I have doubts the Wikibooks community will be informed should a decision be made to remove the old methods in a future release. I think the best way to avoid surprises is to update sooner rather than later as we know about it.
:: I think scripts in user space should be updated to avoid surprises too, I just don't know whose responsibility we should consider it to be to do so. People may want to know why things aren't working as they use to at some point. Should people be informed before, or should we be dealing with questions later? --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 22:03, 14 February 2011 (UTC)
:::Well, you do have a handy-dandy list at [[Wikibooks:WikiProject Users/Tasks]]. We could place a standardized message on the discussion page of all the users affected by the changes, thus informing them and also heading off any questions later. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 22:35, 14 February 2011 (UTC)
:::: Ya, I included user pages in that list to make doing whatever is decided easier. Some seem to be copies of Gadgets, which suggest maybe not enough is being done to make people aware of the gadgets. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 13:51, 15 February 2011 (UTC)
Bug closed as fixed in 82218. We are on 82223 and the original relative links don't work. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 13:38, 16 February 2011 (UTC)
:Note for others: the above bug was reopened. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 18:25, 18 February 2011 (UTC)
Transwiki imports are semi-broken with the update. See [[bugzilla:27486|bug 27486]]. You'll have to choose "all" as the destination namespace to attribute Wikipedia properly as the source, for now, and you can't import to a different namespace than the one you're pulling from. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 18:25, 18 February 2011 (UTC)
== Books for examination ==
An IP editor has, over time, created several books that are often poorly translated. Several pages of them were blatant copyright violations of Wikipedia content and I have deleted those pages but others are probably taken only partly from Wikipedia. The content appears to be copied/translated from vi.wikibooks.org given that some of the images used here are used there in books that appear to cover the same topics. This is likely the same editor who created ''Arithmatics'' which was moved to ''Arithmetics'' and [[Wikibooks:Requests for deletion/Arithmetics|deleted]], ''Mathematics Fundamental'' which was moved to ''Mathematics Fundamentals'' and [[Wikibooks:Requests for deletion/Mathematics Fundamentals|deleted]], and ''Physics Handbook'' which was [[Wikibooks:Requests for deletion/Physics Handbook|deleted]]. I deleted the recently-created ''Electronics Course'' entirely as it was complete copy-pastes of ''Electronics Handbook''. If this person created an account they could track their contribution history instead of forgetting and creating the same thing four months later under a new IP… [[Arithmetic Course]], [[Calculus Course]], [[Trigonometry Course]], [[Geometry Course]], [[Electronics Handbook]], [[Physics Course]], [[Digital Electronics]], [[Communication Course]] are ones I can think of off the top of my head in case anyone sees any other problems that I've missed. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 02:58, 18 February 2011 (UTC)
:I believe all these books are being written by a guy called Quach Trung Thanh of Toronto, as several of them have this name as the author on their title page. In 2009 he used the accounts [[User:Quachtahnh]] and [[User:Qtt1964]], but since then he has prefered not to log in for some reason. As far as I can tell, he has never actually responded to any comments or requests. You have to admire his persistence though, even if his way of working can be rather exasperating. [[User:Recent Runes|Recent Runes]] ([[User talk:Recent Runes|discuss]] • [[Special:Contributions/Recent Runes|contribs]]) 21:29, 18 February 2011 (UTC)
== Statistics ==
It's been asked of me before and I recently got a request through OTRS for whether or not there's a tool for seeing page views at Wikibooks (we don't have [[Wikibooks:Statistics]]). Previously I didn't know of any but I recently heard that a tool normally used just for Wikipedia can be "hacked" to output results for Wikibooks.
*Visit http://stats.grok.se/en.b/top for the top 1000 pages and ignore the "Wikipedia article traffic statistics" title.
*Add the page you want to know about in particular to the end of <tt><nowiki>http://stats.grok.se/en.b/201102/</nowiki></tt> for February statistics. The end is YYYYMM, so you can change the value in the address bar for older months.
The interface and forms of the site cannot be used; doing so reverts it back to Wikipedia. Would you believe that 18 of the top 30 spots are held by pages in [[LaTeX]]? – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 00:01, 21 February 2011 (UTC)
: Wikibooks use to keep track of pretty good statistics useful for book projects, until the format of the data dumps changed from SQL to XML. Would just require motivated individuals to do so again. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 01:45, 21 February 2011 (UTC)
: Here's a rough example of the type of statistics Wikibooks use to have:
:# [[File:Increase.svg|12px|link=]] Cookbook (<span style="color:green">+120</span>)
:# [[File:Increase.svg|12px|link=]] LaTeX (<span style="color:green">+50</span>)
:# [[File:Decrease.svg|12px|link=]] Rubik Puzzles (<span style="color:red;">-20</span>)
: Where the arrow indicated whether contributions went up or down since last time for the given book, and the number in parenthesis represented the contribution difference since last time. I'd like to see such a system in use again. I think it acts as a good motivator and can encourage people. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 10:28, 21 February 2011 (UTC)
::Well, I'm motivated and have the latest XML dump, but don't have the technical expertise to know where to go from there. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 13:44, 21 February 2011 (UTC)
::: Ya, I was thinking of ways statistics could be made easier for people without the skills to do so. I had thought to file a bug report requesting the statistics at http://stats.wikimedia.org be made available in xml dump form. I found bug [[bugzilla:26352|#26352]] though, which is a request to make statistics available by an API. I think that would be even better. Apparently there are dumps already available at http://dammit.lt/wikistats/ for the page view statistics of all projects. I would like it better if dumps were separated by project though. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 14:39, 21 February 2011 (UTC)
== Disappearance of Private WikiBook ==
I had created a Wikibook that was 56 pages in length. I attempted to create a Chapter and the book suddenly had no content. When I was in a Wikipedia article, the book creator showed that I had 56 pages, however, when I went to add page, the book was empty of content. Are there length restrictions on Wikibooks, and if so, can advance notification be given by the system administrator so that the book can be saved before elimination? <small><span class="autosigned">—Preceding [[w:Wikipedia:Signatures|unsigned]] comment added by [[User:98.94.81.35|98.94.81.35]] ([[User talk:98.94.81.35|discuss]] • [[Special:Contributions/98.94.81.35|contribs]]) </span></small><!-- Template:Unsigned -->
: As confusing as this may seem, any "book" created by the "book creator" at Wikipedia will be at Wikipedia and not at Wikibooks. You are looking for the "book" at the wrong project. Try looking through their "[[w:Special:PrefixIndex/Book:|Book]]" namespace, or in the user namespace under your name at Wikipedia. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 16:50, 14 February 2011 (UTC)
::Count me in the group not fond of the naming Wikipedia chose. I even see it as a slight against Wikibooks as now we have Wikipedia Books ([[w:Wikipedia:Books|Wikipedia:Books]]) and Wikimedia Books (Wikibooks). – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 21:04, 14 February 2011 (UTC)
:::Ugh, so when did that appear on WP? Really bad naming choice. --[[User:ErrantX|ErrantX]] ([[User talk:ErrantX|discuss]] • [[Special:Contributions/ErrantX|contribs]]) 09:24, 15 February 2011 (UTC)
:::: I agree bad choice for the [[mw:Extension:Collection|Collection Extension]] to use book by default. I think it undermines Wikibooks and dilutes any brand recognition. I also wonder if it is in any way responsible for any decline Wikibooks may have seen. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 13:42, 15 February 2011 (UTC)
:::::I'm a little distracted by other Wikipedia stuff at the moment - but when I get a chance I'll look into proposing a name change. --[[User:ErrantX|ErrantX]] ([[User talk:ErrantX|discuss]] • [[Special:Contributions/ErrantX|contribs]]) 14:09, 15 February 2011 (UTC)
::::::Propose a name change of what? The Wikipedia book namespace? I doubt that would succeed. [[User:Sven Manguard|Sven Manguard]] ([[User talk:Sven Manguard|discuss]] • [[Special:Contributions/Sven Manguard|contribs]]) 06:13, 16 February 2011 (UTC)
::::::Wikimedia Booklet or Collection seems more in order and will not get confused with Wikibooks... --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 08:34, 16 February 2011 (UTC)
::::::Wikimedia Booklet is seconded by me. Real reason I am writing this though, is that the Collection extension can easily be modified to allow export to both Open Document Text and to DocBook. Is there a reason that isn't configured in the LocalSettings.php for the Wikibooks project? The XML Book references that the reason there is no support for DocBook for that particular book is that DocBook is to complex. Is there some other reason WikiBooks doesn't allow for export to DocBook and/or ODT? --[[User:Sjledet|Sjledet]] ([[User talk:Sjledet|discuss]] • [[Special:Contributions/Sjledet|contribs]]) 01:42, 24 February 2011 (UTC)
:::::::The [[mw:Extension:XML Bridge|XML Bridge]] extension needed for that is listed as ''unstable''; therefore, it will not be installed in a production Wikimedia wiki. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 01:49, 24 February 2011 (UTC)
== Wikibook in Latex ==
In the math community, most people write things using Latex. Does anyone have an idea on how one could start a wikibook project with people prefering to write Latex documents ? (people would then be more willing to do it, and the final pdf version of the book would be nice and easy to do). <small><span class="autosigned">—Preceding [[w:Wikipedia:Signatures|unsigned]] comment added by [[User:128.178.14.78|128.178.14.78]] ([[User talk:128.178.14.78|discuss]] • [[Special:Contributions/128.178.14.78|contribs]]) 17:59, 16 February 2011</span></small><!-- Template:Unsigned -->
:Almost all maths book here are written in latex I think. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 11:24, 17 February 2011 (UTC)
:: Our markup for writing formulas is LaTeX-like; see [[Help:Formulas]]. On the other hand, many of the concerns involved in writing LaTeX documents (which which I am intimately familiar, as I write everything non-wiki in it myself) do not apply to Wikibooks because [[WB:What is Wikibooks#Wikibooks is not paper|Wikibooks is not paper]]. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 14:07, 17 February 2011 (UTC)
::: That is really good news ! One more thing I did not understand is the conversion of wikibooks into pdf. Is it automated in some way, or is it done manually ? [[Special:Contributions/128.178.14.78|128.178.14.78]] ([[User talk:128.178.14.78|discuss]])
::::Both. You have to manually add pages to a collection, but once the collection is defined, the PDF is generated automatically. See [[Help:Collections]] for more info. --[[User:Jomegat|Jomegat]] ([[User talk:Jomegat|discuss]] • [[Special:Contributions/Jomegat|contribs]]) 19:44, 23 February 2011 (UTC)
:::::It would be greatly appreciated if you do it entirely by hand, then upload it to Wikimedia Commons, though. Using the book creator makes the titles looks strange as Wikibooks uses subpages. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 12:51, 24 February 2011 (UTC)
::::::You can use a pipe in the link titles to change the title outputted in the PDF. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 13:27, 24 February 2011 (UTC)
:::::::Really? I didn't know that! How do you do it? [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 15:30, 24 February 2011 (UTC)
::::::::Take a look at [[Help:Collections/Advanced]] for a full explanation. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 15:57, 24 February 2011 (UTC)
:::::::::Thanks! Must try it out some time. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 14:45, 25 February 2011 (UTC)
== editing and viewing problem ==
Hi,
I have problem with viewing discussion pages and editing some pages.
It is only in english wikibooks and only on some pages.
Like here : [[Fractals/Iterations_in_the_complex_plane/Julia_set]].
I see:
* inactive Talk tab , not active Discussion tab
* inactive Edit tab
* active edit link which opens "Editing Null" page
What is a reason of this and how I can resolve it ?
--[[User:Adam majewski|Adam majewski]] ([[User talk:Adam majewski|discuss]] • [[Special:Contributions/Adam majewski|contribs]]) 15:25, 25 February 2011 (UTC)
:Have you tried purging? [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 16:18, 25 February 2011 (UTC)
::How can I do it ?--[[User:Adam majewski|Adam majewski]] ([[User talk:Adam majewski|discuss]] • [[Special:Contributions/Adam majewski|contribs]]) 16:39, 25 February 2011 (UTC)
::Do you mean purge server cache of the page ? I have installed purge gadet and use it - nothing. Made it with firefox preferences - nothing. Use another browser : Chrome - the same effect. --[[User:Adam majewski|Adam majewski]] ([[User talk:Adam majewski|discuss]] • [[Special:Contributions/Adam majewski|contribs]]) 17:10, 25 February 2011 (UTC)
:::What skin are you using? [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 14:39, 26 February 2011 (UTC)
::: Vector (default)--[[User:Adam majewski|Adam majewski]] ([[User talk:Adam majewski|discuss]] • [[Special:Contributions/Adam majewski|contribs]]) 16:04, 26 February 2011 (UTC)
I've experienced more frequent logouts than usual and occasionally the edit window is pink with white text which makes editing impossible. No idea if it is in any way related though. For the mentioned page, I see no associated discussion. The discussion tab should be inactive when not viewing/editing discussion. The edit tab should be inactive when not editing. Not sure what you mean by "Editing Null" page, but when there is no associated discussion page and you click to view it, you will be in edit mode with no content. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 16:52, 26 February 2011 (UTC)
: When I open the page for a 1-2 seconds I have normal links, but it is changing to
: Instead of Discussion ( blue text with link) I have Talk ( black text without link )
: below asterix I have links to:
* "move" which links to : http://en.wikibooks.org/wiki/Special:MovePage/Fractals/Iterations_in_the_complex_plane/Mandelbrot_set
* black text : "edit" ( inactive link)
* purge which links to http://en.wikibooks.org/w/index.php?title=Fractals/Iterations_in_the_complex_plane/Mandelbrot_set&action=purge
* hist which links to : http://en.wikibooks.org/wiki/Fractals/Iterations_in_the_complex_plane/null?action=history
* edit (discussion) which links to : http://en.wikibooks.org/wiki/Fractals/Iterations_in_the_complex_plane/null?action=edit
: If I manually open:
: http://en.wikibooks.org/w/index.php?title=Fractals/Iterations_in_the_complex_plane/Mandelbrot_set&action=edit
: Then I can edit page.
--[[User:Adam majewski|Adam majewski]] ([[User talk:Adam majewski|discuss]] • [[Special:Contributions/Adam majewski|contribs]]) 17:55, 26 February 2011 (UTC)
:When I have made null edit the same is on this page !!!! Probably it is a is a mechanism to protect from making null edits. How can I invert it ? --[[User:Adam majewski|Adam majewski]] ([[User talk:Adam majewski|discuss]] • [[Special:Contributions/Adam majewski|contribs]]) 18:01, 26 February 2011 (UTC)
:: Do you happen to have '''Six Tabs''' enabled in your [[Special:Preferences|preferences]]? --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 19:05, 26 February 2011 (UTC)
::: Yes. Removing it solved the problem. The script is probably broken. Thx for help. --[[User:Adam majewski|Adam majewski]] ([[User talk:Adam majewski|discuss]] • [[Special:Contributions/Adam majewski|contribs]]) 19:51, 26 February 2011 (UTC)
:::: That Gadget hasn't been updated to work with Vector yet. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 20:02, 26 February 2011 (UTC)
== Gallery is Misbehaving ==
The gallery in a drop box is constrained to a very narrow display. Has anybody been 'improving' it recently? [[Special:Contributions/109.156.18.219|109.156.18.219]] ([[User talk:109.156.18.219|discuss]]) 20:50, 26 February 2011 (UTC)
:It would be very helpful if you provided a page where the concept you are talking about is used. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 23:00, 26 February 2011 (UTC)
== Basic Physics of Digital Radiography ==
This message follows that in [[Wikibooks:Reading_room/Archives/2011/January#Digital_Radiography_-_Physics_Text|11 Jan. 2011]].
The first draft of the wikibook is now complete.
[[User:KieranMaher|marz]] ([[User talk:KieranMaher|discuss]] • [[Special:Contributions/KieranMaher|contribs]]) 13:19, 25 February 2011 (UTC)
:If you consider it of adequate quality you may suggest promoting it to featured status. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 14:44, 25 February 2011 (UTC)
2tnuzai2sncgra4f0tzdi74otpjybda
Talk:Lua Programming
1
249276
4640189
4519312
2026-06-13T16:15:23Z
ShakespeareFan00
46022
4640189
wikitext
text/x-wiki
{{featured book candidate}}
==Merge with Lua Programming / Embedding Lua / Lua components written in C&C++==
I support the merge of Lua programming and Lua Programming, with Lua programming's content largely superseding Lua Programming's. Lua Programming does have a section called 'solutions' which suggests there should be pages about writing Lua components in C and C++ and embedding and embedding Lua in C and C++. [[User:Hackbinary|Hackbinary]] ([[User talk:Hackbinary|discuss]] • [[Special:Contributions/Hackbinary|contribs]]) 13:05, 12 October 2013 (UTC)
==Programming Solutions==
I notice that you have removed the "programming solutions" section. This has left a hidden section "solution"s, which is no longer accessible via the book indexes. I'll put this back for now, until the indexes are fixed.
[[User:Markhobley|Markhobley]] ([[User talk:Markhobley|discuss]] • [[Special:Contributions/Markhobley|contribs]]) 21:12, 25 February 2011 (UTC)
== Merger with Lua programming ==
The voting is happening here:
[[Wikibooks:Requests_for_deletion#Lua_Programming]]
[[User:Hackbinary|Hackbinary]] ([[User talk:Hackbinary|discuss]] • [[Special:Contributions/Hackbinary|contribs]]) 13:12, 12 October 2013 (UTC)
[[Wikibooks:Requests for deletion/Lua Programming|Consensus was to merge the books]]. Please see [[:{{BOOKCATEGORY|Lua Programming}}]] for a complete list of pages, many of which are not linked to from anywhere within this book right now. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 19:05, 23 May 2014 (UTC)
== Translate to Chinese ==
I want to make a Chinese translation. Can I? [[User:ShadowYC|ShadowYC]] ([[User talk:ShadowYC|discuss]] • [[Special:Contributions/ShadowYC|contribs]]) 01:41, 16 February 2017 (UTC)
:Yes you can. [[User:Ftiercel|Ftiercel]] ([[User talk:Ftiercel|discuss]] • [[Special:Contributions/Ftiercel|contribs]]) 19:53, 16 March 2017 (UTC)
== Should we have a section on object oriented programming ==
Should we have a section on object oriented programming?
While Lua doesn’t have native objects, a combination of metatables (i.e. the __index property of metatables) and Lua’s “:” syntactic sugar gives us real classes with inheritance. For example:
-- Public domain example of Objects in Lua using metatables
-- Let’s create a class
Add1Obj = {} -- Initialize a new class
Add1Obj.__index = Add1Obj -- Allow class to be a metatable
-- Method: Initialize class
function Add1Obj:new(start)
if start == nil then
start = 1
end
return setmetatable({v = start},self)
end
-- Method: Add one to the class’s “v” element
function Add1Obj:add1()
self.v = self.v + 1
return self.v
end
-- Example of class usage
foo = Add1Obj:new(1)
print(foo:add1())
print(foo:add1())
-- Now, let’s create a derived class
Add2Obj = {} -- Initialize a new class
Add2Obj.__index = Add2Obj -- Allow this class to be a metatable
setmetatable(Add2Obj, Add1Obj) -- Inherit the Add1Obj class
-- Derived class has a new method
function Add2Obj:add2()
self.v = self.v + 2
return self.v
end
-- Example using derived class
foo = Add2Obj:new(20)
print(foo:add1())
print(foo:add2())
-- END public domain code
Thoughts? [[User:Samboy|Samboy]] ([[User talk:Samboy|discuss]] • [[Special:Contributions/Samboy|contribs]]) 06:41, 4 April 2021 (UTC)
== "goto" is not in the book ==
This phrase is written in the introduction of the book " Currently, the book is up-to-date for Lua 5.2".</p> But this Wikibook does not covers goto which is introduced in Lua 5.2
== "Tables" section is missing from the pdf and printable version of the book ==
the two aforementioned versions of the book only have these 5 chapters
# Introduction
# Expressions
# Statements
# Functions
# Standard libraries
but the web version has chapter 5 as Tables, and 6 as Standard libraries <br> [[User:Daemonmaid|Daemonmaid]] ([[User talk:Daemonmaid|discuss]] • [[Special:Contributions/Daemonmaid|contribs]]) 08:54, 22 June 2025 (UTC)
munomm6e85ny7m1ae7quhdzf76qhndq
User talk:208.102.234.75
3
249418
4640109
2061698
2026-06-13T15:20:43Z
ShakespeareFan00
46022
4640109
wikitext
text/x-wiki
==Welcome!==
[[Wikibooks:Welcome|Welcome to Wikibooks]]! You do not need to [[WB:LOGIN|log in]] to read or edit books at Wikibooks, but creating an account is quick, free and non-intrusive, requires no personal information, and gives you many benefits, including:
* A username of your choice for directly attributing [[Special:Contributions/{{PAGENAME}}|your contributions]].
* A personal user page, a [[WB:TALK|talk page]], and a [[Help:Tracking changes#Watching pages|watchlist]] to monitor pages that interest you.
* The ability to [[WB:MOVE|rename]] pages and to [[WB:PREFS|customize]] some aspects of the Wikibooks interface.
* People will recognize you as a member of the Wikibooks community, and you will be eligible to [[WB:REVIEW|review]] pages.
* Your IP address will be hidden from most users, which may give you a greater sense of security and privacy.
We hope that you choose to join our community as a Wikibookian and [[Special:Userlogin|create an account]].
Feel free to ask any questions on my talk page or in the [[Wikibooks:Reading room|Reading room]]. Be sure to sign your talk page comments with four tildes (<nowiki>~~~~</nowiki>). [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 14:36, 1 March 2011 (UTC)
al4g0eq5tkku8dy7z2uh2x93vbnueo5
Wikibooks:Reading room/Proposals/2011/February
4
249430
4640131
4614705
2026-06-13T15:31:45Z
ShakespeareFan00
46022
4640131
wikitext
text/x-wiki
{{talkarchive}}
== Quizzes and Exams ==
It is a suprise that this isn't already integrated on the Wikibooks English site, but we really need to apply for the Quiz and Exams multiple choice addon to fully characterize and emphasize our wikibooks. We have many language books, mathematic books, and other educative books that could use a nice addition of a practice quiz at the end or middle to check the user's progress. Those studying for exams (let's face it, students today use Wikimedia projects as a primary source) will love to test their knowledge on the topics they are studying to make sure they have obtained the knowledge required of them.
The Icelandic Wikibooks has already incorporated this. Check out an English learning guide in Icelandic, this [http://is.wikibooks.org/wiki/Enska/L%C3%A6r%C3%B0u_ensku_1/Spurningakeppni_A midterm exam].
The full Mediawiki link is [http://www.mediawiki.org/wiki/Extension:Quiz here, Extension Quiz]. Let's do it and push this amazing project forward! --[[User:Girdi|Girdi]] ([[User talk:Girdi|discuss]] • [[Special:Contributions/Girdi|contribs]]) 22:11, 5 February 2011 (UTC)
: [[File:Symbol support vote.svg|15px|alt=|link=]] '''Support''' For reasons mentioned above, I feel this addition and extension will really optimize our wonderful Wikibooks project! --[[User:Girdi|Girdi]] ([[User talk:Girdi|discuss]] • [[Special:Contributions/Girdi|contribs]]) 22:11, 5 February 2011 (UTC)
: [[File:Symbol support vote.svg|15px|alt=|link=]] '''Support''' Let's give it a try. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 23:32, 5 February 2011 (UTC)
: [[File:Symbol support vote.svg|15px|alt=|link=]] '''Support'''. At least if people don't care for it, they don't have to use it. I could see concerns about the answers not showing up for printing, but then again, in my tests, the alternative {{tl|question-answer}} doesn't expand when you go to print either, hiding the answers. (I'm sure some CSS to make all collapsible tables expand when printing would resolve that). Wikibooks is not paper; this would help bring a new level of interactivity to the content here, which shouldn't be limited just to Wikiversity. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 16:34, 6 February 2011 (UTC)
:: Of course we don't have to include the interactive tests in the printable version. So one downside of this, as you brought up, would be a bit more work on the conversion process from electronic to PDF/Printable versions. But as you said, if a book doesn't call for it, or if authors of some books agree not to have an interactive test, then they just simply don'T have to use it. :) --[[User:Girdi|Girdi]] ([[User talk:Girdi|discuss]] • [[Special:Contributions/Girdi|contribs]]) 16:50, 6 February 2011 (UTC)
: [[File:Symbol support vote.svg|15px|alt=|link=]] '''Support''' Sounds good to me. I think the question forms can still be printed out. The answers, if considered important can be included in an appendix or such. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 22:07, 6 February 2011 (UTC)
Great! I don't think we will have an overwealming 5 more opposers, so where can we submit our formal request to get the quiz extension on our Wikibooks? --[[User:Girdi|Girdi]] ([[User talk:Girdi|discuss]] • [[Special:Contributions/Girdi|contribs]]) 23:11, 6 February 2011 (UTC)
:At [[bugzilla:|Bugzilla]]. --[[User:Yair rand|Yair rand]] ([[User talk:Yair rand|discuss]] • [[Special:Contributions/Yair rand|contribs]]) 00:27, 7 February 2011 (UTC)
:: [https://bugzilla.wikimedia.org/show_bug.cgi?id=27209 Submitted, bug number 27209] --[[User:Girdi|Girdi]] ([[User talk:Girdi|discuss]] • [[Special:Contributions/Girdi|contribs]]) 00:47, 7 February 2011 (UTC)
*'''Support''' - hmm, sounds great! [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 13:47, 7 February 2011 (UTC)
* {{support}} '''if''' Wikibookians are made aware that Quizzes and Exams should only exist to support already present textbook content. I would also like that some effort is made to make Wikibookians informed of the limitations and possible solutions to permit the dewikification of the content... --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 15:53, 7 February 2011 (UTC)
:: We could start working on and including a guide on the usage of quizzes under [[Help:Contents]] in contributing and editing. There it can be known that quizzes are only used for textbooks and not stand alone. --[[User:Girdi|Girdi]] ([[User talk:Girdi|discuss]] • [[Special:Contributions/Girdi|contribs]]) 17:08, 7 February 2011 (UTC)
'''Done''', [http://noc.wikimedia.org/conf/highlight.php?file=InitialiseSettings.php here is the source code], not sure if we have to do something with that locally. Thanks to the guys at Bugzilla for their help! :) --[[User:Girdi|Girdi]] ([[User talk:Girdi|discuss]] • [[Special:Contributions/Girdi|contribs]]) 20:11, 7 February 2011 (UTC)
Try it out!
<quiz shuffle="none" display="simple">
{Isn't this awesome?
|type="()"}
+ Yes!!.
||<span style="color:green">That's right! This quiz extension is awesome!</span>
- Maybe...
||<span style="color:red">No, not maybe, it is awesome!</span>
- I don't care
||<span style="color:red">Pfft...have some appreciation!</span>
- No, it's horrible
||<span style="color:red">No, you're horrible! Jk, lolz. o.O</span>
</quiz>
:Tried it out on a [[High School Engineering/Discovering Engineering|page]] I created. I'm liking it. I can use a div with the "printonly" class to hide a section with the answers until a reader goes to print. Using {{tl|hiddenh2}} or similar for that section will also hide the heading from the page's contents. Best of both worlds. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 00:49, 8 February 2011 (UTC)
:: Great! I knew you'd like it! I am suprised it hasn't been integrated earlier, and only 5 or 6 other Wikimedia projects have it integrated. --[[User:Girdi|Girdi]] ([[User talk:Girdi|discuss]] • [[Special:Contributions/Girdi|contribs]]) 00:53, 8 February 2011 (UTC)
::: That fixes the IE collapse problem! It's awesome all right. :) [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 08:34, 8 February 2011 (UTC)
::::Looks great :) already given it a shot with some success. Saves messing around hiding answers yourself. --[[User:ErrantX|ErrantX]] ([[User talk:ErrantX|discuss]] • [[Special:Contributions/ErrantX|contribs]]) 16:50, 8 February 2011 (UTC)
{{outdent|::::}}
Is there any way to usefully have more than one quiz on a page? On [[Help:Quizzes]] (substantially imported from [//en.wikiversity.org/wiki/Help:Quiz v:Help:Quiz]), submitting one quiz on the page causes all the quizzes on the page to be graded. One would think if this problem ''could'' be gotten around, the Wikiversitarians would have done so for the help page. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 19:18, 8 February 2011 (UTC)
== $wgUseCommaCount ==
Please provide your position on setting [[mw:Manual:$wgUseCommaCount|$wgUseCommaCount]] to true for determining the method of counting content pages, with discussion [[Wikibooks:Reading_room/Technical_Assistance#Page_counts_are_incorrect|in the technical room]]. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 23:15, 6 February 2011 (UTC)
* [[File:Symbol support vote.svg|15px|alt=|link=]] '''Support''' – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 16:47, 4 February 2011 (UTC)
* [[File:Symbol support vote.svg|15px|alt=|link=]] '''Support''' --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 19:57, 4 February 2011 (UTC)
* [[File:Symbol support vote.svg|15px|alt=|link=]] '''Support''' [[User:QuiteUnusual|<font color="#E66C2C">'''QU'''</font>]] <sup>[[User talk:QuiteUnusual|<font color="#306754">TalkQu</font>]]</sup> 23:31, 6 February 2011 (UTC)
* [[File:Symbol support vote.svg|15px|alt=|link=]] '''Support''' --[[User:Girdi|Girdi]] ([[User talk:Girdi|discuss]] • [[Special:Contributions/Girdi|contribs]]) 00:11, 7 February 2011 (UTC)
* [[Image:Symbol support vote.svg|15px]] '''Support''' [[User talk:Tempodivalse#top|'''''Tempodivalse''''']] 15:38, 7 February 2011 (UTC)
[[bugzilla:27256|27256]] filed. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 14:24, 8 February 2011 (UTC)
== Cookbook meta ==
Ther is any way to use cookbook templates for other type of receipes, not necessary food related? I'm thinking at photographic formulas that are not covered by copyrights ''per se'' and could easily be used by many people. I'm very interested in this topic and i know couple of others that are too. Any ideas will be much appreciated. {{unsigned|Atelierelealbe}}
:It would be relatively simple to create "clones", appropriately modified, of the Cookbook templates (e.g., <nowiki>{{recipe}}</nowiki>) - assuming that's what you mean. Or, do you mean by "template", following the structure of a typical Cookbook page? If so, that's even easier. [[User:QuiteUnusual|<font color="#E66C2C">'''QU'''</font>]] <sup>[[User talk:QuiteUnusual|<font color="#306754">TalkQu</font>]]</sup> 14:09, 24 February 2011 (UTC)
== Bunch of proposals ==
===Button to add/remove all pages of a book to one's watchlist===
This could be done fairly easily with some Javascript and the Mediawiki API. (I'm not sure where the button should go (any ideas?), but it can be done.) --[[User:Yair rand|Yair rand]] ([[User talk:Yair rand|discuss]] • [[Special:Contributions/Yair rand|contribs]]) 23:54, 6 February 2011 (UTC)
: You can use the feed from [[Special:RelatedChanges/Category:Esperanto]] for example to watch an entire book without the need for JavaScript. That method will also begin showing changes for any new pages added to a book as long as the category is maintained. With the JavaScript approach, only pages that exist at the time the button was clicked would be added to one's watchlist. I think a better option would be to create an MediaWiki extension to allow books to be watched, and such an extension could even possibly alert people when pages in a book are added, deleted, or renamed. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 00:17, 7 February 2011 (UTC)
::Yes, that would be a much better solution, if it were possible. Unfortunately, the process to get an extension reviewed can take years, so it really isn't a viable solution. --[[User:Yair rand|Yair rand]] ([[User talk:Yair rand|discuss]] • [[Special:Contributions/Yair rand|contribs]]) 02:13, 7 February 2011 (UTC)
::: Was just thinking about that today! That'd be great to just let all pages falling under BOOK/subpage/subpage to be added to a watchlist! I support. --[[User:Girdi|Girdi]] ([[User talk:Girdi|discuss]] • [[Special:Contributions/Girdi|contribs]]) 02:34, 7 February 2011 (UTC)
:::: I was thinking a while back (before I got sidetracked and went on de facto wikibreak from Wikipedia) of floating the idea of an extension of this nature at [[w:Wikipedia:Village pump (idea lab)]], to see if I could drum up any interest, or other interesting feedback. My hope was that users on many projects, including Wikipedia, might find it useful to be able to auto-watch all new subpages of, say, a requests page (deletions, adminships, what have you), an elections page, or the like. (Anything whatever to do with Arbcom? All specializations of the MOS?) Cross-project support from Wikipedia might help move things along.
:::: This would require a proposal flexible enough to gain wide appeal, and potentially efficient enough that the devs wouldn't balk at it. A variant I've been mulling over: a "subpages" bit on each item on one's watchlist, and an extra timestamp associated with each page. When you watch a page with subpages bit on, all its existing subpages also get watched. When a new subpage is created, it updates the subpage-creation timestamp of its ''longest-named existing ancestor'' (e.g., if pages <code>foo</code> and <code>foo/bar</code> exist, and you create <code>foo/bar/quux</code>, only the subpage-creation timestamp of <code>foo/bar</code> would be updated). And when you check your watchlist, if you're subpages-watching a page, and its subpage-creation timestamp is more recent than the last time you checked, then its subpages are checked to see if they were created since then and, if they were, they get watched. (That's a depth-first search of its subpages, but it doesn't search for further descendants of any subpage that already existed the last time you checked your watchlist.) --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 03:38, 7 February 2011 (UTC)
:::::That sounds pretty complicated, with very little usefulness for Wikipedia. I don't think that the likelihood of it being implemented is very good. --[[User:Yair rand|Yair rand]] ([[User talk:Yair rand|discuss]] • [[Special:Contributions/Yair rand|contribs]]) 00:06, 8 February 2011 (UTC)
:::::: Although I don't agree with "very little usefulness" on an absolute scale —my recent thoughts of pitching to Wikipedia were stirred up by, iirc, a wish for functionality expressed by a Wikipedian (I should track that down while I still can)— my plan to get the functionality without unacceptably slowing things down did, I agree, result in data structures out of proportion to the functionality provided. I.e., too complicated.
:::::: Tacking a different tack, and keeping in mind that recent changes of a category requires actively checking, omits pages improperly categorized, and omits talk pages,
{{outdent|:::::}}
given a javascript means to add all existing pages of a book to a user's watchlist, is there a way to arrange to automatically repeat that every once in a while, so that new pages eventually get picked up as well (even though not instantly)? We might want to adjust the interval between repetitions depending on the user's activity level; at the extreme, inactive users don't need the updates while they remain inactive. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 15:32, 8 February 2011 (UTC)
: Given that all subpages start with the same prefix, I think returning all changes for pages beginning with a given prefix should be easy to do. No need for bit flags or complicated structures. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 15:39, 8 February 2011 (UTC)
:I don't think that repeatedly automatically rewatchlisting entire books would be workable. --[[User:Yair rand|Yair rand]] ([[User talk:Yair rand|discuss]] • [[Special:Contributions/Yair rand|contribs]]) 14:39, 15 February 2011 (UTC)
*I think the current system is good enough for me. Thanks to Lupin, it is possible to watch all the pages in a cat without leaving the page. It's a very useful gadget. 14:59, 27 February 2011 (UTC)
===Enlarge the size of the title on book front pages===
The title pages right now really don't look like title pages. Enlarging the titles could be done either with Javascript, by adding a DISPLAYTITLE bit to some common template, or by just having a new template and adding it to each title page. --[[User:Yair rand|Yair rand]] ([[User talk:Yair rand|discuss]] • [[Special:Contributions/Yair rand|contribs]]) 23:54, 6 February 2011 (UTC)
: Can be done with CSS too. Have you tried editing [[Special:MyPage/skin.css|your personal css page]]? --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 00:20, 7 February 2011 (UTC)
::CSS can detect whether the page is a title page (non-subpage) or not? How? --[[User:Yair rand|Yair rand]] ([[User talk:Yair rand|discuss]] • [[Special:Contributions/Yair rand|contribs]]) 00:23, 7 February 2011 (UTC)
:::By the presents or absents of the subpages class. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 00:29, 7 February 2011 (UTC)
::::There's a CSS class that indicates whether the page is a subpage? What is it called? AFAICT, the only class on the first heading is <tt>.firstHeading</tt>, whether it's a subpage or not. --[[User:Yair rand|Yair rand]] ([[User talk:Yair rand|discuss]] • [[Special:Contributions/Yair rand|contribs]]) 00:48, 7 February 2011 (UTC)
::::: I guess you misunderstood my previous comment. There is literally a class="subpages" on a html element when a page is a subpage. That class isn't placed on the first heading though. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 15:42, 8 February 2011 (UTC)
::::::Oh, I didn't know that CSS could style something based on whether a certain class exists on the page. If it can, then that method should definitely be used instead of JS or DISPLAYTITLE. --[[User:Yair rand|Yair rand]] ([[User talk:Yair rand|discuss]] • [[Special:Contributions/Yair rand|contribs]]) 20:53, 8 February 2011 (UTC)
===Standard navigation bar===
If an #ifexist function in the tagline checked whether the current page's superpage had a subpage titled "X/Navigation" (or something like that), and transcluded it if it did, and the /Navigation page had a standard template which had a list of the various pages in the section/book, it would be pretty simple to have a bunch of parserfunctions in it provide back and forward buttons leading to the following/preceding pages in the book... --[[User:Yair rand|Yair rand]] ([[User talk:Yair rand|discuss]] • [[Special:Contributions/Yair rand|contribs]]) 23:54, 6 February 2011 (UTC)
: I previously tried to use wiki markup in the tagline, but it displayed the text as if wrapped with nowiki. Would require a software change to be doable. A MediaWiki extension could probably do this too. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 00:24, 7 February 2011 (UTC)
::Portuguese Wikibooks does something like this, only instead of /Navigation they use subpages of a "list of chapters". See [[:pt:Special:PrefixIndex/Template:Lista_de_capítulos/]]. Then they use [[:pt:Template:Capítulo_anterior]] and [[:pt:Template:Capítulo_posterior]] called from [[:pt:MediaWiki:Retrievedfrom]] to create automatic forward and backward navigation based on the current page and where it is placed in that list of chapters. The MediaWiki parser functions might not fly on a larger wiki, since that interface is called on every page load, but I thought I'd mention their system. Possibly something could get put into {{tl|BookCat}}. It seems like Pi zero is working on a similar system with [[Template:Navlist]]. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 00:54, 26 February 2011 (UTC)
===Redesign title format===
(I proposed this a while ago and it was archived without really getting anywhere, but I think that something really does need to be done about this...) The title format on Wikibooks of BOOKTITLE/SECTION/PAGE format really looks ridiculous. Certain books have tried simply fiddling with the title to either just show the book title on every page, or just the page title, but neither of these really work well, and the format should really be standardized. I really don't have any idea of what kind of thing should be there at the top of the page indicating what the user is reading, but I'm pretty sure that the current format is not the best solution. Anyone want to throw around some ideas? --[[User:Yair rand|Yair rand]] ([[User talk:Yair rand|discuss]] • [[Special:Contributions/Yair rand|contribs]]) 23:54, 6 February 2011 (UTC)
:A few notes: the archived discussion is at [[Wikibooks:Reading room/Proposals/2010/August#Book page top header]]. The template being used for the title tweaking mentioned above is {{tl|displaytitle}} (tab renaming doesn't work on Vector). Personally, I'm not a fan of the multi-line options. I know the titles take some getting used to if you're used to Wiktionary titles. Probably even before looking at technical implementations, we'd have to decide whether this would be something all books would be fine with having standardized since there are different implementations currently, as noted above. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 04:55, 7 February 2011 (UTC)
:I also agree that the display title format on Wikibooks (of BOOKTITLE/SECTION/PAGE) should have be given some extra consideration, users should be able to turn off or customize it on <s>the</s> their preferences.
:The current default state can be seen as preventing the use of deep page trees (this can be bad or good) and the font size by default could be smaller.
:Personally my views is that beyond the title page the need to have the tree path in evidence is mostly null (I appreciate having easy access to it when editing), beyond this I wouldn't have the foggiest idea on how it could be improved.
:As for the establishing what should be there, I also doubt that a consensus could easily be reached, as Adrignola hints above, and that if reached it should be an imposition of a style. I would support some work on [[Wikibooks:Manual of Style]] to provide some guidelines on how to make the tweak and establish what should be acceptable. That would be useful and a step toward determining what could be altered. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 06:34, 7 February 2011 (UTC)
::The complication here that, as I remarked (ad tedium) at the [[WB:Reading room/General#"Future of Wikimedia"|general reading room thread]] about Yair rand's essay at meta (circles within circles), Wikibooks really isn't a project made up of larger units than Wikipedia's — it's a collection of very small separate projects, each with such small scope that very few of them can sustain a continuous community. So title format isn't something to customize primarily by user, it's to customize primarily by ''book'', with different books wanting different formats.
::An obvious (probably too obvious) thought is that there might be some sort of per-book customization we could rig using {{tl|BookCat}} — though I suppose it'd have to be JS, since the [[w:WP:DISPLAYTITLE|<code>DISPLAYTITLE:</code>]] magic word doesn't seem to be flexible enough for what we want. (I'd be tempted to use {{tl|Navlist}} instead, except that still needs significant work before I consider it ready for prime time.) --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 12:48, 7 February 2011 (UTC)
:::Both views can be defended (I've unsuccessfully attempted to read your past discussion on the subject so I'm expanding only on the above lines), personally in my edits I've attempted to create links to other works on Wikibooks (if relevant to the section I'm editing, going so far as to directly pointing to other Wikibooks that deal more in depth with an issue that goes outside of the scope). I'm also a defender (and understand that this view is not shared by all) that wikilinks to Wikipedia are valuable to works, readers and even editors, this is something that I make a point in defending when dewikification is mentioned in a discussion. On the other hand I fully agree that books, to some degree, should be allowed individuality and that too much normalization can restrict creativity, even create a barrier to participation. Having said that I recognize that having something in the lines of [[Wikibooks:Manual of Style]] as to establish best practices in this matters is a good thing.
:::Over time I've created some aversion to navigation templates, as an editor (they are costly to maintain) and as a user since they can change dramatically from work to work and often are outdated, in reality they bring no added benefit, if they define navigability not structure. We have now automated paths to deal with navigational problems that make most of this types of templates unnecessary distractions...
:::I have used [[w:WP:DISPLAYTITLE|<code>DISPLAYTITLE:</code>]] recently in the [[Hypnosis]] work and will be extending the use to other works I actively contribute to, in that respect Yair rand call for consistency or at least a chance to have people state valid objections or establish best practices or even alternatives is welcomed. PS: {{tl|Navlist}} Seems not to be in use anywhere. I've just looked at it for the first time and some of the functionalities seem replications of stuff the browser already does... --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 15:37, 7 February 2011 (UTC)
::::The navlist suite of tools is used by [[Conlang]], which is my test case for it until I feel it's polished enough to start advocating it for additional books (which will tend to freeze certain elements of its design). Take a look at [[Conlang]] for a practical illustration of what it does (which may get the idea across more clearly than the documentation does). Upgrades I have in mind are additional header/footer formats, support for automatic generation of "Print version" pages, and support for a sort of page-indexed-information (e.g. bibliography) mechanism I've been mulling over. (Oh, and a small but significant tweak: I want to move the default location for navlist pages from mainspace to template space, because really that's where it belongs.) --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 16:46, 7 February 2011 (UTC)
They have a gadget at pt.wikibooks that will hide all but the last portion of the path, with the book/chapter shown by virtue of the breadcrumb links. See [http://translate.googleusercontent.com/translate_c?hl=en&sl=pt&tl=en&u=http://pt.wikibooks.org/wiki/T%25C3%25B3pico:Wikilivros:Di%25C3%25A1logos_comunit%25C3%25A1rios/Gadgets_para_a_simplifica%25C3%25A7%25C3%25A3o_de_t%25C3%25ADtulos_e_categorias&rurl=translate.google.com&twu=1&usg=ALkJrhgCYjVgiG0KhGg5RjX1eEJkmrfyHg translated discussion]. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 05:21, 25 February 2011 (UTC)
0djmgvm8h00n5upbo7u77t6gu5zbio2
Wikibooks:Reading room/Administrative Assistance/Archives/2011/February
4
249854
4640095
2072698
2026-06-13T13:06:26Z
ShakespeareFan00
46022
4640095
wikitext
text/x-wiki
{{talkarchive}}
== Reviewer rights ==
May I suggest the users [[User:Chi Sigma]] and [[User:Tempodivalse]] are given reviewer rights. I'm not around much recently to review edits and find that both of these users have made many good contributions. [[User:SunCreator|SunCreator]] ([[User talk:SunCreator|discuss]] • [[Special:Contributions/SunCreator|contribs]]) 23:20, 20 February 2011 (UTC)
:Permissions requests would need to go to [[Wikibooks:Requests for permissions]]. However, both of these users have reviewer rights through autopromotion.
:*{{userrights|Tempodivalse}}
:*{{userrights|Chi Sigma}}
:– [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 23:51, 20 February 2011 (UTC)
== Stability: [[Children's Authors]] ==
This book, like WJ books, is aimed partly at children. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 15:02, 25 February 2011 (UTC)
n9ch62eb05mwklfddr423gj3gssj1hr
User talk:Nascar1996
3
250349
4640164
2074438
2026-06-13T15:47:57Z
ShakespeareFan00
46022
4640164
wikitext
text/x-wiki
Welcome, Nascar1996!
{| style="background:white; border:1px solid #abd5f5;; padding:0px; border-spacing:0px; color: #000000;"
! style="background:#d0e5f5; color: #000000;" | [[Wikibooks:Welcome|Getting started]] with Wikibooks
|-
| style="padding:5px;" |
* Wikibooks is a collection of open-source textbooks. Find out [[WB:WIW|what this means]].
* To sign your name (on discussion pages), use four tildes, like this: ~~~~
* Learn how to [[Using Wikibooks|use Wikibooks]] and learn more about the community.
* [[WB:CCO|Explore]], [[Wikibooks:Be bold|be bold]], and have fun!
|}
Come introduce yourself in the [[Wikibooks:Reading room/General|general reading room]] or your project in the [[Wikibooks:Reading room/Projects|project reading room]]. If you have any questions, you can ask in the [[Wikibooks:Reading room/Assistance|assistance reading room]] or contact me personally. [[User:Diego Grez|Diego Grez]] ([[User talk:Diego Grez|discuss]] • [[Special:Contributions/Diego Grez|contribs]]) 04:59, 27 March 2011 (UTC)
== Hi ==
Here's some quick tips on getting started, as you requested on IRC.
*Use subpages. To start the 'chapter' chapter of 'foobar' book, go to [[Foobar]]. Type in <nowiki>[[/chapter]]</nowiki>. It should be a redlink on which you can click to get to the chapter chapter.
*Cite templates are used here. You can see them in action at [[History of Hong Kong/Bibliography]].
*The discussion rooms are at [[WB:RR]]. You can talk about your planned book at the Projects Reading Room ([[WB:PROJECTS]]) and seek assistance at the Asisstance Reading Room ([[WB:HELP]]).
Thanks for your enthusiasm in WB and good luck! [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 05:13, 27 March 2011 (UTC)
:Thank you for your tips! [[:User:Nascar1996|'''<font color="black">Nascar</font><font color=" #1234aa">1996</font>''']] ([[:User talk:Nascar1996|discuss]] • [[:Special:Contributions/Nascar1996|contribs]]) 05:21, 27 March 2011 (UTC)
bttox2cczohmfnd01ra5r58n7di57cv
User talk:86.107.179.201
3
250525
4640116
2077950
2026-06-13T15:24:18Z
ShakespeareFan00
46022
4640116
wikitext
text/x-wiki
==Welcome!==
[[Wikibooks:Welcome|Welcome to Wikibooks]]! You do not need to [[WB:LOGIN|log in]] to read or edit books at Wikibooks, but creating an account is quick, free and non-intrusive, requires no personal information, and gives you many benefits, including:
* A username of your choice for directly attributing [[Special:Contributions/{{PAGENAME}}|your contributions]].
* A personal user page, a [[WB:TALK|talk page]], and a [[Help:Tracking changes#Watching pages|watchlist]] to monitor pages that interest you.
* The ability to [[WB:MOVE|rename]] pages and to [[WB:PREFS|customize]] some aspects of the Wikibooks interface.
* People will recognize you as a member of the Wikibooks community, and you will be eligible to [[WB:REVIEW|review]] pages.
* Your IP address will be hidden from most users, which may give you a greater sense of security and privacy.
We hope that you choose to join our community as a Wikibookian and [[Special:Userlogin|create an account]].
Feel free to ask any questions on my talk page or in the [[Wikibooks:Reading room|Reading room]]. Be sure to sign your talk page comments with four tildes (<nowiki>~~~~</nowiki>).
By the way, thanks for fixing my mistakes in [[Geometry for Elementary School]]! ;-) [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 03:45, 3 April 2011 (UTC)
o0hmt4fndiqeyxr5howxmkc69d9igmz
Wikibooks:Reading room/Proposals/2011/March
4
250694
4640154
2129819
2026-06-13T15:41:58Z
ShakespeareFan00
46022
4640154
wikitext
text/x-wiki
{{talkarchive}}
== Define $wgCollectionHierarchyDelimiter = "/" for Wikibooks project(s) ==
I would like to propose that the definition of <code><nowiki>$wgCollectionHierarchyDelimiter = "/"</nowiki></code>, so that when creating a collection (e.g. from the category of a book that already exists but that does not have a collection), the extension save the page with the following syntax in the collection pages:
<nowiki>:[[</nowiki>Book name/Chapter name'''|Chapter name'''<nowiki>]]</nowiki>
instead of the standard syntax, which is
<nowiki>:[[Book name/Chapter name]]</nowiki>
With this change, the title of each page will be correctly displayed without the prefix "Book name/" (and therefore it won't be necessary to correct the collection page right after creating it from [[Special:Book]]). This configuration is available since [[rev:73454]] of the extension and I think it should be enabled by default on all Wikibooks projects, since most projects use the "/" as delimiter. See also [[mw:Special:Code/MediaWiki/73454#c12899|these comments]].
What do you think? [[:pt:User:Helder.wiki|Helder]] 23:58, 14 March 2011 (UTC)
:I like it. I think most of the time that's what someone would want, and in the few cases where it's ''not'' what is wanted, it can be fixed manually. --[[User:Jomegat|Jomegat]] ([[User talk:Jomegat|discuss]] • [[Special:Contributions/Jomegat|contribs]]) 12:28, 15 March 2011 (UTC)
:That would be great. I've always had to fix that by hand and cases where you wouldn't want that would be the exception, not the rule. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 12:42, 15 March 2011 (UTC)
:{{question}} What are collections used for on Wikibooks? (I gather they are, from the comments here?) --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 13:19, 15 March 2011 (UTC)
::Collections are the basis for auto-generating a PDF. The PDF may include several pages (or... a "collection" of pages). The PDF can be turned into a dead-tree version of a book. --[[User:Jomegat|Jomegat]] ([[User talk:Jomegat|discuss]] • [[Special:Contributions/Jomegat|contribs]]) 13:43, 15 March 2011 (UTC)
::: Where, then, do ".../Print version" pages fit into this? If the entire contents of the book are on a single page, already in the correct order, would one use a collection of that one page? --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 11:33, 16 March 2011 (UTC)
::::My opinion is that collections supersede print versions. Often print versions of books run into the transclusion limit and so don't actually contain the full book. Collections have no such limit. Additionally, updating a collection is far easier as you don't have to wait for all the pages to be rendered in your browser before you update the list of pages that are included. The PDF generated can be printed, saved, or ordered as a physical book. There is no messing with {{tag|noinclude}} either as you can add templates to [[:Category:Exclude in print]] (category name could be changed in settings) or use {{tl|hide in print}}/{{tl|only in print}} for anything else. It is a far superior solution both technically and for ease of use, with more flexibility. "Print versions" are a hack in comparison. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 12:45, 16 March 2011 (UTC)
::::I think print versions of a book are a relic from a time when people generated PDFs on their own infrequently and could easily become dated compared to the live version. I guess you could use a book's print version as a single page collection. I think more people would find updating a collection with new pages or changes in the order using the collection interface easier though. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 12:58, 16 March 2011 (UTC)
:::::I find the idea quite useful. Adrignola, thanks for writing about the templates! [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 13:58, 16 March 2011 (UTC)
:::::: Interesting. A particularly likely use I've had in mind for my [[Template:Navlist|Navlist]] suite is to automatically generate Print version pages: just as the navlist automatically figures out what links to put on navigation boxes at the tops and bottoms of pages, it should be easy to generate translusions of all the pages of the book in order, with the navigation boxes simply automatically suppressing themselves (doesn't involve noinclude's).
:::::: What are the translusion limits that print versions come up against? --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 17:40, 16 March 2011 (UTC)
::::::: Translusion invokes template expansion. I think each template subtracts from a time limit, so if one template eats whatever time remains, than the rest of the templates won't be expanded. I believe some operations are considered more expensive and subtract from the time faster as well. I suggest not relying too much on limits or trying to work around them though as they can change at any time as the parser is changed and improved on. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 18:18, 16 March 2011 (UTC)
:::::::Pi zero, do you mean something like [https://secure.wikimedia.org/wikibooks/pt/w/index.php?title=Otimiza%C3%A7%C3%A3o/Imprimir&diff=prev&oldid=167770 this kind of automatic print version] generated from the [https://secure.wikimedia.org/wikibooks/pt/wiki/Template:Lista_de_capítulos/Otimização?uselang=en list of pages of the book]?
:::::::Wikipedia has a page about the limits: [[w:Wikipedia:Template limits]]. The most problematic one for print versions (mainly the automatic version) is the [[:Category:Pages where template include size is exceeded]]. It makes (almost?) [https://secure.wikimedia.org/wikibooks/pt/w/index.php/?diff=prev&oldid=214122 impossible] to get an automatic print version for long books.
:::::::Ideally, Collection extension [[mw:Extension:Collection/Wishlist#Output_HTML|should have the option to output HTML]] too (or the feature could be added to [[mw:Extension:BookManager]]), so that editors don't need to keep various "lists of chapters of a book" syncronized (table of contents, print version, collection, navigation...). [[:pt:User:Helder.wiki|Helder]] 13:18, 17 March 2011 (UTC)
:For the record: the change was requested on [[bugzilla:29648|Bug 29648]]. [[:pt:User:Helder.wiki|Helder]] 22:03, 29 June 2011 (UTC)
jb3bb5heosvcaf2v1vvptm8qwzm6q06
Wikibooks:Reading room/Proposals/2011/April
4
251200
4640134
4419307
2026-06-13T15:33:09Z
ShakespeareFan00
46022
4640134
wikitext
text/x-wiki
{{talkarchive}}
== A PROPOSAL WHICH MIGHT GIVE A BIG MOMENTUM TO WIKIBOOKS ==
There is a webpage called [http://www.freescience.info '''Free-Science'''] which has over 2000 files a considerable percentage of which are serious/well written science books which are put to internet by their authors. These books are free of charge however this doesn't mean of course the content is open though I assume some of the content has Wikibooks compatible licence. My point is if we can contact authors for permission to export their books to wikibooks with a wiki compatible licence, Wikibooks can gain a huge momentum I think.[[User:Condmatstrel|Condmatstrel]] ([[User talk:Condmatstrel|discuss]] • [[Special:Contributions/Condmatstrel|contribs]]) 12:50, 1 April 2011 (UTC)
:Just so you don't feel ignored :), I didn't knew that site, some of the works available are very interesting. Sadly the licenses and copyrights aren't clear at least before you get some of the works. Added to my todo list , thanks... --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 04:42, 2 April 2011 (UTC)
== American English/British English ==
The English Wikibooks should probably be split into American English and British English Wikibookses. It would resolve the multifarious vicious conflicts regarding this. --[[User:Whoop whoop pull up|Whoop whoop pull up]] <sup>[[User talk:Whoop whoop pull up|Bitching Betty]] | [[Special:Contributions/Whoop whoop pull up|Averted crashes]]</sup> 06:17, 2 April 2011 (UTC)
:That's not how even en Wikipedia works, where the conflict is much greater and there are sufficient editors to handle all the additional work that would be created by having two projects. If we did it here we'd end up with even less content I think. A nice gadget that translated from one to the other based on user preferences would be great, if somewhat technically challenging. Or maybe just label each book as "Written in XXXX English" so at least the reader knows and then use an associated category so the books can be sorted according to language. Generally speaking I only change between British and US English where both are mixed up badly in one page of one book. Other than that I just leave it alone. I don't know how many other people even bother trying to be consistent and personally I don't think it matters that much, I've just got OCD for tidiness. It'll be interesting to see what other people think [[User:QuiteUnusual|<font color="#E66C2C">'''QU'''</font>]] <sup>[[User talk:QuiteUnusual|<font color="#306754">TalkQu</font>]]</sup> 07:04, 2 April 2011 (UTC)
::I think it doesn't really matter if you mix the two. Afterall, what about Australian, New Zealandic, Canadian, and South African English as well? If you don't know a word in another dialect, use wiktionary. Obviously to look consistant we should try our best to keep books in their respective dialects, but if you are an American contributing to a section of a book written in British English, I don't see why there should be any serious conflict writing "color" instead of "colour". Afterall, there isn't a British English Wikipedia nor an AMerican English WIkipedia and you can find articles written in both dialects in a mix. --[[User:Girdi|Girdi]] ([[User talk:Girdi|discuss]] • [[Special:Contributions/Girdi|contribs]]) 08:54, 2 April 2011 (UTC)
:::I agree and it has been so, as far as I know. You can specify (by proposing and adopting) a specific preference in a given work. This not only makes it clear to editors but will avoid conflicts if you do implement a standard. I have done so in some of the works I do contribute, not only on language but on the use of hyphenation for instance, I find that this makes life easier for all especially in lengthy and complex works that wouldn't be possible or consistent without establishing this simple conventions. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 10:03, 2 April 2011 (UTC)
:Should book contributors agree, an [[Help:Editnotices|editnotice]] can be set up to appear when editing any page of the book detailing the version of English being used. I set this up for the contributors to [[Muggles' Guide to Harry Potter]]; try editing a page in it and see the [[Template:Editnotice#Examples|example]] on the template that implements it. Beyond that, we saw what happened with Simple English Wikibooks—it was closed and mostly merged here. The Foundation will also not approve any new English variant wikis. Redcoats and Yankees will just have to get along. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 12:42, 2 April 2011 (UTC)
== Bot, gadget or tool for dewikification ==
It would be great to have a bot, gadget or tool that simplifies the dewikification process by handling simple tasks such as delinking, removing Wikipedia-specific templates, and replacing Wikipedia templates such as {{tl|ndash}} with the actual characters (–). [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 12:17, 3 April 2011 (UTC)
:If you made a module with a bunch of regex for [[w:WP:AWB|AutoWikiBrowser]], that would work. Easier said than done, though. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 15:43, 3 April 2011 (UTC)
== Wikibook on Vtk ==
''Moved to [[WB:PROJECTS]]'' [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 09:55, 4 April 2011 (UTC)
kx9xybmgap1dayaucscwpxh49p7w0le
Wikibooks:Reading room/Archives/2011/April
4
251232
4640141
4615050
2026-06-13T15:36:17Z
ShakespeareFan00
46022
4640141
wikitext
text/x-wiki
{{talkarchive}}
== Wikibook on Vtk ==
I have been using vtk (and wikipedia!) for a long time; i think that the wikibook format is ideal for a compiling a introductory & comprehensive guide to vtk.
vtk is an amazingly powerful system which i think is underutilized/not-well-known due to its steep learning curve; this is partly due to the fact that there are not many good introductions available (the official book is quite outdated). After banging my head about the mailing lists (and a lot of other unnecessary waste of time) i finally do know a bit about it; but i would like future readers to be able to easily learn it. Anyone willing to help? I will be able to contribute significantly only starting in June, as i am quite busy at this moment. I wanted to keep this note so that if anyone else is interested, please start it! [[User:Pratik.mallya|Pratik.mallya]] ([[User talk:Pratik.mallya|discuss]] • [[Special:Contributions/Pratik.mallya|contribs]]) 08:45, 4 April 2011 (UTC)
<small>Moved from [[WB:PROPOSALS]] [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 09:56, 4 April 2011 (UTC)</small>
== Advanced Economics ==
I'm typing up my micro notes in 'Advanced Microeconomics' and adding discussion / explanation as I can. Long term, I intend to stick to the project and add exercises, images, citations, et cetera.
I want to start 'Advanced Macroeconomics' but I dont know how. As soon as I can get going on advanced macro, I will. That said, I'm not a macro economist, nor do I want to be. I hope I can get the book off the ground, but my primary focus in the future will be micro.
The books are intended to be graduate level, and my contributions should provide a reasonable coverage of what an average first year grad student should know.
I do not intend on creating a 'math for econ' book. Relevant mathematical references should be included in their respective chapters / books as appendix. [[User:Jcress410|Jcress410]] ([[User talk:Jcress410|discuss]] • [[Special:Contributions/Jcress410|contribs]]) 17:39, 6 April 2011 (UTC)
Also, I'm brand new to wiki books and wiki markup. I could use help with formatting and making everything look presentable. I'd appreciate any edits to that effect (whether you know anything about 'advanced economics' or not!)[[User:Jcress410|Jcress410]] ([[User talk:Jcress410|discuss]] • [[Special:Contributions/Jcress410|contribs]]) 00:21, 8 April 2011 (UTC)
:I will gladly help with any formatting on your new wikibook. Welcome to the project! --[[User:Thereen|Thereen]] ([[User talk:Thereen|discuss]] • [[Special:Contributions/Thereen|contribs]]) 01:01, 8 April 2011 (UTC)
== How To: upload arbitrary latex ==
I've created flash cards in latex using [http://ctan.org/tex-archive/macros/latex/contrib/flashcards flashcards], and i think they'd be good to include in the Advanced Microeconomics text, question: do i need to compile / upload pdf or is it possible to upload the tex and allow edits? I dont mind uploading the file, but that wouldnt allow others to contribute? [[User:Jcress410|Jcress410]] ([[User talk:Jcress410|discuss]] • [[Special:Contributions/Jcress410|contribs]]) 17:46, 6 April 2011 (UTC)
:We support LaTeX within {{tag|math}} tags. Please see our tutorial at [[Help:Formulas]]. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 12:27, 7 April 2011 (UTC)
:I've figured out {{tag|math}}, i was just wondering how I should handle supplementary materials (flashcards, beamer presentations, et cetera) [[User:Jcress410|Jcress410]] ([[User talk:Jcress410|discuss]] • [[Special:Contributions/Jcress410|contribs]]) 20:14, 7 April 2011 (UTC)
::If you can't reproduce them effectively using the wikicode, you can upload PDFs or images to Commons using the "upload file" link at left. Feel free to make use of multimedia, since Wikibooks aren't paper and we can take advantage of the electronic medium available to us. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 21:46, 7 April 2011 (UTC)
== Importing books created in English Wikipedia ==
I have created two books in Wikipedia.org can I import them here?--[[User:Akkida|Akkida]] ([[User talk:Akkida|discuss]] • [[Special:Contributions/Akkida|contribs]]) 09:23, 3 April 2011 (UTC)
:The "books" at Wikipedia are simply collections of articles. If you need to import content from Wikipedia to start the writing of a book here, you can [[WB:RFI|request an import]] of the material. But books here need to have a unified narrative and style and should not be collections of Wikipedia articles, so you'd have to know the subject material in order to develop a true textbook. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 15:14, 3 April 2011 (UTC)
Is it inappropriate to copy/paste sections of english Wikipedia articles in order to prevent duplication of effort? If so, how is attribution handled? [[Special:Contributions/74.142.220.58|74.142.220.58]] ([[User talk:74.142.220.58|discuss]]) 16:45, 6 April 2011 (UTC)
:Yes it is inappropriate, it is a copyright / attribution violation. You need to provide an inline reference back to the permanent URL of the source in WP. Alternatively, the WP page can be imported with its history to WB [[User:QuiteUnusual|<font color="#E66C2C">'''QU'''</font>]] <sup>[[User talk:QuiteUnusual|<font color="#306754">TalkQu</font>]]</sup> 17:18, 6 April 2011 (UTC)
== Importing, translating a French Wikibook into an English Wikibook ==
I am interested in writing a Wikibook (in English). A recent search has shown that such a book has already been started on the French Wikibooks site. It makes a lot of sense to import and translate this book as a basis for an English one. Can anyone advise me on how best to do this?
Many thanks, [[User:Davidc|Davidc]] ([[User talk:Davidc|discuss]] • [[Special:Contributions/Davidc|contribs]]) 17:58, 19 April 2011 (UTC)
: Put the book's name on [[Wikibooks:Requests for import]] and the first admin to notice it will import it for you. The admin will then advise you where you can find the imported copy. --[[User:Jomegat|Jomegat]] ([[User talk:Jomegat|discuss]] • [[Special:Contributions/Jomegat|contribs]]) 00:26, 20 April 2011 (UTC)
::We can't import from any other language Wikibooks, however (without reconfiguration). Instead, please provide a permanent link to the page at fr.wikibooks (click "permanent link" in the toolbox at left) in the edit summary when you create a new page. This provides attribution, as required by the license on the site. Otherwise the content will be deleted as a copyright violation. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 00:27, 20 April 2011 (UTC)
== [[History of Hong Kong]] ==
[[History of Hong Kong]] is 25% finished so I'd like to hear opinions. I've done a lot of the Imperial Years section, and will finish it when I get to borrow the ancient history book again. I also started on the revolution chapter, which I plan to be rather long. I'd like to hear comments on the book. Also, if you're interested in repetitive work, there's some at [[Talk:History of Hong Kong]] - I need a lot of help on organising the index. Thanks [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 15:27, 3 April 2011 (UTC)
: Hi Kayau! Just from my first look at this wikibook, I would say a bit more text explaining the wikibook is needed on its front page. You need to hook potential readers and editors by getting them excited to read the content you've provided. Give them something like "Welcome to the '''History of Hong Kong''' wikibook! Hong Kong has a rich history consisting of migration, revolution, war and political strife. This wikibook aims to provide information on the island nation of Hong Kong, covering everything from Prehistoric times to the Hong Kong of today. Please read on and enjoy! If you wish to edit the History of Hong Kong wikibook, please read the About section of this wikibook for style guide information."--[[User:Thereen|Thereen]] ([[User talk:Thereen|discuss]] • [[Special:Contributions/Thereen|contribs]]) 16:50, 21 April 2011 (UTC)
== compile local? ==
Is there a compiler for wikicode that runs without a server (like latex) so one can edit wikicode locally (in vim) and check the code without using the actual 'edit' button? I find myself copy-pasting from vim into my browser a lot. [[User:Jcress410|Jcress410]] ([[User talk:Jcress410|discuss]] • [[Special:Contributions/Jcress410|contribs]]) 00:24, 8 April 2011 (UTC)
:I personally don't know of any, since MediaWiki's renderer operates on a server. You could set up a local installation of [[mw:|MediaWiki]] on your local desktop computer (also installing [[w:Apache HTTP Server|Apache]] and [[w:PHP|PHP]] to preview the output of the wikicode if you so desired. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 01:38, 8 April 2011 (UTC)
ep12jm9a78wdwgz6a8lach2v97s2e8s
Wikibooks:Reading room/Administrative Assistance/Archives/2011/April
4
252493
4640094
4615045
2026-06-13T13:06:03Z
ShakespeareFan00
46022
4640094
wikitext
text/x-wiki
{{talkarchive}}
== Unblock request ==
Please unblock [[User:Hoyojo]] and all socks not yet unblocked. He has been unblocked on the chinese wikipedia and has promised not to edit disruptively again. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 13:59, 11 April 2011 (UTC)
:Sorry, I'm confused - why would we unblock all the socks as well? Or any of them? The user was blocked for multiple account abuse - we certainly wouldn't unblock all those multiple accounts. How would we know what those socks are? What's the background to you "representing" this request? He is still blocked on zh.wikipedia and the accounts global contributions amount to edits to their own user page only. [[User:QuiteUnusual|<font color="#E66C2C">'''QU'''</font>]] <sup>[[User talk:QuiteUnusual|<font color="#306754">TalkQu</font>]]</sup> 15:49, 11 April 2011 (UTC)
::Seems it was Kayau who requested the original block: [[Wikibooks:Reading_room/Administrative_Assistance/Archives/2010/October#Cross-wiki_issues]]. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 18:04, 28 April 2011 (UTC)
bqalwq1k61yy89n1qxxl96z11zr6az4
Wikibooks:Requests for deletion/Wikijunior:Future
4
253944
4640159
2133899
2026-06-13T15:45:05Z
ShakespeareFan00
46022
4640159
wikitext
text/x-wiki
== [[Wikijunior:Future]] ==
{{closed|reason='''Kept''' No consensus. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 12:16, 22 June 2011 (UTC)}}
This is not a bad book. This is a really good one, extremely appealing to children, and is based firmly on known facts. However, this book doesn't belong to Wikbooks because of inevitable OR and possible NPOV issues. My suggestion is '''a Wikiversity transwiki'''. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 13:29, 25 January 2011 (UTC)
:So, what distinguishes this book from those in [[Subject:Futures studies]], specifically? – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 14:25, 25 January 2011 (UTC)
* {{comment}} [[WJ:Future]] might be more palatable if it had more to say about the grounds for its projections; it would be a very good thing to introduce kids to the rational modes of thought involved. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 14:39, 25 January 2011 (UTC)
* [[File:Symbol redirect vote.svg|15px]] '''Transwiki''': I agree with the Wikiversity transwiki because of the mentioned OR and NPOV issues. [[User:Holomanga|Holomanga]] ([[User talk:Holomanga|discuss]] • [[Special:Contributions/Holomanga|contribs]]) 16:26, 25 January 2011 (UTC)
*I think it is too soon for RfD this work, the problem here is more the content that can be reasonably covered, some may be difficult to present to the target age group. But the project was initiated in January 2011, it should be given more time to mature. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 07:33, 9 March 2011 (UTC)
**The general direction of the book, I believe, does not allow it to be within the scope of Wikibooks. In any case, the author, who should know best about the direction the book will follow, has agreed to the transwiki, which I believe shows that the book is suitable for WV. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 15:20, 9 March 2011 (UTC)
:::I'm not objecting to the move I was mostly objecting to the nomination itself and the practice in general. Nominating books so soon after creation has an high chance to alienate contributors, Holomanga started to contribute to the project as a registered user 7 January and the last edit was in the same day as the project was nominated, could be coincidence but often isn't.
:::At this point in time my post was only intended as an attempt to empower anyone willing to fight for the concept and is closely related to my position on the other works in the [[Subject:Futures studies]], moving it to Wikiversity will ultimately lead to changing the content to a different type of reader, in that respect the present content will probably not be very useful. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 19:21, 9 March 2011 (UTC)
* [[File:Symbol keep vote.svg|15px|alt=|link=]] '''Keep''' I think it should be kept, OR and NPOV issues are likely but not inevitable, if we try hard we can keep them out. Also, it's really not a bad book, lot of redlinks but that's likely because it's new (likely for any new book anyway, look at many of the sections of [[Micronations]]). --[[User:Whoop whoop pull up|Whoop whoop pull up]] <sup>[[User talk:Whoop whoop pull up|Bitching Betty]] | [[Special:Contributions/Whoop whoop pull up|Averted crashes]]</sup> 23:14, 1 April 2011 (UTC)
{{end closed}}
a2ciywzp39gkbxm38zplhjpmy2f9ayz
Wikibooks:Requests for deletion/Trigonometry Course
4
255163
4640142
2154562
2026-06-13T15:36:37Z
ShakespeareFan00
46022
4640142
wikitext
text/x-wiki
== [[Trigonometry Course]] ==
{{closed|[[File:Symbol delete vote.svg|15px|alt=|link=]] '''Delete'''. Consensus that we have accurate, superior alternatives. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 12:43, 7 August 2011 (UTC)}}
This book has not progressed very far. It is redundant, as it is unlikely ever to contain anything not covered by [[Trigonometry]]. Further, it is not very comprehensible. Probably, English is not the author's first language; this would explain the [[Trigonometry Course/Square Triangle|Square Triangle]].--[[User:Wisden|Wisden]] ([[User talk:Wisden|discuss]] • [[Special:Contributions/Wisden|contribs]]) 16:39, 24 February 2011 (UTC)
:Declaration of interest: I am a contributor to the Trigonometry book.--[[User:Wisden|Wisden]] ([[User talk:Wisden|discuss]] • [[Special:Contributions/Wisden|contribs]]) 16:43, 24 February 2011 (UTC)
:[[File:Symbol delete vote.svg|15px|alt=|link=]] '''Delete''' due to quality concerns and potential copyright violations of Wikipedia and other language Wikibooks. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 17:09, 24 February 2011 (UTC)
:'''Comment''' - 'Square triangle' may be acceptable in some places. It's like in BrE v. AmE, vert. opp. angles v. vertical angles. Who would imagine that the angle bisected by the axis of symmetry has anything to do with vert. opp. angles? :P [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 14:50, 25 February 2011 (UTC)
:[[Image:Symbol delete vote.svg|15px]] '''Delete''' There is very little here that is readable. Mostly a collection of disjoint phrases, which I suspect are poorly translated into English from other places in wikimedia.[[User:Thenub314|Thenub]][[Special:Contributions/Thenub314|314]] ([[User talk:Thenub314|talk]]) 05:44, 6 March 2011 (UTC)
:[[File:Symbol merge vote.svg|15px|alt=|link=]] '''Merge''' This is much the same as the information in [[Trigonometry]], so it should be merged into that book. --[[User:Whoop whoop pull up|Whoop whoop pull up]] <sup>[[User talk:Whoop whoop pull up|Bitching Betty]] | [[Special:Contributions/Whoop whoop pull up|Averted crashes]]</sup> 00:08, 3 April 2011 (UTC)
:[[Image:Symbol delete vote.svg|15px]] '''Delete''' It is 99% copied from Wikipedia or the Trigonometry book, and I don't actually see anything worth keeping or merging. [[User:Recent Runes|Recent Runes]] ([[User talk:Recent Runes|discuss]] • [[Special:Contributions/Recent Runes|contribs]]) 22:18, 4 May 2011 (UTC)
:I tend to deletion, but there are some ideas here that could be included in [[Trigonometry]]. I noticed the definitions of acute/right/obtuse/straight angles at [[Trigonometry Course/Angle]], which the otherwise much more complete book seems to lack. I don't have the patience to check whether there is also anything useful at [[Trigonometry Course/Derived Functions]]. [[User:Hans Adler|Hans Adler]] ([[User talk:Hans Adler|discuss]] • [[Special:Contributions/Hans Adler|contribs]]) 11:01, 7 May 2011 (UTC)
{{end closed}}
8oqvzvn7gm8vo2wt3tfhldh7yjvsa15
Template talk:Print version/doc
11
255665
4640071
2501773
2026-06-13T12:40:01Z
ShakespeareFan00
46022
4640071
wikitext
text/x-wiki
In el.wikibooks if I don't use {{tlx|el:print version|example=yes}} then the [[:el:Template:Print version/doc|print version/doc]]
page and also the print version will be added to Category:Books_printed.
So I don't understand how in en.wikibooks that does not happen.
--[[User:Chomwitt|Chomwitt]] ([[User talk:Chomwitt|discuss]] • [[Special:Contributions/Chomwitt|contribs]]) 02:20, 19 August 2011 (UTC)
: Actually they do show up in [[:Category:Books with print version]] at en.wikibooks currently. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 00:17, 22 August 2011 (UTC)
: Adding {{para|example|yes}} to the examples in [[Template:Print version/doc]] fixes this, as you might of guessed. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 00:23, 22 August 2011 (UTC)
f2o14jav82943oiwb3rw77o8ffa8q0k
Template talk:Goodbook/List
11
267387
4640080
4415601
2026-06-13T12:45:36Z
ShakespeareFan00
46022
4640080
wikitext
text/x-wiki
== Update needed ==
[[Using Wikibooks]] needs to be added to this page. [[User:Belteshazzar|Belteshazzar]] ([[User talk:Belteshazzar|discuss]] • [[Special:Contributions/Belteshazzar|contribs]]) 00:24, 27 March 2012 (UTC)
:Done, thanks for spotting this. [[User:QuiteUnusual|<span style="color:#E66C2C">'''QU'''</span>]] <sup>[[User talk:QuiteUnusual|<span style="color:#306754">TalkQu</span>]]</sup> 08:58, 29 March 2012 (UTC)
== Historical Geology ==
The featured book [[Historical Geology]] should be added to the list. --[[User:Maths314|Maths314]] ([[User talk:Maths314|discuss]] • [[Special:Contributions/Maths314|contribs]]) 12:24, 18 June 2015 (UTC)
:{{Ping|Maths314}} {{done}}, thanks. [[User:QuiteUnusual|QuiteUnusual]] ([[User talk:QuiteUnusual|discuss]] • [[Special:Contributions/QuiteUnusual|contribs]]) 11:37, 19 June 2015 (UTC)
== US History ==
[[US History]] needs to be removed, as it is no longer featured. [[User:Belteshazzar|Belteshazzar]] ([[User talk:Belteshazzar|discuss]] • [[Special:Contributions/Belteshazzar|contribs]]) 06:25, 21 May 2018 (UTC)
1b0pehnbu3rl1zsga43toztrpjnrmy9
Template talk:Image copyright
11
274321
4640081
4415602
2026-06-13T12:45:58Z
ShakespeareFan00
46022
4640081
wikitext
text/x-wiki
{{permprot}}
== subst only ==
{{editprotected|answered=yes}}
Please add {{tl|Subst only}} to the documentation. <small style="font: 12px Courier New;display:inline;border:#009 1px dashed;padding:1px 6px 2px 7px;white-space:nowrap">[[User talk:Mabdul|<span style="color:#000">mabdul</span>]]</small> 10:09, 15 June 2012 (UTC)
:[[File:Yes_check.svg|{{#ifeq:|small|8|15}}px]] {{#ifeq:|small|<small>|}}'''Done'''{{#ifeq:|small|</small>|}}. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 19:19, 17 June 2012 (UTC)
5zm5v1lomhxeho0bmn6ke636rbg67ly
Mathematics of the Jewish Calendar
0
283346
4640293
4220523
2026-06-14T10:25:47Z
Dirk Hünniger
343292
4640293
wikitext
text/x-wiki
[[File:Sun920607.jpg|thumb|right]]
[[File:ComputerHotline - Grande Lune (by).jpg|thumb|right]]
{{center|'''<big><big>Mathematics of the Jewish Calendar</big></big>'''}}
{{Print version}}
{{PDF version}}
This book is concerned with the mathematical aspects of the current Jewish calendar. It only discusses the religious aspects and the history insofar as these are needed to explain the mathematics.
{{center|'''Contents'''}}
# [[/Basic principles/]] {{stage|100%}}
# [[/The 19 year cycle/]] {{stage|100%}}
# [[/The lengths of the months/]] {{stage|100%}}
# [[/The calculation of the Molad/]] {{stage|100%}}
# [[/The four postponements of the New Year/]] {{stage|100%}}
# [[/The fourteen types of year/]] {{stage|100%}}
# [[/The main festivals and fasts/]] {{stage|100%}}
# [[/Minor fasts/]] {{stage|100%}}
# [[/Special Shabbats/]] {{stage|100%}}
# [[/The Annual Cycle of Torah Readings/]] {{stage|100%}}
# [[/The Atbash/]] {{stage|100%}}
# [[/The prayer for rain and the blessing of the sun/]] {{stage|100%}}
# [[/The sixty-one types of cycle/]] {{stage|100%}}
# [[/Anniversaries/]] {{stage|100%}}
# [[/Gauss' Formula for the Date of Pesach/]] {{stage|100%}}
# [[/Slonimsky's Formula for the Year Type/]] {{stage|100%}}
# [[/The recurrence period of the calendar/]] {{stage|100%}}
# [[/Long-term data on the calendar/]] {{stage|100%}}
# [[/The long-term accuracy of the calendar/]] {{stage|100%}}
# [[/Further reading/]] {{stage|100%}}
# [[/Authors & Contributors/]]
{{alphabetical|M}}
{{Shelves|Mathematics}}
{{status|0%}}
st16qds5q0se9phl843ttdil8mpdb3d
4640294
4640293
2026-06-14T10:26:19Z
Dirk Hünniger
343292
4640294
wikitext
text/x-wiki
[[File:Sun920607.jpg|thumb|right]]
[[File:ComputerHotline - Grande Lune (by).jpg|thumb|right]]
{{center|'''<big><big>Mathematics of the Jewish Calendar</big></big>'''}}
{{Print version|Mathematics_of_the_Jewish_Calendar}}
{{PDF version}}
This book is concerned with the mathematical aspects of the current Jewish calendar. It only discusses the religious aspects and the history insofar as these are needed to explain the mathematics.
{{center|'''Contents'''}}
# [[/Basic principles/]] {{stage|100%}}
# [[/The 19 year cycle/]] {{stage|100%}}
# [[/The lengths of the months/]] {{stage|100%}}
# [[/The calculation of the Molad/]] {{stage|100%}}
# [[/The four postponements of the New Year/]] {{stage|100%}}
# [[/The fourteen types of year/]] {{stage|100%}}
# [[/The main festivals and fasts/]] {{stage|100%}}
# [[/Minor fasts/]] {{stage|100%}}
# [[/Special Shabbats/]] {{stage|100%}}
# [[/The Annual Cycle of Torah Readings/]] {{stage|100%}}
# [[/The Atbash/]] {{stage|100%}}
# [[/The prayer for rain and the blessing of the sun/]] {{stage|100%}}
# [[/The sixty-one types of cycle/]] {{stage|100%}}
# [[/Anniversaries/]] {{stage|100%}}
# [[/Gauss' Formula for the Date of Pesach/]] {{stage|100%}}
# [[/Slonimsky's Formula for the Year Type/]] {{stage|100%}}
# [[/The recurrence period of the calendar/]] {{stage|100%}}
# [[/Long-term data on the calendar/]] {{stage|100%}}
# [[/The long-term accuracy of the calendar/]] {{stage|100%}}
# [[/Further reading/]] {{stage|100%}}
# [[/Authors & Contributors/]]
{{alphabetical|M}}
{{Shelves|Mathematics}}
{{status|0%}}
71ygm75lwl6ahof1423bwf9ge4y65vk
User talk:Njardarlogar
3
283999
4640160
2473585
2026-06-13T15:45:35Z
ShakespeareFan00
46022
4640160
wikitext
text/x-wiki
{{bigwelcome|[[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~tparis/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 11:52, 4 January 2013 (UTC)}}
== Development stages ==
Hi! Saw you've been writing a Nynorsk textbook. I've added in the WB development stages template. You might want to use that to show the progress of each module. That way, readers will know which ones are completed and which ones aren't. cheers, [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~tparis/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 10:28, 5 January 2013 (UTC)
:I'll look into it. [[User:Njardarlogar|Njardarlogar]] ([[User talk:Njardarlogar|discuss]] • [[Special:Contributions/Njardarlogar|contribs]]) 12:06, 5 January 2013 (UTC)
cta016ki3nc4fma8y6gwrkk7algilau
User talk:122.149.116.184
3
284037
4640114
2473554
2026-06-13T15:23:50Z
ShakespeareFan00
46022
4640114
wikitext
text/x-wiki
==[[:Cantonese/Lesson 10]]==
{{tmbox|type=delete|text=
'''[[:Cantonese/Lesson 10|Cantonese/Lesson 10]] has been nominated for deletion. Please [[Wikibooks:Requests for deletion#Cantonese/Lesson 10|share your thoughts]].'''<br/>You are being notified because you have contributed to this work. If you haven't read it already, please see our [[WB:DP|deletion policy]]. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~tparis/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 11:19, 5 January 2013 (UTC)}}
6ch967etd39ua9rluxm03hiipuq7ujp
User talk:Ollydbg
3
284051
4640155
2473835
2026-06-13T15:42:51Z
ShakespeareFan00
46022
4640155
wikitext
text/x-wiki
<div style="text-align:center; font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Ollydbg!</div>
<!-- FIRST COLUMN -->
<div style="width:49.5%; float:left; margin:0em; padding:0em;">
<div style="margin:0.2em; border:1px solid #15304f; background-color:#f4eed7;">
<div style="border-bottom:1px solid #15304f; background-color:#89b5e7; padding:0.2em 0.5em; font-size:110%; font-weight:bold;">[[File:Crystal Clear app kedit.png|20px|link=|alt=]] '''First steps tutorial'''</div>
<div style="padding:0.4em 1em 0.3em 1em;">
'''Wikibooks is for [[WB:AGF|collaborative]] development of free [[WB:WIW|textbooks]].'''
You do not need technical skills to [[Using Wikibooks|contribute]]. You can [[WB:BOLD|easily change most books]]. Please [[WB:CHAT|introduce yourself]], and let us know what [[WB:PROJECTS|interests you]].
If you already contribute at other Wikimedia projects, our [[Wikibooks:Wikibooks for Wikimedians|Wikimedia Orientation]] should quickly get you started.
</div>
</div>
<div style="clear:both; padding-right:1em; text-align:right; font-size:smaller">(Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</div>
</div>
<!-- SECOND COLUMN -->
<div style="width:49.5%; float:left; margin:0em; padding:0em;">
<div class="collapsible" style="margin:0.2em; border:1px solid #15304f; background-color:#f4eed7; text-align:left;">
<div class="title" style="border-bottom:1px solid #15304f; background-color:#89b5e7; padding:0.2em 0.5em; font-size:110%; font-weight:bold;">[[File:Icon apps query.svg|20px|link=|alt=]] '''Getting help'''</div>
<div class="NavContent" style="padding:0.4em 1em 0.3em 1em;">
* Read the [[Using Wikibooks]] book for a friendly introduction to the project, or our [[Help:Contents|help pages]] for more information.
* You can get friendly help from the community in the [[WB:HELP|user assistance room]] or our [[irc:wikibooks|IRC channel]].
* Upload freely licensed files to [[commons:Wikimedia Commons|Wikimedia Commons]]. You may [[WB:RFP|request permission]] to upload [[w:fair use|fair use]] files locally. Please include author and source {{tl|information}} and a {{nowrap|{{tl|non-free use rationale}}}} for [[WB:FU|non-free]] files.
</div>
</div>
<div class="collapsible" style="margin:0.2em; border:1px solid #14304f; background-color:#f4eed7; text-align:left;">
<div class="title" style="border-bottom:1px solid #15304f; background-color:#89b5e7; padding:0.2em 0.5em; font-size:110%; font-weight:bold;">[[File:Nuvola filesystems trashcan full.png|20px|link=|alt=]] '''Made a mistake?'''</div>
<div class="NavContent" style="padding:0.4em 1em 0.3em 1em;">
* You can [[WB:REVERT|restore]] a previously saved version.
* Pages should follow the [[WB:NP|<code>'''Book Title/Chapter Title'''</code>]] naming convention.
* Need to rename a page? Use the ''move'' tab (is available once your account is 4 days old - until then, ask for [[WB:HELP|help]]).
* To request a page be deleted, add {{tlx|delete|''your reason''}} to the top of the page.
* Was a page you made deleted? Please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:RFD|RFD]] archives if applicable. You can request undeletion at [[WB:RFU]], or ask the administrator who deleted the page.
</div>
</div>
<div class="collapsible selected" style="margin:0.2em; border:1px solid #15304f; background-color:#f4eed7; text-align:left;">
<div class="title" style="border-bottom:1px solid #15304f; background-color:#89b5e7; padding:0.2em 0.5em; font-size:110%; font-weight:bold;">[[File:Transmission icon.png|20px|link=|alt=]] '''Goodies, tips and tricks'''</div>
<div class="NavContent" style="padding:0.4em 1em 0.3em 1em;">
* Please fill in [[WB:ES|the edit summary]] and [[WB:PREVIEW|preview]] your edits before saving.
* Sign your name on [[WB:TALK|discussion pages]] by typing ~~~~
* User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''!
</div>
</div>
<div style="text-align:right; padding:0.2em 0.5em 0.2em 0.5em;">Thanks, [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~tparis/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 04:12, 6 January 2013 (UTC)</div>
</div>
<div style="clear:both;"> </div>
1jy9e3xnkqjvi0ztvqse94i7dj06mb5
Wikibooks:Reading room/Archives/2013/January
4
284818
4640151
4624683
2026-06-13T15:40:12Z
ShakespeareFan00
46022
4640151
wikitext
text/x-wiki
{{talkarchive}}
== Suggestion for [[SQL Exercises]]: Add DDL exercises ==
Most of the exercises in this book - indeed, in most books and the Internet - are on DML. DML, particularly SELECT, may be more important than DDL, but I think it's still useful to provide some DDL exercises (I need some, in fact. <code>:P</code>) Could an experienced SQL user on WB do that? It would be a great way to get people to come to WB too because there simply aren't enough DDL exercises. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~tparis/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 11:40, 4 January 2013 (UTC)
== Flickering bug ==
I found a slight bug with the display when viewed under Chrome. Open [[Cookbook:Pistachio]], and set the window size to 1007x968 - this is a specific sweet-spot that somehow causes the skin to flip back and forth between a "wide" and "thin" sub-skin. It doesn't occur with Firefox. It can be reproduced in other pages, but they have a different sweetspot. --[[User:Sigma 7|Sigma 7]] ([[User talk:Sigma 7|discuss]] • [[Special:Contributions/Sigma 7|contribs]]) 18:11, 3 January 2013 (UTC)
:Question: How do you fix the window size at exactly 1007x968? Also, is the aspect ratio of the window the same for all the 'sweetspots'? [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~tparis/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 12:13, 4 January 2013 (UTC)
:: You have to guess how wide the window is. Either use an external tool, or take the window screenshots to determine their width (e.g. Alt-print-screen, and pasting them in MS-Paint shows the window width). Also, it requires the amount of page content to be enough to cause the scrollbar toggling, thus there's no specific aspect ratio ([[Special:ValidationStatistics]] seems to need 1003x860 but also changes as users appear in the active reviewers list below.) The 1000 pixel mark is also easy to find since that's when the Vector skin adjusts itself.
:::I think this is probably a MediaWiki bug rather than a WB bug. Have you identified the problem in other wikis? [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~tparis/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 01:08, 6 January 2013 (UTC)
== Screenshots of non-free software (fair use) ==
Dear colleagues, I am thinking (not yet decided) about writing a book on usage and implementation of [[w:SAP ERP|SAP ERP]], a leading commercial [[ERP Internals|ERP software]]. This application is obviously copyrighted, including all screenshots. According to an official SAP policy for external authors writing about their products, "SAP screenshots and graphic material may be used provided that the following copyright notice is included: “© Copyright <Year>. SAP AG. All rights reserved”" (see [http://www.sap.com/company/legal/pdf/SAP_external_book_projects_E.pdf]).
To me, this sounds like a clear approval for including their screenshots for illustration of appropriate descriptions as "fair use" images. However,
* I have not seen any non-free software screenshots in Wikibooks yet (nor any SAP ERP screenshots in en.wiki),
* When clicking on "Upload file" link on the left, it points to Commons which explicitely disallow fair use images. So, if it were allowed to upload such files, then how to do it technically?
I am still thinking whether to write something like this, and if so, then in what format (website or real book?) and where (there are several instruction pages around already). But whichever way, I would not like to do it without screenshots (because SAP allows that and other authors include them, especially in "paper" books), and it would be almost impossible to write without mentioning many trademarks throughout the text. What is the opinion of Wikibooks community? Would you agree to having something like this here? Thanks for your advance opinion! --[[User:Sapfan|Sapfan]] ([[User talk:Sapfan|discuss]] • [[Special:Contributions/Sapfan|contribs]]) 16:27, 7 January 2013 (UTC)
:Non free media is permitted under the fair use condition on Wikibooks. Permission to upload fair use media direct to Wikibooks is granted by administrators to trusted users who can demonstrate an understanding of fair use and have a clear need to use it. The [[WB:RFI|requests for import]] page allows those who don't have the upload permission to request an upload from [[WB:Uploaders|uploaders]] and administrators [[User:QuiteUnusual|<span style="color:#E66C2C">'''QU'''</span>]] <sup>[[User talk:QuiteUnusual|<span style="color:#306754">TalkQu</span>]]</sup> 16:52, 7 January 2013 (UTC)
Hi QU, thanks for the explanation! This sounds promising. I will talk to some other (non-Wikipedia) people as well, do some planning (it would be a major effort - with risk of staying unfinished for a long time, and also with a risk of getting the reader lost in complexity) and then decide if I will proceed on Wikibooks or elsewhere (or nowhere). Thanks again - and all the best! --[[User:Sapfan|Sapfan]] ([[User talk:Sapfan|discuss]] • [[Special:Contributions/Sapfan|contribs]]) 17:13, 7 January 2013 (UTC)
== Easily available information about the review system? ==
As a newcomer to ''this'' project, I soon noted that some of the math books or chapters had two variants, much like the German wikipedia pages: One marked "Read" and one marked "Latest draft", where the latters must be "reviewed" if they are to enter the status "Read".
I have no problem with this system (which I think works rather well in the de:WP). However, I expected to find some information about it somewhere here. Probably such information exists, but I could not find it in the "natural places" to look, like guidelines and policies or "Help out!" (where there is a link to special page listing pages to be reviewed, but no explanation of the review system). Not even the page [[Wikibooks:PP]] seems to contain anything hinting at a "partial implementation of the German system".
Thus, I really have two questions:
:#. <s>Where do I find information about the review system (including explanations about how to make a page due for reviews); and</s> I now have found at least some information, at [[Wikibooks:REVIEW]].
:#. Could and should the review system information be made easier to find for newbies like me?
Best regards, [[User:JoergenB|JoergenB]] ([[User talk:JoergenB|discuss]] • [[Special:Contributions/JoergenB|contribs]]) 14:45, 21 December 2012 (UTC)
:: The link [[Wikibooks:Reading room]] should have lead you to [[Wikibooks:Requests for permissions]] which when I looked at it had multiple discussions about reviews and took me to [[Wikibooks:Reviewers]]. [[User:JeepdaySock|JeepdaySock]] ([[User talk:JeepdaySock|discuss]] • [[Special:Contributions/JeepdaySock|contribs]]) 18:13, 7 January 2013 (UTC)
:::I don't think new users need to familiarise themselves with the review system yet. There will be information after you get automatically promoted, or new users could get the info 'as they go', just as you finally managed to find [[WB:REVIEW]]. If someone gets confused, [[WB:HELP]] is ready to help. ;) [[User:Kayau|Kayau]] <small>([[User talk:Kayau|talk]] · [[Special:Contributions/Kayau|contribs]]) </small> 08:38, 8 January 2013 (UTC)
::::Imho, the most frustrating thing about the Wikibooks review system is that it makes itself quite visible to newcomers who, for the most part, don't need to know about it yet. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 12:49, 8 January 2013 (UTC)
== Be a Wikimedia fundraising "User Experience" volunteer! ==
Thank you to everyone who volunteered last year on the Wikimedia fundraising 'User Experience' project. We have talked to many different people in different countries and their feedback has helped us immensely in restructuring our pages. If you haven't heard of it yet, the 'User Experience' project has the goal of understanding the donation experience in different countries (outside the USA) and enhancing the localization of our donation pages.
I am (still) searching for volunteers to spend some time on a Skype chat with me, reviewing their own country's donation pages. It will be done on a 'usability' format (I will ask you to read the text and go through the donation flow) and will be asking your feedback in the meanwhile.
The only pre-requisite is for the volunteer to actually live in the country and to have access to at least one donation method that we offer for that country (mainly credit/debit card, but also real time banking like IDEAL, E-wallets, etc...) so we can do a live test and see if the donation goes through. **All volunteers will be reimbursed of the donations that eventually succeed (and they will be very low amounts, like 1-2 dollars)**
By helping us you are actually helping thousands of people to support our mission of free knowledge across the world. If you are interested (or know of anyone who could be) please email ppena@wikimedia.org. All countries needed (excepting USA)!!
Thanks!
[[m:User:Ppena (WMF)|Pats Pena]]<br/>
Global Fundraising Operations Manager, Wikimedia Foundation
: Sent using [[m:Global message delivery|Global message delivery]], 20:48, 8 January 2013 (UTC)
<!-- EdwardsBot 331 -->
== State of California Open Source Textbooks ==
The state of California has enacted a law promoting and funding the creation of 50 open-source textbooks, to be used to help minimize the cost and weight of textbooks for college students. By law, these books must be released under a Creative Commons Attribution license, which would presumably make them eligible for hosting and deriving here at Wikibooks. [http://arstechnica.com/tech-policy/2012/09/california-universities-to-produce-50-open-source-textbooks/]. Someone may wish to review this. <small><span class="autosigned">—Preceding [[w:Wikipedia:Signatures|unsigned]] comment added by [[User:QuiteUnusual|QuiteUnusual]] ([[User talk:QuiteUnusual|discuss]] • [[Special:Contributions/QuiteUnusual|contribs]]) 15:12, 3 October 2012</span></small><!-- Template:Unsigned -->
: Yes, it's an awesome addition to their already amazing OER policies. [[User:Sj|Sj]] ([[User talk:Sj|discuss]] • [[Special:Contributions/Sj|contribs]]) <span style="font-size: smaller;" class="autosigned">—Preceding [[w:Wikipedia:Signatures|undated]] comment added 01:07, 19 October 2012.</span><!--Template:Undated-->
::Seems like hosting of originals should be at Wikisource, with derived works here. [[User:JeepdaySock|JeepdaySock]] ([[User talk:JeepdaySock|discuss]] • [[Special:Contributions/JeepdaySock|contribs]]) 18:18, 7 January 2013 (UTC)
:::We probably shouldn't put the originals at WS per [[s:WS:SCOPE]]. ;) [[User:Kayau|Kayau]] <small>([[User talk:Kayau|talk]] · [[Special:Contributions/Kayau|contribs]]) </small> 07:56, 8 January 2013 (UTC)
:::: What part of [[s:WS:SCOPE]] would exclude orginal versions of Creative Commons Attribution licensed textbooks? [[User:JeepdaySock|JeepdaySock]] ([[User talk:JeepdaySock|discuss]] • [[Special:Contributions/JeepdaySock|contribs]]) 12:35, 8 January 2013 (UTC)
::::: The only types of post-1923 works within the scope of WS are documentary sources, analytical and artistic works and scientific research'. [[User:Kayau|Kayau]] <small>([[User talk:Kayau|talk]] · [[Special:Contributions/Kayau|contribs]]) </small> 13:25, 8 January 2013 (UTC)
:::::: You are correct it does read that way, I have started a discusion [[s:Wikisource:Scriptorium#State_of_California_Open_Source_Textbooks]]. [[User:JeepdaySock|JeepdaySock]] ([[User talk:JeepdaySock|discuss]] • [[Special:Contributions/JeepdaySock|contribs]]) 14:13, 8 January 2013 (UTC)
* Community discussion indicates the originals of these works would be at home on Wikisource; assuming they are released with CC or other appropriate license and those originals are static. Also Kayau's comment leads to discussion on how to clarify the Wikisource Scope page. [[User:JeepdaySock|JeepdaySock]] ([[User talk:JeepdaySock|discuss]] • [[Special:Contributions/JeepdaySock|contribs]]) 16:09, 9 January 2013 (UTC)
== Having Problems with User:Adonis Laerte Mezzano/Books/Mars - Book 1 ==
It does not want to save a PDF File. Can it be fixed?
:I presume you are talking about [[W:User:Adonis Laerte Mezzano/Books/Mars - Book 1]]. As this is on Wikipedia not Wikibooks, you should ask at the Wikipedia [[W:Wikipedia:Help_desk|help desk]]. [[User:Recent Runes|Recent Runes]] ([[User talk:Recent Runes|discuss]] • [[Special:Contributions/Recent Runes|contribs]]) 21:00, 9 January 2013 (UTC)
== Hello ==
Hi,
This looks like a really nice place, hopefully I can help in editing some books or check stuff sometimes! I'm good at English and Computing so I like reading literary works and tutorials. Almost forgot to mention that I like keeping up with current affairs and the news.--[[User:Computator|Computator]] ([[User talk:Computator|discuss]] • [[Special:Contributions/Computator|contribs]]) 17:02, 11 January 2013 (UTC)
== Remarks and Self Introduction ==
Hi All,
I've no idea of custom and protocol here but since the high lighted text to introduce my self lead to this page I will simply blunder ahead and do the obvious. In sum I've 35 years experience as a programmer. I've three years experience as an editor. This of course makes my approach to Wikibooks a matter of the compulsive need to add and or correct things :) I got the email with the link to the newcomer information after a change of 'whilst' to 'while'---this is precisely the sort of small thing that hits my 'edit' button. So I did. As I've participated in the Wiki world before I didn't have to create a login so I simply went a head and made the change. This was in the OpenSCAD manual. It seems to need a review and I will probably do so as I read the manual. I notice for instance that it has no navigation system to speak of. This certainly needs to be fixed. A system of the accepted Wikibooks version of 'Next', 'Previous' and 'Home' will greatly enhance the usability of the manual IMHO. It would also do to expand the 'related' or 'see also' links in a consistent fashion. All slow to do, but again usability is crucial if the information is to be presented to one and all. Enough babble. [[User:Hsmyers|Hsmyers]] ([[User talk:Hsmyers|discuss]] • [[Special:Contributions/Hsmyers|contribs]]) 19:23, 10 January 2013 (UTC)
:Thanks for contributing to WB! You might want to use [[template:navigate]] for navigation. Simply type in the code <nowiki>{{navigate|Prev=PrevPage|Next=NextPage}}</nowiki> and you'll get a nice header on top for navigation. I hope you continue editing and maybe bring the manual to featured status! [[User:Kayau|Kayau]] <small>([[User talk:Kayau|talk]] · [[Special:Contributions/Kayau|contribs]]) </small> 05:23, 13 January 2013 (UTC)
== ActionScript books ==
Having looked at [[ActionScript Programming]], I felt that the book is, by today's standards, of unacceptable quality. This includes the organisation of the book, which is baffling to non-programmers, and the way the book is structured. Moreover, it introduces bad programming practices such as onClipEvent. Therefore, I've started a new one [[Introduction to ActionScript 2.0]]. I do plan to copy some material over (I'll provide attribution on the Talk Page but an admin may want to merge the page histories if needed). Please don't suggest merging them as they are completely different. Thanks. [[User:Kayau|Kayau]] <small>([[User talk:Kayau|talk]] · [[Special:Contributions/Kayau|contribs]]) </small> 15:38, 12 January 2013 (UTC)
:I'm nearly done with the first section now. I've been considering whether to include exception handling. This is just an introductory book after all, but it does feel incomplete without it. I'd like to hear opinions on that. I'd also like to know if my approach has been right so far, and not too intimidating to non-programers. Thanks. [[User:Kayau|Kayau]] <small>([[User talk:Kayau|talk]] · [[Special:Contributions/Kayau|contribs]]) </small> 13:20, 18 January 2013 (UTC)
== Error when trying to edit ==
Hi. I'm at a complete loss as to the arrangement of this page, so please forgive me if searching for the Add Topic link and clicking it was NOT the right way to add a topic of discussion here. I was told the "reading room" is the place for "general questions" but so far I have had none of those to ask, and I don't see where I would put them in there if I did have any, but I have lost of SPECIFIC questions and no way to ask anyone, so I finally posted some error messages on my discussion page [[User_talk:DonaldKronos#Errors]] and I've come in here hoping to find some way of letting someone who can help know about it.
When I first joined WikiBooks, I was restricted right away so it was impossible for me to create the template pages I needed to reduce the size of the tables I had planned for the Word_Lists section of the [[Esper]] book, and as a result I was forced to begin working on them in a different format. I'm now working on splitting them into categories, and would like to branch out the pages accordingly, so that the book has a proper vocabulary reference to accompany it. This is a lot of work, and it's not helping matters that I am unable to edit the pages. :( [[User:DonaldKronos|Donald Arthur Kronos, Ph.D. -- Actor, Activist -- One of many working hard to make the world better for everyone!]] ([[User talk:DonaldKronos|discuss]] • [[Special:Contributions/DonaldKronos|contribs]]) 20:43, 17 January 2013 (UTC)
: Likely, whoever told you the reading room was for "general" questions meant, questions about writing books and about the wiki software and that sort of thing, as opposed to, say, questions about the accuracy of a certain factoid on a certain page of a certain book. If you want to know why you're getting errors when you try to edit such-and-such a page, this is a perfectly reasonable place to ask that. When you get things like "database error"s when editing a page, it's probably a problem with the wikimedia servers, and is probably not just you, so probably the people who need to fix it are already aware, and if you come back a little later the problem will be gone. There ''is'' an IRC channel for reporting technical problems with the servers, I believe, but if there's a widespread problem, by the time you get to that channel they'll already be aware.
: What do you mean when you say you were restricted right away so it was impossible for you to create the template pages you needed? --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 21:11, 17 January 2013 (UTC)
:: Sounds like it was a database error as Pi Zero said so should have fixed itself by now. Wiki projects occasionally suffer from this problem but usually it doesn't last long. I think new users are restricted from creating templates but I'm not really sure - maybe that is an unnecessary restriction. Feel free to post any questions you may have on this page Donald. Someone will answer you within a few hours and if it's not the right place for the question then someone will no doubt move it elsewhere and let you know. You can also leave a message on another user's Talk page if you have specific questions.--[[User:Xania|ЗAНИA]] [[Image:Flag_of_Estonia.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 22:23, 17 January 2013 (UTC)
::: If there is such a restriction on news users, it'd be just for the first four days, so DonaldKronos should be able to create them now. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 22:56, 17 January 2013 (UTC)
== Wikimedia sites to move to primary data center in Ashburn, Virginia. Read-only mode expected. ==
(Apologies if this message isn't in your language.) Next week, the Wikimedia Foundation will transition its main technical operations to a new data center in Ashburn, Virginia, USA. This is intended to improve the technical performance and reliability of all Wikimedia sites, including this wiki. There will be some times when the site will be in read-only mode, and there may be full outages; the current target windows for the migration are January 22nd, 23rd and 24th, 2013, from 17:00 to 01:00 UTC (see [http://www.timeanddate.com/worldclock/fixedtime.html?msg=Wikimedia+data+center+migration&iso=20130122T17&ah=8 other timezones] on timeanddate.com). More information is available [https://blog.wikimedia.org/2013/01/19/wikimedia-sites-move-to-primary-data-center-in-ashburn-virginia/ in the full announcement].
If you would like to stay informed of future technical upgrades, consider [[m:Tech/Ambassadors|becoming a Tech ambassador]] and [https://lists.wikimedia.org/mailman/listinfo/wikitech-ambassadors joining the ambassadors mailing list]. You will be able to help your fellow Wikimedians have a voice in technical discussions and be notified of important decisions.
Thank you for your help and your understanding.
[[:m:user:guillom|Guillaume Paumier]], via the [[:m:Global message delivery|Global message delivery system]] <small>([[:m:Distribution list/Global message delivery|wrong page? You can fix it.]])</small>. 15:11, 19 January 2013 (UTC)
<!-- EdwardsBot 0338 -->
:Are we gonna have to follow Virginia's copyright laws instead of Floridas? [[User:Kayau|Kayau]] <small>([[User talk:Kayau|talk]] · [[Special:Contributions/Kayau|contribs]]) </small> 15:43, 19 January 2013 (UTC)
== Where to Talk About Potential New Books ==
Anyone who knows what they're doing, please feel free to make this section more... normal, and to remove any of the "personal" parts that seem inappropriate or whatever... including this first paragraph.
I ([[User:DonaldKronos]]) have been looking for where to discuss something with other Wikibookians, and have failed to find it, so I'm adding this section in the best place I did manage to find. In my opinion, we need an easy to find "proper place" to talk about potential books, whether they would be appropriate for Wikibooks, where might be better, who knows how to get them started, and so on.
In particular, I was talking with a friend and we both thought it would be good to make some sort of community crowdsourced "solutions" books on various topics of concern. One example came to mind and I looked into getting permission from the original author of http://issuu.com/dollhousedude/docs/free_and_clear1 to start an open source book based on the ideas and concepts presented in that particular word and he said something to the effect of "dear sir, would you be so kind?" The basic idea in that book, is that nobody should have to be "homeless" in our modern world, and the solution offered is something to the effect of starting a consortium or collective or non-profit orginization or branch of government or SOMETHING which would gather funding to buy modest homes which would be put into a sort of "pool" from which anyone could claim any unoccupied one, live in it, take care of it, and move out when they felt like moving on or found a better place. I may not have this perfect, but that's what all of us thinking TOGETHER is for, right? Anyway, the person living in such a home would not be allowed to have two of them at any given time, and could not sell or dismantle the home, but otherwise could basically treat it as property. Now, I figure perhaps WikiBooks is not the best place for this particular one, but maybe I'm mistaken. Anyone care to have a go at getting this started, tell me where would be a better place, or just join in this discussion?
Thanks. [[User:DonaldKronos|Donald Arthur Kronos, Ph.D. -- Actor, Activist -- One of many working hard to make the world better for everyone!]] ([[User talk:DonaldKronos|discuss]] • [[Special:Contributions/DonaldKronos|contribs]]) 08:01, 19 January 2013 (UTC)
== [[Human Nature: Catholic Thought and the Sciences/Contraception and HIV]] ==
I know that the book and the page are expressing Catholic thoughts and not attempting to encourage one thing or another but should Wikibooks be the place for such nonsense? Things such as ''abstinence-only approach'' and ''I will not tell them not to use condoms'' (coming from a celibate priest of all people) shouldn't be given space on a respected website. Promoting abstinence may be acceptable in the USA and questioning homosexuality may be considered OK there but this is an international website. Any thoughts?--[[User:Xania|ЗAНИA]] [[Image:Flag_of_Estonia.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 17:49, 19 January 2013 (UTC)
:Well, I guess this will serve as my introduction. (: I've been [[Wikipedia:Special:Contributions/Hugetim|active at Wikipedia]] in the past, and I mainly came here to start a new textbook, [[Human Nature: Catholic Thought and the Sciences]]. I fully expect the book to be [[WB:NPOV]] (obviously), and I hope that vigilant editors will correct any nonsense in it (much of which is admittedly believed by my co-religionists) and provide scientific evidence to challenge any Catholic views they consider wrongheaded. For instance, if you look at the page in question, it is simply presenting the views of the Catholic teaching authorities which, like them or not, are influential and worth discussing. The page does not present those views as truth but rather as views. Please take into account that the existing content is very preliminary. I would appreciate at least a week or two to get it into shape before you evaluate its potential as a Wikibook. If it is ultimately decided that such a book is not appropriate here, I will accept the decision (and suggest that the [[Subject:Theology]] be entirely removed). [[User:Hugetim|Hugetim]] ([[User talk:Hugetim|discuss]] • [[Special:Contributions/Hugetim|contribs]]) 19:52, 19 January 2013 (UTC)
::Welcome. My previous post was rather abrupt. I think most of the community have no problem with such a book and I doubt even for a moment that it will be deleted. I was just trying to encourage some debate about the content of the book and worried that the book might try to encourage certain behaviours of promote one position over another which doesn't seem to be the case according to what you've said. Good luck with the book!--[[User:Xania|ЗAНИA]] [[Image:Flag_of_Estonia.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 20:40, 19 January 2013 (UTC)
:::No worries. I really am sympathetic to your concerns, and I think the participation of critics of official Catholic positions is needed to make the book work. (However, I will also understand if such critics do not consider it worth their time.) And thanks for the welcome template that led me here! [[User:Hugetim|Hugetim]] ([[User talk:Hugetim|discuss]] • [[Special:Contributions/Hugetim|contribs]]) 20:47, 19 January 2013 (UTC)
== Picture of the Year voting round 1 open ==
Dear Wikimedians,
Wikimedia Commons is happy to announce that the 2012 Picture of the Year competition is now open. We're interested in your opinion as to which images qualify to be the Picture of the Year for 2012. Voting is open to established Wikimedia users who meet the following criteria:
:# Users must have an account, at any Wikimedia project, which was registered '''before Tue, 01 Jan 2013 00:00:00 +0000''' [UTC].
:# This user account must have more than '''75 edits''' on '''any single''' Wikimedia project '''before Tue, 01 Jan 2013 00:00:00 +0000''' [UTC]. Please check your account eligibility at the [//toolserver.org/~pathoschild/accounteligibility/?user=&wiki=&event=27 POTY 2012 Contest Eligibility tool].
:# Users must vote with an account meeting the above requirements either on Commons or another SUL-related Wikimedia project (for other Wikimedia projects, the account must be attached to the user's Commons account through [[meta:Help:Unified login|SUL]]).
Hundreds of images that have been rated Featured Pictures by the international Wikimedia Commons community in the past year are all entered in this competition. From professional animal and plant shots to breathtaking panoramas and skylines, restorations of historically relevant images, images portraying the world's best architecture, maps, emblems, diagrams created with the most modern technology, and impressive human portraits, Commons features pictures of all flavors.
For your convenience, we have sorted the images into topic categories. Two rounds of voting will be held: In the first round, you can vote for as many images as you like. The first round category winners and the top ten overall will then make it to the final. In the final round, when a limited number of images are left, you must decide on the one image that you want to become the Picture of the Year.
To see the candidate images just go to [[commons:Commons:Picture_of_the_Year/2012|the POTY 2012 page on Wikimedia Commons]].
Wikimedia Commons celebrates our featured images of 2012 with this contest. Your votes decide the Picture of the Year, so remember to vote in the first round by '''January 30, 2013'''.
Thanks,<br />
the Wikimedia Commons Picture of the Year committee<br />
<small>This message was delivered based on [[:m:Distribution list/Global message delivery]]. Translation fetched from: [[:commons:Commons:Picture of the Year/2012/Translations/Village Pump/en]] -- [[User:Rillke|Rillke]] ([[User talk:Rillke|discuss]] • [[Special:Contributions/Rillke|contribs]]) 04:18, 22 January 2013 (UTC)</small>
== [[Esper]] book ==
I am not able to review any changes to this book because most pages freeze my web browser for about 3-4 minutes. This only happens with pages from this book and sometimes the browser doesn't unfreeze. Wiki policies usually talk about a 32kb or 100kb maximum size for pages yet, I think, some of these pages are around 1,000kb. This is likely to be very off-putting to visitors to Wikibooks. It seems to be freezing my Opera and Chrome browsers on my little netbook PC as well as my Android 4 phone. Internet connection isn't an issue as it's 50MB/S broadband and 24MB/S 4G. Can anything be done about this?--[[User:Xania|ЗAНИA]] [[Image:Flag_of_Estonia.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 20:26, 21 January 2013 (UTC)
:I had the same problem. In the end I opened the page in "edit" then saved with "Review pending changes" selected but with no other changes made - reviewing the changes. But yes the book needs breaking into smaller pages. [[User:QuiteUnusual|<span style="color:#E66C2C">'''QU'''</span>]] <sup>[[User talk:QuiteUnusual|<span style="color:#306754">TalkQu</span>]]</sup> 21:22, 21 January 2013 (UTC)
== Page Ratings ==
Do we have any stats about this tool? I mean the tool just above the Review which asks ''What do you think of this page?''. I have rarely used it and it seems the only way to view stats is on a page-by-page status. No way of seeing stats for the whole project or a list of most rated pages? Has anybody here ever used it?--[[User:Xania|ЗAНИA]] [[Image:Flag_of_Estonia.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 23:32, 21 January 2013 (UTC)
: I've never used it. If we had a good way to compile rating stats for pages across the whole project, we could judge better whether the feature is really unused — and if it ''is'' used, that use would be more... useful. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 23:39, 21 January 2013 (UTC)
::You can see the results here [[Special:RatedPages]] for pages that have "many" ratings. As far as I can tell we don't get enough ratings to generate stats. Someone with access to a database dump / SQL would be able to produce a full list. [[User:QuiteUnusual|<span style="color:#E66C2C">'''QU'''</span>]] <sup>[[User talk:QuiteUnusual|<span style="color:#306754">TalkQu</span>]]</sup> 09:58, 22 January 2013 (UTC)
::: If the feature is unused, would it be better to get rid of it so it isn't cluttering up our pages? --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 12:28, 22 January 2013 (UTC)
:::: Try [https://en.wikibooks.org/w/index.php?title=Special:RatingHistory&target=Main_Page here]. It is used on some pages. Unfortunately it is not easy to get site wide data [[User:QuiteUnusual|<span style="color:#E66C2C">'''QU'''</span>]] <sup>[[User talk:QuiteUnusual|<span style="color:#306754">TalkQu</span>]]</sup> 13:00, 22 January 2013 (UTC)
::::: I know the difference between the ratings and the reviews but it does look strange having both at the bottom of each page. If they were combined somehow that would be nice. --[[User:Xania|ЗAНИA]] [[Image:Flag_of_Estonia.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 18:18, 22 January 2013 (UTC)
:::::: Although theoretically reviews are supposed on a scale, in practice we use them as a certification of non-vandalism. And the certification is by an established Wikibookian, whereas the "ratings" are by readers. So even if the names and forms of the things are confusingly similar, their functions seem imho quite different. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 21:36, 22 January 2013 (UTC)
:::::::I can't see any of QU's [[Special:RatedPages]] or [[Special:RatingHistory]]. Are those admin-only pages?
:::::::Anyway, I thought the feature was rather useful on WN. It shows you where you did well and where you should improve. However, I just logged on again and it seems to be gone. Anyway, if we could get WB on Google Books, that would make the tool more useful, the way WN gets these ratings because it's on Google News. Just a thought. :) [[User:Kayau|Kayau]] <small>([[User talk:Kayau|talk]] · [[Special:Contributions/Kayau|contribs]]) </small> 12:58, 23 January 2013 (UTC)
::::::::We were upgraded and those pages no longer exist in the new version of MediaWiki. I'll have to see what the alternative is now [[User:QuiteUnusual|<span style="color:#E66C2C">'''QU'''</span>]] <sup>[[User talk:QuiteUnusual|<span style="color:#306754">TalkQu</span>]]</sup> 14:18, 23 January 2013 (UTC)
== Help turn ideas into grants in the new IdeaLab ==
<div class="mw-content-ltr">
[[File:Wikimedia_Foundation_RGB_logo_with_text.svg|80px|right]]
''I apologize if this message is not in your language. Please help translate it.''
*Do you have an idea for a project to improve this community or website?
*Do you think you could complete your idea if only you had some funding?
*Do you want to help other people turn their ideas into project plans or grant proposals?
Please join us in the [[m:Grants:IdeaLab|IdeaLab]], an incubator for project ideas and Individual Engagement Grant proposals.
The Wikimedia Foundation is seeking new ideas and proposals for Individual Engagement Grants. These grants fund individuals or small groups to complete projects that help improve this community. If interested, please submit a completed proposal by February 15, 2013. Please visit https://meta.wikimedia.org/wiki/Grants:IEG for more information.
Thanks! --[[m:User:Sbouterse (WMF)|Siko Bouterse, Head of Individual Engagement Grants, Wikimedia Foundation]] 20:18, 30 January 2013 (UTC)
<small>Distributed via [[m:Global message delivery|Global message delivery]]. (Wrong page? [[m:Distribution list/Global message delivery|Correct it here]].)</small>
</div>
<!-- EdwardsBot 0344 -->
0mjnq69ksfp55qnv398g329stx09y6x
Wikibooks:Reading room/Proposals/2013/January
4
285506
4640161
4583614
2026-06-13T15:46:08Z
ShakespeareFan00
46022
4640161
wikitext
text/x-wiki
{{talkarchive}}
== Wikibooks-tan ==
Hello, Wikibooks! I'm autoconfirmed on WP. <br> '''Wikibooks-tan''' will be our mascot in the future. My idea for her: <br> [[File:WikiProject Scouting uniform template female barehead.svg]] <br> for head and skin color; <br> [[File:Wikipe tan yin.png|200px]] <br> for body, face and outfit. [[User:YellowPegasus|YellowPegasus]] ([[User talk:YellowPegasus|discuss]] • [[Special:Contributions/YellowPegasus|contribs]]) 21:22, 4 December 2012 (UTC)
:* The skin color looks odd to me. Don't like it, tbh.
:* What is there about this appearance that you feel expresses the unique character of Wikibooks amongst the sisters? (I'm not seeing it, off hand.)
:* Why that outfit? Hair color? Hair style?
:* The name for a Wikibooks moe would be more likely "Books-tan", wouldn't it, parallel to ''Quote-tan'' for Wikiquote?
: Over at Wikinews we have, btw, discussed what a ''News-tan'' would look like. Features of appearance are chosen for specific reasons; e.g., red hair is a connection to Commons-tan, as Wikinews and Commons have some things in common. The design of these characters can really embody the spirit of a sister project, but one needs to put careful thought into the details. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 07:51, 5 December 2012 (UTC)
::This proposal has WP puzzle pieces on it (the old puzzle pieces, in fact). That's not very WB-ish in my opinion. Maybe a mascot with a book for a head will work better. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~tparis/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 07:43, 4 January 2013 (UTC)
:: What on earth is a Wikibooks-tan or any other wiki-tan? Why do we need a mascot and why should we accept the mascot imposed on us by somebody who is new to the project?--[[User:Xania|ЗAНИA]] [[Image:Flag_of_Estonia.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 18:56, 17 January 2013 (UTC)
::: I think a mascot would be nice, just not this particualr design (and nothing anime-like because anime sucks). I know you're usually rather opposed to non-'constructive' things like barnstars, but I think a good mascot would be a great way to bring the community together, not to mention look nice on the main page. [[User:Kayau|Kayau]] <small>([[User talk:Kayau|talk]] · [[Special:Contributions/Kayau|contribs]]) </small> 05:30, 18 January 2013 (UTC)
:::: There are three sister projects with these personifications now, and at Wikinews we did once have a discussion about how we would imagine a "News-tan" sister. There's a pretty good explanation at [[w:WP:Wikipe-tan]].
:::: A design for Books-tan —by Wikibookians, obviously— '''could''' be good (community spirit and whatnot), but we'd need to consider it carefully, to get it right. The personality of Wikibooks should come through clearly in all the details of the depiction. (For example —I need to recover the details of the discussion while I still can— as I recall, our design for News-tan had red(?) hair, a camera, a press pass, and maybe a [[w:green eyeshade|green eyeshade]].) --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 13:59, 18 January 2013 (UTC)
::::: While an anime girl-style mascot ''may'' work for some sisters (IMO it doesn't, and gives WP a rather negative image in fact), I think for WB, it's best to stick to stuff like a bookworm with glasses. It's about our image... [[User:Kayau|Kayau]] <small>([[User talk:Kayau|talk]] · [[Special:Contributions/Kayau|contribs]]) </small> 14:16, 18 January 2013 (UTC)
:::::: I've got pretty mixed feelings about them myself, and indeed about the concept of a mascot. Though it ''does'' seem a common-themed set of mascot-ish things for a bunch of different projects might, just perhaps, help to promote some sense of multi-project community spirit, which could be a good thing. For me, that possibility sort-of nudges the idea over toward the "okay" column. Even so, as I say, my feelings on it are mixed. Without that cross-project theme, a mascot would have to clear a higher bar for me to support it.
:::::: A bookworm with glasses? How would you envision that, in more detail? --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 14:56, 18 January 2013 (UTC)
:::::::[https://www.google.com/search?hl=en&rls=com.microsoft:zh-TW:%7Breferrer:source%3F%7D&rlz=1I7ADRA_enHK466&q=%E6%9B%B8%E8%9F%B2+%E5%8D%A1%E9%80%9A&bav=on.2,or.r_gc.r_pw.r_cp.r_qf.&bvm=bv.41248874,d.aGc&biw=1366&bih=667&um=1&ie=UTF-8&tbm=isch&source=og&sa=N&tab=wi&ei=53D5UK-LGu2QiQfv14CICA This kind of thing.] :P [[User:Kayau|Kayau]] <small>([[User talk:Kayau|talk]] · [[Special:Contributions/Kayau|contribs]]) </small> 15:59, 18 January 2013 (UTC)
::::::: I read the info on ''tan'' on the page you mentioned. Seems somewhat interesting although not really very effective if I'd never seen any mention of it before. I'm thinking that an anime-style looks best as it's more universal whereas something more traditional may make us seem backwards or American. Think we should steer clear of stereotypical things like glasses and a bookworm and aim for something more modern like an e-reader! Maybe starting with a Wikijunior-tan first is a good idea as kids would certainly notice such a mascot more than others? --[[User:Xania|ЗAНИA]] [[Image:Flag_of_Estonia.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 16:01, 18 January 2013 (UTC)
:::::::: Come to think, I've never really thought "mascot" about the wikimedia sisters; Wikipe-tan isn't ''officially'' a mascot of Wikipedia, after all. More like, "personification" for, as it were, social occasions where it's useful to have one.
:::::::: Btw, it occurs to me Wikipe-tan was one of the earliest-added pictures in the coloring book — [[Wikijunior:Maze and Drawing Book/Wikipe-tan]]. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 16:55, 18 January 2013 (UTC)
::::::::: I think as anime is mainly enjoyed by people born during the last two decades of the 20th century, it is frowned upon by most older people. Plus, they haven't exactly gained a reputation of being a healthy form of comics/cartoons. That is enough to put off some schoolteachers and librarians from using WB for students. Although I think an e-reader is a great idea, we may have to change it every few years or so - technological innovations occur ever so often and it could be that e-readers ten years from now don't even remotely look like e-readers of the present. Therefore, I think a mascot with traditional books will be better. Perhaps a book with a limbs and a face on the cover? [[User:Kayau|Kayau]] <small>([[User talk:Kayau|talk]] · [[Special:Contributions/Kayau|contribs]]) </small> 22:48, 18 January 2013 (UTC)
::::::::::It's not actually anime, of course, but an interesting suggestion about conservative educators. Although... I also do wonder, sometimes, how old my fellow wikimedians imagine I am. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 00:01, 19 January 2013 (UTC)
== Proposal to implement metadata on Wikibooks ==
Hi all - <br><br>
I'm Max Klein. I would like to make it possible to use metadata - in the form of [http://lrmi.net LRMI] and [http://schema.org Schema] - on Wikibooks. Yaron Koren and I have developed a Mediawiki extension and a library of templates to use in conjunction with it that would allow this to happen. LRMI and Schema are ways to describe the information contained on a page in a way that is easily intelligible to machines. Schema was developed by Google, Bing, Yahoo, and Yandex, while LRMI was developed by a broad coalition of people and groups interested in open educational resources headed by Creative Commons and the Association of Educational Publishers. You can see significantly more detail about Schema and LRMI in the collapsed proposal below, or on their websites (linked above,) and the [http://www.lrmi.net/the-specification LRMI specification].
This is a simplified version of the proposal that I initially posted on this page. Hopefully, it will better convey why we think this idea is important. I've left my original post directly below this one in a collapsed box. It contains a lot more details than this does. I know that it's unusual to do this to a proposal that has already initially been posted, but I think it is for the best in this case. If anyone strongly feels that this is inappropriate, please let me know.
====Why would we want to do this?====
Machines can't always understand information that is contained in text, even if humans are able to. Metadata of the nature we are suggesting adding helps machines understand what a page is about. The biggest effect this would have would be increasing the accessibility of Wikibooks' content via search engines. Schema.org was formed collaboratively by Google, Yahoo!, Bing, and Yandex with the aim of making it easier for people to find high quality relevant results in their searches. Most major search engines use metadata in their search result placement, as well as use metadata to generate better previews of pages. Improving the accessibility of Wikibooks content via search engines would allow more people access to free knowledge. The addition of metadata to Wikibooks would also allow other people to build tools that better catalog Wikibooks content in ways not currently possible.
====What would this involve for Wikibooks editors?====
Editors could add the <nowiki>{{LRMI-Object}}</nowiki> template to books that they happened to be editing already. The template would not be in any way required - it could gradually be added to existing Wikibooks’ content over time. Every page tagged would present an incremental benefit. The template could be added either by cut and pasting it, or by clicking the LRMI button that we have added to the editing window.
Here’s what the template looks like:
{{dynamic navigation|expand=no|title=Example template|body=
<code><nowiki>{{LRMI-object</nowiki><br><nowiki>
|itemprop=educationalAlignment</nowiki><br><nowiki>
|educationalAlignment=Independent study</nowiki><br><nowiki>
|intendedEndUserRole=Student</nowiki><br><nowiki>
|educationalUse=Reading</nowiki><br><nowiki>
|timeRequired=P30M</nowiki><br><nowiki>
|typicalAgeRange=0-12</nowiki><br><nowiki>
|interactivityType=non-interactive</nowiki><br><nowiki>
|learningResourceType=Wikibook</nowiki><br><nowiki>
|useRightsUrl=http://creativecommons.org/licenses/by/3.0/</nowiki><br><nowiki>
|isBasedOnUrl=http://en.wikibooks.org/wiki/Wikijunior:Biology/Introduction</nowiki><br><nowiki>
|name={{PAGENAME}}</nowiki><br><nowiki>
|About=</nowiki><br><nowiki>
|dateCreated=</nowiki><br><nowiki>
|author=Wikibooks contributors</nowiki><br><nowiki>
|publisher=Wikimedia Foundation</nowiki><br><nowiki>
|inLanguage=English</nowiki><br><nowiki>
|mediaType=Wiki article</nowiki><br><nowiki>
}}</nowiki></code>}}
The tags that are currently in the template are taken from [http://www.lrmi.net/the-specification LRMI's] specification. It would be easy to add other tags from [http://schema.org/docs/full.html schema.org's] specification that would be useful to describe Wikibooks content as well. Not all pages would have to be tagged with this template, and on pages that do use this template, not all parameters would have to be filled out. Although many of the parameters in the template are self-explanatory, not all are - we would copy over descriptions of what each parameter is for from LRMI's specification, and include further details about how to fill them out. From a technical standpoint, doing all of this would involve installing the HTML Tags Mediawiki extension on Wikibooks, and porting over the templates we have developed.
I think that the use of metadata has significant potential to benefit Wikibooks without adding much extra workload to Wikibooks' contributors. People could tag books with metadata as they go through their normal editing process, and there would be no urgency in doing so. As an increasing number of pages were tagged, the benefits of the added metadata would grow, eventually being quite substantial. You can read further details in the collapsed original proposal below. Thanks, [[User:Maximilian.Klein.LRMI|Maximilian.Klein.LRMI]] ([[User talk:Maximilian.Klein.LRMI|discuss]] • [[Special:Contributions/Maximilian.Klein.LRMI|contribs]]) 01:14, 18 January 2013 (UTC)
{{dynamic navigation|expand=no|title=Collapsed original proposal|body=
Hi all -
I’m Max Klein. For the last few months, I’ve been working with Yaron Koren to develop '''HTML Tags''', a new '''extension for Mediawiki''' that can support the use of '''[http://lrmi.net LRMI]''' (Learning Resource Metadata Initiative), a '''metadata''' framework for '''educational resources''' and other metadata schemas built on '''[http://schema.org schema.org]'''’s in general. Metadata frameworks like LRMI are not supported in a default installation of Mediawiki because they use HTML in a way that was not yet envisioned when Mediawiki's core parser was written.
Disclosure: our work on HTML Tags has been financed by [[:W:Creative Commons|Creative Commons]].
'''Why use metadata?'''
*We think that using metadata has a lot of potential benefits to a project like Wikibooks. The addition of metadata to Wikibooks should have significant effects on the accessibility of Wikibooks’ resources via search engines. Schema.org was formed collaboratively by Bing, Google, Yahoo!, and Yandex, with the explicitly stated aim of making it easier for their users to turn up high quality relevant results in their searches. Besides the direct effect on search placement, most major search engines also use metadata like LRMI and Schema.org to help generate rich snippets, which improve the preview of a website that the user of a search engine is shown. Whereas improving access to information is a primary goal of Wikibooks and the Wikimedia movement, we believe improved search result quality by itself is a compelling reason to implement HTML Tags and LRMI.
We also anticipate that there may be unexpectedly creative uses of HTML Tags in contexts other than pure metadata. Although we cannot guarantee we’ll be able to provide technical support for all such uses, we are certainly excited about them. We’ll support cool side projects where we can, and if something comes up that we can’t support we’ll try to connect you with volunteers with the appropriate skill-sets to progress your project.
'''Readiness and end user experience'''
*The HTML Tags extension is fully developed and has been tested on other Mediawiki installations in the wild. We have also developed a preliminary set of templates to use in conjunction with it. The extension along with the templates handle all of the behind-the-scenes stuff so all the user has to do to add metadata to a page is fill out the template. We think that makes it as easy as possible to add valid LRMI and schema.org markup to any wiki page - it is no harder than using any other template.
We’ve set up a demo wiki on [http://lrmi-demo.referata.com/wiki/Biology Referata], please feel free to play around with it.
{{User:Maximilian.Klein.LRMI/RfC/transclusion}}
'''The two formal proposals'''
*We would like to try to launch a discussion aimed at achieving consensus on two points:
#First, that Wikibooks should install the Mediawiki extension HTML Tags.
#Second, that the addition of LRMI and schema.org metadata to Wikibooks should be encouraged and the template library that we’ve developed at the demo should be migrated to Wikibooks. <small> </small>
{{small/top}}
:Once consensus has been established on the first point, the extension will be installed via a Bugzilla request - since it requires shell access. The templates can be transferred and edited to adapt to Wikibooks’ needs at any point as necessary by any editor, since shell access is not needed to do so. {{small/end}}
In order to keep the amount of displayed text on this page manageable, we have transcluded most of the material displayed here from [[User:Maximilian.Klein.LRMI/RfC/transclusion|this page]] and [[User:Maximilian.Klein.LRMI/RfC/FAQ|this page.]] I’ll drop a note here if we make any edits to the main body of the RfC. We may make edits to (and expand) the FAQ as this thread progresses to ensure that all commonly asked questions are answered in our original post. We are using this format to ensure that all of the collapsed content didn’t clutter up this page too much.<br> Thanks, [[User:Maximilian.Klein.LRMI|Maximilian.Klein.LRMI]] ([[User talk:Maximilian.Klein.LRMI|discuss]] • [[Special:Contributions/Maximilian.Klein.LRMI|contribs]]) 04:15, 12 January 2013 (UTC)}}
=== Discussion ===
I'm very much in favour of adding metadata to Wikimedia projects (I'm the founder of Wikipedia's [[Wikipedia:WikiProject Microformats|WikiProject Microformats; and have initiated the use of microformat on Wikimedia Commons, Wikispecies Wikisource, Wikivoyage and here on Wikibooks). I know schema.org to be a worthwhile and well-respected project. Likewise, I've worked on other projects with Max, and hold him in high esteem.
I do have one concern about the proposal made here; I'm not saying we shouldn't proceed, but we should be mindful of the issue I have in mind, and see what we can do to address it.
The examples given above involve what's called "hidden metadata". The values which are to be read by other systems are not shown on the page, for example:
{{quote|<nowiki>This OER is appropriate for {{LRMI|property=typicalAgeRange|expectedtype=http://schema.org/Text|description=typicalAgeRange|content=11-14|value=Grades 6-8}}</nowiki>}}
renders as:
{{quote|This OER is appropriate for Grades 6-8}}
in other words, the values "11-14" are not shown on the page, and if "21-34" had been entered in error (or by a vandal), there would be no way to tell, from reading the page.
A better solution would be to mark up "Grades 6-8" as a value, or have a template in which one set of values were entered, but which emitted metadata of "11-14" and a visible value of "Grades 6-8" (we do this with [[:w:Template:Birth date|Template:Birth date]] on Wikipedia, for instance, where the input is, say, <code>1993|02|04</code> but the output for machines is "1993-02-04" and for humans "February 4, 1993".
The same applies to the example on http://lrmi-demo.referata.com/wiki/Biology - for instance, the values "P30M", "0-12" and "non-interactive" are not visible on the page., This is analogous with PERSONDATA on Wikipedia; I have a draft essay on the issues this causes, at [[:w:User:Pigsonthewing/Persondata]]. The solution may be to make the details in the template on that demo page visible, in a footer box.
Also, as a separate point, we need to consider how this will interact with the new Wikidata project.
Finally, this section is already long; should we move it to its own sub-page?
I look forward to working with Max and other Wikibooks editors, to resolve these matters and start emitting extremely useful metadata. We should enable the HTML tags extension in the meantime. [[User:Pigsonthewing|Pigsonthewing]] ([[User talk:Pigsonthewing|discuss]] • [[Special:Contributions/Pigsonthewing|contribs]]) 15:18, 17 January 2013 (UTC)
:::As far as I know, there are no current plans to implement Wikidata on Wikibooks, so using this extension here shouldn't present any problems in terms of that. If Wikidata does eventually include Wikibooks, I don't think integration would present especial problems. You may be right that it would be best to display the details of the metadata in a footer box - as long as no one objected to the added visual element, it would reduce the likelihood of meaningful vandalism occurring. [[User:Maximilian.Klein.LRMI|Maximilian.Klein.LRMI]] ([[User talk:Maximilian.Klein.LRMI|discuss]] • [[Special:Contributions/Maximilian.Klein.LRMI|contribs]]) 01:48, 19 January 2013 (UTC)
:: Tried to understand what this is all about and read the coutless information mentioned but even after all that this goes way over my head. I really have no idea what is being proposed here.--[[User:Xania|ЗAНИA]] [[Image:Flag_of_Estonia.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 17:30, 17 January 2013 (UTC)
::: Likewise. As a proposal, this is a miserable failure, because it isn't accessible. The first paragraph is indecipherable by assuming expertise, to the point where anyone who doesn't already know what the proposal is about isn't going to find out this way. If we understood this, would we want it? If so, then it needs to be presented to us with ''way'' more thought into making the presentation understandable. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 20:49, 17 January 2013 (UTC)
::::The "why" part is buried pretty deep. It's in the FAQ section titled "Why should we use metadata/HTML Tags?" <s>That portion of the proposal should have been placed a lot earlier and more prominently (i.e., not in a hidden section).</s> Nevermind. That info does come in an earlier section. Basically, it's to make WB content show up more prominently to search engines. I think it's a worthy goal. --[[User:Jomegat|Jomegat]] ([[User talk:Jomegat|discuss]] • [[Special:Contributions/Jomegat|contribs]]) 21:07, 17 January 2013 (UTC)
::::: Really? Yeah, the '''first sentence''' should have said that. It does sound like a worthy goal; the next questions would be, what are the downsides of this approach to the goal, and will the approach promote the goal sufficiently to make up for them. Hm. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 21:55, 17 January 2013 (UTC)
:::::: Off hand, I'd hazard a guess at one downside: it's probably bloody complicated. Anything whose proposal is such a sprawling mess (sorry to be blunt, but it is) would likely appeal to people who're kind of tone-deaf about simplicity. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 21:59, 17 January 2013 (UTC)
:::::::You can see an example of the template used in the collapsed 'example template' box above. We can, if desired, simplify the template further - and in copying over the template, we'll include a description of what each line of the template is used for. The whole process of adding metadata would pretty much be hitting a button on the editing toolbar to dump in the template, and then filling out whatever lines of the template you find apply to the book you are working on. It is about as complex as the citation templates used on ENWP. [[User:Maximilian.Klein.LRMI|Maximilian.Klein.LRMI]] ([[User talk:Maximilian.Klein.LRMI|discuss]] • [[Special:Contributions/Maximilian.Klein.LRMI|contribs]]) 00:31, 18 January 2013 (UTC)
:::::I saw the '''Why''' part but it didn't help. So this is a method of search engine optimization along the lines of what we did in the 1990s when we'd fill out webpages with white text keywords to fool the search engine crawlers? I guess it seems like a good idea - are there any disadvantages?--[[User:Xania|ЗAНИA]] [[Image:Flag_of_Estonia.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 22:18, 17 January 2013 (UTC)
::::::Disadvantage? Well, every page has to be edited to add the right tags. Given the size of the community it'll be 2100 before the whole project is updated... [[User:QuiteUnusual|<font color="#E66C2C">'''QU'''</font>]] <sup>[[User talk:QuiteUnusual|<font color="#306754">TalkQu</font>]]</sup> 22:27, 17 January 2013 (UTC)
::::::: That'll never happen. No easier way around it? I'll read all of the above blurb again when I get chance to get a better understanding.--[[User:Xania|ЗAНИA]] [[Image:Flag_of_Estonia.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 22:29, 17 January 2013 (UTC)
::::::::Pages can be updated incrementally, not all will need to be updated at once. No one would need to go through all existing books and tag them; people could just add tags to pages as they edit them, and could choose not to add metadata if they did not want to do so. People who were interested in doing so could add metadata templates to books they were already editing, taking perhaps a minute or two to do so. [[User:Maximilian.Klein.LRMI|Maximilian.Klein.LRMI]] ([[User talk:Maximilian.Klein.LRMI|discuss]] • [[Special:Contributions/Maximilian.Klein.LRMI|contribs]]) 00:31, 18 January 2013 (UTC)
:::::::::It'll never happen. Less than 5% of the pages here are regularly edited. In the 2 years since FlaggedRevs was implemented there are still less than half the pages reviewed, and that really is just clicking of a button. Most of these reviews were done by a handful of people. I can't see more than 1% of the pages having metadata added in a year. As I noted to Darklama on IRC today, 95% of editors need help just getting their books into the right subjects and page structure and the most active books are student collaborations who struggle with simple editing, let alone this more complex area. [[User:QuiteUnusual|<font color="#E66C2C">'''QU'''</font>]] <sup>[[User talk:QuiteUnusual|<font color="#306754">TalkQu</font>]]</sup> 10:55, 18 January 2013 (UTC)
* '''Oppose''': Yet another thing for people to learn, understand, use, and agree on, which makes content creation all the more difficult, increases the difficulty of jumping right in, increases the complexity of book maintenance, increases the skill set required, and will likely decrease the potential pool of people willing to even try to write a book, all for the sake of a theoretically higher search ranking. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 22:50, 17 January 2013 (UTC)
::Since metadata wouldn't be required, it shouldn't increase the difficulty of jumping right in. For people uninterested in doing so, installing HTML Tags and adopting this set of templates would not change the Wikibooks editing experience at all. For people who were interested in doing so, adding metadata to existing books would gradually improve the accessibility of information on Wikibooks. [[User:Maximilian.Klein.LRMI|Maximilian.Klein.LRMI]] ([[User talk:Maximilian.Klein.LRMI|discuss]] • [[Special:Contributions/Maximilian.Klein.LRMI|contribs]]) 00:31, 18 January 2013 (UTC)
::: Stylesheets aren't required for a website either, but when you embed CSS through the use of the style attribute on every html tag, maintenance can be a nightmare. Websites are easier to maintain when style and structure are separated, and accessibility can also be improved. I think for meta data to be practical and keep content creation accessible there needs to be a clean and clear separation of meta data from content creation. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 18:45, 19 January 2013 (UTC)
I know it's unusual to do so, but would anyone object to me replacing my initial post with a greatly abbreviated and less technical version? (I would subpage the existing text so that it would still be viewable to those interested.) [[User:Maximilian.Klein.LRMI|Maximilian.Klein.LRMI]] ([[User talk:Maximilian.Klein.LRMI|discuss]] • [[Special:Contributions/Maximilian.Klein.LRMI|contribs]]) 00:31, 18 January 2013 (UTC)
::I've gone ahead and replaced the original proposal with a greatly abbreviated version that I think is a lot more clear. I've collapsed the full original proposal immediately under the new version. I know this is an atypical approach, but think that in this situation it is for the best. If anyone feels it is an inappropriate thing to do, please let me know - I think that having a more clear intro is important, and thus feel like it's a good idea. [[User:Maximilian.Klein.LRMI|Maximilian.Klein.LRMI]] ([[User talk:Maximilian.Klein.LRMI|discuss]] • [[Special:Contributions/Maximilian.Klein.LRMI|contribs]]) 01:14, 18 January 2013 (UTC)
* '''Oppose''': I completely agree with darklama. Good content will rank high in searches because people link to it not because it is tagged in some clever way. (Also: isn't the hype about the semantic web already over?) --[[User:Martin Kraus|Martin Kraus]] ([[User talk:Martin Kraus|discuss]] • [[Special:Contributions/Martin Kraus|contribs]]) 21:15, 18 January 2013 (UTC)
::Good content is certainly a first, crucial, requisite step - but it's not always sufficient. Taking an example I used earlier, take a look at [http://en.wikibooks.org/wiki/Wikijunior:Solar_System/The_Sun this book]. I think it's a pretty good book. It is not, however, one that is easily accessible via a lot of search terms, and only gets a couple hundred of hits a month. There are a significant number of search terms that it doesn't currently rank on, that the addition of LRMI tags would likely rank it for. Additionally, once a sufficient quantity of material is tagged across the internet, customized search tools can be developed (Google already allows custom searches for schema.org parameters) that would allow someone to look explicitly for, say, a book whose subject was the sun that was aimed at kids under twelve - thus turning up this book. [[User:Maximilian.Klein.LRMI|Maximilian.Klein.LRMI]] ([[User talk:Maximilian.Klein.LRMI|discuss]] • [[Special:Contributions/Maximilian.Klein.LRMI|contribs]]) 01:48, 19 January 2013 (UTC)
I '''support''' implementing this suggestion as long as it isn't required or anything. I think it can be up to the individual book contributors to decide whether and how to use the metadata. There's nothing wrong with a new option that could make search results more accurate. [[User:Kayau|Kayau]] <small>([[User talk:Kayau|talk]] · [[Special:Contributions/Kayau|contribs]]) </small> 22:53, 18 January 2013 (UTC)
* '''Oppose''', for now. Even though something like this may be optional, when it does get used, it adds to the perception of complexity by those who don't use it, as well as to the difficulty of book maintenance. If, sometime down the road, we come up with a plan to mitigate those problems, we can adopt the extension then. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 00:09, 19 January 2013 (UTC)
* '''Oppose''' I'm not convinced of the benefits of this and the additional work involved seems to outweigh the possible benefits.--[[User:Xania|ЗAНИA]] [[Image:Flag_of_Estonia.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 10:16, 19 January 2013 (UTC)
* '''Support''' as I don't see any harm in having the extension, and it ''does'' have the potential to do a lot of good. Contributors are not required to add the metadata, and any work required to take advantage of it is elective - it is not forced upon anyone. --[[User:Jomegat|Jomegat]] ([[User talk:Jomegat|discuss]] • [[Special:Contributions/Jomegat|contribs]]) 00:57, 20 January 2013 (UTC)
:: I did address, in my opposition stance above, how such an "optional" complication does harm even to segments of the project community who don't use it. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 02:11, 20 January 2013 (UTC)
:::Yes, I read that. --[[User:Jomegat|Jomegat]] ([[User talk:Jomegat|discuss]] • [[Special:Contributions/Jomegat|contribs]]) 03:24, 20 January 2013 (UTC)
It's a well-intentioned proposal and Wikibooks certainly could benefit from greater exposure. But looking at the demo, the button on the editing toolbar just inserts the raw template code and does indeed add complexity to the editing process. A JavaScript form would be more beneficial, much like the toolbar buttons for adding citations on Wikipedia. Furthermore, the template's inputs can be reduced, with many of the parameters being identical for all books. Those can be built-in to the metatemplate being called by LRMI-object and advanced users could override if really necessary. Parameters like <tt>interactivityType</tt> and <tt>inLanguage</tt> for example.
Installation of the HTML tags extension could allow partial application of metadata through existing templates such as {{tl|reading level}}. A realistic use case I can see is to change the name of the LRMI-object template, only make use of it on the root page of a book, and have the parameters that are unique to each book provide output such as that seen in {{tl|recipe summary}} and other [[Template:Infobox|infoboxes]]. You could also combine functionality from {{tl|collection}} to link to a PDF/print version. Combining more functionality, the name of the book could be entered and call {{tl|alphabetical}} as well as specify the LRMI "name". Then this would provide a visible benefit for book authors/readers. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 21:43, 26 January 2013 (UTC)
== Adding a 'share' feature on the side ==
Howdy! Just cruising through here, and noticed that there's no 'share' features on the pages! It would be awesome to have a quick link to Facebook, Twitter, Google Talk, or stuff like that! I'm pretty sure it's easy code to implement~
<small><span class="autosigned">—Preceding [[w:Wikipedia:Signatures|unsigned]] comment added by [[User:198.60.121.1|198.60.121.1]] ([[User talk:198.60.121.1|discuss]] • [[Special:Contributions/198.60.121.1|contribs]]) 23:23, 23 January 2013</span></small><!-- Template:Unsigned -->
: We do something very like this on en.wn, by automagically transcluding at the bottom of every published article a template <nowiki>{{</nowiki>[[n:Template:Social bookmarks|Social bookmarks]]<nowiki>}}</nowiki> for sharing. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 02:56, 24 January 2013 (UTC)
: I agree that this would be a very useful function but wouldn't we have to include such an option for lots of different social networks to avoid favouring one commercial website? I really wish Wiki sites would try their absolute best to avoid linking to any commercial sites. Maybe a simple ''email this page to someone'' function would be simpler?--[[User:Xania|ЗAНИA]] [[Image:Flag_of_Estonia.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 12:23, 24 January 2013 (UTC)
:: You may note the large number of different services on the above-linked Wikinews template. The first of which is email. We ''do'' have occasional maintenance tasks as some of the linked services have to be handled differently, or are discontinued, or as new services come into existence and should be added to the list. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 12:43, 24 January 2013 (UTC)
::I know the linkage to commercial sites is what has created opposition to this on other wikis. There are [http://www.addthis.com/ AddThis] extensions available for the major browsers if one would like to have the same versatility for social media sharing (see the bottom of the page). – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 21:56, 26 January 2013 (UTC)
2uqv861m59flokk527nep4bsexrqnun
Template talk:Decistage
11
290085
4640055
2512982
2026-06-13T12:23:41Z
ShakespeareFan00
46022
4640055
wikitext
text/x-wiki
== Use SVG icons ==
{{editprotected|answered=yes}}
I made 11 SVG icons that can be used in this template, numbered as following: [[:File:0of10.svg]], [[:File:1of10.svg]], etc. To apply this, you can just change
[[File:{{{1}}}von10.png|link=Help:Development stages|Development stage: {{{1}}}0%{{#if:{{{2|}}}| (as of {{{2}}})}}]]
to
[[File:{{{1}}}of10.svg|link=Help:Development stages|Development stage: {{{1}}}0%{{#if:{{{2|}}}| (as of {{{2}}})}}]]
[[User:Timothy Gu|Timothy G.]] <sup>from [[w:en:California|CA]]</sup> ([[User talk:Timothy Gu#top|talk]]) 21:08, 12 April 2013 (UTC)
{{done}} --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 13:13, 15 April 2013 (UTC)
51yljxmo00866wrygq1qkwj8htt8sok
Wikibooks:Featured books/Nominations/Additions/Wikijunior:Shapes
4
290153
4640139
2513478
2026-06-13T15:35:30Z
ShakespeareFan00
46022
4640139
wikitext
text/x-wiki
{{closed|[[File:X mark.svg|15px|alt=|link=]] '''Not done'''. Lack of support in 2 years --[[User:Xania|ЗAНИA]] [[Image:Flag_of_Estonia.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 23:01, 14 January 2013 (UTC)}}
This book is very complete and well formatted. It is a book to teach kids different shapes, including 3D shapes and the different types of triangles. [[User:Empire3131|Empire3131]] ([[User talk:Empire3131|talk]]) 02:59, 27 December 2010 (UTC)
:{{oppose}} '''strongly'''. The sign for 'Hills Department Store' may be oval shaped, but it is not egg shaped. The 'kit-kat' picture illustrating four equal angles shows four equal rectangles - confusing unless you already know what a rectangle is and what 'equal angles' are. The 'four sided' pyramid shown has six edges. The example scalene triangle is too close to being isosceles. Do the funny markings on it actually help? Isn't using a fractal to illustrate 'decagon' a bit misleading? As well as details of execution and accuracy, I also have a problem with the overall concept of the book, and maybe that's where my real problems with it lie. I'll comment about that in the discussion page. --[[User:JamesCrook|JamesCrook]] ([[User talk:JamesCrook|talk]]) 13:37, 27 December 2010 (UTC)
:I also oppose the book's featured status due to its confusing organisation. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 00:27, 2 April 2011 (UTC)
:{{oppose}}. I found the navigation awkward, if this was to be read on an e-reader the constant switching back and forth from the content to the subcategories to the content again would get annoying fast, especially for a younger reader. Even browsing it on the internet was a bit annoying. I agree with the issues raised by JamesCrook, especially the use of a fractal for decagon, which makes it very hard to see the decagon. Still needs some work. [[User:HMman|HMman]] ([[User talk:HMman|discuss]] • [[Special:Contributions/HMman|contribs]]) 14:18, 24 May 2012 (UTC).
:{{oppose}} I agree with the above comments and I am unsure if this book would be understood by its target audience.--[[User:Xania|ЗAНИA]] [[Image:Flag_of_Estonia.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 09:57, 17 November 2012 (UTC)
{{end closed}}
r3hi9zq4adk8lqsvoy6t4tol3apc85b
Wikibooks:Featured books/Nominations/Additions/World History
4
290156
4640138
2513487
2026-06-13T15:35:01Z
ShakespeareFan00
46022
4640138
wikitext
text/x-wiki
{{closed|[[File:X mark.svg|15px|alt=|link=]] '''Not done'''. No support for featuring this book from anyone other than the nominator. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 16:37, 4 April 2012 (UTC)}}
It's complete, high quality... everything I look for in a book. --[[User:Whoop whoop pull up|Whoop whoop pull up]] <sup>[[User talk:Whoop whoop pull up|Bitching Betty]] | [[Special:Contributions/Whoop whoop pull up|Averted crashes]]</sup> 21:44, 3 April 2011 (UTC)
:'''Oppose''' - this book is far from complete. It looks like a complete book when you look at the contents, but many chapters are just section headers. According to the table of contents, everything from the Three Kingdoms period to the Southern Song Dynasty are ignored - in other words, the Three Kingdoms Period, Western and Southern Jin Dynasties, the Northern and Souther Dynasties, the Sui Dynasty, the Tang Dynasty and the two Song Dynasties will never be included in this book - and this includes China's best emperor, Emperor Taizong of Tang. It also lacks navigational devises and the format is inconsistent. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 11:33, 4 April 2011 (UTC)
::'''Oppose''' I suppose this book is intended to meet the requirements of the official specification at [http://www.collegeboard.com/student/testing/ap/sub_worldhist.html AP World History Course Description]. This seems not to require coverage of the Southern Song, Jin or Sui Dynasties or Emperor Taizong. Even so, I think that the book needs better cross-referencing to the specification before becoming featured. The course description groups the material into the following periods:
::* c. 8000 b.c.e.–600 c.e. 6 Weeks (19–20%)
::* 600 c.e.–1450 7 Weeks (22%)
::* 1450–1750 6 weeks (19–20%)
::* 1750–1914 6 Weeks (19–20%)
::* 1914–Present 6 Weeks (19–20%)
::The structure of the book looks unrelated to this periodisation, which makes me suspect that it has diverged significantly from the Advanced Placement syllabus. [[User:Recent Runes|Recent Runes]] ([[User talk:Recent Runes|discuss]] • [[Special:Contributions/Recent Runes|contribs]]) 19:34, 8 April 2011 (UTC)
*{{oppose}} Not yet complete and many of the pages just seem full of information with no attempt to make it easier to read.--[[User:Xania|ЗAНИA]] [[Image:Flag_of_Italy.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 11:33, 18 August 2011 (UTC)
{{end closed}}
lddn7jriki6qj3iwhy9h168j8ssb3nt
Wikibooks:Featured books/Nominations/Additions/A-level Computing/AQA
4
290157
4640121
4409565
2026-06-13T15:26:19Z
ShakespeareFan00
46022
4640121
wikitext
text/x-wiki
{{closed|{{done}} '''Closing this nomination as approved. Broad support.''' --[[User:Xania|ЗAНИA]] [[Image:Flag_of_Estonia.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 20:11, 16 March 2013 (UTC)}}
The final 'book' will comprise of 4 books. The first two books are complete, suitable for the English A-Level Computing course, and I submit their nominations. I am the author of this book.
* [[A-level_Computing/AQA/Problem_Solving,_Programming,_Data_Representation_and_Practical_Exercise|Unit 1]]
* [[A-level_Computing/AQA/Computer_Components,_The_Stored_Program_Concept_and_the_Internet|Unit 2]]
[[User:Pluke|Pluke]] ([[User talk:Pluke|discuss]] • [[Special:Contributions/Pluke|contribs]]) 19:16, 6 November 2012 (UTC)
{{Support}} Excellent resource for Computing AS pupils. Pitched at the right level, good use
of examples, diagrams, images and worked examples. End of topic questions with answers
very useful for checking understanding of topic. --[[User:Mralteacher|Mralteacher]] ([[User talk:Mralteacher|discuss]] • [[Special:Contributions/Mralteacher|contribs]]) 12:03, 24 February 2013 (UTC)
{{Support}} Well-written and good navigation. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~tparis/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 02:40, 5 January 2013 (UTC)
{{Support}} This resource has really helped me in revising for my exam.--[[User:Computator|Computator]] ([[User talk:Computator|discuss]] • [[Special:Contributions/Computator|contribs]]) 11:44, 11 January 2013 (UTC)
:{{Neutral}} I'm reluctant to support this as a Featured Book right now because, as mentioned above, it isn't finished. In addition navigation isn't that great as the book gets quite deep with no navigation templates on some pages. I would say though that the material in this book so far is very impressive.--[[User:Xania|ЗAНИA]] [[Image:Flag_of_Estonia.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 21:50, 12 January 2013 (UTC)
::{{comment}}My proposal isn't for the whole 'book', but the two linked above. It might have been better if i didn't have them all under the same section. The course is split into 2 qualifications, the AS and the A2, each split into two units. Unit 1 and 2 are complete, and together comprise a textbook that covers the entire AS level course to a level that many schools and students seem to be using it. I'm not seeking featured status on unit 3 and 4 (the A2 units). I presume the lack of navigation concerns the unit 3 and 4 books. The depth of navigations never exceeds 3 levels, if you start at a unit level.
*** base
****unit 1
*****sub section
******pages
******pages
******pages
*****sub section
******pages
******pages
******pages
****unit 2
*****sub section
******pages
******pages
******pages
*****sub section
******pages
******pages
******pages
****unit 3
****unit 4
::If you could provide examples of lack of navigation or higher level navigation problems for units 1 and 2 that would be really useful, if not could you please consider again with just units 1 and 2 in mind. [[User:Pluke|Pluke]] ([[User talk:Pluke|discuss]] • [[Special:Contributions/Pluke|contribs]]) 22:46, 12 January 2013 (UTC)
::: {{Support}}I take it back. I think I was initially just confused by the template which you are faced with when you click through from the first page (e.g. when clicking to go to [[A-level_Computing/AQA/Computer_Components,_The_Stored_Program_Concept_and_the_Internet]]. It seemed strange to be faced with a mostly blank page and just a template with links. But it's clearer now. The pages are extremely well presented and the use of Q&A (with answers hidden by default) as well as nice images make it appealing to look at. Is it still possible to take only AS level or do students now have to do AS followed by A2? Either way I am happy to approve this as a featured book.--[[User:Xania|ЗAНИA]] [[Image:Flag_of_Estonia.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 20:16, 14 January 2013 (UTC)
:::: {{Comment}} You can sit the AS without having to take the A2. I need to work on a decent intro... [[User:Pluke|Pluke]] ([[User talk:Pluke|discuss]] • [[Special:Contributions/Pluke|contribs]]) 22:48, 14 January 2013 (UTC)
{{end closed}}
8ard9qb4u4sj7onfk5bejrbb8euj163
Peeragogy Handbook
0
290980
4640112
4632727
2026-06-13T15:23:03Z
Dirk Hünniger
343292
4640112
wikitext
text/x-wiki
Welcome to the '''<span style="font-family: Arial; "><span style="color: rgb(0, 29, 142); ">P</span><span style="color: rgb(239, 0, 0); ">e</span><span style="color: rgb(250, 196, 0); ">e</span><span style="color: rgb(49, 139, 15); ">r</span><span style="color: rgb(65, 189, 255); ">a</span><span style="color: rgb(240, 0, 0); ">g</span><span style="color: rgb(239, 0, 202); ">o</span><span style="color: rgb(242, 82, 27); ">g</span><span style="color: rgb(0, 29, 142); ">y</span></span> Handbook''','''Wikibook Edition'''!
{{PDF version}}
Peeragogy is a word for a techniques that self-motivated learners can use to connect with each other and develop stronger communities and collaborations. This book picks up where the Wikipedia [[w:peer learning|Peer Learning]] and [[w:peer production|Peer Production]] articles leave off. It is addressed to everyone who is interested in how [[w:learning|learning]] works, whether you’re an [[wikt:educator|educator]], a hobbyist, an [[w:Artist|artist]], a student, an employee, a parent, an activist, an archivist, a mathematician, tennis player, and/or if you just think learning is cool.
[[File:PeeragogyV3.jpg|thumb|right|150px|The Peeragogy Handbook, 3rd Ed.]]
[[wikt:peer|Peers]] began working as on the first edition<ref>The Peeragogy Handbook ({{ISBN|9780985572211}})</ref> of this Handbook in 2012. [[w:Howard Rheingold|Howard Rheingold]] convened them in connection with his [[w:University_of_California,_Berkeley|University of California, Berkeley]] Regents Lecture on January 23rd "Social Media and Peer Learning: From Mediated Pedagogy to Peeragogy"<ref>You can read more about the lecture on the [https://www.ischool.berkeley.edu/events/2012/social-media-and-peer-learning-mediated-pedagogy-peeragogy school website]. On a different school website [https://bcnm.berkeley.edu/events/109/special-events/1320/social-media-and-peer-learning-from-mediated-pedagogy-to-peeragogy page] it states that [https://rheingold.com/ Rheingold] 'offers an abstract on what will be addressed in his UC Berkeley Regents Lecture: "My career-long compulsion has been to take new media to their limits. In the field of learning, this means developing a method of teaching and learning that amplifies the affordances of online media to depart from the millennia-old model of professor-lecture-texts-tests. The first stage of this evolution was the application of online media to classroom teaching. The second stage was the transformation of my teaching because of the affordances and biases of social media. The third stage was to move from blended learning that combines face to face classes and online engagement. The fourth stage was to deliver mini-courses that took place entirely online, with an emphasis on cultivating a community of co-learners. The next and most radical stage, which I hope to initiate with the Regent's lecture and accompanying master-class and seminar, is to use the same media for a purely peer-organized pedagogy."'</ref> Since then two<ref>Peeragogy Handbook V2 ({{ISBN|9780977639649}})</ref> more<ref>The Peeragogy Handbook, 3rd Edition ({{ISBN|9780996097512}})</ref> editions of the Peeragogy Handbook were crafted and papers were written<ref>The first one was published [[v:File:Paragogy-final.pdf|on Wikiversity in 2011 named "Paragogy: Synergizing individual and organizational learning"]].</ref>.
Over the course of working on the handbooks [http://peeragogy.org peeragogues] worked hard, practiced peeragogy, learned a lot about it, and had a lot of fun! This Wikibook Edition of the Handbook stands on its own as their successor with ongoing updates.
Experiences within the Peeragogy Project have been that flattened hierarchies do not necessarily mean decisions go by consensus — people often take the ball and run with it. The handbook includes co-edited pages as well as single-author works: often the lines and voices are blurred. One constant throughout the book is our interest in making something useful. To this end, the book is available under the Wikibook non-restrictive legal terms, which allow you to reuse portions of it however you see fit it. Among other things, we include instructions on how to join us in further developing this resource, one way is to view our [[Wikibooks:Peeragogy|Wikbooks project page]].
{{status|75%}}
{{reading level|intermediate}}
{{Alphabetical|P}}
:#[[Peeragogy Handbook V1.0/Overview|Overview]]
:# [[Peeragogy Handbook/Preface to the 3rd Edition|Preface]]
:# [[Peeragogy Handbook/Foreword|Foreword]]
:#[[Peeragogy Handbook/Revised Intro|Intro]]
:#[[Peeragogy Handbook V1.0/How to use this Handbook|How to use this Handbook]]
:#[[Peeragogy Handbook V1.0/Convening|Convening]]
:#[[Peeragogy Handbook V1.0/K-12 Peeragogy|K-12 Peeragogy]]
:#[[Peeragogy Handbook V1.0/Researching Peeragogy|Researching Peeragogy]]
:#[[Peeragogy Handbook V1.0/Organizing Co-Learning|Organizing Co-Learning]]
:#[[Peeragogy Handbook V1.0/Adding Structure|Adding Structure]]
:#[[Peeragogy Handbook V1.0/The Student authored syllabus|The Student authored syllabus]]
:#[[Peeragogy Handbook V1.0/How to Organize a MOOC|How to Organize a MOOC]]
:#[[Peeragogy Handbook V1.0/Participation|Participation]]
:#[[Peeragogy Handbook V1.0/The Workscape|The Workscape]]
:#[[Peeragogy Handbook V1.0/Co-Facilitation|Co-Facilitation]]
:#[[Peeragogy Handbook V1.0/Designs for Co-Working|Designs for Co-Working]]
:#[[Peeragogy Handbook V1.0/Platform Design|Platform Design]]
:#[[Peeragogy Handbook V1.0/Peeragogical Assessment|Peeragogical Assessment]]
:#[[Peeragogy Handbook V1.0/Following the money|Following the money]]
:#[[Peeragogy Handbook V1.0/Thinking about patterns|Thinking about patterns]]
:#[[Peeragogy Handbook V1.0/Patterns and Heuristics|Patterns and Heuristics]]
:#[[Peeragogy Handbook V1.0/Patterns|Patterns]]
:#[[Peeragogy Handbook V1.0/Antipatterns|Antipatterns]]
:#[[Peeragogy Handbook V1.0/Use Case|Use Case]]
:#[[Peeragogy Handbook V1.0/Peeragogies Technology|Peeragogies Technology]]
:#[[Peeragogy Handbook V1.0/Wiki|Wiki]]
:#[[Peeragogy Handbook V1.0/Real-time Meetings|Real-time Meetings]]
:#[[Peeragogy Handbook V1.0/How to get involved|How to get involved]]
:#[[Peeragogy Handbook V1.0/Peeragogy in Action|Peeragogy in Action]]
:#[[Peeragogy Handbook V1.0/Style Guide|Style Guide]]
:#[[Peeragogy Handbook V1.0/Meet the Authors|Meet the Authors]]
[[File:Peeragogy - Welcome 2 -.webm|thumb|right|200px|This is a welcome to peeragogy video with [https://www.visualsforchange.com/bio Amanda].]]
{{Shelves|Education|Learning theory}}
{{BookCat}}
[[id:Peeragogy Handbook V1.0 (Id)]]
[[pt:Peeragogy Handbook V1.1 (pt-Brazilian)]]
[[fr:Peeragogie Manuel V1.3]]
==References==
{{Reflist|40em}}
cpxilpnqzfi0v7261rg1vuy6pk23sw5
Wikibooks:Requests for deletion/Visual Basic/Selected Functions
4
292982
4640132
2549381
2026-06-13T15:32:09Z
ShakespeareFan00
46022
4640132
wikitext
text/x-wiki
{{closed|1=Consensus to delete [[User:QuiteUnusual|QuiteUnusual]] ([[User talk:QuiteUnusual|discuss]] • [[Special:Contributions/QuiteUnusual|contribs]]) 13:06, 13 August 2013 (UTC)}}
This page is not only a stub but also one with an unclear scope. --[[User:Dan Polansky|Dan Polansky]] ([[User talk:Dan Polansky|discuss]] • [[Special:Contributions/Dan Polansky|contribs]]) 17:13, 7 September 2012 (UTC)
* {{del}}<s>{{keep}}</s> Actually seems pretty clear to me, albeit as yet unused. Basically, there are a lot of functions that you will be calling, and this is intended to be a central collection page to allow you to refer back to a function definition if you need to, without breaking up the text for those that don't. A function glossary, if you will. [[User:Chazz|Chazz]] <small>([[User talk:Chazz|talk]])</small> 17:58, 7 September 2012 (UTC)
*: These are ''selected'' functions. But selected how? Furthermore, there is already [[Visual_Basic/VB6_Command_Reference]] that seems to serve as a function reference. The stub only hosts "StrConv" as a heading without any content, while [[Visual_Basic/VB6_Command_Reference]] already has 28 functions, including [[VB6_Command_Reference#StrConv]]. --[[User:Dan Polansky|Dan Polansky]] ([[User talk:Dan Polansky|discuss]] • [[Special:Contributions/Dan Polansky|contribs]]) 19:10, 7 September 2012 (UTC)
*:: Good point... keep vote withdrawn, if when deleting this page, anything that points at it is pointed at the appropriate section of the reference page. Though it doesn't look like anything much does... [[User:Chazz|Chazz]] <small>([[User talk:Chazz|talk]])</small> 19:41, 7 September 2012 (UTC)
*'''Delete''' per above. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~tparis/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 02:38, 5 January 2013 (UTC)
* '''Comment''' I agree that it is little use in its present form and there is no point in having "selected functions"; it must cover everything in the book.--[[User:Abramsky|Abramsky]] ([[User talk:Abramsky|discuss]] • [[Special:Contributions/Abramsky|contribs]]) 19:55, 8 April 2013 (UTC)
* {{del}}, to make it clear I want this deleted as well as the nominator. Can we have this deleted? It has sit here for almost a year, and there is no opposition to deletion. --[[User:Dan Polansky|Dan Polansky]] ([[User talk:Dan Polansky|discuss]] • [[Special:Contributions/Dan Polansky|contribs]]) 17:26, 13 July 2013 (UTC)
{{end closed}}
96lpdelj17l944ddajlfbhisyh2ts3y
Wikibooks:Requests for deletion/Cantonese/Lesson 10
4
299691
4640146
2649496
2026-06-13T15:38:04Z
ShakespeareFan00
46022
4640146
wikitext
text/x-wiki
== [[Cantonese/Lesson 10]] ==
{{closed|reason=No consensus after several months --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<font color="midnightblue">dark</font>]][[User_talk:Darklama|<font color="green">lama</font>]]</span> 12:48, 22 April 2014 (UTC)}}
Nearly all Cantonese words (excluding loanwords) are from Old Chinese except for a few Baiyue words, so it seems unnecessary to compile a list of all those words. I get the feeling the author of this module meant to say 'Cantonese words not present in Putonghua that stem from Old Chinese', but that is a) not helpful to learners and b) probably will be used to illustrate 'Cantonese superiority over Putonghua' or 'Cantonese is not inferior to Putonghua) (which is a POV), considering that nearly all of these lists nowadays are used to push this POV. I suggest deleting. [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~tparis/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 11:23, 5 January 2013 (UTC)
* '''Keep''' I don't understand the point about the POV. If you're learning Cantonese, you need to learn Cantonese words, and whether they are the same as words in Old Chinese or Old High German is irrelevant unless you also know these other languages.--[[User:Abramsky|Abramsky]] ([[User talk:Abramsky|discuss]] • [[Special:Contributions/Abramsky|contribs]]) 20:01, 8 April 2013 (UTC)
**I have nothing against people learning words from Old Chinese, but the point is, 99% of the words they'll learn are from Old Chinese anyway. French textbooks don't have a chapter on French words of Latinate origin... [[User:Kayau|Kayau]] <small>([[User talk:Kayau|talk]] · [[Special:Contributions/Kayau|contribs]]) </small> 12:46, 11 April 2013 (UTC)
***Modern French textbooks do not, even if they would provide a broader understanding especially to speakers of other Latin based languages. Not defending a position on the discussion, only contextualizing your observation. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 13:02, 11 April 2013 (UTC)
{{end closed}}
1os4cdzfnjpvp0kf830v9xs063kowkp
Template talk:Test2
11
300248
4640076
2658696
2026-06-13T12:43:36Z
ShakespeareFan00
46022
4640076
wikitext
text/x-wiki
That was a nice one. However you are still going soft. This warning could use a bit more "flashy" image (svg) file, which shows the users that they are not here for making jokes, and might stop them in future. Still good enough. [[User:Harrybrowne1986|Vishal]][[User Talk:Harrybrowne1986| Bakhai]] - [[Special:Contributions/Harrybrowne1986|Works]][[Image:Flag_of_India.svg|15px]] 20:32, 20 May 2014 (UTC)
: Why do you think people make and use these sort of templates? [[WB:BITE|Newcomers]] who make an [[WB:FAITH|honest mistake]] are more likely to stick around when treated with kindness and patience, and from learning about what they can do over an approach that can cause anxiety about making future mistakes. People here to joke around probably aren't going to be convinced to stop by any warning. Something to think about. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 00:47, 21 May 2014 (UTC)
::Frankly the only reason I believe these kind of templates need to be made are due to the reason of the recent vandal increase. I have been seeing that in Wiki also lots of vandals are there. And many have started to do the same here. Agreed that Newcomers should be dealt in good manner, and that is why I made a Template called [[Template:Thank You|Thank You]] (Which I see, you have fixed for me. Thanks for that mate). The template is good for newcomers, who are doing nice things. But you just cant cope with vandals, and spammers. So there is need to be strict with them. I myself have committed mistakes, and try not to do the same thing. If one understands and does not repeat, or at least even tries to amend those wrong things done, than it is good, else, what is the use of being good with those people. Danke. [[User:Harrybrowne1986|Vishal]][[User Talk:Harrybrowne1986| Bakhai]] - [[Special:Contributions/Harrybrowne1986|Works]][[Image:Flag_of_India.svg|15px]] 10:06, 21 May 2014 (UTC)
::: In the case of tests, a person may have accidentally clicked one of the edit buttons or meant to click the show preview button and accidentally clicked save instead, or they didn't know they could preview their edit. The point of being good at first is to allow for the possibility they might not repeat it when it is a mistake and informed of things like that. More often then not vandalism comes from IP addresses which means any good person who also happens to be sharing the same IP address and hasn't registered may also see any messages placed on the user discussion page. We should strive to give a good impression even when we don't understand or agree with specific actions. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 10:33, 21 May 2014 (UTC)
::I understand your point and agree too. However, when I stated that vandals and etc, I meant for those people who are used to doing wrong then right. Only when I see if a user or IP has done some spam, that I go ahead and issue any notice of this kind. At times it is required to be strict. Danke. [[User:Harrybrowne1986|Vishal]][[User Talk:Harrybrowne1986| Bakhai]] - [[Special:Contributions/Harrybrowne1986|Works]][[Image:Flag_of_India.svg|15px]] 18:07, 21 May 2014 (UTC)
::: I think asking/telling someone to [[w:WP:BEANS|stop doing the wrong thing]] when that is all they know and are use to doing is ineffective. They may also benefit from being told about good/accepted practices, because then they know about alternatives. Do you perhaps mean people who know right from wrong, and make the choice to do wrong? By the time a person's intentions to do wrong is recognized a block is often called for, not a warning. Also, what do you mean by strict? --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 18:38, 21 May 2014 (UTC)
::Strict as in what you just stated to go for blocking the user or IP.
::True, I meant people who know what they are doing and still doing so. Say for e.g., there was a file which was uploaded, or for even that, there was a book edited with inappropriate words, and the person or IP did that knowingly. What can be done, is I can revert the edit, but also at least warn the user (since, I do not have the access to block, like those of admins, and hence have to warn the IP or user), so that till the time an admin gets to block him/her/it, the user or IP knows that there are people watching him doing nonsense, and would try to heed off. There have been instances, where IP edits stop for say a few days, post warning, till the time the IP thinks that the air has not cooled down on it. Danke. [[User:Harrybrowne1986|Vishal]][[User Talk:Harrybrowne1986| Bakhai]] - [[Special:Contributions/Harrybrowne1986|Works]][[Image:Flag_of_India.svg|15px]] 18:49, 21 May 2014 (UTC)
:Just saw the Beans stuff, and I can relate to it with my nephew who just left yesterday, and had caused god knows what not troubles for us, especially my mother. Broke the water tap, literally broke few other things, and would do all those things which are told '''not to be done'''. I do not issue warning till the time I can see that the edit or contribution, has not gone beyond control levels. Danke [[User:Harrybrowne1986|Vishal]][[User Talk:Harrybrowne1986| Bakhai]] - [[Special:Contributions/Harrybrowne1986|Works]][[Image:Flag_of_India.svg|15px]] 18:54, 21 May 2014 (UTC)
fno6h851ktd25u82kz5cfmecvk7c893
Template talk:Qr-twwp
11
300308
4640053
4408558
2026-06-13T12:22:23Z
ShakespeareFan00
46022
4640053
wikitext
text/x-wiki
Can anything be easily done about the names of all these templates? How do you guys remember them all without visiting the Template category every time? What do the letters in this template's name mean? Another annoying thing is that the template names are case sensitive and some template names are written as one word, others as two words and some are hyphenated. Others start with a capital letter while others are all lower case.--[[User:Xania|ЗAНИA]] [[Image:Flag_of_Estonia.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 23:10, 21 May 2014 (UTC)
: Maybe we need a template naming policy. I prefer all lower case, each word separated with a space, and things spelled out myself to avoid mistakes, and to make finding relevant templates easier. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span color="midnightblue">dark</span>]][[User_talk:Darklama|<span color="green">lama</span>]]</span> 23:21, 21 May 2014 (UTC)
: Oh and to answer your question qr = query, tw = transwiki, and wp = wikipedia. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span color="midnightblue">dark</span>]][[User_talk:Darklama|<span color="green">lama</span>]]</span> 23:24, 21 May 2014 (UTC)
: There is also {{tlx|copypaste}} which serves the same purpose. I would support deleting qr-twwp. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span color="midnightblue">dark</span>]][[User_talk:Darklama|<span color="green">lama</span>]]</span> 23:28, 21 May 2014 (UTC)
::I suppose duplicates (all in lower case, for example) could be made of any offending templates but ultimately some consistency would be nice. The ''edit toolbar'' (no idea what it's really called but I'm referring to the little list of templates which appears below the text area when you edit a page) could have more of the templates included within it - is that something that can be changed through mediawiki or is it something that has to be requested?--[[User:Xania|ЗAНИA]] [[Image:Flag_of_Estonia.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 00:16, 22 May 2014 (UTC)
::: [[MediaWiki:Edittools]] is the place to edit them. Looks like you've edited it yourself before. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span color="midnightblue">dark</span>]][[User_talk:Darklama|<span color="green">lama</span>]]</span> 00:56, 22 May 2014 (UTC)
::: Thanks. Indeed it all looks familiar and I recall editing it now.--[[User:Xania|ЗAНИA]] [[Image:Flag_of_Estonia.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 10:08, 22 May 2014 (UTC)
ngn7a4dc0uzybyl84ne1pnbqilsbnl3
4640058
4640053
2026-06-13T12:27:27Z
ShakespeareFan00
46022
Undid revision [[Special:Diff/4640053|4640053]] by [[Special:Contributions/ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|discuss]])
4640058
wikitext
text/x-wiki
Can anything be easily done about the names of all these templates? How do you guys remember them all without visiting the Template category every time? What do the letters in this template's name mean? Another annoying thing is that the template names are case sensitive and some template names are written as one word, others as two words and some are hyphenated. Others start with a capital letter while others are all lower case.--[[User:Xania|ЗAНИA]] [[Image:Flag_of_Estonia.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 23:10, 21 May 2014 (UTC)
: Maybe we need a template naming policy. I prefer all lower case, each word separated with a space, and things spelled out myself to avoid mistakes, and to make finding relevant templates easier. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 23:21, 21 May 2014 (UTC)
: Oh and to answer your question qr = query, tw = transwiki, and wp = wikipedia. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 23:24, 21 May 2014 (UTC)
: There is also {{tlx|copypaste}} which serves the same purpose. I would support deleting qr-twwp. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 23:28, 21 May 2014 (UTC)
::I suppose duplicates (all in lower case, for example) could be made of any offending templates but ultimately some consistency would be nice. The ''edit toolbar'' (no idea what it's really called but I'm referring to the little list of templates which appears below the text area when you edit a page) could have more of the templates included within it - is that something that can be changed through mediawiki or is it something that has to be requested?--[[User:Xania|ЗAНИA]] [[Image:Flag_of_Estonia.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 00:16, 22 May 2014 (UTC)
::: [[MediaWiki:Edittools]] is the place to edit them. Looks like you've edited it yourself before. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 00:56, 22 May 2014 (UTC)
::: Thanks. Indeed it all looks familiar and I recall editing it now.--[[User:Xania|ЗAНИA]] [[Image:Flag_of_Estonia.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 10:08, 22 May 2014 (UTC)
6qs5916vmnpmvtkzjxebxybispi1hxh
Template talk:Twwp-2
11
300419
4640075
2665539
2026-06-13T12:42:22Z
ShakespeareFan00
46022
4640075
wikitext
text/x-wiki
I always felt this template needed a better name and one box instead of three. It is intended to be used when a page is imported from wikipedia because wikipedia articles are often heavy linked when the practice at wikibooks is/was to include any important information directly within the book, wikipedia has a single style where each book defines its own style guidelines, and the last message is because at one time pages were frequently imported into the transwiki namespace rather then directly where they are wanted. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color:midnightblue">dark</span>]][[User_talk:Darklama|<span style="color:green">lama</span>]]</span> 19:10, 24 May 2014 (UTC)
sz1kwsan4aungtkvxd7bv53dl4qxqhx
Template:One-page book/doc
10
375821
4640256
3127765
2026-06-13T23:46:38Z
~2026-34817-47
3606157
Undid revision [[Special:Diff/3127765|3127765]] by [[Special:Contributions/JackPotte|JackPotte]] ([[User talk:JackPotte|discuss]])
4640256
wikitext
text/x-wiki
يجب عليك تسجيل الدخول لتحميل هذا الملف .{{Documentation subpage}}
==Usage==
This template categorizes into [[:Category:Small books]], the single pages, each representing an entire book.
== Example ==
<nowiki>{{small book}}</nowiki>
==See also==
* {{tl|broadsheet}}
{{Grading templates see also}}
<includeonly>
[[Category:Rating templates|{{PAGENAME}}]]
</includeonly>
9ee8sc71p8r9qky8hrnp3588df0d1ir
4640259
4640256
2026-06-14T00:59:32Z
Codename Noreste
3441010
[[WB:REVERT|Reverted]] edit by [[Special:Contributions/~2026-34817-47|~2026-34817-47]] ([[User talk:~2026-34817-47|talk]]) to last version by JackPotte
3127765
wikitext
text/x-wiki
{{Documentation subpage}}
==Usage==
This template categorizes into [[:Category:One-page books]], the single pages, each representing an entire book.
== Example ==
<nowiki>{{small book}}</nowiki>
==See also==
* {{tl|broadsheet}}
{{Grading templates see also}}
<includeonly>
[[Category:Rating templates|{{PAGENAME}}]]
</includeonly>
smijuyxsulnk7slvp03798ulpk1cdez
User talk:Avicennasis/Archive 1
3
380564
4640124
4591774
2026-06-13T15:28:03Z
ShakespeareFan00
46022
4640124
wikitext
text/x-wiki
== Welcome! ==
<div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Avicennasis!</div>
<div style="width:55%; float:left; margin: .2em; border:1px solid #15304f; background-color:#f4eed7;">
<div style="border-bottom:1px solid #15304f; background-color:#15304f; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#f4eed7;">[[Image:Crystal Clear app kedit.png|20px]] '''First steps tutorial'''</div>
<div style="border-bottom:1px solid #15304f; padding:0.4em 1em 0.3em 1em;">
'''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>
You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing and ''[[WB:AGF|assume good faith]]'' about the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[Wikibooks:Reading room/General|introduce yourself]] to everyone, and let us know what [[Wikibooks:Reading room/Projects|interests you]].
If you're coming here from other Wikimedia projects, you should read [[Help:Wikibooks for Wikimedians|our primer for Wikimedians]] to get quickly up-to-speed.
</div>
<div style="border-bottom:1px solid #15304f; background-color:#2a62a1; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#e9deaf;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div>
<div style="padding:0.4em 1em 0.3em 1em;">
* See the '''Wikibooks [[Help:Contents|help pages]]''' for common issues, or read [[Using Wikibooks]] for a more user-friendly introduction to the project.
* Remember, every edit is saved, so if you make mistakes, you can [[Wikibooks:Reverting|revert]] to an earlier version if needed.
* Get help from the community in the [[WB:HELP|user assistance room]] or in our [[irc:wikibooks|IRC channel]].
* Files must be uploaded to [[commons:Wikimedia Commons|Wikimedia Commons]], unless they are copyrighted and need to be uploaded here under [[w:fair use|fair use]]. If you need to upload a fair use file, you may [[WB:RFP|request permission]] to do so. Please be sure to provide the required {{tlx|information}}: a [[WB:FILES|license tag]] and source are always required; fair use images require a {{tlx|fair use rationale}}.
</div>
</div>
<div style="width:43%; float:left; margin: .2em; border:1px solid #15304f; background-color:#f4eed7;">
<div style="border-bottom:1px solid #15304f; background-color:#5f96d3; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#15304f;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div>
<div style="border-bottom:1px solid #15304f; padding:0.4em 1em 0.3em 1em;">
* Please fill in [[:w:Help:Edit summary|the edit summary]] and [[Help:Show preview|preview]] your edits before saving.
* Sign your name on [[Help:Talk page|discussion pages]] by typing ~~~~
* User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''!
</div>
<div style="border-bottom:1px solid #15304f; background-color:#5f96d3; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#15304f;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div>
<div style="border-bottom:1px solid #15304f; padding:0.4em 1em 0.3em 1em;">
* '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>.
* Need to rename a page? Use the ''move'' tab (only becomes available once your account is 4 days old - until then, ask for [[WB:HELP|help]]).
* To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page.
* If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:RFD|RFD]] archives if applicable. You can request undeletion at [[WB:RFU]], or ask the administrator who deleted the page.
</div>
<div style="background-color:#transparent; padding:0.2em 0.5em 0.2em 0.5em;">Thanks, --[[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 16:47, 29 March 2010 (UTC)</div>
</div>
<div style="clear: both; text-align:right; font-size:smaller">(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</div>
Thanks for those many little fixes you've been making! – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 22:54, 23 January 2011 (UTC)
:No prob. :) I'd like to help out here, and starting with small fixes and working up is generally how I "learn the ropes" the best. -[[User:Avicennasis|Avicennasis]] <small>[[User Talk:Avicennasis|(talk?)]]</small> [[meta:User:Avicennasis/SWMT|(SWMT)]] 22:59, 23 January 2011 (UTC)
== Pseudo-bot ==
No objections have been voiced. You now have the pseudo-bot flag enabled. Please leave me a message on my discussion page when you are finished or email me and I will remove the flag. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 01:46, 22 February 2011 (UTC)
:Some objections were voiced, so I've removed it for the moment. They should be able to take a look at your initial run and program you're using and come to a firm decision. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 15:32, 22 February 2011 (UTC)
::I've turned it on following discussion at [[WB:RFP]]. Have at it and let me know via an email notice when you're done since you won't be able to trigger a discussion page edit notice with the flag. – [[User:Adrignola|Adrignola]] <small>[[User talk:Adrignola|discuss]]</small> 03:32, 4 March 2011 (UTC)
:::Thanks. I'll email you when done - still have about 1500 pages to go through. I expect to be done sometime tomorrow. -[[User:Avicennasis|Avicennasis]] <small>[[User Talk:Avicennasis|(talk?)]]</small> [[meta:User:Avicennasis/SWMT|(SWMT)]] 06:24, 5 March 2011 (UTC)
Note that "the exact same" is not grammatically incorrect; the choice between it and "exactly the same" is stylistic, and personally I wouldn't call all such choices the same way. I suggest you leave that one off your list while using pseudo-bot. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 05:26, 5 March 2011 (UTC)
:OK, no prob. :) The list is pulled from EnWp - I'll trim this entry off my work here. -[[User:Avicennasis|Avicennasis]] <small>[[User Talk:Avicennasis|(talk?)]]</small> [[meta:User:Avicennasis/SWMT|(SWMT)]] 06:24, 5 March 2011 (UTC)
Keep up the good work! Also, did I make any typos in [[History of Hong Kong]]? Does AWB allow correcting WJ and cookbooks? [[:User:Kayau|Kayau]] {{toolbar|separator=dot
|[[:User talk:Kayau|discuss]]
|[[:Special:Emailuser/Kayau|email]]
|[[:Special:Contributions/Kayau|contribs]]
|[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>]
|[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>]
}} 05:06, 6 March 2011 (UTC)
:Thanks! And AWB can scan any page on Wikibooks for Typos. I did all the bluelinks on [[History of Hong Kong]], and only got a few errors. :)
*[http://en.wikibooks.org/w/index.php?title=History_of_Hong_Kong/Prehistoric_times/Stone_Age&diff=prev&oldid=2066411]
*[http://en.wikibooks.org/w/index.php?title=History_of_Hong_Kong/Imperial_years&diff=prev&oldid=2066404]
*[http://en.wikibooks.org/w/index.php?title=History_of_Hong_Kong/Imperial_years/Qin_to_Southern_Dynasty&diff=prev&oldid=2066406]
*[http://en.wikibooks.org/w/index.php?title=History_of_Hong_Kong/Imperial_years/Song_and_Yuan&diff=prev&oldid=2066407]
*[http://en.wikibooks.org/w/index.php?title=History_of_Hong_Kong/Index&diff=prev&oldid=2066408]
*[http://en.wikibooks.org/w/index.php?title=History_of_Hong_Kong/Introduction&diff=prev&oldid=2066409]
*[http://en.wikibooks.org/w/index.php?title=History_of_Hong_Kong/Prehistoric_times&diff=prev&oldid=2066410]
Most of them are simple little things - good job! On Wikipedia I can find ''tons'' of errors; the editors on Wikibooks definitely polish their pages! Let me know if you want anything else scanned. -[[User:Avicennasis|Avicennasis]] <small>[[User Talk:Avicennasis|(talk?)]]</small> [[meta:User:Avicennasis/SWMT|(SWMT)]] 05:14, 6 March 2011 (UTC)
2qpbm4m7snmuhe4lhct8uq98onnq6m6
User:PeterEasthope/sandbox
2
382752
4640099
4639926
2026-06-13T14:20:30Z
PeterEasthope
660399
Added more lines.
4640099
wikitext
text/x-wiki
{{User:PeterEasthope/ThreeBoxes
|'''Host Environment'''<ref name="HostEnvironment"/>
|'''Software'''
|'''Installation'''
|25px}}
{{User:PeterEasthope/ThreeBoxes
| [[w:Field-programmable_gate_array|FPGA]] [[w:Reduced_instruction_set_computer|RISC]]
| [[Oberon/V5|V5]] and [[w:Oberon_(operating_system)#Project_Oberon_2013|Oberon V5]] in Wikipedia.
| [https://www.inf.ethz.ch/personal/wirth/ N. Wirth], [http://www.projectoberon.net/ P. Reed].
| 25px}}
{{User:PeterEasthope/ThreeBoxes
| [[Oberon/Android]], [[w:Linux|Linux]], [[w:Windows_NT|MS Windows]], [[w:MacOS|Mac OS X]] or [[w:Unix|Unix]] on a wide variety of machines<ref name="RISCemuRequirements"/>
| RISC Emulator written in C.
| [https://github.com/pdewacht/oberon-risc-emu P. De Wachter]
| 70px}}
{{User:PeterEasthope/ThreeBoxes
| Unix command line
| Norebo<ref name="norebo"/>
| [https://github.com/pdewacht/project-norebo P. De Wachter]
| 25px}}
{{User:PeterEasthope/ThreeBoxes
| Oberon [[w:Reduced_instruction_set_computer|RISC]] processor or emulation of it<ref name="ExtOberonFootnote"/>
| [[Oberon/Extended_Oberon|Extended Oberon]]
| A. Pirklbauer, [https://github.com/andreaspirklbauer/Oberon-extended/blob/master/README.md README], [https://github.com/andreaspirklbauer/Oberon-extended/blob/master/Documentation/ Documentation], [https://github.com/andreaspirklbauer/Oberon-extended Oberon{{nbhyph}}extended]<ref name="ExtOberonName"/> and [https://github.com/andreaspirklbauer/Oberon-retro-compiler Oberon-retro-compiler].
| 90px}}
{{User:PeterEasthope/ThreeBoxes
| [[w:Web_browser|Web browser]]
| Emulator written in [[w:JavaScript|JavaScript]].
| [https://github.com/schierlm/OberonEmulator/ Michael Schierl].
| 25px}}
{{User:PeterEasthope/ThreeBoxes
| [[w:Web_browser|Web browser]]
| Emulator written in [[w:Java_(programming language)|Java]].
| [https://github.com/schierlm/OberonEmulator/ Michael Schierl].
| 25px}}
{{User:PeterEasthope/ThreeBoxes
| [[w:Linux|Linux]] or [[w:MacOS|Mac OS]]
| [https://github.com/io-core/io/ Integrated Oberon] with an emulator written in the [[w:Go_(programming_language)|Go programming language]].
| [https://github.com/io-core/io/ Charles Perkins]
| 125px}}
{{User:PeterEasthope/ThreeBoxes
| ARMv7, [[w:RISC-V|RISC-V]] or [[w:MIPS_architecture|MIPS]] running Linux.
[[w:RISC-V|RISC-V]] running [[w:FreeRTOS|FreeRTOS]] on Sipeed M1s, Linux 32bit and Linux 64bit.
| Project Oberon Linux, POL;<br>Using native compiler and Linux Kernel functions.
| [http://oberon.wikidot.com/ P. Matthias]
| 125px}}
{{User:PeterEasthope/ThreeBoxes
| [[w:Java Virtual Machine|JVM]]
| Project Oberon using oberonc compiler from L. Boasso
| [http://oberon.wikidot.com/ P. Matthias]
| 125px}}
{{User:PeterEasthope/ThreeBoxes
| [https://github.com/lboasso/oberonc Oberonc] compiler for Oberon-07.<ref name="TypeRules"/>
|
| [https://github.com/io-core/io/ L. Boasso]
| 125px}}
{{User:PeterEasthope/ThreeBoxes
| Any system capable of running QEMU
| [https://github.com/io-core/qemu-risc6 qemu-risc6] fork of QEMU
| [https://github.com/io-core/ Charles Perkins].
| 125px}}
{{User:PeterEasthope/ThreeBoxes
| Any system capable of running [https://github.com/aixp/ProjectOberon-BlackBox BlackBox Component Builder]
| Oberon-07 compiler written in Oberon-2.
| [https://github.com/aixp/ProjectOberon-BlackBox Alexander V. Shiryaev]
| 125px}}
{{User:PeterEasthope/ThreeBoxes
| [[w:Linux|Linux]], [[w:OS X|OS X]] or [[w:MS Windows|MS Windows]]
| [https://github.com/solbjorg/oberon-riscv-emu oberon-riscv-emu]
| [https://github.com/solbjorg/oberon-riscv-emu Rikke Solbjørg]
| 125px}}
{{User:PeterEasthope/ThreeBoxes
| [[w:Linux|Linux]], [[w:OS X|OS X]] or [[w:MS Windows|MS Windows]] with [https://github.com/solbjorg/oberon-riscv-emu oberon-riscv-emu] or a bare [[w:RISC-V|RISC-V]] machine.
| [https://github.com/solbjorg/oberon-riscv oberon-riscv]
| [https://github.com/solbjorg/oberon-riscv Rikke Solbjørg]
| 125px}}
arzc38hp7az70bwemubgihtcsjhrb5p
Talk:Flora of New York/table/doc
1
384293
4640165
3222282
2026-06-13T15:48:24Z
ShakespeareFan00
46022
4640165
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Please add categories and interwikis to the bottom of this page, and also add interwikis to Wikidata. -->
=== Usage ===
This template starts a wikitable with the indicated parameters. It does not end the table. Please do not add end-table code to this template.
=== See also ===
[[:Flora of New York/end table]]
<includeonly>
<!-- Categories and interwikis go here, and interwikis also go on Wikidata. -->
</includeonly>
heq6qi681brbvd6cb0uxv6tx5pr1tsr
4640167
4640165
2026-06-13T15:48:55Z
ShakespeareFan00
46022
4640167
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Please add categories and interwikis to the bottom of this page, and also add interwikis to Wikidata. -->
=== Usage ===
This template starts a wikitable with the indicated parameters. It does not end the table. Please do not add end-table code to this template.
=== See also ===
[[Flora of New York/end table]]
<includeonly>
<!-- Categories and interwikis go here, and interwikis also go on Wikidata. -->
</includeonly>
biw8cvad5hjuvmuokhpv35lfctgencw
The Linux Kernel/PCI
0
420106
4640235
4419441
2026-06-13T19:15:10Z
Conan
3188
fix missing spaces in wiki markup
4640235
wikitext
text/x-wiki
{{DISPLAYTITLE:PCI bus support in Linux kernel}}
== ⚲ Most used API ==
🗝️ Acronyms:
* ACPI - Advanced Configuration and Power Interface
* ACS - Access Control Service
* AER - Advanced Error Reporting port service
* ASPM - Active State Power Management
* EDR - Error Disconnect Recover
* FLR - function level reset
* HT - Hypertransport
* BAR - Base Address Registers
* BW - Bandwidth
* DPC - Downstream Port Containment port service
* EP - Endpoint
* mmrbc - maximum memory read byte count
* mps - maximum payload size
* MWI - Memory-Write-Invalidate
* PM - Power Management
* PMC - ... ... Controller
* PME - ... ... Event, port service
* SR-IOV - Single-root input/output virtualization
* VF - virtual functions
⚲ User space API:
Querying information from a shell:
* {{The Linux Kernel/man|8|lspci}} -vv
* column -t /proc/bus/pci/devices
* {{The Linux Kernel/man|2|pciconfig_read}}, {{The Linux Kernel/man|2|pciconfig_write}}, {{The Linux Kernel/man|2|pciconfig_iobase}} - pci device information handling
* {{The Linux Kernel/include|uapi/linux/pci.h}}
* {{The Linux Kernel/include|uapi/linux/pci_regs.h}}
⚲ Kernel space API:
* {{The Linux Kernel/include|linux/pci.h}}
* {{The Linux Kernel/id|pci_device_id}} - has vendor, device and class IDs. It is used for probing.
* {{The Linux Kernel/id|pci_driver}} - the central struct
* {{The Linux Kernel/id|module_pci_driver}} - helper macro to register pci_driver. It uses {{The Linux Kernel/id|pci_register_driver}} and {{The Linux Kernel/id|pci_unregister_driver}}.
* {{The Linux Kernel/id|pci_dev}} - device descriptor
* {{The Linux Kernel/id|pci_enable_device}}, {{The Linux Kernel/id|pci_disable_device}} - must be called in probe and remove callbacks of pci_driver.
* {{The Linux Kernel/id|pci_set_drvdata}}, {{The Linux Kernel/id|pci_get_drvdata}}
* {{The Linux Kernel/id|pci_name}}
* {{The Linux Kernel/id|pci_set_master}}
* {{The Linux Kernel/id|pcim_iomap_regions}} / {{The Linux Kernel/id|pcim_iounmap_regions}} or {{The Linux Kernel/id|pci_request_region}}, {{The Linux Kernel/id|pci_request_regions}}/ {{The Linux Kernel/id|pci_release_regions}},
* {{The Linux Kernel/id|pci_iomap}}, {{The Linux Kernel/id|pci_iounmap}}
* {{The Linux Kernel/id|pci_alloc_irq_vectors}}/ {{The Linux Kernel/id|pci_free_irq_vectors}}, {{The Linux Kernel/id|pci_request_irq}} or {{The Linux Kernel/id|pci_irq_vector}}
* {{The Linux Kernel/id|to_pci_dev}}
* {{The Linux Kernel/id|pci_resource_flags}}, {{The Linux Kernel/id|pci_resource_start}}, {{The Linux Kernel/id|pci_resource_len}}
* {{The Linux Kernel/id|pci_dev_put}}
* {{The Linux Kernel/id|pci_read_config_dword}}, {{The Linux Kernel/id|pci_write_config_dword}}
* {{The Linux Kernel/id|pci_set_power_state}}
👁 Examples:
* [https://github.com/makelinux/ldt/blob/master/pci-ldt.c PCI Linux Driver Template]
* {{The Linux Kernel/source|samples/v4l/v4l2-pci-skeleton.c}}
* {{The Linux Kernel/ltp|kernel/device-drivers|pci}}
== ⚙️ Internals ==
{{The Linux Kernel/include|linux/pci_ids.h}}<br>
{{The Linux Kernel/source|drivers/pci}}<br>
{{The Linux Kernel/id|pci_ops}}
== 📚 Mainline documents ==
<!--
snippet for list generation:
wget -q -O- https://www.kernel.org/doc/html/latest/driver-api/pci/pci.html | grep -o 'headerlink.*' | grep -o '#c\.*[^"]\+' | sed 's=\(.*\)={{The Linux Kernel/doc|\1|driver-api/pci/pci.html\1}},=' | sed 's=|#c.=|='
-->
: {{The Linux Kernel/doc|PCI driver API|driver-api/pci/}}
: {{The Linux Kernel/doc|PCI Support Library|driver-api/pci/pci.html}}
: {{The Linux Kernel/doc|PCI Hotplug Support Library|driver-api/pci/pci.html#pci-hotplug-support-library}}
: {{The Linux Kernel/doc|PCI Peer-to-Peer DMA Support|driver-api/pci/p2pdma.html}}
=== 📚 PCI subsystem docs ===
'''{{The Linux Kernel/doc|PCI subsystem|PCI}}, newer on the top:'''
'''{{The Linux Kernel/doc|Boot Interrupts reroute|PCI/boot-interrupts.html}}'''
[https://elixir.bootlin.com/linux/latest/K/ident/CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS X86_REROUTE_FOR_BROKEN_BOOT_IRQS]
{{The Linux Kernel/doc|Kernel parameters|admin-guide/kernel-parameters.html}}pci=ioapicreroute
'''{{The Linux Kernel/doc|EP - Endpoint Framework|PCI/endpoint/index.html}}'''
Querying information from shell:
find /sys/kernel/config/pci_ep/
EPC - EP '''Controller''':
{{The Linux Kernel/include|linux/pci-epc.h}}
{{The Linux Kernel/id|pci_epc_create}}, {{The Linux Kernel/id|devm_pci_epc_create}}
EPF - EP '''Function''':
{{The Linux Kernel/include|linux/pci-epf.h}}
{{The Linux Kernel/id|pci_epf_create}}
Internals: {{The Linux Kernel/source|drivers/pci/endpoint/}}
Driver to test endpoint functionality: {{The Linux Kernel/source|drivers/pci/endpoint/functions/pci-epf-test.c}}
'''{{The Linux Kernel/doc|PCIe virtualization, SR-IOV|PCI/pci-iov-howto.html}}, 2009'''
API: {{The Linux Kernel/id|pci_enable_sriov}}, {{The Linux Kernel/id|pci_disable_sriov}}, {{The Linux Kernel/id|sriov_configure}}
'''{{The Linux Kernel/doc|MSI - Message Signaled Interrupts|PCI/msi-howto.html}}, 2008'''
MSI Example:
vectors = {{The Linux Kernel/id|pci_alloc_irq_vectors}}(pci_dev, 1, 1, PCI_IRQ_MSI | PCI_IRQ_MSIX);<br>
irq = {{The Linux Kernel/id|pci_irq_vector}}(pci_dev, 0);
'''{{The Linux Kernel/doc|AER - Advanced Error Reporting|PCI/pcieaer-howto.html}}, 2006'''
API: {{The Linux Kernel/include|linux/aer.h}}, {{The Linux Kernel/id|pci_enable_pcie_error_reporting}}, {{The Linux Kernel/id|pci_disable_pcie_error_reporting}}, {{The Linux Kernel/id|pci_aer_clear_nonfatal_status}}
'''{{The Linux Kernel/doc|ERS - Error Recovery System|PCI/pci-error-recovery.html}}:'''
API: {{The Linux Kernel/id|pci_error_handlers}}, {{The Linux Kernel/id|pci_ers_result}}, {{The Linux Kernel/id|pci_channel_state_t}}
'''{{The Linux Kernel/doc|PCIe - PCI Express Port Bus Driver|PCI/pciebus-howto.html}}, 2004'''
API: {{The Linux Kernel/id|pcie_port_service_driver}},{{The Linux Kernel/id|pcie_port_service_register}}, {{The Linux Kernel/id|pcie_port_service_unregister}}
'''{{The Linux Kernel/doc|Old manual PCI API|PCI/pci.html}}'''
{{The Linux Kernel/id|pci_get_device}}, {{The Linux Kernel/id|pci_get_class}}, {{The Linux Kernel/id|pci_get_subsys}}, {{The Linux Kernel/id|pci_dev_put}}
''💾 Historical:''
* [http://www.makelinux.net/ldd3/?u=chp-12.shtml LDD3:PCI Drivers]
* [http://lwn.net/images/pdf/LDD3/ch12.pdf LDD3:PCI Drivers, pdf]
* http://www.tldp.org/LDP/tlk/dd/pci.html
📚 References
* {{w|PCI Express}}
* {{w|Category:Peripheral Component Interconnect}}
* https://wiki.osdev.org/PCI
* https://lwn.net/Kernel/Index/#PCI
{{BookCat}}
f9nlu3zhowzzory5ioyeneuwtm20lle
The Linux Kernel/Human interfaces
0
421455
4640216
4632250
2026-06-13T17:19:34Z
Conan
3188
add brief descriptions to source file references
4640216
wikitext
text/x-wiki
<noinclude>{{DISPLAYTITLE:Human interfaces}}</noinclude>
{| style="float:right; text-align: center; border-spacing: 0; margin: auto;" cellpadding="5pc"
! bgcolor="#fcd" |human interfaces
|- zstyle=""
| bgcolor="#ecd" |[[#Text interfaces|text interfaces]]
|- style=""
| bgcolor="#dcd" |[[#Security|security]]
|- style=""
| bgcolor="#dcc" |[[#Debugging|debugging]]
|- style=""
| bgcolor="#cbb" |[[#Multimedia subsystems|multimedia subsystems]]
|- style=""
| bgcolor="#baa" |[[#HID|human interface devices]], [[#Input_devices|input devices]]
|- style=""
| bgcolor="#aaa" |[[#HI_device_drivers|HI drivers]]
|}
Welcome to the first article of this book.
The article is named after the {{W|USB human interface device class|USB class}} and the Linux facility for {{w|Human interface device|Human Interface Devices}} (HID).
The HID subsystem in Linux supports keyboards, mice, and other {{w|Input device|input devices}}.
In addition to input handling, this article also explores topics related to the console, multimedia (or simply media), sound (audio), video, and graphics—key areas of user interaction.
Security and debugging are also covered, as they are closely tied to human interaction and user-facing functionality.
== Text interfaces ==
In the world of Linux, text {{w|terminal emulator}}s and {{w|Linux console|console}}s are essential components of the operating system that allow users to interact with applications through the kernel.
A text terminal is a device that provides a text-based interface for communicating with the kernel, while the console is the physical device that houses the terminal and displays the output of the kernel.
The Linux kernel includes a built-in console driver that provides a basic interface for communicating with the console and controlling the terminal.
The console driver also supports various input and output devices, such as keyboards and displays, to enable users to interact with the system through a terminal.
The use of text {{w|Computer terminal|terminals}} and {{w|system console}}s in Linux can be traced back to the early days of computing, when {{w|Graphical terminal|graphical user interfaces}} were not yet widely available.
Despite the widespread adoption of graphical user interfaces, {{w|Text-based user interface|text-based interfaces}} and consoles remain popular among Linux users and developers for their simplicity, efficiency, and flexibility.
Overall, the text terminal and console play a crucial role in the Linux kernel, providing users with a powerful interface for managing and interacting with the operating system.
=== Char devices ===
{{The Linux Kernel/id|cdev}} – "character device" is a type of device driver that provides an implementation for character {{w|device file}} in the /dev directory.
The word "device" here means abstract interface, {{w|Proxy pattern|proxy}} to a usually peripheral physical device.
A character device is a type of device that can be accessed as a stream of bytes, rather than as a block of data like a block device.
Cdev drivers are commonly used for devices that provide a {{w|sequential access|stream}} of data, such as keyboards, mouses, terminals, serial ports, and printers.
They are also used for devices that provide access to memory-mapped I/O regions, such as frame buffers and network devices.
A cdev driver typically consists of a set of functions that implement the low-level I/O operations for the device, such as open, read and write.
These functions are called by the kernel when a user space program accesses the character device file.
To create a cdev driver, a kernel developer must first initialize a cdev structure using {{The Linux Kernel/id|cdev_init}} or {{The Linux Kernel/id|cdev_alloc}}.
The cdev structure contains information about the device, such as its major and minor numbers and the set of I/O functions that the driver implements.
Once the cdev structure has been initialized, it can be registered with the kernel using the {{The Linux Kernel/id|cdev_add}} function.
This function creates the character device file in the /dev directory and associates it with the cdev driver.
You can find a list of registered char devices on the beginning the listing of <big>/proc/devices</big>. [[#Input_devices|Input devices]] keyboard and mouse are examples of char devices.
<small>''Tip: Browse the cross-referencing site to explore nearby API and use cases''</small>
💾 ''Historical: It is one of the most simple, fundamental and oldest concepts derived from UNIX. ''
⚲ API
: {{The Linux Kernel/include|linux/cdev.h}}
:: {{The Linux Kernel/id|dev_t}} - device id consists of {{The Linux Kernel/id|MAJOR}} and {{The Linux Kernel/id|MINOR}} numbers
:: {{The Linux Kernel/id|cdev}} - core char device struct
:: {{The Linux Kernel/id|cdev_init}} or {{The Linux Kernel/id|cdev_alloc}}
:: {{The Linux Kernel/id|cdev_device_add}} - helper function, uses
::: {{The Linux Kernel/id|cdev_add}} - common key function to add a char device to the system.
: {{The Linux Kernel/id|register_chrdev}} - ''obviously registers char device'' by '''major''' number, '''name''' and file operations
: {{The Linux Kernel/id|unregister_chrdev}}
: {{The Linux Kernel/id|alloc_chrdev_region}} / {{The Linux Kernel/id|register_chrdev_region}},
: {{The Linux Kernel/id|unregister_chrdev_region}}
: {{The Linux Kernel/include|uapi/linux/major.h}} - static definitions of many major numbers, including obsolete.
⚙️ Internals
: {{The Linux Kernel/source|fs/char_dev.c}} – character device registration
: {{The Linux Kernel/id|chrdevs}}
📖 References
: {{The Linux Kernel/doc|Char devices|core-api/kernel-api.html#char-devices}}
: [https://linux-kernel-labs.github.io/refs/heads/master/labs/device_drivers.html Character device drivers, linux-kernel-labs]
: [https://www.opensourceforu.com/2011/04/character-device-files-creation-operations/ Character device files, on opensourceforu]
💾 ''Historical''
: [http://lwn.net/images/pdf/LDD3/ch03.pdf LDD3:Char Drivers]
: [http://lwn.net/images/pdf/LDD3/ch06.pdf LDD3:Advanced Char Driver Operations]
: [http://www.xml.com/ldd/chapter/book/ch03.html LDD1:#3]
: [http://www.xml.com/ldd/chapter/book/ch05.html LDD1:#5]
=== Text terminals and console ===
🗝️ Acronyms
: {{w|Tty (unix)|tty}} - 💾 ''historically TeleTYpewriter'', means just terminal
: {{w|Pseudoterminal|pty}} - pseudoterminal
: pts - pseudoterminal slave
: ptmx - pseudoterminal master
⚲ API
: To find out current terminal:
:: readlink /proc/self/fd/0
:: {{The Linux Kernel/man|1|tty}}
:: {{The Linux Kernel/man|1|who}} -m
: {{The Linux Kernel/include|linux/tty.h}}
:{{The Linux Kernel/id|register_console}} obviously registers {{The Linux Kernel/id|console}}
:: 👁 example {{The Linux Kernel/id|virtio_console}}
: {{The Linux Kernel/include|linux/console.h}}
: {{The Linux Kernel/man|2|ioctl_console}}
⚙️ Internals
: {{The Linux Kernel/source|drivers/tty}} – TTY layer
: {{The Linux Kernel/source|fs/devpts}} – devpts pseudo-filesystem for PTY slaves
: {{The Linux Kernel/source|fs/proc/proc_tty.c}} – /proc/tty information
: {{The Linux Kernel/source|drivers/tty/vt/vt.c}} – virtual terminal console
📖 References
: {{The Linux Kernel/man|4|tty}} – controlling terminal
: {{The Linux Kernel/man|4|ptmx}} and pts – pseudoterminal master and slave
: {{The Linux Kernel/man|7|pty}} – pseudoterminal interfaces
: {{The Linux Kernel/doc|console|driver-api/console.html}}
💾 ''Historical''
: [http://lwn.net/images/pdf/LDD3/ch18.pdf LDD3:TTY Drivers]
==Security==
The goal of security is to restrict access through interfaces.
From access control and authentication mechanisms to secure boot and memory protection,
the Linux kernel employs a variety of techniques to safeguard the system and its users.
Basic Linux security is quite simple.
It consists of tree ownership classes and tree access modes.
One of the most frequently executed functions is {{The Linux Kernel/id|may_open}}.
It rejects access of unauthorized users to open a file.
See article [[../Security/]] for new features.
=== Authorization ===
{{w|Authorization}} is the function of specifying {{w|Computer access control|access}} rights/{{w|Privilege_(computing)|privilege}}s to system resources.
The main goal of authorization is prevention of {{w|privilege escalation}} under any circumstances.
🔧 TODO.
Keywords: permission, capabilities, ownership, {{w|mitigation}}.
⚲ API
: {{The Linux Kernel/include|linux/stat.h}}
: {{The Linux Kernel/include|uapi/linux/stat.h}}
Basic classic UNIX authorization is based on ownership and tree access modes: reading, writing and execution.
Ownership is encoded by owning user id {{The Linux Kernel/id|uid_t}} and owning group id {{The Linux Kernel/id|gid_t}}.
{{The Linux Kernel/id|umode_t}} - just typedef used for encoding access mode. {{The Linux Kernel/id|S_IRUSR}} - minimal "read only by user/owner" access mode.
{{The Linux Kernel/id|S_IALLUGO}} - full access mode.
Please read the source for details for other modes.
Binary {{w|Access Control Matrix}} of access modes:
{| class="wikitable"
|+
!modes
!bits
!Read
!Write
!Execute
|-
|bit offset
|
|2
|1
|0
|-
|'''Others'''
|0-2
|or
|ow
|ox
|-
|'''Group'''
|3-5
|gr
|gw
|gx
|-
|'''User'''
|6-8
|ur
|uw
|ux
|}
: {{The Linux Kernel/man|2|chown}} ↪ {{The Linux Kernel/id|do_fchownat}} changes ownership for file or directory
: {{The Linux Kernel/man|2|chmod}} ↪ {{The Linux Kernel/id|do_fchmodat}} changes access mode for file or directory
: {{The Linux Kernel/man|2|access}}, {{The Linux Kernel/man|2|faccessat}} ↪ {{The Linux Kernel/id|do_faccessat}} checks access rights
Common authorization errors
: {{The Linux Kernel/id|EPERM}} – "Operation not permitted"
: {{The Linux Kernel/id|EACCES}} – "Permission denied"
🚀 Advanced features
: {{The Linux Kernel/man|5|acl}} {{The Linux Kernel/id|posix_acl}}
: {{The Linux Kernel/include|uapi/linux/capability.h}}
:: {{The Linux Kernel/man|2|capset}} and capget – set/get capabilities of thread(s)
:: {{The Linux Kernel/man|3|libcap}}
: {{The Linux Kernel/man|1|setpriv}} – run a program with different privilege settings
⚙️ Internals
: {{The Linux Kernel/id|may_open}} rejects unauthorized file opening
:: {{The Linux Kernel/id|inode_permission}} checks for access rights to a given inode
: {{The Linux Kernel/source|kernel/capability.c}} – POSIX capabilities system calls
📖 References
: {{w|File-system permissions}}
: {{The Linux Kernel/man|7|capabilities}}
===Credentials===
🔧 TODO.
Keywords: {{w|authentication}}, user IDs, group IDs, Process group ID, session ID.
⚲ API
: {{The Linux Kernel/include|uapi/asm-generic/stat.h}}
: {{The Linux Kernel/source|arch/x86/include/uapi/asm/stat.h}} – x86 stat structure definitions
: {{The Linux Kernel/include|linux/cred.h}}
:: struct {{The Linux Kernel/id|cred}} - the security context of a task
: {{The Linux Kernel/man|1|id}}, {{The Linux Kernel/man|1|test}} - shell utilities
: {{The Linux Kernel/man|2|getuid}} ↪ {{The Linux Kernel/id|current_uid}}
: {{The Linux Kernel/man|2|getgid}}
: {{The Linux Kernel/man|2|geteuid}} is used by utility {{The Linux Kernel/man|1|whoami}}
: Real, effective, and saved user/group IDs:
:: {{The Linux Kernel/man|2|getresuid}}, getresgid
:: {{The Linux Kernel/man|2|setreuid}}, setregid
: {{The Linux Kernel/man|2|setfsuid}} - set user identity used for filesystem checks
: {{The Linux Kernel/man|2|umask}} - sets file mode creation mask
: {{The Linux Kernel/man|1|stat}}, {{The Linux Kernel/man|2|stat}} ↪ {{The Linux Kernel/id|vfs_fstat}}, {{The Linux Kernel/id|vfs_fstatat}}
: {{The Linux Kernel/man|2|statx}} ↪ {{The Linux Kernel/id|do_statx}}
⚙️ Internals
: {{The Linux Kernel/id|kstat}}
: {{The Linux Kernel/id|make_kuid}} etc
: {{The Linux Kernel/id|from_kuid_munged}} etc
📖 References
: {{The Linux Kernel/doc|Credentials in Linux|security/credentials.html}}
: {{The Linux Kernel/man|7|credentials}}
: https://www.geeksforgeeks.org/real-effective-and-saved-userid-in-linux/
=== Cryptography ===
🔧 TODO
🗝️ Acronyms
: AES - {{w||Advanced Encryption Standard}}
⚲ API
: {{The Linux Kernel/id|AF_ALG}} - {{The Linux Kernel/doc|User Space Interface|crypto/userspace-if.html}}
: {{The Linux Kernel/include|linux/crypto.h}} - Scatterlist Cryptographic API.
: {{The Linux Kernel/include|crypto}}
⚙️ Internals
: {{The Linux Kernel/source|crypto}} – cryptographic API core
: {{The Linux Kernel/source|drivers/crypto}} – hardware crypto accelerator drivers
: {{The Linux Kernel/source|lib/crypto}} – crypto library helpers
: {{The Linux Kernel/source|arch/x86/crypto}} – x86 optimized crypto implementations
: {{The Linux Kernel/source|fs/crypto}} - per-file encryption
: {{The Linux Kernel/source|fs/ecryptfs}} eCrypt FS - Encrypted filesystem that operates on the VFS layer.
: {{w|dm-crypt}}, {{The Linux Kernel/source|drivers/md/dm-crypt.c}}
📖 References
: {{The Linux Kernel/doc|Linux Kernel Crypto API|crypto}}
: {{w|Crypto API (Linux)}}
: [https://www.kernel.org/doc/Documentation/devicetree/bindings/crypto/ devicetree/bindings/crypto]
: {{The Linux Kernel/ltp|kernel|crypto}}
=== Audit ===
: {{The Linux Kernel/source|kernel/audit.h}} – audit internal definitions
: {{The Linux Kernel/source|kernel/audit.c}} – audit gateway between kernel and user-space daemon
: {{The Linux Kernel/source|kernel/auditsc.c}} – system-call auditing
: {{The Linux Kernel/source|kernel/audit_tree.c}} – audit directory tree watches
: {{The Linux Kernel/source|kernel/audit_watch.c}} – audit filesystem path watches
: {{The Linux Kernel/source|kernel/audit_fsnotify.c}} – audit fsnotify integration
: {{The Linux Kernel/source|kernel/auditfilter.c}} – audit rule filtering
📖 References
: https://capsule8.com/blog/auditd-what-is-the-linux-auditing-system/
: https://wiki.archlinux.org/title/Audit_framework
: {{The Linux Kernel/man|8|auditctl}}
See also [[The_Linux_Kernel/Debugging#eBPF|eBPF and BPF]]
=== ... ===
Appendix for Security:
🔧 TODO
: {{The Linux Kernel/man|2|fcntl}} ↪ {{The Linux Kernel/id|do_fcntl}}
: {{The Linux Kernel/man|2|seccomp}} ↪ {{The Linux Kernel/id|do_seccomp}}
: {{The Linux Kernel/man|2|add_key}} ↪ {{The Linux Kernel/source|security/keys/keyctl.c}}
: {{w|chroot}}, {{The Linux Kernel/man|2|chroot}}
: {{w|Address_space_layout_randomization#Linux|Address space layout randomization}}
:: {{The Linux Kernel/man|8|setarch}} / {{The Linux Kernel/man|2|personality}}
📖 References
: {{The Linux Kernel/doc|Security-related interfaces|userspace-api/index.html#security-related-interfaces}}
:: {{The Linux Kernel/doc|No New Privileges Flag|userspace-api/no_new_privs.html}}
:: {{The Linux Kernel/doc|Seccomp BPF (SECure COMPuting with filters)|userspace-api/seccomp_filter.html}}
:: {{The Linux Kernel/doc|Landlock: unprivileged access control|userspace-api/landlock.html}}
:: {{The Linux Kernel/doc|Linux Security Modules|userspace-api/lsm.html}}
:: {{The Linux Kernel/doc|Introduction of non-executable mfd|userspace-api/mfd_noexec.html}}
:: {{The Linux Kernel/doc|Speculation Control|userspace-api/spec_ctrl.html}}
:: {{The Linux Kernel/doc|TEE (Trusted Execution Environment) Userspace API|userspace-api/tee.html}}
:: {{The Linux Kernel/doc|Executability check|userspace-api/check_exec.html}}
: {{The Linux Kernel/doc|Security|security}}
:: {{The Linux Kernel/doc|LSM - Linux Security Modules|security/lsm.html}} [https://docs.kernel.org/admin-guide/perf-security.html Perf events and tool security]
: {{The Linux Kernel/doc|Hardware vulnerabilities|admin-guide/hw-vuln}}
: {{w|Linux Security Modules}}
: {{The Linux Kernel/include|linux/security.h}} ⇾ {{The Linux Kernel/source|security}}
: {{The Linux Kernel/include|keys}}
: {{The Linux Kernel/include|linux/verification.h}}
: {{The Linux Kernel/source|certs}} – module signing certificates
: {{The Linux Kernel/ltp|kernel|security}}
: {{The Linux Kernel/ltp||cve}}
: http://kernsec.org/wiki/index.php/Main_Page
: {{w|SELinux}} http://selinuxproject.org/
== Debugging ==
See [[The_Linux_Kernel/Debugging|Debugging the Linux kernel]]
==Multimedia subsystems==
⚙️ Internals
: {{The Linux Kernel/source|drivers/media}} – media subsystem (V4L2, DVB, etc.)
=== Graphics ===
Old graphics (not to be confused with v4l):
⚲ API
: {{The Linux Kernel/include|video}}
<!-- : {{The Linux Kernel/include|uapi/video}} old stuff -->
⚙️ Internals
: {{The Linux Kernel/source|drivers/video}} – framebuffer and video drivers
==== {{w|Direct Rendering Manager}} (DRM) ====
DRM is responsible for interfacing with GPUs of modern video cards.
DRM exposes an API that user-space programs can use to send commands and data to the GPU and perform operations such as configuring the mode setting of the display.
User-space programs can use the DRM API to command the GPU to do hardware-accelerated 3D rendering and video decoding, as well as {{w|General-purpose computing on graphics processing units|GPGPU}} computing.
⚲ API
: /sys/class/drm/
: {{The Linux Kernel/include|uapi/drm}}
:: {{The Linux Kernel/include|uapi/drm/drm.h}}
::: {{The Linux Kernel/id|DRM_IOCTL_BASE}}
::: {{The Linux Kernel/id|drm_version}}
⚙️ Internals
: {{The Linux Kernel/include|drm}}
: {{The Linux Kernel/include|drm_gem.h}} – Graphics Execution Manager Driver Interfaces
: {{The Linux Kernel/id|drm_dev_register}} registers {{The Linux Kernel/id|drm_device}}
=== {{w|Advanced Linux Sound Architecture}} (ALSA) ===
ALSA is a software framework and part of the Linux kernel that provides an API for sound card device drivers.
Some of the goals of the ALSA project at its inception were automatic configuration of sound-card hardware and graceful handling of multiple sound devices in a system.
The sound servers PulseAudio, JACK (low-latency professional-grade audio editing and mixing) and PipeWire, the higher-level abstraction APIs OpenAL, SDL audio, etc. work on top of ALSA and implemented sound card device drivers.
On Linux systems, ALSA succeeded the older {{w|Open Sound System}} (OSS).
⚲ API
: /proc/asound/cards, /sys/class/sound/
: {{The Linux Kernel/id|snd_card}} - central struct
: {{The Linux Kernel/id|snd_card_new}}
: {{The Linux Kernel/id|snd_card_register}}
: {{The Linux Kernel/id|snd_device_ops}}
: {{The Linux Kernel/id|snd_device_new}} creates an ALSA device component
: {{The Linux Kernel/include|uapi/sound/asound.h}}
: {{The Linux Kernel/include|sound/core.h}}
⚙️ Internals
: {{The Linux Kernel/source|sound}} – ALSA sound subsystem
: {{The Linux Kernel/source|sound/core/device.c}} – ALSA device management
: See [[#Sound SoC - ASoC|ASoC]]
📖 References
: {{The Linux Kernel/doc|ALSA (sound)|sound}}
: {{The Linux Kernel/doc|Writing an ALSA Driver|sound/kernel-api/writing-an-alsa-driver.html}}
: {{The Linux Kernel/ltp|kernel|sound}}
=== {{w|Video4Linux}} (V4L2) ===
V4L is a collection of device drivers and an API for supporting realtime video capture on Linux systems.
It supports many USB webcams, TV tuners, and related devices, standardizing their output, so programmers can easily add video support to their applications.
MythTV, tvtime and Tvheadend are typical applications that use the V4L framework.
⚲ API
: {{The Linux Kernel/id|v4l2_device_register}} registers {{The Linux Kernel/id|v4l2_device}}
: {{The Linux Kernel/id|video_register_device}} registers {{The Linux Kernel/id|video_device}}
: 👁 examples {{The Linux Kernel/source|drivers/media/test-drivers}}
📖 References
: {{w|Video4Linux}}
: {{The Linux Kernel/doc|media|driver-api/media}}
: {{The Linux Kernel/doc|V4L|userspace-api/media/drivers/}}
: [https://linuxtv.org/downloads/v4l-dvb-apis-new/driver-api/index.html Media subsystem kernel internal API]
==HID==
Generic human interface devices.
Don't confuse with [[../System#hiddev|hiddev]].
=== Input devices ===
Input device files are kind of [[#char devices|char devices]] with id {{The Linux Kernel/id|INPUT_MAJOR}}.
Classic input devices are keyboard and mouse.
⚲ API
: In shell: cat /proc/bus/input/devices
: {{The Linux Kernel/include|linux/input.h}}
: {{The Linux Kernel/id|devm_input_allocate_device}}, {{The Linux Kernel/id|input_register_device}}, {{The Linux Kernel/id|input_register_handler}}, {{The Linux Kernel/id|input_dev}}
: {{The Linux Kernel/id|input_report_key}} {{The Linux Kernel/id|input_sync}}
👁 Examples
: {{The Linux Kernel/source|drivers/input/mousedev.c}} – mouse device emulation
: {{The Linux Kernel/source|drivers/input/keyboard/atkbd.c}} – AT/PS2 keyboard driver
: {{The Linux Kernel/source|drivers/input/evbug.c}} – input event debugging module
<big>⌨️</big> Hands onInternals
sudo hexdump /dev/input/mice # dump your mouse movements events from your kernel
⚙️ Internals
: {{The Linux Kernel/source|drivers/input/input.c}} – input core
: {{The Linux Kernel/id|input_event}}
📖 References
: {{The Linux Kernel/doc|Input|input}}
: {{The Linux Kernel/ltp|kernel|input}}
=== HID devices ===
🔧 TODO
⚲ API
: {{The Linux Kernel/id|hid_device}} - device report descriptor. Operations: {{The Linux Kernel/id|hid_allocate_device}}, {{The Linux Kernel/id|hid_add_device}} . 👁 Example {{The Linux Kernel/id|usbhid_probe}}
: {{The Linux Kernel/include|uapi/linux/hid.h}}
: {{The Linux Kernel/include|linux/hid.h}}
=== Camera ===
🔧 TODO
⚲ API
: {{The Linux Kernel/include|uapi/linux/uvcvideo.h}}
📖 References
: {{The Linux Kernel/doc|UVC|userspace-api/media/drivers/uvcvideo.html}}
: {{The Linux Kernel/source|drivers/media/usb/uvc}} – USB Video Class driver
==HI device drivers==
This section is about low level drivers to human interface peripheral devices.
⚲ '''HID''' API
: {{The Linux Kernel/include|linux/hidraw.h}}
: {{The Linux Kernel/id|module_hid_driver}} registers {{The Linux Kernel/id|hid_driver}}
: {{The Linux Kernel/id|hid_hw_start}}
⚙️ Internals
: {{The Linux Kernel/id|hid_bus_type}}
: {{The Linux Kernel/source|drivers/hid}} – HID transport drivers
: {{The Linux Kernel/source|drivers/hid/hid-core.c}} – HID core parsing and event handling
: {{The Linux Kernel/source|drivers/accessibility}} – accessibility drivers (speakup)
: {{The Linux Kernel/source|drivers/leds}} – LED class drivers
: {{The Linux Kernel/source|samples/uhid/uhid-example.c}} - 👁 example of user mode HID driver
: {{The Linux Kernel/source|drivers/input}} : keyboard & mouse, misc, serio, tablet, touchscreen, gameport, joystick
:: <big>⌨️</big> Hands on
:: echo "module atkbd +pfl" | sudo tee /sys/kernel/debug/dynamic_debug/control
'''USB HID'''
⚲ '''HID''' API
: {{The Linux Kernel/id|USB_INTERFACE_CLASS_HID}} == {{The Linux Kernel/id|USB_CLASS_HID}}
⚙️ Internals
: {{The Linux Kernel/source|drivers/hid/usbhid}} – USB HID transport
:: {{The Linux Kernel/source|drivers/hid/usbhid/usbkbd.c}}: {{The Linux Kernel/id|usb_kbd_driver}}
:: {{The Linux Kernel/source|drivers/hid/usbhid/usbmouse.c}}: {{The Linux Kernel/id|usb_mouse_driver}}
📖 References
: <!--
find include/ -type f -name '*hid*' | sed 's-include/\(.*\)-* {{The Linux Kernel/include|\1}}-'
-->{{The Linux Kernel/doc|USB HID class|hid}}
=== Graphics ===
🔧 TODO
🗝️ Acronyms
: FB - {{w|Linux framebuffer|Framebuffer}}
: GPU - {{w|Graphics processing unit}}
: TFT (LCD) - {{w|Thin-film-transistor liquid-crystal display}} used for 🤖 embedded devices
: MIPI - 📱 {{w|Mobile Industry Processor Interface}}
:: DBI - Display Bus Interface
:: DSI - {{w|Display Serial Interface}}
:: DCS - The Display Command Set
⚲ API
: cat /proc/fb
: ls -l /sys/class/graphics
: {{The Linux Kernel/include|video/mipi_display.h}}
: {{The Linux Kernel/include|linux/fb.h}}
: {{The Linux Kernel/id|register_framebuffer}}
: {{The Linux Kernel/id|FBTFT_REGISTER_DRIVER}}
: {{The Linux Kernel/id|fbtft_display}}
⚙️ Internals
: {{The Linux Kernel/source|drivers/video}} – framebuffer and video drivers
: {{The Linux Kernel/source|drivers/gpu}} – GPU and DRM drivers
👁 Examples
: {{The Linux Kernel/id|vivid_fb_init}}
: {{The Linux Kernel/id|fbtft_register_framebuffer}}
📖 References
: {{The Linux Kernel/doc|GPU Driver Developer’s Guide|gpu}}
: {{The Linux Kernel/doc|The Frame Buffer Device|fb}}
: {{The Linux Kernel/doc|Frame Buffer Library|driver-api/frame-buffer.html}}
: [https://lwn.net/Kernel/Index/#Device_drivers-Graphics LWN: Graphics]
=== Sound SoC - ASoC ===
ALSA System on Chip (ASoC) layer for or 🤖 embedded systems.
ASoC is designed to handle complex audio processing and routing on low-power and resource-constrained systems, making it an ideal solution for embedded devices such as smartphones, tablets, and other IoT devices.
ASoC provides a comprehensive framework for audio drivers, enabling the creation of modular audio drivers that can be easily integrated with the rest of the kernel.
It also supports a wide range of audio interfaces, including I2S, PCM, AC97, and SPDIF, making it highly versatile and capable of handling a variety of audio formats.
One of the key features of ASoC is its ability to handle audio routing and processing using Digital Signal Processing (DSP) techniques.
This enables ASoC to support advanced audio features such as noise reduction, echo cancellation, and dynamic range compression, among others.
Overall, ASoC is a powerful and flexible subsystem that enables Linux to support a wide range of audio hardware in embedded devices.
It has become an essential component of many embedded Linux distributions and is widely used in the development of modern audio-enabled devices.
⚲ API
: {{The Linux Kernel/include|sound/soc.h}}
:: {{The Linux Kernel/id|snd_soc_card}}
::: is registered by {{The Linux Kernel/id|devm_snd_soc_register_card}} ⇾ {{The Linux_Kernel/id|snd_soc_register_card}}
: {{The Linux Kernel/include|sound/soc-component.h}}
:: {{The Linux Kernel/id|snd_soc_component}}
::: {{The Linux Kernel/id|snd_soc_component_driver}}
::: {{The Linux Kernel/id|snd_soc_card}}
:::: {{The Linux Kernel/id|snd_card}}
:: {{The Linux Kernel/id|snd_soc_register_component}} {{The Linux Kernel/id|snd_soc_component_get_drvdata}} {{The Linux Kernel/id|snd_soc_component_read}} {{The Linux Kernel/id|snd_soc_component_update_bits}} {{The Linux Kernel/id|snd_soc_component_write}}
: {{The Linux Kernel/include|sound/soc-dai.h}} - {{The Linux Kernel/doc|DAI - Digital Audio Interface|sound/soc/dai.html}}: {{w|AC97}}, {{w|I2S}}, {{w|PCM}}
:: {{The Linux Kernel/id|snd_soc_dai}} {{The Linux Kernel/id|snd_soc_dai_driver}} {{The Linux Kernel/id|snd_soc_dai_get_drvdata}}
: {{The Linux Kernel/include|sound/soc-dpcm.h}} - {{The Linux Kernel/doc|DPCM - Dynamic PCM|sound/soc/dpcm.html}}
: {{The Linux Kernel/include|sound/soc-dapm.h}} - {{The Linux Kernel/doc|DAPM - Dynamic Audio Power Management|sound/soc/dapm.html}}
:: {{The Linux Kernel/id|snd_soc_dapm_route}}, {{The Linux Kernel/id|snd_soc_dapm_to_component}}, {{The Linux Kernel/id|snd_soc_dapm_widget}}
👁 Examples
: {{The Linux Kernel/source|sound/soc/generic/simple-card.c}}
: {{The Linux Kernel/source|sound/soc/generic/audio-graph-card.c}} uses {{The Linux Kernel/include|sound/graph_card.h}}
⚙️ Internals
: {{The Linux Kernel/source|sound/soc}} – ASoC framework
: {{The Linux Kernel/id|snd_soc_card}}
:: {{The Linux Kernel/id|snd_soc_dai_link}}
📖 References
: {{The Linux Kernel/doc|ASoC - ALSA SoC Layer|sound/soc}}
: {{The Linux Kernel/doc|ASoC Core API|sound/kernel-api/alsa-driver-api.html?#asoc}}
: https://www.alsa-project.org/wiki/ASoC
:: https://www.alsa-project.org/wiki/DAPM
🗝️ Acronyms SAI could be
: STM ''Serial'' Audio Interface: {{The Linux Kernel/source|sound/soc/stm/stm32_sai.h}}
: Freescale (FSL) ''Synchronous'' Audio Interface: {{The Linux Kernel/source|sound/soc/fsl/fsl_sai.h}}
{{BookCat}}
{{status|25%}}
rdye76ajii5yo08bs797xcthwmt9bex
4640225
4640216
2026-06-13T18:02:03Z
Conan
3188
fix typos and wiki syntax errors
4640225
wikitext
text/x-wiki
<noinclude>{{DISPLAYTITLE:Human interfaces}}</noinclude>
{| style="float:right; text-align: center; border-spacing: 0; margin: auto;" cellpadding="5pc"
! bgcolor="#fcd" |human interfaces
|- style=""
| bgcolor="#ecd" |[[#Text interfaces|text interfaces]]
|- style=""
| bgcolor="#dcd" |[[#Security|security]]
|- style=""
| bgcolor="#dcc" |[[#Debugging|debugging]]
|- style=""
| bgcolor="#cbb" |[[#Multimedia subsystems|multimedia subsystems]]
|- style=""
| bgcolor="#baa" |[[#HID|human interface devices]], [[#Input_devices|input devices]]
|- style=""
| bgcolor="#aaa" |[[#HI_device_drivers|HI drivers]]
|}
Welcome to the first article of this book.
The article is named after the {{W|USB human interface device class|USB class}} and the Linux facility for {{w|Human interface device|Human Interface Devices}} (HID).
The HID subsystem in Linux supports keyboards, mice, and other {{w|Input device|input devices}}.
In addition to input handling, this article also explores topics related to the console, multimedia (or simply media), sound (audio), video, and graphics—key areas of user interaction.
Security and debugging are also covered, as they are closely tied to human interaction and user-facing functionality.
== Text interfaces ==
In the world of Linux, text {{w|terminal emulator}}s and {{w|Linux console|console}}s are essential components of the operating system that allow users to interact with applications through the kernel.
A text terminal is a device that provides a text-based interface for communicating with the kernel, while the console is the physical device that houses the terminal and displays the output of the kernel.
The Linux kernel includes a built-in console driver that provides a basic interface for communicating with the console and controlling the terminal.
The console driver also supports various input and output devices, such as keyboards and displays, to enable users to interact with the system through a terminal.
The use of text {{w|Computer terminal|terminals}} and {{w|system console}}s in Linux can be traced back to the early days of computing, when {{w|Graphical terminal|graphical user interfaces}} were not yet widely available.
Despite the widespread adoption of graphical user interfaces, {{w|Text-based user interface|text-based interfaces}} and consoles remain popular among Linux users and developers for their simplicity, efficiency, and flexibility.
Overall, the text terminal and console play a crucial role in the Linux kernel, providing users with a powerful interface for managing and interacting with the operating system.
=== Char devices ===
{{The Linux Kernel/id|cdev}} – "character device" is a type of device driver that provides an implementation for character {{w|device file}} in the /dev directory.
The word "device" here means abstract interface, {{w|Proxy pattern|proxy}} to a usually peripheral physical device.
A character device is a type of device that can be accessed as a stream of bytes, rather than as a block of data like a block device.
Cdev drivers are commonly used for devices that provide a {{w|sequential access|stream}} of data, such as keyboards, mice, terminals, serial ports, and printers.
They are also used for devices that provide access to memory-mapped I/O regions, such as frame buffers and network devices.
A cdev driver typically consists of a set of functions that implement the low-level I/O operations for the device, such as open, read and write.
These functions are called by the kernel when a user space program accesses the character device file.
To create a cdev driver, a kernel developer must first initialize a cdev structure using {{The Linux Kernel/id|cdev_init}} or {{The Linux Kernel/id|cdev_alloc}}.
The cdev structure contains information about the device, such as its major and minor numbers and the set of I/O functions that the driver implements.
Once the cdev structure has been initialized, it can be registered with the kernel using the {{The Linux Kernel/id|cdev_add}} function.
This function creates the character device file in the /dev directory and associates it with the cdev driver.
You can find a list of registered char devices on the beginning the listing of <big>/proc/devices</big>. [[#Input_devices|Input devices]] keyboard and mouse are examples of char devices.
<small>''Tip: Browse the cross-referencing site to explore nearby API and use cases''</small>
💾 ''Historical: It is one of the most simple, fundamental and oldest concepts derived from UNIX. ''
⚲ API
: {{The Linux Kernel/include|linux/cdev.h}}
:: {{The Linux Kernel/id|dev_t}} - device id consists of {{The Linux Kernel/id|MAJOR}} and {{The Linux Kernel/id|MINOR}} numbers
:: {{The Linux Kernel/id|cdev}} - core char device struct
:: {{The Linux Kernel/id|cdev_init}} or {{The Linux Kernel/id|cdev_alloc}}
:: {{The Linux Kernel/id|cdev_device_add}} - helper function, uses
::: {{The Linux Kernel/id|cdev_add}} - common key function to add a char device to the system.
: {{The Linux Kernel/id|register_chrdev}} - ''obviously registers char device'' by '''major''' number, '''name''' and file operations
: {{The Linux Kernel/id|unregister_chrdev}}
: {{The Linux Kernel/id|alloc_chrdev_region}} / {{The Linux Kernel/id|register_chrdev_region}},
: {{The Linux Kernel/id|unregister_chrdev_region}}
: {{The Linux Kernel/include|uapi/linux/major.h}} - static definitions of many major numbers, including obsolete.
⚙️ Internals
: {{The Linux Kernel/source|fs/char_dev.c}} – character device registration
: {{The Linux Kernel/id|chrdevs}}
📖 References
: {{The Linux Kernel/doc|Char devices|core-api/kernel-api.html#char-devices}}
: [https://linux-kernel-labs.github.io/refs/heads/master/labs/device_drivers.html Character device drivers, linux-kernel-labs]
: [https://www.opensourceforu.com/2011/04/character-device-files-creation-operations/ Character device files, on opensourceforu]
💾 ''Historical''
: [http://lwn.net/images/pdf/LDD3/ch03.pdf LDD3:Char Drivers]
: [http://lwn.net/images/pdf/LDD3/ch06.pdf LDD3:Advanced Char Driver Operations]
: [http://www.xml.com/ldd/chapter/book/ch03.html LDD1:#3]
: [http://www.xml.com/ldd/chapter/book/ch05.html LDD1:#5]
=== Text terminals and console ===
🗝️ Acronyms
: {{w|Tty (unix)|tty}} - 💾 ''historically TeleTYpewriter'', means just terminal
: {{w|Pseudoterminal|pty}} - pseudoterminal
: pts - pseudoterminal slave
: ptmx - pseudoterminal master
⚲ API
: To find out current terminal:
:: readlink /proc/self/fd/0
:: {{The Linux Kernel/man|1|tty}}
:: {{The Linux Kernel/man|1|who}} -m
: {{The Linux Kernel/include|linux/tty.h}}
:{{The Linux Kernel/id|register_console}} obviously registers {{The Linux Kernel/id|console}}
:: 👁 example {{The Linux Kernel/id|virtio_console}}
: {{The Linux Kernel/include|linux/console.h}}
: {{The Linux Kernel/man|2|ioctl_console}}
⚙️ Internals
: {{The Linux Kernel/source|drivers/tty}} – TTY layer
: {{The Linux Kernel/source|fs/devpts}} – devpts pseudo-filesystem for PTY slaves
: {{The Linux Kernel/source|fs/proc/proc_tty.c}} – /proc/tty information
: {{The Linux Kernel/source|drivers/tty/vt/vt.c}} – virtual terminal console
📖 References
: {{The Linux Kernel/man|4|tty}} – controlling terminal
: {{The Linux Kernel/man|4|ptmx}} and pts – pseudoterminal master and slave
: {{The Linux Kernel/man|7|pty}} – pseudoterminal interfaces
: {{The Linux Kernel/doc|console|driver-api/console.html}}
💾 ''Historical''
: [http://lwn.net/images/pdf/LDD3/ch18.pdf LDD3:TTY Drivers]
==Security==
The goal of security is to restrict access through interfaces.
From access control and authentication mechanisms to secure boot and memory protection,
the Linux kernel employs a variety of techniques to safeguard the system and its users.
Basic Linux security is quite simple.
It consists of three ownership classes and three access modes.
One of the most frequently executed functions is {{The Linux Kernel/id|may_open}}.
It rejects access of unauthorized users to open a file.
See article [[../Security/]] for new features.
=== Authorization ===
{{w|Authorization}} is the function of specifying {{w|Computer access control|access}} rights/{{w|Privilege_(computing)|privilege}}s to system resources.
The main goal of authorization is prevention of {{w|privilege escalation}} under any circumstances.
🔧 TODO.
Keywords: permission, capabilities, ownership, {{w|mitigation}}.
⚲ API
: {{The Linux Kernel/include|linux/stat.h}}
: {{The Linux Kernel/include|uapi/linux/stat.h}}
Basic classic UNIX authorization is based on ownership and tree access modes: reading, writing and execution.
Ownership is encoded by owning user id {{The Linux Kernel/id|uid_t}} and owning group id {{The Linux Kernel/id|gid_t}}.
{{The Linux Kernel/id|umode_t}} - just typedef used for encoding access mode. {{The Linux Kernel/id|S_IRUSR}} - minimal "read only by user/owner" access mode.
{{The Linux Kernel/id|S_IALLUGO}} - full access mode.
Please read the source for details for other modes.
Binary {{w|Access Control Matrix}} of access modes:
{| class="wikitable"
|+
!modes
!bits
!Read
!Write
!Execute
|-
|bit offset
|
|2
|1
|0
|-
|'''Others'''
|0-2
|or
|ow
|ox
|-
|'''Group'''
|3-5
|gr
|gw
|gx
|-
|'''User'''
|6-8
|ur
|uw
|ux
|}
: {{The Linux Kernel/man|2|chown}} ↪ {{The Linux Kernel/id|do_fchownat}} changes ownership for file or directory
: {{The Linux Kernel/man|2|chmod}} ↪ {{The Linux Kernel/id|do_fchmodat}} changes access mode for file or directory
: {{The Linux Kernel/man|2|access}}, {{The Linux Kernel/man|2|faccessat}} ↪ {{The Linux Kernel/id|do_faccessat}} checks access rights
Common authorization errors
: {{The Linux Kernel/id|EPERM}} – "Operation not permitted"
: {{The Linux Kernel/id|EACCES}} – "Permission denied"
🚀 Advanced features
: {{The Linux Kernel/man|5|acl}} {{The Linux Kernel/id|posix_acl}}
: {{The Linux Kernel/include|uapi/linux/capability.h}}
:: {{The Linux Kernel/man|2|capset}} and capget – set/get capabilities of thread(s)
:: {{The Linux Kernel/man|3|libcap}}
: {{The Linux Kernel/man|1|setpriv}} – run a program with different privilege settings
⚙️ Internals
: {{The Linux Kernel/id|may_open}} rejects unauthorized file opening
:: {{The Linux Kernel/id|inode_permission}} checks for access rights to a given inode
: {{The Linux Kernel/source|kernel/capability.c}} – POSIX capabilities system calls
📖 References
: {{w|File-system permissions}}
: {{The Linux Kernel/man|7|capabilities}}
===Credentials===
🔧 TODO.
Keywords: {{w|authentication}}, user IDs, group IDs, Process group ID, session ID.
⚲ API
: {{The Linux Kernel/include|uapi/asm-generic/stat.h}}
: {{The Linux Kernel/source|arch/x86/include/uapi/asm/stat.h}} – x86 stat structure definitions
: {{The Linux Kernel/include|linux/cred.h}}
:: struct {{The Linux Kernel/id|cred}} - the security context of a task
: {{The Linux Kernel/man|1|id}}, {{The Linux Kernel/man|1|test}} - shell utilities
: {{The Linux Kernel/man|2|getuid}} ↪ {{The Linux Kernel/id|current_uid}}
: {{The Linux Kernel/man|2|getgid}}
: {{The Linux Kernel/man|2|geteuid}} is used by utility {{The Linux Kernel/man|1|whoami}}
: Real, effective, and saved user/group IDs:
:: {{The Linux Kernel/man|2|getresuid}}, getresgid
:: {{The Linux Kernel/man|2|setreuid}}, setregid
: {{The Linux Kernel/man|2|setfsuid}} - set user identity used for filesystem checks
: {{The Linux Kernel/man|2|umask}} - sets file mode creation mask
: {{The Linux Kernel/man|1|stat}}, {{The Linux Kernel/man|2|stat}} ↪ {{The Linux Kernel/id|vfs_fstat}}, {{The Linux Kernel/id|vfs_fstatat}}
: {{The Linux Kernel/man|2|statx}} ↪ {{The Linux Kernel/id|do_statx}}
⚙️ Internals
: {{The Linux Kernel/id|kstat}}
: {{The Linux Kernel/id|make_kuid}} etc
: {{The Linux Kernel/id|from_kuid_munged}} etc
📖 References
: {{The Linux Kernel/doc|Credentials in Linux|security/credentials.html}}
: {{The Linux Kernel/man|7|credentials}}
: https://www.geeksforgeeks.org/real-effective-and-saved-userid-in-linux/
=== Cryptography ===
🔧 TODO
🗝️ Acronyms
: AES - {{w|Advanced Encryption Standard}}
⚲ API
: {{The Linux Kernel/id|AF_ALG}} - {{The Linux Kernel/doc|User Space Interface|crypto/userspace-if.html}}
: {{The Linux Kernel/include|linux/crypto.h}} - Scatterlist Cryptographic API.
: {{The Linux Kernel/include|crypto}}
⚙️ Internals
: {{The Linux Kernel/source|crypto}} – cryptographic API core
: {{The Linux Kernel/source|drivers/crypto}} – hardware crypto accelerator drivers
: {{The Linux Kernel/source|lib/crypto}} – crypto library helpers
: {{The Linux Kernel/source|arch/x86/crypto}} – x86 optimized crypto implementations
: {{The Linux Kernel/source|fs/crypto}} - per-file encryption
: {{The Linux Kernel/source|fs/ecryptfs}} eCrypt FS - Encrypted filesystem that operates on the VFS layer.
: {{w|dm-crypt}}, {{The Linux Kernel/source|drivers/md/dm-crypt.c}}
📖 References
: {{The Linux Kernel/doc|Linux Kernel Crypto API|crypto}}
: {{w|Crypto API (Linux)}}
: [https://www.kernel.org/doc/Documentation/devicetree/bindings/crypto/ devicetree/bindings/crypto]
: {{The Linux Kernel/ltp|kernel|crypto}}
=== Audit ===
: {{The Linux Kernel/source|kernel/audit.h}} – audit internal definitions
: {{The Linux Kernel/source|kernel/audit.c}} – audit gateway between kernel and user-space daemon
: {{The Linux Kernel/source|kernel/auditsc.c}} – system-call auditing
: {{The Linux Kernel/source|kernel/audit_tree.c}} – audit directory tree watches
: {{The Linux Kernel/source|kernel/audit_watch.c}} – audit filesystem path watches
: {{The Linux Kernel/source|kernel/audit_fsnotify.c}} – audit fsnotify integration
: {{The Linux Kernel/source|kernel/auditfilter.c}} – audit rule filtering
📖 References
: https://capsule8.com/blog/auditd-what-is-the-linux-auditing-system/
: https://wiki.archlinux.org/title/Audit_framework
: {{The Linux Kernel/man|8|auditctl}}
See also [[The_Linux_Kernel/Debugging#eBPF|eBPF and BPF]]
=== ... ===
Appendix for Security:
🔧 TODO
: {{The Linux Kernel/man|2|fcntl}} ↪ {{The Linux Kernel/id|do_fcntl}}
: {{The Linux Kernel/man|2|seccomp}} ↪ {{The Linux Kernel/id|do_seccomp}}
: {{The Linux Kernel/man|2|add_key}} ↪ {{The Linux Kernel/source|security/keys/keyctl.c}}
: {{w|chroot}}, {{The Linux Kernel/man|2|chroot}}
: {{w|Address_space_layout_randomization#Linux|Address space layout randomization}}
:: {{The Linux Kernel/man|8|setarch}} / {{The Linux Kernel/man|2|personality}}
📖 References
: {{The Linux Kernel/doc|Security-related interfaces|userspace-api/index.html#security-related-interfaces}}
:: {{The Linux Kernel/doc|No New Privileges Flag|userspace-api/no_new_privs.html}}
:: {{The Linux Kernel/doc|Seccomp BPF (SECure COMPuting with filters)|userspace-api/seccomp_filter.html}}
:: {{The Linux Kernel/doc|Landlock: unprivileged access control|userspace-api/landlock.html}}
:: {{The Linux Kernel/doc|Linux Security Modules|userspace-api/lsm.html}}
:: {{The Linux Kernel/doc|Introduction of non-executable mfd|userspace-api/mfd_noexec.html}}
:: {{The Linux Kernel/doc|Speculation Control|userspace-api/spec_ctrl.html}}
:: {{The Linux Kernel/doc|TEE (Trusted Execution Environment) Userspace API|userspace-api/tee.html}}
:: {{The Linux Kernel/doc|Executability check|userspace-api/check_exec.html}}
: {{The Linux Kernel/doc|Security|security}}
:: {{The Linux Kernel/doc|LSM - Linux Security Modules|security/lsm.html}} [https://docs.kernel.org/admin-guide/perf-security.html Perf events and tool security]
: {{The Linux Kernel/doc|Hardware vulnerabilities|admin-guide/hw-vuln}}
: {{w|Linux Security Modules}}
: {{The Linux Kernel/include|linux/security.h}} ⇾ {{The Linux Kernel/source|security}}
: {{The Linux Kernel/include|keys}}
: {{The Linux Kernel/include|linux/verification.h}}
: {{The Linux Kernel/source|certs}} – module signing certificates
: {{The Linux Kernel/ltp|kernel|security}}
: {{The Linux Kernel/ltp||cve}}
: http://kernsec.org/wiki/index.php/Main_Page
: {{w|SELinux}} http://selinuxproject.org/
== Debugging ==
See [[The_Linux_Kernel/Debugging|Debugging the Linux kernel]]
==Multimedia subsystems==
⚙️ Internals
: {{The Linux Kernel/source|drivers/media}} – media subsystem (V4L2, DVB, etc.)
=== Graphics ===
Old graphics (not to be confused with v4l):
⚲ API
: {{The Linux Kernel/include|video}}
<!-- : {{The Linux Kernel/include|uapi/video}} old stuff -->
⚙️ Internals
: {{The Linux Kernel/source|drivers/video}} – framebuffer and video drivers
==== {{w|Direct Rendering Manager}} (DRM) ====
DRM is responsible for interfacing with GPUs of modern video cards.
DRM exposes an API that user-space programs can use to send commands and data to the GPU and perform operations such as configuring the mode setting of the display.
User-space programs can use the DRM API to command the GPU to do hardware-accelerated 3D rendering and video decoding, as well as {{w|General-purpose computing on graphics processing units|GPGPU}} computing.
⚲ API
: /sys/class/drm/
: {{The Linux Kernel/include|uapi/drm}}
:: {{The Linux Kernel/include|uapi/drm/drm.h}}
::: {{The Linux Kernel/id|DRM_IOCTL_BASE}}
::: {{The Linux Kernel/id|drm_version}}
⚙️ Internals
: {{The Linux Kernel/include|drm}}
: {{The Linux Kernel/include|drm_gem.h}} – Graphics Execution Manager Driver Interfaces
: {{The Linux Kernel/id|drm_dev_register}} registers {{The Linux Kernel/id|drm_device}}
=== {{w|Advanced Linux Sound Architecture}} (ALSA) ===
ALSA is a software framework and part of the Linux kernel that provides an API for sound card device drivers.
Some of the goals of the ALSA project at its inception were automatic configuration of sound-card hardware and graceful handling of multiple sound devices in a system.
The sound servers PulseAudio, JACK (low-latency professional-grade audio editing and mixing) and PipeWire, the higher-level abstraction APIs OpenAL, SDL audio, etc. work on top of ALSA and implemented sound card device drivers.
On Linux systems, ALSA succeeded the older {{w|Open Sound System}} (OSS).
⚲ API
: /proc/asound/cards, /sys/class/sound/
: {{The Linux Kernel/id|snd_card}} - central struct
: {{The Linux Kernel/id|snd_card_new}}
: {{The Linux Kernel/id|snd_card_register}}
: {{The Linux Kernel/id|snd_device_ops}}
: {{The Linux Kernel/id|snd_device_new}} creates an ALSA device component
: {{The Linux Kernel/include|uapi/sound/asound.h}}
: {{The Linux Kernel/include|sound/core.h}}
⚙️ Internals
: {{The Linux Kernel/source|sound}} – ALSA sound subsystem
: {{The Linux Kernel/source|sound/core/device.c}} – ALSA device management
: See [[#Sound SoC - ASoC|ASoC]]
📖 References
: {{The Linux Kernel/doc|ALSA (sound)|sound}}
: {{The Linux Kernel/doc|Writing an ALSA Driver|sound/kernel-api/writing-an-alsa-driver.html}}
: {{The Linux Kernel/ltp|kernel|sound}}
=== {{w|Video4Linux}} (V4L2) ===
V4L is a collection of device drivers and an API for supporting realtime video capture on Linux systems.
It supports many USB webcams, TV tuners, and related devices, standardizing their output, so programmers can easily add video support to their applications.
MythTV, tvtime and Tvheadend are typical applications that use the V4L framework.
⚲ API
: {{The Linux Kernel/id|v4l2_device_register}} registers {{The Linux Kernel/id|v4l2_device}}
: {{The Linux Kernel/id|video_register_device}} registers {{The Linux Kernel/id|video_device}}
: 👁 examples {{The Linux Kernel/source|drivers/media/test-drivers}}
📖 References
: {{w|Video4Linux}}
: {{The Linux Kernel/doc|media|driver-api/media}}
: {{The Linux Kernel/doc|V4L|userspace-api/media/drivers/}}
: [https://linuxtv.org/downloads/v4l-dvb-apis-new/driver-api/index.html Media subsystem kernel internal API]
==HID==
Generic human interface devices.
Don't confuse with [[../System#hiddev|hiddev]].
=== Input devices ===
Input device files are kind of [[#char devices|char devices]] with id {{The Linux Kernel/id|INPUT_MAJOR}}.
Classic input devices are keyboard and mouse.
⚲ API
: In shell: cat /proc/bus/input/devices
: {{The Linux Kernel/include|linux/input.h}}
: {{The Linux Kernel/id|devm_input_allocate_device}}, {{The Linux Kernel/id|input_register_device}}, {{The Linux Kernel/id|input_register_handler}}, {{The Linux Kernel/id|input_dev}}
: {{The Linux Kernel/id|input_report_key}} {{The Linux Kernel/id|input_sync}}
👁 Examples
: {{The Linux Kernel/source|drivers/input/mousedev.c}} – mouse device emulation
: {{The Linux Kernel/source|drivers/input/keyboard/atkbd.c}} – AT/PS2 keyboard driver
: {{The Linux Kernel/source|drivers/input/evbug.c}} – input event debugging module
<big>⌨️</big> Hands on
sudo hexdump /dev/input/mice # dump your mouse movements events from your kernel
⚙️ Internals
: {{The Linux Kernel/source|drivers/input/input.c}} – input core
: {{The Linux Kernel/id|input_event}}
📖 References
: {{The Linux Kernel/doc|Input|input}}
: {{The Linux Kernel/ltp|kernel|input}}
=== HID devices ===
🔧 TODO
⚲ API
: {{The Linux Kernel/id|hid_device}} - device report descriptor. Operations: {{The Linux Kernel/id|hid_allocate_device}}, {{The Linux Kernel/id|hid_add_device}} . 👁 Example {{The Linux Kernel/id|usbhid_probe}}
: {{The Linux Kernel/include|uapi/linux/hid.h}}
: {{The Linux Kernel/include|linux/hid.h}}
=== Camera ===
🔧 TODO
⚲ API
: {{The Linux Kernel/include|uapi/linux/uvcvideo.h}}
📖 References
: {{The Linux Kernel/doc|UVC|userspace-api/media/drivers/uvcvideo.html}}
: {{The Linux Kernel/source|drivers/media/usb/uvc}} – USB Video Class driver
==HI device drivers==
This section is about low level drivers to human interface peripheral devices.
⚲ '''HID''' API
: {{The Linux Kernel/include|linux/hidraw.h}}
: {{The Linux Kernel/id|module_hid_driver}} registers {{The Linux Kernel/id|hid_driver}}
: {{The Linux Kernel/id|hid_hw_start}}
⚙️ Internals
: {{The Linux Kernel/id|hid_bus_type}}
: {{The Linux Kernel/source|drivers/hid}} – HID transport drivers
: {{The Linux Kernel/source|drivers/hid/hid-core.c}} – HID core parsing and event handling
: {{The Linux Kernel/source|drivers/accessibility}} – accessibility drivers (speakup)
: {{The Linux Kernel/source|drivers/leds}} – LED class drivers
: {{The Linux Kernel/source|samples/uhid/uhid-example.c}} - 👁 example of user mode HID driver
: {{The Linux Kernel/source|drivers/input}} : keyboard & mouse, misc, serio, tablet, touchscreen, gameport, joystick
:: <big>⌨️</big> Hands on
:: echo "module atkbd +pfl" | sudo tee /sys/kernel/debug/dynamic_debug/control
'''USB HID'''
⚲ '''HID''' API
: {{The Linux Kernel/id|USB_INTERFACE_CLASS_HID}} == {{The Linux Kernel/id|USB_CLASS_HID}}
⚙️ Internals
: {{The Linux Kernel/source|drivers/hid/usbhid}} – USB HID transport
:: {{The Linux Kernel/source|drivers/hid/usbhid/usbkbd.c}}: {{The Linux Kernel/id|usb_kbd_driver}}
:: {{The Linux Kernel/source|drivers/hid/usbhid/usbmouse.c}}: {{The Linux Kernel/id|usb_mouse_driver}}
📖 References
: <!--
find include/ -type f -name '*hid*' | sed 's-include/\(.*\)-* {{The Linux Kernel/include|\1}}-'
-->{{The Linux Kernel/doc|USB HID class|hid}}
=== Graphics ===
🔧 TODO
🗝️ Acronyms
: FB - {{w|Linux framebuffer|Framebuffer}}
: GPU - {{w|Graphics processing unit}}
: TFT (LCD) - {{w|Thin-film-transistor liquid-crystal display}} used for 🤖 embedded devices
: MIPI - 📱 {{w|Mobile Industry Processor Interface}}
:: DBI - Display Bus Interface
:: DSI - {{w|Display Serial Interface}}
:: DCS - The Display Command Set
⚲ API
: cat /proc/fb
: ls -l /sys/class/graphics
: {{The Linux Kernel/include|video/mipi_display.h}}
: {{The Linux Kernel/include|linux/fb.h}}
: {{The Linux Kernel/id|register_framebuffer}}
: {{The Linux Kernel/id|FBTFT_REGISTER_DRIVER}}
: {{The Linux Kernel/id|fbtft_display}}
⚙️ Internals
: {{The Linux Kernel/source|drivers/video}} – framebuffer and video drivers
: {{The Linux Kernel/source|drivers/gpu}} – GPU and DRM drivers
👁 Examples
: {{The Linux Kernel/id|vivid_fb_init}}
: {{The Linux Kernel/id|fbtft_register_framebuffer}}
📖 References
: {{The Linux Kernel/doc|GPU Driver Developer’s Guide|gpu}}
: {{The Linux Kernel/doc|The Frame Buffer Device|fb}}
: {{The Linux Kernel/doc|Frame Buffer Library|driver-api/frame-buffer.html}}
: [https://lwn.net/Kernel/Index/#Device_drivers-Graphics LWN: Graphics]
=== Sound SoC - ASoC ===
ALSA System on Chip (ASoC) layer for 🤖 embedded systems.
ASoC is designed to handle complex audio processing and routing on low-power and resource-constrained systems, making it an ideal solution for embedded devices such as smartphones, tablets, and other IoT devices.
ASoC provides a comprehensive framework for audio drivers, enabling the creation of modular audio drivers that can be easily integrated with the rest of the kernel.
It also supports a wide range of audio interfaces, including I2S, PCM, AC97, and SPDIF, making it highly versatile and capable of handling a variety of audio formats.
One of the key features of ASoC is its ability to handle audio routing and processing using Digital Signal Processing (DSP) techniques.
This enables ASoC to support advanced audio features such as noise reduction, echo cancellation, and dynamic range compression, among others.
Overall, ASoC is a powerful and flexible subsystem that enables Linux to support a wide range of audio hardware in embedded devices.
It has become an essential component of many embedded Linux distributions and is widely used in the development of modern audio-enabled devices.
⚲ API
: {{The Linux Kernel/include|sound/soc.h}}
:: {{The Linux Kernel/id|snd_soc_card}}
::: is registered by {{The Linux Kernel/id|devm_snd_soc_register_card}} ⇾ {{The Linux Kernel/id|snd_soc_register_card}}
: {{The Linux Kernel/include|sound/soc-component.h}}
:: {{The Linux Kernel/id|snd_soc_component}}
::: {{The Linux Kernel/id|snd_soc_component_driver}}
::: {{The Linux Kernel/id|snd_soc_card}}
:::: {{The Linux Kernel/id|snd_card}}
:: {{The Linux Kernel/id|snd_soc_register_component}} {{The Linux Kernel/id|snd_soc_component_get_drvdata}} {{The Linux Kernel/id|snd_soc_component_read}} {{The Linux Kernel/id|snd_soc_component_update_bits}} {{The Linux Kernel/id|snd_soc_component_write}}
: {{The Linux Kernel/include|sound/soc-dai.h}} - {{The Linux Kernel/doc|DAI - Digital Audio Interface|sound/soc/dai.html}}: {{w|AC97}}, {{w|I2S}}, {{w|PCM}}
:: {{The Linux Kernel/id|snd_soc_dai}} {{The Linux Kernel/id|snd_soc_dai_driver}} {{The Linux Kernel/id|snd_soc_dai_get_drvdata}}
: {{The Linux Kernel/include|sound/soc-dpcm.h}} - {{The Linux Kernel/doc|DPCM - Dynamic PCM|sound/soc/dpcm.html}}
: {{The Linux Kernel/include|sound/soc-dapm.h}} - {{The Linux Kernel/doc|DAPM - Dynamic Audio Power Management|sound/soc/dapm.html}}
:: {{The Linux Kernel/id|snd_soc_dapm_route}}, {{The Linux Kernel/id|snd_soc_dapm_to_component}}, {{The Linux Kernel/id|snd_soc_dapm_widget}}
👁 Examples
: {{The Linux Kernel/source|sound/soc/generic/simple-card.c}}
: {{The Linux Kernel/source|sound/soc/generic/audio-graph-card.c}} uses {{The Linux Kernel/include|sound/graph_card.h}}
⚙️ Internals
: {{The Linux Kernel/source|sound/soc}} – ASoC framework
: {{The Linux Kernel/id|snd_soc_card}}
:: {{The Linux Kernel/id|snd_soc_dai_link}}
📖 References
: {{The Linux Kernel/doc|ASoC - ALSA SoC Layer|sound/soc}}
: {{The Linux Kernel/doc|ASoC Core API|sound/kernel-api/alsa-driver-api.html?#asoc}}
: https://www.alsa-project.org/wiki/ASoC
:: https://www.alsa-project.org/wiki/DAPM
🗝️ Acronyms SAI could be
: STM ''Serial'' Audio Interface: {{The Linux Kernel/source|sound/soc/stm/stm32_sai.h}}
: Freescale (FSL) ''Synchronous'' Audio Interface: {{The Linux Kernel/source|sound/soc/fsl/fsl_sai.h}}
{{BookCat}}
{{status|25%}}
77uatvihwepmpxeu1amyjdqiha1cvvc
4640226
4640225
2026-06-13T18:02:05Z
Conan
3188
remove evbug.c reference, driver deleted from kernel
4640226
wikitext
text/x-wiki
<noinclude>{{DISPLAYTITLE:Human interfaces}}</noinclude>
{| style="float:right; text-align: center; border-spacing: 0; margin: auto;" cellpadding="5pc"
! bgcolor="#fcd" |human interfaces
|- style=""
| bgcolor="#ecd" |[[#Text interfaces|text interfaces]]
|- style=""
| bgcolor="#dcd" |[[#Security|security]]
|- style=""
| bgcolor="#dcc" |[[#Debugging|debugging]]
|- style=""
| bgcolor="#cbb" |[[#Multimedia subsystems|multimedia subsystems]]
|- style=""
| bgcolor="#baa" |[[#HID|human interface devices]], [[#Input_devices|input devices]]
|- style=""
| bgcolor="#aaa" |[[#HI_device_drivers|HI drivers]]
|}
Welcome to the first article of this book.
The article is named after the {{W|USB human interface device class|USB class}} and the Linux facility for {{w|Human interface device|Human Interface Devices}} (HID).
The HID subsystem in Linux supports keyboards, mice, and other {{w|Input device|input devices}}.
In addition to input handling, this article also explores topics related to the console, multimedia (or simply media), sound (audio), video, and graphics—key areas of user interaction.
Security and debugging are also covered, as they are closely tied to human interaction and user-facing functionality.
== Text interfaces ==
In the world of Linux, text {{w|terminal emulator}}s and {{w|Linux console|console}}s are essential components of the operating system that allow users to interact with applications through the kernel.
A text terminal is a device that provides a text-based interface for communicating with the kernel, while the console is the physical device that houses the terminal and displays the output of the kernel.
The Linux kernel includes a built-in console driver that provides a basic interface for communicating with the console and controlling the terminal.
The console driver also supports various input and output devices, such as keyboards and displays, to enable users to interact with the system through a terminal.
The use of text {{w|Computer terminal|terminals}} and {{w|system console}}s in Linux can be traced back to the early days of computing, when {{w|Graphical terminal|graphical user interfaces}} were not yet widely available.
Despite the widespread adoption of graphical user interfaces, {{w|Text-based user interface|text-based interfaces}} and consoles remain popular among Linux users and developers for their simplicity, efficiency, and flexibility.
Overall, the text terminal and console play a crucial role in the Linux kernel, providing users with a powerful interface for managing and interacting with the operating system.
=== Char devices ===
{{The Linux Kernel/id|cdev}} – "character device" is a type of device driver that provides an implementation for character {{w|device file}} in the /dev directory.
The word "device" here means abstract interface, {{w|Proxy pattern|proxy}} to a usually peripheral physical device.
A character device is a type of device that can be accessed as a stream of bytes, rather than as a block of data like a block device.
Cdev drivers are commonly used for devices that provide a {{w|sequential access|stream}} of data, such as keyboards, mice, terminals, serial ports, and printers.
They are also used for devices that provide access to memory-mapped I/O regions, such as frame buffers and network devices.
A cdev driver typically consists of a set of functions that implement the low-level I/O operations for the device, such as open, read and write.
These functions are called by the kernel when a user space program accesses the character device file.
To create a cdev driver, a kernel developer must first initialize a cdev structure using {{The Linux Kernel/id|cdev_init}} or {{The Linux Kernel/id|cdev_alloc}}.
The cdev structure contains information about the device, such as its major and minor numbers and the set of I/O functions that the driver implements.
Once the cdev structure has been initialized, it can be registered with the kernel using the {{The Linux Kernel/id|cdev_add}} function.
This function creates the character device file in the /dev directory and associates it with the cdev driver.
You can find a list of registered char devices on the beginning the listing of <big>/proc/devices</big>. [[#Input_devices|Input devices]] keyboard and mouse are examples of char devices.
<small>''Tip: Browse the cross-referencing site to explore nearby API and use cases''</small>
💾 ''Historical: It is one of the most simple, fundamental and oldest concepts derived from UNIX. ''
⚲ API
: {{The Linux Kernel/include|linux/cdev.h}}
:: {{The Linux Kernel/id|dev_t}} - device id consists of {{The Linux Kernel/id|MAJOR}} and {{The Linux Kernel/id|MINOR}} numbers
:: {{The Linux Kernel/id|cdev}} - core char device struct
:: {{The Linux Kernel/id|cdev_init}} or {{The Linux Kernel/id|cdev_alloc}}
:: {{The Linux Kernel/id|cdev_device_add}} - helper function, uses
::: {{The Linux Kernel/id|cdev_add}} - common key function to add a char device to the system.
: {{The Linux Kernel/id|register_chrdev}} - ''obviously registers char device'' by '''major''' number, '''name''' and file operations
: {{The Linux Kernel/id|unregister_chrdev}}
: {{The Linux Kernel/id|alloc_chrdev_region}} / {{The Linux Kernel/id|register_chrdev_region}},
: {{The Linux Kernel/id|unregister_chrdev_region}}
: {{The Linux Kernel/include|uapi/linux/major.h}} - static definitions of many major numbers, including obsolete.
⚙️ Internals
: {{The Linux Kernel/source|fs/char_dev.c}} – character device registration
: {{The Linux Kernel/id|chrdevs}}
📖 References
: {{The Linux Kernel/doc|Char devices|core-api/kernel-api.html#char-devices}}
: [https://linux-kernel-labs.github.io/refs/heads/master/labs/device_drivers.html Character device drivers, linux-kernel-labs]
: [https://www.opensourceforu.com/2011/04/character-device-files-creation-operations/ Character device files, on opensourceforu]
💾 ''Historical''
: [http://lwn.net/images/pdf/LDD3/ch03.pdf LDD3:Char Drivers]
: [http://lwn.net/images/pdf/LDD3/ch06.pdf LDD3:Advanced Char Driver Operations]
: [http://www.xml.com/ldd/chapter/book/ch03.html LDD1:#3]
: [http://www.xml.com/ldd/chapter/book/ch05.html LDD1:#5]
=== Text terminals and console ===
🗝️ Acronyms
: {{w|Tty (unix)|tty}} - 💾 ''historically TeleTYpewriter'', means just terminal
: {{w|Pseudoterminal|pty}} - pseudoterminal
: pts - pseudoterminal slave
: ptmx - pseudoterminal master
⚲ API
: To find out current terminal:
:: readlink /proc/self/fd/0
:: {{The Linux Kernel/man|1|tty}}
:: {{The Linux Kernel/man|1|who}} -m
: {{The Linux Kernel/include|linux/tty.h}}
:{{The Linux Kernel/id|register_console}} obviously registers {{The Linux Kernel/id|console}}
:: 👁 example {{The Linux Kernel/id|virtio_console}}
: {{The Linux Kernel/include|linux/console.h}}
: {{The Linux Kernel/man|2|ioctl_console}}
⚙️ Internals
: {{The Linux Kernel/source|drivers/tty}} – TTY layer
: {{The Linux Kernel/source|fs/devpts}} – devpts pseudo-filesystem for PTY slaves
: {{The Linux Kernel/source|fs/proc/proc_tty.c}} – /proc/tty information
: {{The Linux Kernel/source|drivers/tty/vt/vt.c}} – virtual terminal console
📖 References
: {{The Linux Kernel/man|4|tty}} – controlling terminal
: {{The Linux Kernel/man|4|ptmx}} and pts – pseudoterminal master and slave
: {{The Linux Kernel/man|7|pty}} – pseudoterminal interfaces
: {{The Linux Kernel/doc|console|driver-api/console.html}}
💾 ''Historical''
: [http://lwn.net/images/pdf/LDD3/ch18.pdf LDD3:TTY Drivers]
==Security==
The goal of security is to restrict access through interfaces.
From access control and authentication mechanisms to secure boot and memory protection,
the Linux kernel employs a variety of techniques to safeguard the system and its users.
Basic Linux security is quite simple.
It consists of three ownership classes and three access modes.
One of the most frequently executed functions is {{The Linux Kernel/id|may_open}}.
It rejects access of unauthorized users to open a file.
See article [[../Security/]] for new features.
=== Authorization ===
{{w|Authorization}} is the function of specifying {{w|Computer access control|access}} rights/{{w|Privilege_(computing)|privilege}}s to system resources.
The main goal of authorization is prevention of {{w|privilege escalation}} under any circumstances.
🔧 TODO.
Keywords: permission, capabilities, ownership, {{w|mitigation}}.
⚲ API
: {{The Linux Kernel/include|linux/stat.h}}
: {{The Linux Kernel/include|uapi/linux/stat.h}}
Basic classic UNIX authorization is based on ownership and tree access modes: reading, writing and execution.
Ownership is encoded by owning user id {{The Linux Kernel/id|uid_t}} and owning group id {{The Linux Kernel/id|gid_t}}.
{{The Linux Kernel/id|umode_t}} - just typedef used for encoding access mode. {{The Linux Kernel/id|S_IRUSR}} - minimal "read only by user/owner" access mode.
{{The Linux Kernel/id|S_IALLUGO}} - full access mode.
Please read the source for details for other modes.
Binary {{w|Access Control Matrix}} of access modes:
{| class="wikitable"
|+
!modes
!bits
!Read
!Write
!Execute
|-
|bit offset
|
|2
|1
|0
|-
|'''Others'''
|0-2
|or
|ow
|ox
|-
|'''Group'''
|3-5
|gr
|gw
|gx
|-
|'''User'''
|6-8
|ur
|uw
|ux
|}
: {{The Linux Kernel/man|2|chown}} ↪ {{The Linux Kernel/id|do_fchownat}} changes ownership for file or directory
: {{The Linux Kernel/man|2|chmod}} ↪ {{The Linux Kernel/id|do_fchmodat}} changes access mode for file or directory
: {{The Linux Kernel/man|2|access}}, {{The Linux Kernel/man|2|faccessat}} ↪ {{The Linux Kernel/id|do_faccessat}} checks access rights
Common authorization errors
: {{The Linux Kernel/id|EPERM}} – "Operation not permitted"
: {{The Linux Kernel/id|EACCES}} – "Permission denied"
🚀 Advanced features
: {{The Linux Kernel/man|5|acl}} {{The Linux Kernel/id|posix_acl}}
: {{The Linux Kernel/include|uapi/linux/capability.h}}
:: {{The Linux Kernel/man|2|capset}} and capget – set/get capabilities of thread(s)
:: {{The Linux Kernel/man|3|libcap}}
: {{The Linux Kernel/man|1|setpriv}} – run a program with different privilege settings
⚙️ Internals
: {{The Linux Kernel/id|may_open}} rejects unauthorized file opening
:: {{The Linux Kernel/id|inode_permission}} checks for access rights to a given inode
: {{The Linux Kernel/source|kernel/capability.c}} – POSIX capabilities system calls
📖 References
: {{w|File-system permissions}}
: {{The Linux Kernel/man|7|capabilities}}
===Credentials===
🔧 TODO.
Keywords: {{w|authentication}}, user IDs, group IDs, Process group ID, session ID.
⚲ API
: {{The Linux Kernel/include|uapi/asm-generic/stat.h}}
: {{The Linux Kernel/source|arch/x86/include/uapi/asm/stat.h}} – x86 stat structure definitions
: {{The Linux Kernel/include|linux/cred.h}}
:: struct {{The Linux Kernel/id|cred}} - the security context of a task
: {{The Linux Kernel/man|1|id}}, {{The Linux Kernel/man|1|test}} - shell utilities
: {{The Linux Kernel/man|2|getuid}} ↪ {{The Linux Kernel/id|current_uid}}
: {{The Linux Kernel/man|2|getgid}}
: {{The Linux Kernel/man|2|geteuid}} is used by utility {{The Linux Kernel/man|1|whoami}}
: Real, effective, and saved user/group IDs:
:: {{The Linux Kernel/man|2|getresuid}}, getresgid
:: {{The Linux Kernel/man|2|setreuid}}, setregid
: {{The Linux Kernel/man|2|setfsuid}} - set user identity used for filesystem checks
: {{The Linux Kernel/man|2|umask}} - sets file mode creation mask
: {{The Linux Kernel/man|1|stat}}, {{The Linux Kernel/man|2|stat}} ↪ {{The Linux Kernel/id|vfs_fstat}}, {{The Linux Kernel/id|vfs_fstatat}}
: {{The Linux Kernel/man|2|statx}} ↪ {{The Linux Kernel/id|do_statx}}
⚙️ Internals
: {{The Linux Kernel/id|kstat}}
: {{The Linux Kernel/id|make_kuid}} etc
: {{The Linux Kernel/id|from_kuid_munged}} etc
📖 References
: {{The Linux Kernel/doc|Credentials in Linux|security/credentials.html}}
: {{The Linux Kernel/man|7|credentials}}
: https://www.geeksforgeeks.org/real-effective-and-saved-userid-in-linux/
=== Cryptography ===
🔧 TODO
🗝️ Acronyms
: AES - {{w|Advanced Encryption Standard}}
⚲ API
: {{The Linux Kernel/id|AF_ALG}} - {{The Linux Kernel/doc|User Space Interface|crypto/userspace-if.html}}
: {{The Linux Kernel/include|linux/crypto.h}} - Scatterlist Cryptographic API.
: {{The Linux Kernel/include|crypto}}
⚙️ Internals
: {{The Linux Kernel/source|crypto}} – cryptographic API core
: {{The Linux Kernel/source|drivers/crypto}} – hardware crypto accelerator drivers
: {{The Linux Kernel/source|lib/crypto}} – crypto library helpers
: {{The Linux Kernel/source|arch/x86/crypto}} – x86 optimized crypto implementations
: {{The Linux Kernel/source|fs/crypto}} - per-file encryption
: {{The Linux Kernel/source|fs/ecryptfs}} eCrypt FS - Encrypted filesystem that operates on the VFS layer.
: {{w|dm-crypt}}, {{The Linux Kernel/source|drivers/md/dm-crypt.c}}
📖 References
: {{The Linux Kernel/doc|Linux Kernel Crypto API|crypto}}
: {{w|Crypto API (Linux)}}
: [https://www.kernel.org/doc/Documentation/devicetree/bindings/crypto/ devicetree/bindings/crypto]
: {{The Linux Kernel/ltp|kernel|crypto}}
=== Audit ===
: {{The Linux Kernel/source|kernel/audit.h}} – audit internal definitions
: {{The Linux Kernel/source|kernel/audit.c}} – audit gateway between kernel and user-space daemon
: {{The Linux Kernel/source|kernel/auditsc.c}} – system-call auditing
: {{The Linux Kernel/source|kernel/audit_tree.c}} – audit directory tree watches
: {{The Linux Kernel/source|kernel/audit_watch.c}} – audit filesystem path watches
: {{The Linux Kernel/source|kernel/audit_fsnotify.c}} – audit fsnotify integration
: {{The Linux Kernel/source|kernel/auditfilter.c}} – audit rule filtering
📖 References
: https://capsule8.com/blog/auditd-what-is-the-linux-auditing-system/
: https://wiki.archlinux.org/title/Audit_framework
: {{The Linux Kernel/man|8|auditctl}}
See also [[The_Linux_Kernel/Debugging#eBPF|eBPF and BPF]]
=== ... ===
Appendix for Security:
🔧 TODO
: {{The Linux Kernel/man|2|fcntl}} ↪ {{The Linux Kernel/id|do_fcntl}}
: {{The Linux Kernel/man|2|seccomp}} ↪ {{The Linux Kernel/id|do_seccomp}}
: {{The Linux Kernel/man|2|add_key}} ↪ {{The Linux Kernel/source|security/keys/keyctl.c}}
: {{w|chroot}}, {{The Linux Kernel/man|2|chroot}}
: {{w|Address_space_layout_randomization#Linux|Address space layout randomization}}
:: {{The Linux Kernel/man|8|setarch}} / {{The Linux Kernel/man|2|personality}}
📖 References
: {{The Linux Kernel/doc|Security-related interfaces|userspace-api/index.html#security-related-interfaces}}
:: {{The Linux Kernel/doc|No New Privileges Flag|userspace-api/no_new_privs.html}}
:: {{The Linux Kernel/doc|Seccomp BPF (SECure COMPuting with filters)|userspace-api/seccomp_filter.html}}
:: {{The Linux Kernel/doc|Landlock: unprivileged access control|userspace-api/landlock.html}}
:: {{The Linux Kernel/doc|Linux Security Modules|userspace-api/lsm.html}}
:: {{The Linux Kernel/doc|Introduction of non-executable mfd|userspace-api/mfd_noexec.html}}
:: {{The Linux Kernel/doc|Speculation Control|userspace-api/spec_ctrl.html}}
:: {{The Linux Kernel/doc|TEE (Trusted Execution Environment) Userspace API|userspace-api/tee.html}}
:: {{The Linux Kernel/doc|Executability check|userspace-api/check_exec.html}}
: {{The Linux Kernel/doc|Security|security}}
:: {{The Linux Kernel/doc|LSM - Linux Security Modules|security/lsm.html}} [https://docs.kernel.org/admin-guide/perf-security.html Perf events and tool security]
: {{The Linux Kernel/doc|Hardware vulnerabilities|admin-guide/hw-vuln}}
: {{w|Linux Security Modules}}
: {{The Linux Kernel/include|linux/security.h}} ⇾ {{The Linux Kernel/source|security}}
: {{The Linux Kernel/include|keys}}
: {{The Linux Kernel/include|linux/verification.h}}
: {{The Linux Kernel/source|certs}} – module signing certificates
: {{The Linux Kernel/ltp|kernel|security}}
: {{The Linux Kernel/ltp||cve}}
: http://kernsec.org/wiki/index.php/Main_Page
: {{w|SELinux}} http://selinuxproject.org/
== Debugging ==
See [[The_Linux_Kernel/Debugging|Debugging the Linux kernel]]
==Multimedia subsystems==
⚙️ Internals
: {{The Linux Kernel/source|drivers/media}} – media subsystem (V4L2, DVB, etc.)
=== Graphics ===
Old graphics (not to be confused with v4l):
⚲ API
: {{The Linux Kernel/include|video}}
<!-- : {{The Linux Kernel/include|uapi/video}} old stuff -->
⚙️ Internals
: {{The Linux Kernel/source|drivers/video}} – framebuffer and video drivers
==== {{w|Direct Rendering Manager}} (DRM) ====
DRM is responsible for interfacing with GPUs of modern video cards.
DRM exposes an API that user-space programs can use to send commands and data to the GPU and perform operations such as configuring the mode setting of the display.
User-space programs can use the DRM API to command the GPU to do hardware-accelerated 3D rendering and video decoding, as well as {{w|General-purpose computing on graphics processing units|GPGPU}} computing.
⚲ API
: /sys/class/drm/
: {{The Linux Kernel/include|uapi/drm}}
:: {{The Linux Kernel/include|uapi/drm/drm.h}}
::: {{The Linux Kernel/id|DRM_IOCTL_BASE}}
::: {{The Linux Kernel/id|drm_version}}
⚙️ Internals
: {{The Linux Kernel/include|drm}}
: {{The Linux Kernel/include|drm_gem.h}} – Graphics Execution Manager Driver Interfaces
: {{The Linux Kernel/id|drm_dev_register}} registers {{The Linux Kernel/id|drm_device}}
=== {{w|Advanced Linux Sound Architecture}} (ALSA) ===
ALSA is a software framework and part of the Linux kernel that provides an API for sound card device drivers.
Some of the goals of the ALSA project at its inception were automatic configuration of sound-card hardware and graceful handling of multiple sound devices in a system.
The sound servers PulseAudio, JACK (low-latency professional-grade audio editing and mixing) and PipeWire, the higher-level abstraction APIs OpenAL, SDL audio, etc. work on top of ALSA and implemented sound card device drivers.
On Linux systems, ALSA succeeded the older {{w|Open Sound System}} (OSS).
⚲ API
: /proc/asound/cards, /sys/class/sound/
: {{The Linux Kernel/id|snd_card}} - central struct
: {{The Linux Kernel/id|snd_card_new}}
: {{The Linux Kernel/id|snd_card_register}}
: {{The Linux Kernel/id|snd_device_ops}}
: {{The Linux Kernel/id|snd_device_new}} creates an ALSA device component
: {{The Linux Kernel/include|uapi/sound/asound.h}}
: {{The Linux Kernel/include|sound/core.h}}
⚙️ Internals
: {{The Linux Kernel/source|sound}} – ALSA sound subsystem
: {{The Linux Kernel/source|sound/core/device.c}} – ALSA device management
: See [[#Sound SoC - ASoC|ASoC]]
📖 References
: {{The Linux Kernel/doc|ALSA (sound)|sound}}
: {{The Linux Kernel/doc|Writing an ALSA Driver|sound/kernel-api/writing-an-alsa-driver.html}}
: {{The Linux Kernel/ltp|kernel|sound}}
=== {{w|Video4Linux}} (V4L2) ===
V4L is a collection of device drivers and an API for supporting realtime video capture on Linux systems.
It supports many USB webcams, TV tuners, and related devices, standardizing their output, so programmers can easily add video support to their applications.
MythTV, tvtime and Tvheadend are typical applications that use the V4L framework.
⚲ API
: {{The Linux Kernel/id|v4l2_device_register}} registers {{The Linux Kernel/id|v4l2_device}}
: {{The Linux Kernel/id|video_register_device}} registers {{The Linux Kernel/id|video_device}}
: 👁 examples {{The Linux Kernel/source|drivers/media/test-drivers}}
📖 References
: {{w|Video4Linux}}
: {{The Linux Kernel/doc|media|driver-api/media}}
: {{The Linux Kernel/doc|V4L|userspace-api/media/drivers/}}
: [https://linuxtv.org/downloads/v4l-dvb-apis-new/driver-api/index.html Media subsystem kernel internal API]
==HID==
Generic human interface devices.
Don't confuse with [[../System#hiddev|hiddev]].
=== Input devices ===
Input device files are kind of [[#char devices|char devices]] with id {{The Linux Kernel/id|INPUT_MAJOR}}.
Classic input devices are keyboard and mouse.
⚲ API
: In shell: cat /proc/bus/input/devices
: {{The Linux Kernel/include|linux/input.h}}
: {{The Linux Kernel/id|devm_input_allocate_device}}, {{The Linux Kernel/id|input_register_device}}, {{The Linux Kernel/id|input_register_handler}}, {{The Linux Kernel/id|input_dev}}
: {{The Linux Kernel/id|input_report_key}} {{The Linux Kernel/id|input_sync}}
👁 Examples
: {{The Linux Kernel/source|drivers/input/mousedev.c}} – mouse device emulation
: {{The Linux Kernel/source|drivers/input/keyboard/atkbd.c}} – AT/PS2 keyboard driver
<big>⌨️</big> Hands on
sudo hexdump /dev/input/mice # dump your mouse movements events from your kernel
⚙️ Internals
: {{The Linux Kernel/source|drivers/input/input.c}} – input core
: {{The Linux Kernel/id|input_event}}
📖 References
: {{The Linux Kernel/doc|Input|input}}
: {{The Linux Kernel/ltp|kernel|input}}
=== HID devices ===
🔧 TODO
⚲ API
: {{The Linux Kernel/id|hid_device}} - device report descriptor. Operations: {{The Linux Kernel/id|hid_allocate_device}}, {{The Linux Kernel/id|hid_add_device}} . 👁 Example {{The Linux Kernel/id|usbhid_probe}}
: {{The Linux Kernel/include|uapi/linux/hid.h}}
: {{The Linux Kernel/include|linux/hid.h}}
=== Camera ===
🔧 TODO
⚲ API
: {{The Linux Kernel/include|uapi/linux/uvcvideo.h}}
📖 References
: {{The Linux Kernel/doc|UVC|userspace-api/media/drivers/uvcvideo.html}}
: {{The Linux Kernel/source|drivers/media/usb/uvc}} – USB Video Class driver
==HI device drivers==
This section is about low level drivers to human interface peripheral devices.
⚲ '''HID''' API
: {{The Linux Kernel/include|linux/hidraw.h}}
: {{The Linux Kernel/id|module_hid_driver}} registers {{The Linux Kernel/id|hid_driver}}
: {{The Linux Kernel/id|hid_hw_start}}
⚙️ Internals
: {{The Linux Kernel/id|hid_bus_type}}
: {{The Linux Kernel/source|drivers/hid}} – HID transport drivers
: {{The Linux Kernel/source|drivers/hid/hid-core.c}} – HID core parsing and event handling
: {{The Linux Kernel/source|drivers/accessibility}} – accessibility drivers (speakup)
: {{The Linux Kernel/source|drivers/leds}} – LED class drivers
: {{The Linux Kernel/source|samples/uhid/uhid-example.c}} - 👁 example of user mode HID driver
: {{The Linux Kernel/source|drivers/input}} : keyboard & mouse, misc, serio, tablet, touchscreen, gameport, joystick
:: <big>⌨️</big> Hands on
:: echo "module atkbd +pfl" | sudo tee /sys/kernel/debug/dynamic_debug/control
'''USB HID'''
⚲ '''HID''' API
: {{The Linux Kernel/id|USB_INTERFACE_CLASS_HID}} == {{The Linux Kernel/id|USB_CLASS_HID}}
⚙️ Internals
: {{The Linux Kernel/source|drivers/hid/usbhid}} – USB HID transport
:: {{The Linux Kernel/source|drivers/hid/usbhid/usbkbd.c}}: {{The Linux Kernel/id|usb_kbd_driver}}
:: {{The Linux Kernel/source|drivers/hid/usbhid/usbmouse.c}}: {{The Linux Kernel/id|usb_mouse_driver}}
📖 References
: <!--
find include/ -type f -name '*hid*' | sed 's-include/\(.*\)-* {{The Linux Kernel/include|\1}}-'
-->{{The Linux Kernel/doc|USB HID class|hid}}
=== Graphics ===
🔧 TODO
🗝️ Acronyms
: FB - {{w|Linux framebuffer|Framebuffer}}
: GPU - {{w|Graphics processing unit}}
: TFT (LCD) - {{w|Thin-film-transistor liquid-crystal display}} used for 🤖 embedded devices
: MIPI - 📱 {{w|Mobile Industry Processor Interface}}
:: DBI - Display Bus Interface
:: DSI - {{w|Display Serial Interface}}
:: DCS - The Display Command Set
⚲ API
: cat /proc/fb
: ls -l /sys/class/graphics
: {{The Linux Kernel/include|video/mipi_display.h}}
: {{The Linux Kernel/include|linux/fb.h}}
: {{The Linux Kernel/id|register_framebuffer}}
: {{The Linux Kernel/id|FBTFT_REGISTER_DRIVER}}
: {{The Linux Kernel/id|fbtft_display}}
⚙️ Internals
: {{The Linux Kernel/source|drivers/video}} – framebuffer and video drivers
: {{The Linux Kernel/source|drivers/gpu}} – GPU and DRM drivers
👁 Examples
: {{The Linux Kernel/id|vivid_fb_init}}
: {{The Linux Kernel/id|fbtft_register_framebuffer}}
📖 References
: {{The Linux Kernel/doc|GPU Driver Developer’s Guide|gpu}}
: {{The Linux Kernel/doc|The Frame Buffer Device|fb}}
: {{The Linux Kernel/doc|Frame Buffer Library|driver-api/frame-buffer.html}}
: [https://lwn.net/Kernel/Index/#Device_drivers-Graphics LWN: Graphics]
=== Sound SoC - ASoC ===
ALSA System on Chip (ASoC) layer for 🤖 embedded systems.
ASoC is designed to handle complex audio processing and routing on low-power and resource-constrained systems, making it an ideal solution for embedded devices such as smartphones, tablets, and other IoT devices.
ASoC provides a comprehensive framework for audio drivers, enabling the creation of modular audio drivers that can be easily integrated with the rest of the kernel.
It also supports a wide range of audio interfaces, including I2S, PCM, AC97, and SPDIF, making it highly versatile and capable of handling a variety of audio formats.
One of the key features of ASoC is its ability to handle audio routing and processing using Digital Signal Processing (DSP) techniques.
This enables ASoC to support advanced audio features such as noise reduction, echo cancellation, and dynamic range compression, among others.
Overall, ASoC is a powerful and flexible subsystem that enables Linux to support a wide range of audio hardware in embedded devices.
It has become an essential component of many embedded Linux distributions and is widely used in the development of modern audio-enabled devices.
⚲ API
: {{The Linux Kernel/include|sound/soc.h}}
:: {{The Linux Kernel/id|snd_soc_card}}
::: is registered by {{The Linux Kernel/id|devm_snd_soc_register_card}} ⇾ {{The Linux Kernel/id|snd_soc_register_card}}
: {{The Linux Kernel/include|sound/soc-component.h}}
:: {{The Linux Kernel/id|snd_soc_component}}
::: {{The Linux Kernel/id|snd_soc_component_driver}}
::: {{The Linux Kernel/id|snd_soc_card}}
:::: {{The Linux Kernel/id|snd_card}}
:: {{The Linux Kernel/id|snd_soc_register_component}} {{The Linux Kernel/id|snd_soc_component_get_drvdata}} {{The Linux Kernel/id|snd_soc_component_read}} {{The Linux Kernel/id|snd_soc_component_update_bits}} {{The Linux Kernel/id|snd_soc_component_write}}
: {{The Linux Kernel/include|sound/soc-dai.h}} - {{The Linux Kernel/doc|DAI - Digital Audio Interface|sound/soc/dai.html}}: {{w|AC97}}, {{w|I2S}}, {{w|PCM}}
:: {{The Linux Kernel/id|snd_soc_dai}} {{The Linux Kernel/id|snd_soc_dai_driver}} {{The Linux Kernel/id|snd_soc_dai_get_drvdata}}
: {{The Linux Kernel/include|sound/soc-dpcm.h}} - {{The Linux Kernel/doc|DPCM - Dynamic PCM|sound/soc/dpcm.html}}
: {{The Linux Kernel/include|sound/soc-dapm.h}} - {{The Linux Kernel/doc|DAPM - Dynamic Audio Power Management|sound/soc/dapm.html}}
:: {{The Linux Kernel/id|snd_soc_dapm_route}}, {{The Linux Kernel/id|snd_soc_dapm_to_component}}, {{The Linux Kernel/id|snd_soc_dapm_widget}}
👁 Examples
: {{The Linux Kernel/source|sound/soc/generic/simple-card.c}}
: {{The Linux Kernel/source|sound/soc/generic/audio-graph-card.c}} uses {{The Linux Kernel/include|sound/graph_card.h}}
⚙️ Internals
: {{The Linux Kernel/source|sound/soc}} – ASoC framework
: {{The Linux Kernel/id|snd_soc_card}}
:: {{The Linux Kernel/id|snd_soc_dai_link}}
📖 References
: {{The Linux Kernel/doc|ASoC - ALSA SoC Layer|sound/soc}}
: {{The Linux Kernel/doc|ASoC Core API|sound/kernel-api/alsa-driver-api.html?#asoc}}
: https://www.alsa-project.org/wiki/ASoC
:: https://www.alsa-project.org/wiki/DAPM
🗝️ Acronyms SAI could be
: STM ''Serial'' Audio Interface: {{The Linux Kernel/source|sound/soc/stm/stm32_sai.h}}
: Freescale (FSL) ''Synchronous'' Audio Interface: {{The Linux Kernel/source|sound/soc/fsl/fsl_sai.h}}
{{BookCat}}
{{status|25%}}
5gahibtjy7q1dou4wy61c8mazry8m37
4640228
4640226
2026-06-13T18:18:52Z
Conan
3188
remove dead capsule8.com link (redirects to sophos.com)
4640228
wikitext
text/x-wiki
<noinclude>{{DISPLAYTITLE:Human interfaces}}</noinclude>
{| style="float:right; text-align: center; border-spacing: 0; margin: auto;" cellpadding="5pc"
! bgcolor="#fcd" |human interfaces
|- style=""
| bgcolor="#ecd" |[[#Text interfaces|text interfaces]]
|- style=""
| bgcolor="#dcd" |[[#Security|security]]
|- style=""
| bgcolor="#dcc" |[[#Debugging|debugging]]
|- style=""
| bgcolor="#cbb" |[[#Multimedia subsystems|multimedia subsystems]]
|- style=""
| bgcolor="#baa" |[[#HID|human interface devices]], [[#Input_devices|input devices]]
|- style=""
| bgcolor="#aaa" |[[#HI_device_drivers|HI drivers]]
|}
Welcome to the first article of this book.
The article is named after the {{W|USB human interface device class|USB class}} and the Linux facility for {{w|Human interface device|Human Interface Devices}} (HID).
The HID subsystem in Linux supports keyboards, mice, and other {{w|Input device|input devices}}.
In addition to input handling, this article also explores topics related to the console, multimedia (or simply media), sound (audio), video, and graphics—key areas of user interaction.
Security and debugging are also covered, as they are closely tied to human interaction and user-facing functionality.
== Text interfaces ==
In the world of Linux, text {{w|terminal emulator}}s and {{w|Linux console|console}}s are essential components of the operating system that allow users to interact with applications through the kernel.
A text terminal is a device that provides a text-based interface for communicating with the kernel, while the console is the physical device that houses the terminal and displays the output of the kernel.
The Linux kernel includes a built-in console driver that provides a basic interface for communicating with the console and controlling the terminal.
The console driver also supports various input and output devices, such as keyboards and displays, to enable users to interact with the system through a terminal.
The use of text {{w|Computer terminal|terminals}} and {{w|system console}}s in Linux can be traced back to the early days of computing, when {{w|Graphical terminal|graphical user interfaces}} were not yet widely available.
Despite the widespread adoption of graphical user interfaces, {{w|Text-based user interface|text-based interfaces}} and consoles remain popular among Linux users and developers for their simplicity, efficiency, and flexibility.
Overall, the text terminal and console play a crucial role in the Linux kernel, providing users with a powerful interface for managing and interacting with the operating system.
=== Char devices ===
{{The Linux Kernel/id|cdev}} – "character device" is a type of device driver that provides an implementation for character {{w|device file}} in the /dev directory.
The word "device" here means abstract interface, {{w|Proxy pattern|proxy}} to a usually peripheral physical device.
A character device is a type of device that can be accessed as a stream of bytes, rather than as a block of data like a block device.
Cdev drivers are commonly used for devices that provide a {{w|sequential access|stream}} of data, such as keyboards, mice, terminals, serial ports, and printers.
They are also used for devices that provide access to memory-mapped I/O regions, such as frame buffers and network devices.
A cdev driver typically consists of a set of functions that implement the low-level I/O operations for the device, such as open, read and write.
These functions are called by the kernel when a user space program accesses the character device file.
To create a cdev driver, a kernel developer must first initialize a cdev structure using {{The Linux Kernel/id|cdev_init}} or {{The Linux Kernel/id|cdev_alloc}}.
The cdev structure contains information about the device, such as its major and minor numbers and the set of I/O functions that the driver implements.
Once the cdev structure has been initialized, it can be registered with the kernel using the {{The Linux Kernel/id|cdev_add}} function.
This function creates the character device file in the /dev directory and associates it with the cdev driver.
You can find a list of registered char devices on the beginning the listing of <big>/proc/devices</big>. [[#Input_devices|Input devices]] keyboard and mouse are examples of char devices.
<small>''Tip: Browse the cross-referencing site to explore nearby API and use cases''</small>
💾 ''Historical: It is one of the most simple, fundamental and oldest concepts derived from UNIX. ''
⚲ API
: {{The Linux Kernel/include|linux/cdev.h}}
:: {{The Linux Kernel/id|dev_t}} - device id consists of {{The Linux Kernel/id|MAJOR}} and {{The Linux Kernel/id|MINOR}} numbers
:: {{The Linux Kernel/id|cdev}} - core char device struct
:: {{The Linux Kernel/id|cdev_init}} or {{The Linux Kernel/id|cdev_alloc}}
:: {{The Linux Kernel/id|cdev_device_add}} - helper function, uses
::: {{The Linux Kernel/id|cdev_add}} - common key function to add a char device to the system.
: {{The Linux Kernel/id|register_chrdev}} - ''obviously registers char device'' by '''major''' number, '''name''' and file operations
: {{The Linux Kernel/id|unregister_chrdev}}
: {{The Linux Kernel/id|alloc_chrdev_region}} / {{The Linux Kernel/id|register_chrdev_region}},
: {{The Linux Kernel/id|unregister_chrdev_region}}
: {{The Linux Kernel/include|uapi/linux/major.h}} - static definitions of many major numbers, including obsolete.
⚙️ Internals
: {{The Linux Kernel/source|fs/char_dev.c}} – character device registration
: {{The Linux Kernel/id|chrdevs}}
📖 References
: {{The Linux Kernel/doc|Char devices|core-api/kernel-api.html#char-devices}}
: [https://linux-kernel-labs.github.io/refs/heads/master/labs/device_drivers.html Character device drivers, linux-kernel-labs]
: [https://www.opensourceforu.com/2011/04/character-device-files-creation-operations/ Character device files, on opensourceforu]
💾 ''Historical''
: [http://lwn.net/images/pdf/LDD3/ch03.pdf LDD3:Char Drivers]
: [http://lwn.net/images/pdf/LDD3/ch06.pdf LDD3:Advanced Char Driver Operations]
: [http://www.xml.com/ldd/chapter/book/ch03.html LDD1:#3]
: [http://www.xml.com/ldd/chapter/book/ch05.html LDD1:#5]
=== Text terminals and console ===
🗝️ Acronyms
: {{w|Tty (unix)|tty}} - 💾 ''historically TeleTYpewriter'', means just terminal
: {{w|Pseudoterminal|pty}} - pseudoterminal
: pts - pseudoterminal slave
: ptmx - pseudoterminal master
⚲ API
: To find out current terminal:
:: readlink /proc/self/fd/0
:: {{The Linux Kernel/man|1|tty}}
:: {{The Linux Kernel/man|1|who}} -m
: {{The Linux Kernel/include|linux/tty.h}}
:{{The Linux Kernel/id|register_console}} obviously registers {{The Linux Kernel/id|console}}
:: 👁 example {{The Linux Kernel/id|virtio_console}}
: {{The Linux Kernel/include|linux/console.h}}
: {{The Linux Kernel/man|2|ioctl_console}}
⚙️ Internals
: {{The Linux Kernel/source|drivers/tty}} – TTY layer
: {{The Linux Kernel/source|fs/devpts}} – devpts pseudo-filesystem for PTY slaves
: {{The Linux Kernel/source|fs/proc/proc_tty.c}} – /proc/tty information
: {{The Linux Kernel/source|drivers/tty/vt/vt.c}} – virtual terminal console
📖 References
: {{The Linux Kernel/man|4|tty}} – controlling terminal
: {{The Linux Kernel/man|4|ptmx}} and pts – pseudoterminal master and slave
: {{The Linux Kernel/man|7|pty}} – pseudoterminal interfaces
: {{The Linux Kernel/doc|console|driver-api/console.html}}
💾 ''Historical''
: [http://lwn.net/images/pdf/LDD3/ch18.pdf LDD3:TTY Drivers]
==Security==
The goal of security is to restrict access through interfaces.
From access control and authentication mechanisms to secure boot and memory protection,
the Linux kernel employs a variety of techniques to safeguard the system and its users.
Basic Linux security is quite simple.
It consists of three ownership classes and three access modes.
One of the most frequently executed functions is {{The Linux Kernel/id|may_open}}.
It rejects access of unauthorized users to open a file.
See article [[../Security/]] for new features.
=== Authorization ===
{{w|Authorization}} is the function of specifying {{w|Computer access control|access}} rights/{{w|Privilege_(computing)|privilege}}s to system resources.
The main goal of authorization is prevention of {{w|privilege escalation}} under any circumstances.
🔧 TODO.
Keywords: permission, capabilities, ownership, {{w|mitigation}}.
⚲ API
: {{The Linux Kernel/include|linux/stat.h}}
: {{The Linux Kernel/include|uapi/linux/stat.h}}
Basic classic UNIX authorization is based on ownership and tree access modes: reading, writing and execution.
Ownership is encoded by owning user id {{The Linux Kernel/id|uid_t}} and owning group id {{The Linux Kernel/id|gid_t}}.
{{The Linux Kernel/id|umode_t}} - just typedef used for encoding access mode. {{The Linux Kernel/id|S_IRUSR}} - minimal "read only by user/owner" access mode.
{{The Linux Kernel/id|S_IALLUGO}} - full access mode.
Please read the source for details for other modes.
Binary {{w|Access Control Matrix}} of access modes:
{| class="wikitable"
|+
!modes
!bits
!Read
!Write
!Execute
|-
|bit offset
|
|2
|1
|0
|-
|'''Others'''
|0-2
|or
|ow
|ox
|-
|'''Group'''
|3-5
|gr
|gw
|gx
|-
|'''User'''
|6-8
|ur
|uw
|ux
|}
: {{The Linux Kernel/man|2|chown}} ↪ {{The Linux Kernel/id|do_fchownat}} changes ownership for file or directory
: {{The Linux Kernel/man|2|chmod}} ↪ {{The Linux Kernel/id|do_fchmodat}} changes access mode for file or directory
: {{The Linux Kernel/man|2|access}}, {{The Linux Kernel/man|2|faccessat}} ↪ {{The Linux Kernel/id|do_faccessat}} checks access rights
Common authorization errors
: {{The Linux Kernel/id|EPERM}} – "Operation not permitted"
: {{The Linux Kernel/id|EACCES}} – "Permission denied"
🚀 Advanced features
: {{The Linux Kernel/man|5|acl}} {{The Linux Kernel/id|posix_acl}}
: {{The Linux Kernel/include|uapi/linux/capability.h}}
:: {{The Linux Kernel/man|2|capset}} and capget – set/get capabilities of thread(s)
:: {{The Linux Kernel/man|3|libcap}}
: {{The Linux Kernel/man|1|setpriv}} – run a program with different privilege settings
⚙️ Internals
: {{The Linux Kernel/id|may_open}} rejects unauthorized file opening
:: {{The Linux Kernel/id|inode_permission}} checks for access rights to a given inode
: {{The Linux Kernel/source|kernel/capability.c}} – POSIX capabilities system calls
📖 References
: {{w|File-system permissions}}
: {{The Linux Kernel/man|7|capabilities}}
===Credentials===
🔧 TODO.
Keywords: {{w|authentication}}, user IDs, group IDs, Process group ID, session ID.
⚲ API
: {{The Linux Kernel/include|uapi/asm-generic/stat.h}}
: {{The Linux Kernel/source|arch/x86/include/uapi/asm/stat.h}} – x86 stat structure definitions
: {{The Linux Kernel/include|linux/cred.h}}
:: struct {{The Linux Kernel/id|cred}} - the security context of a task
: {{The Linux Kernel/man|1|id}}, {{The Linux Kernel/man|1|test}} - shell utilities
: {{The Linux Kernel/man|2|getuid}} ↪ {{The Linux Kernel/id|current_uid}}
: {{The Linux Kernel/man|2|getgid}}
: {{The Linux Kernel/man|2|geteuid}} is used by utility {{The Linux Kernel/man|1|whoami}}
: Real, effective, and saved user/group IDs:
:: {{The Linux Kernel/man|2|getresuid}}, getresgid
:: {{The Linux Kernel/man|2|setreuid}}, setregid
: {{The Linux Kernel/man|2|setfsuid}} - set user identity used for filesystem checks
: {{The Linux Kernel/man|2|umask}} - sets file mode creation mask
: {{The Linux Kernel/man|1|stat}}, {{The Linux Kernel/man|2|stat}} ↪ {{The Linux Kernel/id|vfs_fstat}}, {{The Linux Kernel/id|vfs_fstatat}}
: {{The Linux Kernel/man|2|statx}} ↪ {{The Linux Kernel/id|do_statx}}
⚙️ Internals
: {{The Linux Kernel/id|kstat}}
: {{The Linux Kernel/id|make_kuid}} etc
: {{The Linux Kernel/id|from_kuid_munged}} etc
📖 References
: {{The Linux Kernel/doc|Credentials in Linux|security/credentials.html}}
: {{The Linux Kernel/man|7|credentials}}
: https://www.geeksforgeeks.org/real-effective-and-saved-userid-in-linux/
=== Cryptography ===
🔧 TODO
🗝️ Acronyms
: AES - {{w|Advanced Encryption Standard}}
⚲ API
: {{The Linux Kernel/id|AF_ALG}} - {{The Linux Kernel/doc|User Space Interface|crypto/userspace-if.html}}
: {{The Linux Kernel/include|linux/crypto.h}} - Scatterlist Cryptographic API.
: {{The Linux Kernel/include|crypto}}
⚙️ Internals
: {{The Linux Kernel/source|crypto}} – cryptographic API core
: {{The Linux Kernel/source|drivers/crypto}} – hardware crypto accelerator drivers
: {{The Linux Kernel/source|lib/crypto}} – crypto library helpers
: {{The Linux Kernel/source|arch/x86/crypto}} – x86 optimized crypto implementations
: {{The Linux Kernel/source|fs/crypto}} - per-file encryption
: {{The Linux Kernel/source|fs/ecryptfs}} eCrypt FS - Encrypted filesystem that operates on the VFS layer.
: {{w|dm-crypt}}, {{The Linux Kernel/source|drivers/md/dm-crypt.c}}
📖 References
: {{The Linux Kernel/doc|Linux Kernel Crypto API|crypto}}
: {{w|Crypto API (Linux)}}
: [https://www.kernel.org/doc/Documentation/devicetree/bindings/crypto/ devicetree/bindings/crypto]
: {{The Linux Kernel/ltp|kernel|crypto}}
=== Audit ===
: {{The Linux Kernel/source|kernel/audit.h}} – audit internal definitions
: {{The Linux Kernel/source|kernel/audit.c}} – audit gateway between kernel and user-space daemon
: {{The Linux Kernel/source|kernel/auditsc.c}} – system-call auditing
: {{The Linux Kernel/source|kernel/audit_tree.c}} – audit directory tree watches
: {{The Linux Kernel/source|kernel/audit_watch.c}} – audit filesystem path watches
: {{The Linux Kernel/source|kernel/audit_fsnotify.c}} – audit fsnotify integration
: {{The Linux Kernel/source|kernel/auditfilter.c}} – audit rule filtering
📖 References
: https://wiki.archlinux.org/title/Audit_framework
: {{The Linux Kernel/man|8|auditctl}}
See also [[The_Linux_Kernel/Debugging#eBPF|eBPF and BPF]]
=== ... ===
Appendix for Security:
🔧 TODO
: {{The Linux Kernel/man|2|fcntl}} ↪ {{The Linux Kernel/id|do_fcntl}}
: {{The Linux Kernel/man|2|seccomp}} ↪ {{The Linux Kernel/id|do_seccomp}}
: {{The Linux Kernel/man|2|add_key}} ↪ {{The Linux Kernel/source|security/keys/keyctl.c}}
: {{w|chroot}}, {{The Linux Kernel/man|2|chroot}}
: {{w|Address_space_layout_randomization#Linux|Address space layout randomization}}
:: {{The Linux Kernel/man|8|setarch}} / {{The Linux Kernel/man|2|personality}}
📖 References
: {{The Linux Kernel/doc|Security-related interfaces|userspace-api/index.html#security-related-interfaces}}
:: {{The Linux Kernel/doc|No New Privileges Flag|userspace-api/no_new_privs.html}}
:: {{The Linux Kernel/doc|Seccomp BPF (SECure COMPuting with filters)|userspace-api/seccomp_filter.html}}
:: {{The Linux Kernel/doc|Landlock: unprivileged access control|userspace-api/landlock.html}}
:: {{The Linux Kernel/doc|Linux Security Modules|userspace-api/lsm.html}}
:: {{The Linux Kernel/doc|Introduction of non-executable mfd|userspace-api/mfd_noexec.html}}
:: {{The Linux Kernel/doc|Speculation Control|userspace-api/spec_ctrl.html}}
:: {{The Linux Kernel/doc|TEE (Trusted Execution Environment) Userspace API|userspace-api/tee.html}}
:: {{The Linux Kernel/doc|Executability check|userspace-api/check_exec.html}}
: {{The Linux Kernel/doc|Security|security}}
:: {{The Linux Kernel/doc|LSM - Linux Security Modules|security/lsm.html}} [https://docs.kernel.org/admin-guide/perf-security.html Perf events and tool security]
: {{The Linux Kernel/doc|Hardware vulnerabilities|admin-guide/hw-vuln}}
: {{w|Linux Security Modules}}
: {{The Linux Kernel/include|linux/security.h}} ⇾ {{The Linux Kernel/source|security}}
: {{The Linux Kernel/include|keys}}
: {{The Linux Kernel/include|linux/verification.h}}
: {{The Linux Kernel/source|certs}} – module signing certificates
: {{The Linux Kernel/ltp|kernel|security}}
: {{The Linux Kernel/ltp||cve}}
: http://kernsec.org/wiki/index.php/Main_Page
: {{w|SELinux}} http://selinuxproject.org/
== Debugging ==
See [[The_Linux_Kernel/Debugging|Debugging the Linux kernel]]
==Multimedia subsystems==
⚙️ Internals
: {{The Linux Kernel/source|drivers/media}} – media subsystem (V4L2, DVB, etc.)
=== Graphics ===
Old graphics (not to be confused with v4l):
⚲ API
: {{The Linux Kernel/include|video}}
<!-- : {{The Linux Kernel/include|uapi/video}} old stuff -->
⚙️ Internals
: {{The Linux Kernel/source|drivers/video}} – framebuffer and video drivers
==== {{w|Direct Rendering Manager}} (DRM) ====
DRM is responsible for interfacing with GPUs of modern video cards.
DRM exposes an API that user-space programs can use to send commands and data to the GPU and perform operations such as configuring the mode setting of the display.
User-space programs can use the DRM API to command the GPU to do hardware-accelerated 3D rendering and video decoding, as well as {{w|General-purpose computing on graphics processing units|GPGPU}} computing.
⚲ API
: /sys/class/drm/
: {{The Linux Kernel/include|uapi/drm}}
:: {{The Linux Kernel/include|uapi/drm/drm.h}}
::: {{The Linux Kernel/id|DRM_IOCTL_BASE}}
::: {{The Linux Kernel/id|drm_version}}
⚙️ Internals
: {{The Linux Kernel/include|drm}}
: {{The Linux Kernel/include|drm_gem.h}} – Graphics Execution Manager Driver Interfaces
: {{The Linux Kernel/id|drm_dev_register}} registers {{The Linux Kernel/id|drm_device}}
=== {{w|Advanced Linux Sound Architecture}} (ALSA) ===
ALSA is a software framework and part of the Linux kernel that provides an API for sound card device drivers.
Some of the goals of the ALSA project at its inception were automatic configuration of sound-card hardware and graceful handling of multiple sound devices in a system.
The sound servers PulseAudio, JACK (low-latency professional-grade audio editing and mixing) and PipeWire, the higher-level abstraction APIs OpenAL, SDL audio, etc. work on top of ALSA and implemented sound card device drivers.
On Linux systems, ALSA succeeded the older {{w|Open Sound System}} (OSS).
⚲ API
: /proc/asound/cards, /sys/class/sound/
: {{The Linux Kernel/id|snd_card}} - central struct
: {{The Linux Kernel/id|snd_card_new}}
: {{The Linux Kernel/id|snd_card_register}}
: {{The Linux Kernel/id|snd_device_ops}}
: {{The Linux Kernel/id|snd_device_new}} creates an ALSA device component
: {{The Linux Kernel/include|uapi/sound/asound.h}}
: {{The Linux Kernel/include|sound/core.h}}
⚙️ Internals
: {{The Linux Kernel/source|sound}} – ALSA sound subsystem
: {{The Linux Kernel/source|sound/core/device.c}} – ALSA device management
: See [[#Sound SoC - ASoC|ASoC]]
📖 References
: {{The Linux Kernel/doc|ALSA (sound)|sound}}
: {{The Linux Kernel/doc|Writing an ALSA Driver|sound/kernel-api/writing-an-alsa-driver.html}}
: {{The Linux Kernel/ltp|kernel|sound}}
=== {{w|Video4Linux}} (V4L2) ===
V4L is a collection of device drivers and an API for supporting realtime video capture on Linux systems.
It supports many USB webcams, TV tuners, and related devices, standardizing their output, so programmers can easily add video support to their applications.
MythTV, tvtime and Tvheadend are typical applications that use the V4L framework.
⚲ API
: {{The Linux Kernel/id|v4l2_device_register}} registers {{The Linux Kernel/id|v4l2_device}}
: {{The Linux Kernel/id|video_register_device}} registers {{The Linux Kernel/id|video_device}}
: 👁 examples {{The Linux Kernel/source|drivers/media/test-drivers}}
📖 References
: {{w|Video4Linux}}
: {{The Linux Kernel/doc|media|driver-api/media}}
: {{The Linux Kernel/doc|V4L|userspace-api/media/drivers/}}
: [https://linuxtv.org/downloads/v4l-dvb-apis-new/driver-api/index.html Media subsystem kernel internal API]
==HID==
Generic human interface devices.
Don't confuse with [[../System#hiddev|hiddev]].
=== Input devices ===
Input device files are kind of [[#char devices|char devices]] with id {{The Linux Kernel/id|INPUT_MAJOR}}.
Classic input devices are keyboard and mouse.
⚲ API
: In shell: cat /proc/bus/input/devices
: {{The Linux Kernel/include|linux/input.h}}
: {{The Linux Kernel/id|devm_input_allocate_device}}, {{The Linux Kernel/id|input_register_device}}, {{The Linux Kernel/id|input_register_handler}}, {{The Linux Kernel/id|input_dev}}
: {{The Linux Kernel/id|input_report_key}} {{The Linux Kernel/id|input_sync}}
👁 Examples
: {{The Linux Kernel/source|drivers/input/mousedev.c}} – mouse device emulation
: {{The Linux Kernel/source|drivers/input/keyboard/atkbd.c}} – AT/PS2 keyboard driver
<big>⌨️</big> Hands on
sudo hexdump /dev/input/mice # dump your mouse movements events from your kernel
⚙️ Internals
: {{The Linux Kernel/source|drivers/input/input.c}} – input core
: {{The Linux Kernel/id|input_event}}
📖 References
: {{The Linux Kernel/doc|Input|input}}
: {{The Linux Kernel/ltp|kernel|input}}
=== HID devices ===
🔧 TODO
⚲ API
: {{The Linux Kernel/id|hid_device}} - device report descriptor. Operations: {{The Linux Kernel/id|hid_allocate_device}}, {{The Linux Kernel/id|hid_add_device}} . 👁 Example {{The Linux Kernel/id|usbhid_probe}}
: {{The Linux Kernel/include|uapi/linux/hid.h}}
: {{The Linux Kernel/include|linux/hid.h}}
=== Camera ===
🔧 TODO
⚲ API
: {{The Linux Kernel/include|uapi/linux/uvcvideo.h}}
📖 References
: {{The Linux Kernel/doc|UVC|userspace-api/media/drivers/uvcvideo.html}}
: {{The Linux Kernel/source|drivers/media/usb/uvc}} – USB Video Class driver
==HI device drivers==
This section is about low level drivers to human interface peripheral devices.
⚲ '''HID''' API
: {{The Linux Kernel/include|linux/hidraw.h}}
: {{The Linux Kernel/id|module_hid_driver}} registers {{The Linux Kernel/id|hid_driver}}
: {{The Linux Kernel/id|hid_hw_start}}
⚙️ Internals
: {{The Linux Kernel/id|hid_bus_type}}
: {{The Linux Kernel/source|drivers/hid}} – HID transport drivers
: {{The Linux Kernel/source|drivers/hid/hid-core.c}} – HID core parsing and event handling
: {{The Linux Kernel/source|drivers/accessibility}} – accessibility drivers (speakup)
: {{The Linux Kernel/source|drivers/leds}} – LED class drivers
: {{The Linux Kernel/source|samples/uhid/uhid-example.c}} - 👁 example of user mode HID driver
: {{The Linux Kernel/source|drivers/input}} : keyboard & mouse, misc, serio, tablet, touchscreen, gameport, joystick
:: <big>⌨️</big> Hands on
:: echo "module atkbd +pfl" | sudo tee /sys/kernel/debug/dynamic_debug/control
'''USB HID'''
⚲ '''HID''' API
: {{The Linux Kernel/id|USB_INTERFACE_CLASS_HID}} == {{The Linux Kernel/id|USB_CLASS_HID}}
⚙️ Internals
: {{The Linux Kernel/source|drivers/hid/usbhid}} – USB HID transport
:: {{The Linux Kernel/source|drivers/hid/usbhid/usbkbd.c}}: {{The Linux Kernel/id|usb_kbd_driver}}
:: {{The Linux Kernel/source|drivers/hid/usbhid/usbmouse.c}}: {{The Linux Kernel/id|usb_mouse_driver}}
📖 References
: <!--
find include/ -type f -name '*hid*' | sed 's-include/\(.*\)-* {{The Linux Kernel/include|\1}}-'
-->{{The Linux Kernel/doc|USB HID class|hid}}
=== Graphics ===
🔧 TODO
🗝️ Acronyms
: FB - {{w|Linux framebuffer|Framebuffer}}
: GPU - {{w|Graphics processing unit}}
: TFT (LCD) - {{w|Thin-film-transistor liquid-crystal display}} used for 🤖 embedded devices
: MIPI - 📱 {{w|Mobile Industry Processor Interface}}
:: DBI - Display Bus Interface
:: DSI - {{w|Display Serial Interface}}
:: DCS - The Display Command Set
⚲ API
: cat /proc/fb
: ls -l /sys/class/graphics
: {{The Linux Kernel/include|video/mipi_display.h}}
: {{The Linux Kernel/include|linux/fb.h}}
: {{The Linux Kernel/id|register_framebuffer}}
: {{The Linux Kernel/id|FBTFT_REGISTER_DRIVER}}
: {{The Linux Kernel/id|fbtft_display}}
⚙️ Internals
: {{The Linux Kernel/source|drivers/video}} – framebuffer and video drivers
: {{The Linux Kernel/source|drivers/gpu}} – GPU and DRM drivers
👁 Examples
: {{The Linux Kernel/id|vivid_fb_init}}
: {{The Linux Kernel/id|fbtft_register_framebuffer}}
📖 References
: {{The Linux Kernel/doc|GPU Driver Developer’s Guide|gpu}}
: {{The Linux Kernel/doc|The Frame Buffer Device|fb}}
: {{The Linux Kernel/doc|Frame Buffer Library|driver-api/frame-buffer.html}}
: [https://lwn.net/Kernel/Index/#Device_drivers-Graphics LWN: Graphics]
=== Sound SoC - ASoC ===
ALSA System on Chip (ASoC) layer for 🤖 embedded systems.
ASoC is designed to handle complex audio processing and routing on low-power and resource-constrained systems, making it an ideal solution for embedded devices such as smartphones, tablets, and other IoT devices.
ASoC provides a comprehensive framework for audio drivers, enabling the creation of modular audio drivers that can be easily integrated with the rest of the kernel.
It also supports a wide range of audio interfaces, including I2S, PCM, AC97, and SPDIF, making it highly versatile and capable of handling a variety of audio formats.
One of the key features of ASoC is its ability to handle audio routing and processing using Digital Signal Processing (DSP) techniques.
This enables ASoC to support advanced audio features such as noise reduction, echo cancellation, and dynamic range compression, among others.
Overall, ASoC is a powerful and flexible subsystem that enables Linux to support a wide range of audio hardware in embedded devices.
It has become an essential component of many embedded Linux distributions and is widely used in the development of modern audio-enabled devices.
⚲ API
: {{The Linux Kernel/include|sound/soc.h}}
:: {{The Linux Kernel/id|snd_soc_card}}
::: is registered by {{The Linux Kernel/id|devm_snd_soc_register_card}} ⇾ {{The Linux Kernel/id|snd_soc_register_card}}
: {{The Linux Kernel/include|sound/soc-component.h}}
:: {{The Linux Kernel/id|snd_soc_component}}
::: {{The Linux Kernel/id|snd_soc_component_driver}}
::: {{The Linux Kernel/id|snd_soc_card}}
:::: {{The Linux Kernel/id|snd_card}}
:: {{The Linux Kernel/id|snd_soc_register_component}} {{The Linux Kernel/id|snd_soc_component_get_drvdata}} {{The Linux Kernel/id|snd_soc_component_read}} {{The Linux Kernel/id|snd_soc_component_update_bits}} {{The Linux Kernel/id|snd_soc_component_write}}
: {{The Linux Kernel/include|sound/soc-dai.h}} - {{The Linux Kernel/doc|DAI - Digital Audio Interface|sound/soc/dai.html}}: {{w|AC97}}, {{w|I2S}}, {{w|PCM}}
:: {{The Linux Kernel/id|snd_soc_dai}} {{The Linux Kernel/id|snd_soc_dai_driver}} {{The Linux Kernel/id|snd_soc_dai_get_drvdata}}
: {{The Linux Kernel/include|sound/soc-dpcm.h}} - {{The Linux Kernel/doc|DPCM - Dynamic PCM|sound/soc/dpcm.html}}
: {{The Linux Kernel/include|sound/soc-dapm.h}} - {{The Linux Kernel/doc|DAPM - Dynamic Audio Power Management|sound/soc/dapm.html}}
:: {{The Linux Kernel/id|snd_soc_dapm_route}}, {{The Linux Kernel/id|snd_soc_dapm_to_component}}, {{The Linux Kernel/id|snd_soc_dapm_widget}}
👁 Examples
: {{The Linux Kernel/source|sound/soc/generic/simple-card.c}}
: {{The Linux Kernel/source|sound/soc/generic/audio-graph-card.c}} uses {{The Linux Kernel/include|sound/graph_card.h}}
⚙️ Internals
: {{The Linux Kernel/source|sound/soc}} – ASoC framework
: {{The Linux Kernel/id|snd_soc_card}}
:: {{The Linux Kernel/id|snd_soc_dai_link}}
📖 References
: {{The Linux Kernel/doc|ASoC - ALSA SoC Layer|sound/soc}}
: {{The Linux Kernel/doc|ASoC Core API|sound/kernel-api/alsa-driver-api.html?#asoc}}
: https://www.alsa-project.org/wiki/ASoC
:: https://www.alsa-project.org/wiki/DAPM
🗝️ Acronyms SAI could be
: STM ''Serial'' Audio Interface: {{The Linux Kernel/source|sound/soc/stm/stm32_sai.h}}
: Freescale (FSL) ''Synchronous'' Audio Interface: {{The Linux Kernel/source|sound/soc/fsl/fsl_sai.h}}
{{BookCat}}
{{status|25%}}
t02rz5c42279p87vnct70b5nq1le6te
4640229
4640228
2026-06-13T18:18:54Z
Conan
3188
rename second Graphics to Display drivers, fix duplicate anchor
4640229
wikitext
text/x-wiki
<noinclude>{{DISPLAYTITLE:Human interfaces}}</noinclude>
{| style="float:right; text-align: center; border-spacing: 0; margin: auto;" cellpadding="5pc"
! bgcolor="#fcd" |human interfaces
|- style=""
| bgcolor="#ecd" |[[#Text interfaces|text interfaces]]
|- style=""
| bgcolor="#dcd" |[[#Security|security]]
|- style=""
| bgcolor="#dcc" |[[#Debugging|debugging]]
|- style=""
| bgcolor="#cbb" |[[#Multimedia subsystems|multimedia subsystems]]
|- style=""
| bgcolor="#baa" |[[#HID|human interface devices]], [[#Input_devices|input devices]]
|- style=""
| bgcolor="#aaa" |[[#HI_device_drivers|HI drivers]]
|}
Welcome to the first article of this book.
The article is named after the {{W|USB human interface device class|USB class}} and the Linux facility for {{w|Human interface device|Human Interface Devices}} (HID).
The HID subsystem in Linux supports keyboards, mice, and other {{w|Input device|input devices}}.
In addition to input handling, this article also explores topics related to the console, multimedia (or simply media), sound (audio), video, and graphics—key areas of user interaction.
Security and debugging are also covered, as they are closely tied to human interaction and user-facing functionality.
== Text interfaces ==
In the world of Linux, text {{w|terminal emulator}}s and {{w|Linux console|console}}s are essential components of the operating system that allow users to interact with applications through the kernel.
A text terminal is a device that provides a text-based interface for communicating with the kernel, while the console is the physical device that houses the terminal and displays the output of the kernel.
The Linux kernel includes a built-in console driver that provides a basic interface for communicating with the console and controlling the terminal.
The console driver also supports various input and output devices, such as keyboards and displays, to enable users to interact with the system through a terminal.
The use of text {{w|Computer terminal|terminals}} and {{w|system console}}s in Linux can be traced back to the early days of computing, when {{w|Graphical terminal|graphical user interfaces}} were not yet widely available.
Despite the widespread adoption of graphical user interfaces, {{w|Text-based user interface|text-based interfaces}} and consoles remain popular among Linux users and developers for their simplicity, efficiency, and flexibility.
Overall, the text terminal and console play a crucial role in the Linux kernel, providing users with a powerful interface for managing and interacting with the operating system.
=== Char devices ===
{{The Linux Kernel/id|cdev}} – "character device" is a type of device driver that provides an implementation for character {{w|device file}} in the /dev directory.
The word "device" here means abstract interface, {{w|Proxy pattern|proxy}} to a usually peripheral physical device.
A character device is a type of device that can be accessed as a stream of bytes, rather than as a block of data like a block device.
Cdev drivers are commonly used for devices that provide a {{w|sequential access|stream}} of data, such as keyboards, mice, terminals, serial ports, and printers.
They are also used for devices that provide access to memory-mapped I/O regions, such as frame buffers and network devices.
A cdev driver typically consists of a set of functions that implement the low-level I/O operations for the device, such as open, read and write.
These functions are called by the kernel when a user space program accesses the character device file.
To create a cdev driver, a kernel developer must first initialize a cdev structure using {{The Linux Kernel/id|cdev_init}} or {{The Linux Kernel/id|cdev_alloc}}.
The cdev structure contains information about the device, such as its major and minor numbers and the set of I/O functions that the driver implements.
Once the cdev structure has been initialized, it can be registered with the kernel using the {{The Linux Kernel/id|cdev_add}} function.
This function creates the character device file in the /dev directory and associates it with the cdev driver.
You can find a list of registered char devices on the beginning the listing of <big>/proc/devices</big>. [[#Input_devices|Input devices]] keyboard and mouse are examples of char devices.
<small>''Tip: Browse the cross-referencing site to explore nearby API and use cases''</small>
💾 ''Historical: It is one of the most simple, fundamental and oldest concepts derived from UNIX. ''
⚲ API
: {{The Linux Kernel/include|linux/cdev.h}}
:: {{The Linux Kernel/id|dev_t}} - device id consists of {{The Linux Kernel/id|MAJOR}} and {{The Linux Kernel/id|MINOR}} numbers
:: {{The Linux Kernel/id|cdev}} - core char device struct
:: {{The Linux Kernel/id|cdev_init}} or {{The Linux Kernel/id|cdev_alloc}}
:: {{The Linux Kernel/id|cdev_device_add}} - helper function, uses
::: {{The Linux Kernel/id|cdev_add}} - common key function to add a char device to the system.
: {{The Linux Kernel/id|register_chrdev}} - ''obviously registers char device'' by '''major''' number, '''name''' and file operations
: {{The Linux Kernel/id|unregister_chrdev}}
: {{The Linux Kernel/id|alloc_chrdev_region}} / {{The Linux Kernel/id|register_chrdev_region}},
: {{The Linux Kernel/id|unregister_chrdev_region}}
: {{The Linux Kernel/include|uapi/linux/major.h}} - static definitions of many major numbers, including obsolete.
⚙️ Internals
: {{The Linux Kernel/source|fs/char_dev.c}} – character device registration
: {{The Linux Kernel/id|chrdevs}}
📖 References
: {{The Linux Kernel/doc|Char devices|core-api/kernel-api.html#char-devices}}
: [https://linux-kernel-labs.github.io/refs/heads/master/labs/device_drivers.html Character device drivers, linux-kernel-labs]
: [https://www.opensourceforu.com/2011/04/character-device-files-creation-operations/ Character device files, on opensourceforu]
💾 ''Historical''
: [http://lwn.net/images/pdf/LDD3/ch03.pdf LDD3:Char Drivers]
: [http://lwn.net/images/pdf/LDD3/ch06.pdf LDD3:Advanced Char Driver Operations]
: [http://www.xml.com/ldd/chapter/book/ch03.html LDD1:#3]
: [http://www.xml.com/ldd/chapter/book/ch05.html LDD1:#5]
=== Text terminals and console ===
🗝️ Acronyms
: {{w|Tty (unix)|tty}} - 💾 ''historically TeleTYpewriter'', means just terminal
: {{w|Pseudoterminal|pty}} - pseudoterminal
: pts - pseudoterminal slave
: ptmx - pseudoterminal master
⚲ API
: To find out current terminal:
:: readlink /proc/self/fd/0
:: {{The Linux Kernel/man|1|tty}}
:: {{The Linux Kernel/man|1|who}} -m
: {{The Linux Kernel/include|linux/tty.h}}
:{{The Linux Kernel/id|register_console}} obviously registers {{The Linux Kernel/id|console}}
:: 👁 example {{The Linux Kernel/id|virtio_console}}
: {{The Linux Kernel/include|linux/console.h}}
: {{The Linux Kernel/man|2|ioctl_console}}
⚙️ Internals
: {{The Linux Kernel/source|drivers/tty}} – TTY layer
: {{The Linux Kernel/source|fs/devpts}} – devpts pseudo-filesystem for PTY slaves
: {{The Linux Kernel/source|fs/proc/proc_tty.c}} – /proc/tty information
: {{The Linux Kernel/source|drivers/tty/vt/vt.c}} – virtual terminal console
📖 References
: {{The Linux Kernel/man|4|tty}} – controlling terminal
: {{The Linux Kernel/man|4|ptmx}} and pts – pseudoterminal master and slave
: {{The Linux Kernel/man|7|pty}} – pseudoterminal interfaces
: {{The Linux Kernel/doc|console|driver-api/console.html}}
💾 ''Historical''
: [http://lwn.net/images/pdf/LDD3/ch18.pdf LDD3:TTY Drivers]
==Security==
The goal of security is to restrict access through interfaces.
From access control and authentication mechanisms to secure boot and memory protection,
the Linux kernel employs a variety of techniques to safeguard the system and its users.
Basic Linux security is quite simple.
It consists of three ownership classes and three access modes.
One of the most frequently executed functions is {{The Linux Kernel/id|may_open}}.
It rejects access of unauthorized users to open a file.
See article [[../Security/]] for new features.
=== Authorization ===
{{w|Authorization}} is the function of specifying {{w|Computer access control|access}} rights/{{w|Privilege_(computing)|privilege}}s to system resources.
The main goal of authorization is prevention of {{w|privilege escalation}} under any circumstances.
🔧 TODO.
Keywords: permission, capabilities, ownership, {{w|mitigation}}.
⚲ API
: {{The Linux Kernel/include|linux/stat.h}}
: {{The Linux Kernel/include|uapi/linux/stat.h}}
Basic classic UNIX authorization is based on ownership and tree access modes: reading, writing and execution.
Ownership is encoded by owning user id {{The Linux Kernel/id|uid_t}} and owning group id {{The Linux Kernel/id|gid_t}}.
{{The Linux Kernel/id|umode_t}} - just typedef used for encoding access mode. {{The Linux Kernel/id|S_IRUSR}} - minimal "read only by user/owner" access mode.
{{The Linux Kernel/id|S_IALLUGO}} - full access mode.
Please read the source for details for other modes.
Binary {{w|Access Control Matrix}} of access modes:
{| class="wikitable"
|+
!modes
!bits
!Read
!Write
!Execute
|-
|bit offset
|
|2
|1
|0
|-
|'''Others'''
|0-2
|or
|ow
|ox
|-
|'''Group'''
|3-5
|gr
|gw
|gx
|-
|'''User'''
|6-8
|ur
|uw
|ux
|}
: {{The Linux Kernel/man|2|chown}} ↪ {{The Linux Kernel/id|do_fchownat}} changes ownership for file or directory
: {{The Linux Kernel/man|2|chmod}} ↪ {{The Linux Kernel/id|do_fchmodat}} changes access mode for file or directory
: {{The Linux Kernel/man|2|access}}, {{The Linux Kernel/man|2|faccessat}} ↪ {{The Linux Kernel/id|do_faccessat}} checks access rights
Common authorization errors
: {{The Linux Kernel/id|EPERM}} – "Operation not permitted"
: {{The Linux Kernel/id|EACCES}} – "Permission denied"
🚀 Advanced features
: {{The Linux Kernel/man|5|acl}} {{The Linux Kernel/id|posix_acl}}
: {{The Linux Kernel/include|uapi/linux/capability.h}}
:: {{The Linux Kernel/man|2|capset}} and capget – set/get capabilities of thread(s)
:: {{The Linux Kernel/man|3|libcap}}
: {{The Linux Kernel/man|1|setpriv}} – run a program with different privilege settings
⚙️ Internals
: {{The Linux Kernel/id|may_open}} rejects unauthorized file opening
:: {{The Linux Kernel/id|inode_permission}} checks for access rights to a given inode
: {{The Linux Kernel/source|kernel/capability.c}} – POSIX capabilities system calls
📖 References
: {{w|File-system permissions}}
: {{The Linux Kernel/man|7|capabilities}}
===Credentials===
🔧 TODO.
Keywords: {{w|authentication}}, user IDs, group IDs, Process group ID, session ID.
⚲ API
: {{The Linux Kernel/include|uapi/asm-generic/stat.h}}
: {{The Linux Kernel/source|arch/x86/include/uapi/asm/stat.h}} – x86 stat structure definitions
: {{The Linux Kernel/include|linux/cred.h}}
:: struct {{The Linux Kernel/id|cred}} - the security context of a task
: {{The Linux Kernel/man|1|id}}, {{The Linux Kernel/man|1|test}} - shell utilities
: {{The Linux Kernel/man|2|getuid}} ↪ {{The Linux Kernel/id|current_uid}}
: {{The Linux Kernel/man|2|getgid}}
: {{The Linux Kernel/man|2|geteuid}} is used by utility {{The Linux Kernel/man|1|whoami}}
: Real, effective, and saved user/group IDs:
:: {{The Linux Kernel/man|2|getresuid}}, getresgid
:: {{The Linux Kernel/man|2|setreuid}}, setregid
: {{The Linux Kernel/man|2|setfsuid}} - set user identity used for filesystem checks
: {{The Linux Kernel/man|2|umask}} - sets file mode creation mask
: {{The Linux Kernel/man|1|stat}}, {{The Linux Kernel/man|2|stat}} ↪ {{The Linux Kernel/id|vfs_fstat}}, {{The Linux Kernel/id|vfs_fstatat}}
: {{The Linux Kernel/man|2|statx}} ↪ {{The Linux Kernel/id|do_statx}}
⚙️ Internals
: {{The Linux Kernel/id|kstat}}
: {{The Linux Kernel/id|make_kuid}} etc
: {{The Linux Kernel/id|from_kuid_munged}} etc
📖 References
: {{The Linux Kernel/doc|Credentials in Linux|security/credentials.html}}
: {{The Linux Kernel/man|7|credentials}}
: https://www.geeksforgeeks.org/real-effective-and-saved-userid-in-linux/
=== Cryptography ===
🔧 TODO
🗝️ Acronyms
: AES - {{w|Advanced Encryption Standard}}
⚲ API
: {{The Linux Kernel/id|AF_ALG}} - {{The Linux Kernel/doc|User Space Interface|crypto/userspace-if.html}}
: {{The Linux Kernel/include|linux/crypto.h}} - Scatterlist Cryptographic API.
: {{The Linux Kernel/include|crypto}}
⚙️ Internals
: {{The Linux Kernel/source|crypto}} – cryptographic API core
: {{The Linux Kernel/source|drivers/crypto}} – hardware crypto accelerator drivers
: {{The Linux Kernel/source|lib/crypto}} – crypto library helpers
: {{The Linux Kernel/source|arch/x86/crypto}} – x86 optimized crypto implementations
: {{The Linux Kernel/source|fs/crypto}} - per-file encryption
: {{The Linux Kernel/source|fs/ecryptfs}} eCrypt FS - Encrypted filesystem that operates on the VFS layer.
: {{w|dm-crypt}}, {{The Linux Kernel/source|drivers/md/dm-crypt.c}}
📖 References
: {{The Linux Kernel/doc|Linux Kernel Crypto API|crypto}}
: {{w|Crypto API (Linux)}}
: [https://www.kernel.org/doc/Documentation/devicetree/bindings/crypto/ devicetree/bindings/crypto]
: {{The Linux Kernel/ltp|kernel|crypto}}
=== Audit ===
: {{The Linux Kernel/source|kernel/audit.h}} – audit internal definitions
: {{The Linux Kernel/source|kernel/audit.c}} – audit gateway between kernel and user-space daemon
: {{The Linux Kernel/source|kernel/auditsc.c}} – system-call auditing
: {{The Linux Kernel/source|kernel/audit_tree.c}} – audit directory tree watches
: {{The Linux Kernel/source|kernel/audit_watch.c}} – audit filesystem path watches
: {{The Linux Kernel/source|kernel/audit_fsnotify.c}} – audit fsnotify integration
: {{The Linux Kernel/source|kernel/auditfilter.c}} – audit rule filtering
📖 References
: https://wiki.archlinux.org/title/Audit_framework
: {{The Linux Kernel/man|8|auditctl}}
See also [[The_Linux_Kernel/Debugging#eBPF|eBPF and BPF]]
=== ... ===
Appendix for Security:
🔧 TODO
: {{The Linux Kernel/man|2|fcntl}} ↪ {{The Linux Kernel/id|do_fcntl}}
: {{The Linux Kernel/man|2|seccomp}} ↪ {{The Linux Kernel/id|do_seccomp}}
: {{The Linux Kernel/man|2|add_key}} ↪ {{The Linux Kernel/source|security/keys/keyctl.c}}
: {{w|chroot}}, {{The Linux Kernel/man|2|chroot}}
: {{w|Address_space_layout_randomization#Linux|Address space layout randomization}}
:: {{The Linux Kernel/man|8|setarch}} / {{The Linux Kernel/man|2|personality}}
📖 References
: {{The Linux Kernel/doc|Security-related interfaces|userspace-api/index.html#security-related-interfaces}}
:: {{The Linux Kernel/doc|No New Privileges Flag|userspace-api/no_new_privs.html}}
:: {{The Linux Kernel/doc|Seccomp BPF (SECure COMPuting with filters)|userspace-api/seccomp_filter.html}}
:: {{The Linux Kernel/doc|Landlock: unprivileged access control|userspace-api/landlock.html}}
:: {{The Linux Kernel/doc|Linux Security Modules|userspace-api/lsm.html}}
:: {{The Linux Kernel/doc|Introduction of non-executable mfd|userspace-api/mfd_noexec.html}}
:: {{The Linux Kernel/doc|Speculation Control|userspace-api/spec_ctrl.html}}
:: {{The Linux Kernel/doc|TEE (Trusted Execution Environment) Userspace API|userspace-api/tee.html}}
:: {{The Linux Kernel/doc|Executability check|userspace-api/check_exec.html}}
: {{The Linux Kernel/doc|Security|security}}
:: {{The Linux Kernel/doc|LSM - Linux Security Modules|security/lsm.html}} [https://docs.kernel.org/admin-guide/perf-security.html Perf events and tool security]
: {{The Linux Kernel/doc|Hardware vulnerabilities|admin-guide/hw-vuln}}
: {{w|Linux Security Modules}}
: {{The Linux Kernel/include|linux/security.h}} ⇾ {{The Linux Kernel/source|security}}
: {{The Linux Kernel/include|keys}}
: {{The Linux Kernel/include|linux/verification.h}}
: {{The Linux Kernel/source|certs}} – module signing certificates
: {{The Linux Kernel/ltp|kernel|security}}
: {{The Linux Kernel/ltp||cve}}
: http://kernsec.org/wiki/index.php/Main_Page
: {{w|SELinux}} http://selinuxproject.org/
== Debugging ==
See [[The_Linux_Kernel/Debugging|Debugging the Linux kernel]]
==Multimedia subsystems==
⚙️ Internals
: {{The Linux Kernel/source|drivers/media}} – media subsystem (V4L2, DVB, etc.)
=== Graphics ===
Old graphics (not to be confused with v4l):
⚲ API
: {{The Linux Kernel/include|video}}
<!-- : {{The Linux Kernel/include|uapi/video}} old stuff -->
⚙️ Internals
: {{The Linux Kernel/source|drivers/video}} – framebuffer and video drivers
==== {{w|Direct Rendering Manager}} (DRM) ====
DRM is responsible for interfacing with GPUs of modern video cards.
DRM exposes an API that user-space programs can use to send commands and data to the GPU and perform operations such as configuring the mode setting of the display.
User-space programs can use the DRM API to command the GPU to do hardware-accelerated 3D rendering and video decoding, as well as {{w|General-purpose computing on graphics processing units|GPGPU}} computing.
⚲ API
: /sys/class/drm/
: {{The Linux Kernel/include|uapi/drm}}
:: {{The Linux Kernel/include|uapi/drm/drm.h}}
::: {{The Linux Kernel/id|DRM_IOCTL_BASE}}
::: {{The Linux Kernel/id|drm_version}}
⚙️ Internals
: {{The Linux Kernel/include|drm}}
: {{The Linux Kernel/include|drm_gem.h}} – Graphics Execution Manager Driver Interfaces
: {{The Linux Kernel/id|drm_dev_register}} registers {{The Linux Kernel/id|drm_device}}
=== {{w|Advanced Linux Sound Architecture}} (ALSA) ===
ALSA is a software framework and part of the Linux kernel that provides an API for sound card device drivers.
Some of the goals of the ALSA project at its inception were automatic configuration of sound-card hardware and graceful handling of multiple sound devices in a system.
The sound servers PulseAudio, JACK (low-latency professional-grade audio editing and mixing) and PipeWire, the higher-level abstraction APIs OpenAL, SDL audio, etc. work on top of ALSA and implemented sound card device drivers.
On Linux systems, ALSA succeeded the older {{w|Open Sound System}} (OSS).
⚲ API
: /proc/asound/cards, /sys/class/sound/
: {{The Linux Kernel/id|snd_card}} - central struct
: {{The Linux Kernel/id|snd_card_new}}
: {{The Linux Kernel/id|snd_card_register}}
: {{The Linux Kernel/id|snd_device_ops}}
: {{The Linux Kernel/id|snd_device_new}} creates an ALSA device component
: {{The Linux Kernel/include|uapi/sound/asound.h}}
: {{The Linux Kernel/include|sound/core.h}}
⚙️ Internals
: {{The Linux Kernel/source|sound}} – ALSA sound subsystem
: {{The Linux Kernel/source|sound/core/device.c}} – ALSA device management
: See [[#Sound SoC - ASoC|ASoC]]
📖 References
: {{The Linux Kernel/doc|ALSA (sound)|sound}}
: {{The Linux Kernel/doc|Writing an ALSA Driver|sound/kernel-api/writing-an-alsa-driver.html}}
: {{The Linux Kernel/ltp|kernel|sound}}
=== {{w|Video4Linux}} (V4L2) ===
V4L is a collection of device drivers and an API for supporting realtime video capture on Linux systems.
It supports many USB webcams, TV tuners, and related devices, standardizing their output, so programmers can easily add video support to their applications.
MythTV, tvtime and Tvheadend are typical applications that use the V4L framework.
⚲ API
: {{The Linux Kernel/id|v4l2_device_register}} registers {{The Linux Kernel/id|v4l2_device}}
: {{The Linux Kernel/id|video_register_device}} registers {{The Linux Kernel/id|video_device}}
: 👁 examples {{The Linux Kernel/source|drivers/media/test-drivers}}
📖 References
: {{w|Video4Linux}}
: {{The Linux Kernel/doc|media|driver-api/media}}
: {{The Linux Kernel/doc|V4L|userspace-api/media/drivers/}}
: [https://linuxtv.org/downloads/v4l-dvb-apis-new/driver-api/index.html Media subsystem kernel internal API]
==HID==
Generic human interface devices.
Don't confuse with [[../System#hiddev|hiddev]].
=== Input devices ===
Input device files are kind of [[#char devices|char devices]] with id {{The Linux Kernel/id|INPUT_MAJOR}}.
Classic input devices are keyboard and mouse.
⚲ API
: In shell: cat /proc/bus/input/devices
: {{The Linux Kernel/include|linux/input.h}}
: {{The Linux Kernel/id|devm_input_allocate_device}}, {{The Linux Kernel/id|input_register_device}}, {{The Linux Kernel/id|input_register_handler}}, {{The Linux Kernel/id|input_dev}}
: {{The Linux Kernel/id|input_report_key}} {{The Linux Kernel/id|input_sync}}
👁 Examples
: {{The Linux Kernel/source|drivers/input/mousedev.c}} – mouse device emulation
: {{The Linux Kernel/source|drivers/input/keyboard/atkbd.c}} – AT/PS2 keyboard driver
<big>⌨️</big> Hands on
sudo hexdump /dev/input/mice # dump your mouse movements events from your kernel
⚙️ Internals
: {{The Linux Kernel/source|drivers/input/input.c}} – input core
: {{The Linux Kernel/id|input_event}}
📖 References
: {{The Linux Kernel/doc|Input|input}}
: {{The Linux Kernel/ltp|kernel|input}}
=== HID devices ===
🔧 TODO
⚲ API
: {{The Linux Kernel/id|hid_device}} - device report descriptor. Operations: {{The Linux Kernel/id|hid_allocate_device}}, {{The Linux Kernel/id|hid_add_device}} . 👁 Example {{The Linux Kernel/id|usbhid_probe}}
: {{The Linux Kernel/include|uapi/linux/hid.h}}
: {{The Linux Kernel/include|linux/hid.h}}
=== Camera ===
🔧 TODO
⚲ API
: {{The Linux Kernel/include|uapi/linux/uvcvideo.h}}
📖 References
: {{The Linux Kernel/doc|UVC|userspace-api/media/drivers/uvcvideo.html}}
: {{The Linux Kernel/source|drivers/media/usb/uvc}} – USB Video Class driver
==HI device drivers==
This section is about low level drivers to human interface peripheral devices.
⚲ '''HID''' API
: {{The Linux Kernel/include|linux/hidraw.h}}
: {{The Linux Kernel/id|module_hid_driver}} registers {{The Linux Kernel/id|hid_driver}}
: {{The Linux Kernel/id|hid_hw_start}}
⚙️ Internals
: {{The Linux Kernel/id|hid_bus_type}}
: {{The Linux Kernel/source|drivers/hid}} – HID transport drivers
: {{The Linux Kernel/source|drivers/hid/hid-core.c}} – HID core parsing and event handling
: {{The Linux Kernel/source|drivers/accessibility}} – accessibility drivers (speakup)
: {{The Linux Kernel/source|drivers/leds}} – LED class drivers
: {{The Linux Kernel/source|samples/uhid/uhid-example.c}} - 👁 example of user mode HID driver
: {{The Linux Kernel/source|drivers/input}} : keyboard & mouse, misc, serio, tablet, touchscreen, gameport, joystick
:: <big>⌨️</big> Hands on
:: echo "module atkbd +pfl" | sudo tee /sys/kernel/debug/dynamic_debug/control
'''USB HID'''
⚲ '''HID''' API
: {{The Linux Kernel/id|USB_INTERFACE_CLASS_HID}} == {{The Linux Kernel/id|USB_CLASS_HID}}
⚙️ Internals
: {{The Linux Kernel/source|drivers/hid/usbhid}} – USB HID transport
:: {{The Linux Kernel/source|drivers/hid/usbhid/usbkbd.c}}: {{The Linux Kernel/id|usb_kbd_driver}}
:: {{The Linux Kernel/source|drivers/hid/usbhid/usbmouse.c}}: {{The Linux Kernel/id|usb_mouse_driver}}
📖 References
: <!--
find include/ -type f -name '*hid*' | sed 's-include/\(.*\)-* {{The Linux Kernel/include|\1}}-'
-->{{The Linux Kernel/doc|USB HID class|hid}}
=== Display drivers ===
🔧 TODO
🗝️ Acronyms
: FB - {{w|Linux framebuffer|Framebuffer}}
: GPU - {{w|Graphics processing unit}}
: TFT (LCD) - {{w|Thin-film-transistor liquid-crystal display}} used for 🤖 embedded devices
: MIPI - 📱 {{w|Mobile Industry Processor Interface}}
:: DBI - Display Bus Interface
:: DSI - {{w|Display Serial Interface}}
:: DCS - The Display Command Set
⚲ API
: cat /proc/fb
: ls -l /sys/class/graphics
: {{The Linux Kernel/include|video/mipi_display.h}}
: {{The Linux Kernel/include|linux/fb.h}}
: {{The Linux Kernel/id|register_framebuffer}}
: {{The Linux Kernel/id|FBTFT_REGISTER_DRIVER}}
: {{The Linux Kernel/id|fbtft_display}}
⚙️ Internals
: {{The Linux Kernel/source|drivers/video}} – framebuffer and video drivers
: {{The Linux Kernel/source|drivers/gpu}} – GPU and DRM drivers
👁 Examples
: {{The Linux Kernel/id|vivid_fb_init}}
: {{The Linux Kernel/id|fbtft_register_framebuffer}}
📖 References
: {{The Linux Kernel/doc|GPU Driver Developer’s Guide|gpu}}
: {{The Linux Kernel/doc|The Frame Buffer Device|fb}}
: {{The Linux Kernel/doc|Frame Buffer Library|driver-api/frame-buffer.html}}
: [https://lwn.net/Kernel/Index/#Device_drivers-Graphics LWN: Graphics]
=== Sound SoC - ASoC ===
ALSA System on Chip (ASoC) layer for 🤖 embedded systems.
ASoC is designed to handle complex audio processing and routing on low-power and resource-constrained systems, making it an ideal solution for embedded devices such as smartphones, tablets, and other IoT devices.
ASoC provides a comprehensive framework for audio drivers, enabling the creation of modular audio drivers that can be easily integrated with the rest of the kernel.
It also supports a wide range of audio interfaces, including I2S, PCM, AC97, and SPDIF, making it highly versatile and capable of handling a variety of audio formats.
One of the key features of ASoC is its ability to handle audio routing and processing using Digital Signal Processing (DSP) techniques.
This enables ASoC to support advanced audio features such as noise reduction, echo cancellation, and dynamic range compression, among others.
Overall, ASoC is a powerful and flexible subsystem that enables Linux to support a wide range of audio hardware in embedded devices.
It has become an essential component of many embedded Linux distributions and is widely used in the development of modern audio-enabled devices.
⚲ API
: {{The Linux Kernel/include|sound/soc.h}}
:: {{The Linux Kernel/id|snd_soc_card}}
::: is registered by {{The Linux Kernel/id|devm_snd_soc_register_card}} ⇾ {{The Linux Kernel/id|snd_soc_register_card}}
: {{The Linux Kernel/include|sound/soc-component.h}}
:: {{The Linux Kernel/id|snd_soc_component}}
::: {{The Linux Kernel/id|snd_soc_component_driver}}
::: {{The Linux Kernel/id|snd_soc_card}}
:::: {{The Linux Kernel/id|snd_card}}
:: {{The Linux Kernel/id|snd_soc_register_component}} {{The Linux Kernel/id|snd_soc_component_get_drvdata}} {{The Linux Kernel/id|snd_soc_component_read}} {{The Linux Kernel/id|snd_soc_component_update_bits}} {{The Linux Kernel/id|snd_soc_component_write}}
: {{The Linux Kernel/include|sound/soc-dai.h}} - {{The Linux Kernel/doc|DAI - Digital Audio Interface|sound/soc/dai.html}}: {{w|AC97}}, {{w|I2S}}, {{w|PCM}}
:: {{The Linux Kernel/id|snd_soc_dai}} {{The Linux Kernel/id|snd_soc_dai_driver}} {{The Linux Kernel/id|snd_soc_dai_get_drvdata}}
: {{The Linux Kernel/include|sound/soc-dpcm.h}} - {{The Linux Kernel/doc|DPCM - Dynamic PCM|sound/soc/dpcm.html}}
: {{The Linux Kernel/include|sound/soc-dapm.h}} - {{The Linux Kernel/doc|DAPM - Dynamic Audio Power Management|sound/soc/dapm.html}}
:: {{The Linux Kernel/id|snd_soc_dapm_route}}, {{The Linux Kernel/id|snd_soc_dapm_to_component}}, {{The Linux Kernel/id|snd_soc_dapm_widget}}
👁 Examples
: {{The Linux Kernel/source|sound/soc/generic/simple-card.c}}
: {{The Linux Kernel/source|sound/soc/generic/audio-graph-card.c}} uses {{The Linux Kernel/include|sound/graph_card.h}}
⚙️ Internals
: {{The Linux Kernel/source|sound/soc}} – ASoC framework
: {{The Linux Kernel/id|snd_soc_card}}
:: {{The Linux Kernel/id|snd_soc_dai_link}}
📖 References
: {{The Linux Kernel/doc|ASoC - ALSA SoC Layer|sound/soc}}
: {{The Linux Kernel/doc|ASoC Core API|sound/kernel-api/alsa-driver-api.html?#asoc}}
: https://www.alsa-project.org/wiki/ASoC
:: https://www.alsa-project.org/wiki/DAPM
🗝️ Acronyms SAI could be
: STM ''Serial'' Audio Interface: {{The Linux Kernel/source|sound/soc/stm/stm32_sai.h}}
: Freescale (FSL) ''Synchronous'' Audio Interface: {{The Linux Kernel/source|sound/soc/fsl/fsl_sai.h}}
{{BookCat}}
{{status|25%}}
fmisaaugd36ns12cknuyosotmh7ue04
4640230
4640229
2026-06-13T18:18:55Z
Conan
3188
add drivers/gpu/drm source reference to DRM section
4640230
wikitext
text/x-wiki
<noinclude>{{DISPLAYTITLE:Human interfaces}}</noinclude>
{| style="float:right; text-align: center; border-spacing: 0; margin: auto;" cellpadding="5pc"
! bgcolor="#fcd" |human interfaces
|- style=""
| bgcolor="#ecd" |[[#Text interfaces|text interfaces]]
|- style=""
| bgcolor="#dcd" |[[#Security|security]]
|- style=""
| bgcolor="#dcc" |[[#Debugging|debugging]]
|- style=""
| bgcolor="#cbb" |[[#Multimedia subsystems|multimedia subsystems]]
|- style=""
| bgcolor="#baa" |[[#HID|human interface devices]], [[#Input_devices|input devices]]
|- style=""
| bgcolor="#aaa" |[[#HI_device_drivers|HI drivers]]
|}
Welcome to the first article of this book.
The article is named after the {{W|USB human interface device class|USB class}} and the Linux facility for {{w|Human interface device|Human Interface Devices}} (HID).
The HID subsystem in Linux supports keyboards, mice, and other {{w|Input device|input devices}}.
In addition to input handling, this article also explores topics related to the console, multimedia (or simply media), sound (audio), video, and graphics—key areas of user interaction.
Security and debugging are also covered, as they are closely tied to human interaction and user-facing functionality.
== Text interfaces ==
In the world of Linux, text {{w|terminal emulator}}s and {{w|Linux console|console}}s are essential components of the operating system that allow users to interact with applications through the kernel.
A text terminal is a device that provides a text-based interface for communicating with the kernel, while the console is the physical device that houses the terminal and displays the output of the kernel.
The Linux kernel includes a built-in console driver that provides a basic interface for communicating with the console and controlling the terminal.
The console driver also supports various input and output devices, such as keyboards and displays, to enable users to interact with the system through a terminal.
The use of text {{w|Computer terminal|terminals}} and {{w|system console}}s in Linux can be traced back to the early days of computing, when {{w|Graphical terminal|graphical user interfaces}} were not yet widely available.
Despite the widespread adoption of graphical user interfaces, {{w|Text-based user interface|text-based interfaces}} and consoles remain popular among Linux users and developers for their simplicity, efficiency, and flexibility.
Overall, the text terminal and console play a crucial role in the Linux kernel, providing users with a powerful interface for managing and interacting with the operating system.
=== Char devices ===
{{The Linux Kernel/id|cdev}} – "character device" is a type of device driver that provides an implementation for character {{w|device file}} in the /dev directory.
The word "device" here means abstract interface, {{w|Proxy pattern|proxy}} to a usually peripheral physical device.
A character device is a type of device that can be accessed as a stream of bytes, rather than as a block of data like a block device.
Cdev drivers are commonly used for devices that provide a {{w|sequential access|stream}} of data, such as keyboards, mice, terminals, serial ports, and printers.
They are also used for devices that provide access to memory-mapped I/O regions, such as frame buffers and network devices.
A cdev driver typically consists of a set of functions that implement the low-level I/O operations for the device, such as open, read and write.
These functions are called by the kernel when a user space program accesses the character device file.
To create a cdev driver, a kernel developer must first initialize a cdev structure using {{The Linux Kernel/id|cdev_init}} or {{The Linux Kernel/id|cdev_alloc}}.
The cdev structure contains information about the device, such as its major and minor numbers and the set of I/O functions that the driver implements.
Once the cdev structure has been initialized, it can be registered with the kernel using the {{The Linux Kernel/id|cdev_add}} function.
This function creates the character device file in the /dev directory and associates it with the cdev driver.
You can find a list of registered char devices on the beginning the listing of <big>/proc/devices</big>. [[#Input_devices|Input devices]] keyboard and mouse are examples of char devices.
<small>''Tip: Browse the cross-referencing site to explore nearby API and use cases''</small>
💾 ''Historical: It is one of the most simple, fundamental and oldest concepts derived from UNIX. ''
⚲ API
: {{The Linux Kernel/include|linux/cdev.h}}
:: {{The Linux Kernel/id|dev_t}} - device id consists of {{The Linux Kernel/id|MAJOR}} and {{The Linux Kernel/id|MINOR}} numbers
:: {{The Linux Kernel/id|cdev}} - core char device struct
:: {{The Linux Kernel/id|cdev_init}} or {{The Linux Kernel/id|cdev_alloc}}
:: {{The Linux Kernel/id|cdev_device_add}} - helper function, uses
::: {{The Linux Kernel/id|cdev_add}} - common key function to add a char device to the system.
: {{The Linux Kernel/id|register_chrdev}} - ''obviously registers char device'' by '''major''' number, '''name''' and file operations
: {{The Linux Kernel/id|unregister_chrdev}}
: {{The Linux Kernel/id|alloc_chrdev_region}} / {{The Linux Kernel/id|register_chrdev_region}},
: {{The Linux Kernel/id|unregister_chrdev_region}}
: {{The Linux Kernel/include|uapi/linux/major.h}} - static definitions of many major numbers, including obsolete.
⚙️ Internals
: {{The Linux Kernel/source|fs/char_dev.c}} – character device registration
: {{The Linux Kernel/id|chrdevs}}
📖 References
: {{The Linux Kernel/doc|Char devices|core-api/kernel-api.html#char-devices}}
: [https://linux-kernel-labs.github.io/refs/heads/master/labs/device_drivers.html Character device drivers, linux-kernel-labs]
: [https://www.opensourceforu.com/2011/04/character-device-files-creation-operations/ Character device files, on opensourceforu]
💾 ''Historical''
: [http://lwn.net/images/pdf/LDD3/ch03.pdf LDD3:Char Drivers]
: [http://lwn.net/images/pdf/LDD3/ch06.pdf LDD3:Advanced Char Driver Operations]
: [http://www.xml.com/ldd/chapter/book/ch03.html LDD1:#3]
: [http://www.xml.com/ldd/chapter/book/ch05.html LDD1:#5]
=== Text terminals and console ===
🗝️ Acronyms
: {{w|Tty (unix)|tty}} - 💾 ''historically TeleTYpewriter'', means just terminal
: {{w|Pseudoterminal|pty}} - pseudoterminal
: pts - pseudoterminal slave
: ptmx - pseudoterminal master
⚲ API
: To find out current terminal:
:: readlink /proc/self/fd/0
:: {{The Linux Kernel/man|1|tty}}
:: {{The Linux Kernel/man|1|who}} -m
: {{The Linux Kernel/include|linux/tty.h}}
:{{The Linux Kernel/id|register_console}} obviously registers {{The Linux Kernel/id|console}}
:: 👁 example {{The Linux Kernel/id|virtio_console}}
: {{The Linux Kernel/include|linux/console.h}}
: {{The Linux Kernel/man|2|ioctl_console}}
⚙️ Internals
: {{The Linux Kernel/source|drivers/tty}} – TTY layer
: {{The Linux Kernel/source|fs/devpts}} – devpts pseudo-filesystem for PTY slaves
: {{The Linux Kernel/source|fs/proc/proc_tty.c}} – /proc/tty information
: {{The Linux Kernel/source|drivers/tty/vt/vt.c}} – virtual terminal console
📖 References
: {{The Linux Kernel/man|4|tty}} – controlling terminal
: {{The Linux Kernel/man|4|ptmx}} and pts – pseudoterminal master and slave
: {{The Linux Kernel/man|7|pty}} – pseudoterminal interfaces
: {{The Linux Kernel/doc|console|driver-api/console.html}}
💾 ''Historical''
: [http://lwn.net/images/pdf/LDD3/ch18.pdf LDD3:TTY Drivers]
==Security==
The goal of security is to restrict access through interfaces.
From access control and authentication mechanisms to secure boot and memory protection,
the Linux kernel employs a variety of techniques to safeguard the system and its users.
Basic Linux security is quite simple.
It consists of three ownership classes and three access modes.
One of the most frequently executed functions is {{The Linux Kernel/id|may_open}}.
It rejects access of unauthorized users to open a file.
See article [[../Security/]] for new features.
=== Authorization ===
{{w|Authorization}} is the function of specifying {{w|Computer access control|access}} rights/{{w|Privilege_(computing)|privilege}}s to system resources.
The main goal of authorization is prevention of {{w|privilege escalation}} under any circumstances.
🔧 TODO.
Keywords: permission, capabilities, ownership, {{w|mitigation}}.
⚲ API
: {{The Linux Kernel/include|linux/stat.h}}
: {{The Linux Kernel/include|uapi/linux/stat.h}}
Basic classic UNIX authorization is based on ownership and tree access modes: reading, writing and execution.
Ownership is encoded by owning user id {{The Linux Kernel/id|uid_t}} and owning group id {{The Linux Kernel/id|gid_t}}.
{{The Linux Kernel/id|umode_t}} - just typedef used for encoding access mode. {{The Linux Kernel/id|S_IRUSR}} - minimal "read only by user/owner" access mode.
{{The Linux Kernel/id|S_IALLUGO}} - full access mode.
Please read the source for details for other modes.
Binary {{w|Access Control Matrix}} of access modes:
{| class="wikitable"
|+
!modes
!bits
!Read
!Write
!Execute
|-
|bit offset
|
|2
|1
|0
|-
|'''Others'''
|0-2
|or
|ow
|ox
|-
|'''Group'''
|3-5
|gr
|gw
|gx
|-
|'''User'''
|6-8
|ur
|uw
|ux
|}
: {{The Linux Kernel/man|2|chown}} ↪ {{The Linux Kernel/id|do_fchownat}} changes ownership for file or directory
: {{The Linux Kernel/man|2|chmod}} ↪ {{The Linux Kernel/id|do_fchmodat}} changes access mode for file or directory
: {{The Linux Kernel/man|2|access}}, {{The Linux Kernel/man|2|faccessat}} ↪ {{The Linux Kernel/id|do_faccessat}} checks access rights
Common authorization errors
: {{The Linux Kernel/id|EPERM}} – "Operation not permitted"
: {{The Linux Kernel/id|EACCES}} – "Permission denied"
🚀 Advanced features
: {{The Linux Kernel/man|5|acl}} {{The Linux Kernel/id|posix_acl}}
: {{The Linux Kernel/include|uapi/linux/capability.h}}
:: {{The Linux Kernel/man|2|capset}} and capget – set/get capabilities of thread(s)
:: {{The Linux Kernel/man|3|libcap}}
: {{The Linux Kernel/man|1|setpriv}} – run a program with different privilege settings
⚙️ Internals
: {{The Linux Kernel/id|may_open}} rejects unauthorized file opening
:: {{The Linux Kernel/id|inode_permission}} checks for access rights to a given inode
: {{The Linux Kernel/source|kernel/capability.c}} – POSIX capabilities system calls
📖 References
: {{w|File-system permissions}}
: {{The Linux Kernel/man|7|capabilities}}
===Credentials===
🔧 TODO.
Keywords: {{w|authentication}}, user IDs, group IDs, Process group ID, session ID.
⚲ API
: {{The Linux Kernel/include|uapi/asm-generic/stat.h}}
: {{The Linux Kernel/source|arch/x86/include/uapi/asm/stat.h}} – x86 stat structure definitions
: {{The Linux Kernel/include|linux/cred.h}}
:: struct {{The Linux Kernel/id|cred}} - the security context of a task
: {{The Linux Kernel/man|1|id}}, {{The Linux Kernel/man|1|test}} - shell utilities
: {{The Linux Kernel/man|2|getuid}} ↪ {{The Linux Kernel/id|current_uid}}
: {{The Linux Kernel/man|2|getgid}}
: {{The Linux Kernel/man|2|geteuid}} is used by utility {{The Linux Kernel/man|1|whoami}}
: Real, effective, and saved user/group IDs:
:: {{The Linux Kernel/man|2|getresuid}}, getresgid
:: {{The Linux Kernel/man|2|setreuid}}, setregid
: {{The Linux Kernel/man|2|setfsuid}} - set user identity used for filesystem checks
: {{The Linux Kernel/man|2|umask}} - sets file mode creation mask
: {{The Linux Kernel/man|1|stat}}, {{The Linux Kernel/man|2|stat}} ↪ {{The Linux Kernel/id|vfs_fstat}}, {{The Linux Kernel/id|vfs_fstatat}}
: {{The Linux Kernel/man|2|statx}} ↪ {{The Linux Kernel/id|do_statx}}
⚙️ Internals
: {{The Linux Kernel/id|kstat}}
: {{The Linux Kernel/id|make_kuid}} etc
: {{The Linux Kernel/id|from_kuid_munged}} etc
📖 References
: {{The Linux Kernel/doc|Credentials in Linux|security/credentials.html}}
: {{The Linux Kernel/man|7|credentials}}
: https://www.geeksforgeeks.org/real-effective-and-saved-userid-in-linux/
=== Cryptography ===
🔧 TODO
🗝️ Acronyms
: AES - {{w|Advanced Encryption Standard}}
⚲ API
: {{The Linux Kernel/id|AF_ALG}} - {{The Linux Kernel/doc|User Space Interface|crypto/userspace-if.html}}
: {{The Linux Kernel/include|linux/crypto.h}} - Scatterlist Cryptographic API.
: {{The Linux Kernel/include|crypto}}
⚙️ Internals
: {{The Linux Kernel/source|crypto}} – cryptographic API core
: {{The Linux Kernel/source|drivers/crypto}} – hardware crypto accelerator drivers
: {{The Linux Kernel/source|lib/crypto}} – crypto library helpers
: {{The Linux Kernel/source|arch/x86/crypto}} – x86 optimized crypto implementations
: {{The Linux Kernel/source|fs/crypto}} - per-file encryption
: {{The Linux Kernel/source|fs/ecryptfs}} eCrypt FS - Encrypted filesystem that operates on the VFS layer.
: {{w|dm-crypt}}, {{The Linux Kernel/source|drivers/md/dm-crypt.c}}
📖 References
: {{The Linux Kernel/doc|Linux Kernel Crypto API|crypto}}
: {{w|Crypto API (Linux)}}
: [https://www.kernel.org/doc/Documentation/devicetree/bindings/crypto/ devicetree/bindings/crypto]
: {{The Linux Kernel/ltp|kernel|crypto}}
=== Audit ===
: {{The Linux Kernel/source|kernel/audit.h}} – audit internal definitions
: {{The Linux Kernel/source|kernel/audit.c}} – audit gateway between kernel and user-space daemon
: {{The Linux Kernel/source|kernel/auditsc.c}} – system-call auditing
: {{The Linux Kernel/source|kernel/audit_tree.c}} – audit directory tree watches
: {{The Linux Kernel/source|kernel/audit_watch.c}} – audit filesystem path watches
: {{The Linux Kernel/source|kernel/audit_fsnotify.c}} – audit fsnotify integration
: {{The Linux Kernel/source|kernel/auditfilter.c}} – audit rule filtering
📖 References
: https://wiki.archlinux.org/title/Audit_framework
: {{The Linux Kernel/man|8|auditctl}}
See also [[The_Linux_Kernel/Debugging#eBPF|eBPF and BPF]]
=== ... ===
Appendix for Security:
🔧 TODO
: {{The Linux Kernel/man|2|fcntl}} ↪ {{The Linux Kernel/id|do_fcntl}}
: {{The Linux Kernel/man|2|seccomp}} ↪ {{The Linux Kernel/id|do_seccomp}}
: {{The Linux Kernel/man|2|add_key}} ↪ {{The Linux Kernel/source|security/keys/keyctl.c}}
: {{w|chroot}}, {{The Linux Kernel/man|2|chroot}}
: {{w|Address_space_layout_randomization#Linux|Address space layout randomization}}
:: {{The Linux Kernel/man|8|setarch}} / {{The Linux Kernel/man|2|personality}}
📖 References
: {{The Linux Kernel/doc|Security-related interfaces|userspace-api/index.html#security-related-interfaces}}
:: {{The Linux Kernel/doc|No New Privileges Flag|userspace-api/no_new_privs.html}}
:: {{The Linux Kernel/doc|Seccomp BPF (SECure COMPuting with filters)|userspace-api/seccomp_filter.html}}
:: {{The Linux Kernel/doc|Landlock: unprivileged access control|userspace-api/landlock.html}}
:: {{The Linux Kernel/doc|Linux Security Modules|userspace-api/lsm.html}}
:: {{The Linux Kernel/doc|Introduction of non-executable mfd|userspace-api/mfd_noexec.html}}
:: {{The Linux Kernel/doc|Speculation Control|userspace-api/spec_ctrl.html}}
:: {{The Linux Kernel/doc|TEE (Trusted Execution Environment) Userspace API|userspace-api/tee.html}}
:: {{The Linux Kernel/doc|Executability check|userspace-api/check_exec.html}}
: {{The Linux Kernel/doc|Security|security}}
:: {{The Linux Kernel/doc|LSM - Linux Security Modules|security/lsm.html}} [https://docs.kernel.org/admin-guide/perf-security.html Perf events and tool security]
: {{The Linux Kernel/doc|Hardware vulnerabilities|admin-guide/hw-vuln}}
: {{w|Linux Security Modules}}
: {{The Linux Kernel/include|linux/security.h}} ⇾ {{The Linux Kernel/source|security}}
: {{The Linux Kernel/include|keys}}
: {{The Linux Kernel/include|linux/verification.h}}
: {{The Linux Kernel/source|certs}} – module signing certificates
: {{The Linux Kernel/ltp|kernel|security}}
: {{The Linux Kernel/ltp||cve}}
: http://kernsec.org/wiki/index.php/Main_Page
: {{w|SELinux}} http://selinuxproject.org/
== Debugging ==
See [[The_Linux_Kernel/Debugging|Debugging the Linux kernel]]
==Multimedia subsystems==
⚙️ Internals
: {{The Linux Kernel/source|drivers/media}} – media subsystem (V4L2, DVB, etc.)
=== Graphics ===
Old graphics (not to be confused with v4l):
⚲ API
: {{The Linux Kernel/include|video}}
<!-- : {{The Linux Kernel/include|uapi/video}} old stuff -->
⚙️ Internals
: {{The Linux Kernel/source|drivers/video}} – framebuffer and video drivers
==== {{w|Direct Rendering Manager}} (DRM) ====
DRM is responsible for interfacing with GPUs of modern video cards.
DRM exposes an API that user-space programs can use to send commands and data to the GPU and perform operations such as configuring the mode setting of the display.
User-space programs can use the DRM API to command the GPU to do hardware-accelerated 3D rendering and video decoding, as well as {{w|General-purpose computing on graphics processing units|GPGPU}} computing.
⚲ API
: /sys/class/drm/
: {{The Linux Kernel/include|uapi/drm}}
:: {{The Linux Kernel/include|uapi/drm/drm.h}}
::: {{The Linux Kernel/id|DRM_IOCTL_BASE}}
::: {{The Linux Kernel/id|drm_version}}
⚙️ Internals
: {{The Linux Kernel/source|drivers/gpu/drm}} – DRM core and drivers
: {{The Linux Kernel/include|drm}}
: {{The Linux Kernel/include|drm_gem.h}} – Graphics Execution Manager Driver Interfaces
: {{The Linux Kernel/id|drm_dev_register}} registers {{The Linux Kernel/id|drm_device}}
=== {{w|Advanced Linux Sound Architecture}} (ALSA) ===
ALSA is a software framework and part of the Linux kernel that provides an API for sound card device drivers.
Some of the goals of the ALSA project at its inception were automatic configuration of sound-card hardware and graceful handling of multiple sound devices in a system.
The sound servers PulseAudio, JACK (low-latency professional-grade audio editing and mixing) and PipeWire, the higher-level abstraction APIs OpenAL, SDL audio, etc. work on top of ALSA and implemented sound card device drivers.
On Linux systems, ALSA succeeded the older {{w|Open Sound System}} (OSS).
⚲ API
: /proc/asound/cards, /sys/class/sound/
: {{The Linux Kernel/id|snd_card}} - central struct
: {{The Linux Kernel/id|snd_card_new}}
: {{The Linux Kernel/id|snd_card_register}}
: {{The Linux Kernel/id|snd_device_ops}}
: {{The Linux Kernel/id|snd_device_new}} creates an ALSA device component
: {{The Linux Kernel/include|uapi/sound/asound.h}}
: {{The Linux Kernel/include|sound/core.h}}
⚙️ Internals
: {{The Linux Kernel/source|sound}} – ALSA sound subsystem
: {{The Linux Kernel/source|sound/core/device.c}} – ALSA device management
: See [[#Sound SoC - ASoC|ASoC]]
📖 References
: {{The Linux Kernel/doc|ALSA (sound)|sound}}
: {{The Linux Kernel/doc|Writing an ALSA Driver|sound/kernel-api/writing-an-alsa-driver.html}}
: {{The Linux Kernel/ltp|kernel|sound}}
=== {{w|Video4Linux}} (V4L2) ===
V4L is a collection of device drivers and an API for supporting realtime video capture on Linux systems.
It supports many USB webcams, TV tuners, and related devices, standardizing their output, so programmers can easily add video support to their applications.
MythTV, tvtime and Tvheadend are typical applications that use the V4L framework.
⚲ API
: {{The Linux Kernel/id|v4l2_device_register}} registers {{The Linux Kernel/id|v4l2_device}}
: {{The Linux Kernel/id|video_register_device}} registers {{The Linux Kernel/id|video_device}}
: 👁 examples {{The Linux Kernel/source|drivers/media/test-drivers}}
📖 References
: {{w|Video4Linux}}
: {{The Linux Kernel/doc|media|driver-api/media}}
: {{The Linux Kernel/doc|V4L|userspace-api/media/drivers/}}
: [https://linuxtv.org/downloads/v4l-dvb-apis-new/driver-api/index.html Media subsystem kernel internal API]
==HID==
Generic human interface devices.
Don't confuse with [[../System#hiddev|hiddev]].
=== Input devices ===
Input device files are kind of [[#char devices|char devices]] with id {{The Linux Kernel/id|INPUT_MAJOR}}.
Classic input devices are keyboard and mouse.
⚲ API
: In shell: cat /proc/bus/input/devices
: {{The Linux Kernel/include|linux/input.h}}
: {{The Linux Kernel/id|devm_input_allocate_device}}, {{The Linux Kernel/id|input_register_device}}, {{The Linux Kernel/id|input_register_handler}}, {{The Linux Kernel/id|input_dev}}
: {{The Linux Kernel/id|input_report_key}} {{The Linux Kernel/id|input_sync}}
👁 Examples
: {{The Linux Kernel/source|drivers/input/mousedev.c}} – mouse device emulation
: {{The Linux Kernel/source|drivers/input/keyboard/atkbd.c}} – AT/PS2 keyboard driver
<big>⌨️</big> Hands on
sudo hexdump /dev/input/mice # dump your mouse movements events from your kernel
⚙️ Internals
: {{The Linux Kernel/source|drivers/input/input.c}} – input core
: {{The Linux Kernel/id|input_event}}
📖 References
: {{The Linux Kernel/doc|Input|input}}
: {{The Linux Kernel/ltp|kernel|input}}
=== HID devices ===
🔧 TODO
⚲ API
: {{The Linux Kernel/id|hid_device}} - device report descriptor. Operations: {{The Linux Kernel/id|hid_allocate_device}}, {{The Linux Kernel/id|hid_add_device}} . 👁 Example {{The Linux Kernel/id|usbhid_probe}}
: {{The Linux Kernel/include|uapi/linux/hid.h}}
: {{The Linux Kernel/include|linux/hid.h}}
=== Camera ===
🔧 TODO
⚲ API
: {{The Linux Kernel/include|uapi/linux/uvcvideo.h}}
📖 References
: {{The Linux Kernel/doc|UVC|userspace-api/media/drivers/uvcvideo.html}}
: {{The Linux Kernel/source|drivers/media/usb/uvc}} – USB Video Class driver
==HI device drivers==
This section is about low level drivers to human interface peripheral devices.
⚲ '''HID''' API
: {{The Linux Kernel/include|linux/hidraw.h}}
: {{The Linux Kernel/id|module_hid_driver}} registers {{The Linux Kernel/id|hid_driver}}
: {{The Linux Kernel/id|hid_hw_start}}
⚙️ Internals
: {{The Linux Kernel/id|hid_bus_type}}
: {{The Linux Kernel/source|drivers/hid}} – HID transport drivers
: {{The Linux Kernel/source|drivers/hid/hid-core.c}} – HID core parsing and event handling
: {{The Linux Kernel/source|drivers/accessibility}} – accessibility drivers (speakup)
: {{The Linux Kernel/source|drivers/leds}} – LED class drivers
: {{The Linux Kernel/source|samples/uhid/uhid-example.c}} - 👁 example of user mode HID driver
: {{The Linux Kernel/source|drivers/input}} : keyboard & mouse, misc, serio, tablet, touchscreen, gameport, joystick
:: <big>⌨️</big> Hands on
:: echo "module atkbd +pfl" | sudo tee /sys/kernel/debug/dynamic_debug/control
'''USB HID'''
⚲ '''HID''' API
: {{The Linux Kernel/id|USB_INTERFACE_CLASS_HID}} == {{The Linux Kernel/id|USB_CLASS_HID}}
⚙️ Internals
: {{The Linux Kernel/source|drivers/hid/usbhid}} – USB HID transport
:: {{The Linux Kernel/source|drivers/hid/usbhid/usbkbd.c}}: {{The Linux Kernel/id|usb_kbd_driver}}
:: {{The Linux Kernel/source|drivers/hid/usbhid/usbmouse.c}}: {{The Linux Kernel/id|usb_mouse_driver}}
📖 References
: <!--
find include/ -type f -name '*hid*' | sed 's-include/\(.*\)-* {{The Linux Kernel/include|\1}}-'
-->{{The Linux Kernel/doc|USB HID class|hid}}
=== Display drivers ===
🔧 TODO
🗝️ Acronyms
: FB - {{w|Linux framebuffer|Framebuffer}}
: GPU - {{w|Graphics processing unit}}
: TFT (LCD) - {{w|Thin-film-transistor liquid-crystal display}} used for 🤖 embedded devices
: MIPI - 📱 {{w|Mobile Industry Processor Interface}}
:: DBI - Display Bus Interface
:: DSI - {{w|Display Serial Interface}}
:: DCS - The Display Command Set
⚲ API
: cat /proc/fb
: ls -l /sys/class/graphics
: {{The Linux Kernel/include|video/mipi_display.h}}
: {{The Linux Kernel/include|linux/fb.h}}
: {{The Linux Kernel/id|register_framebuffer}}
: {{The Linux Kernel/id|FBTFT_REGISTER_DRIVER}}
: {{The Linux Kernel/id|fbtft_display}}
⚙️ Internals
: {{The Linux Kernel/source|drivers/video}} – framebuffer and video drivers
: {{The Linux Kernel/source|drivers/gpu}} – GPU and DRM drivers
👁 Examples
: {{The Linux Kernel/id|vivid_fb_init}}
: {{The Linux Kernel/id|fbtft_register_framebuffer}}
📖 References
: {{The Linux Kernel/doc|GPU Driver Developer’s Guide|gpu}}
: {{The Linux Kernel/doc|The Frame Buffer Device|fb}}
: {{The Linux Kernel/doc|Frame Buffer Library|driver-api/frame-buffer.html}}
: [https://lwn.net/Kernel/Index/#Device_drivers-Graphics LWN: Graphics]
=== Sound SoC - ASoC ===
ALSA System on Chip (ASoC) layer for 🤖 embedded systems.
ASoC is designed to handle complex audio processing and routing on low-power and resource-constrained systems, making it an ideal solution for embedded devices such as smartphones, tablets, and other IoT devices.
ASoC provides a comprehensive framework for audio drivers, enabling the creation of modular audio drivers that can be easily integrated with the rest of the kernel.
It also supports a wide range of audio interfaces, including I2S, PCM, AC97, and SPDIF, making it highly versatile and capable of handling a variety of audio formats.
One of the key features of ASoC is its ability to handle audio routing and processing using Digital Signal Processing (DSP) techniques.
This enables ASoC to support advanced audio features such as noise reduction, echo cancellation, and dynamic range compression, among others.
Overall, ASoC is a powerful and flexible subsystem that enables Linux to support a wide range of audio hardware in embedded devices.
It has become an essential component of many embedded Linux distributions and is widely used in the development of modern audio-enabled devices.
⚲ API
: {{The Linux Kernel/include|sound/soc.h}}
:: {{The Linux Kernel/id|snd_soc_card}}
::: is registered by {{The Linux Kernel/id|devm_snd_soc_register_card}} ⇾ {{The Linux Kernel/id|snd_soc_register_card}}
: {{The Linux Kernel/include|sound/soc-component.h}}
:: {{The Linux Kernel/id|snd_soc_component}}
::: {{The Linux Kernel/id|snd_soc_component_driver}}
::: {{The Linux Kernel/id|snd_soc_card}}
:::: {{The Linux Kernel/id|snd_card}}
:: {{The Linux Kernel/id|snd_soc_register_component}} {{The Linux Kernel/id|snd_soc_component_get_drvdata}} {{The Linux Kernel/id|snd_soc_component_read}} {{The Linux Kernel/id|snd_soc_component_update_bits}} {{The Linux Kernel/id|snd_soc_component_write}}
: {{The Linux Kernel/include|sound/soc-dai.h}} - {{The Linux Kernel/doc|DAI - Digital Audio Interface|sound/soc/dai.html}}: {{w|AC97}}, {{w|I2S}}, {{w|PCM}}
:: {{The Linux Kernel/id|snd_soc_dai}} {{The Linux Kernel/id|snd_soc_dai_driver}} {{The Linux Kernel/id|snd_soc_dai_get_drvdata}}
: {{The Linux Kernel/include|sound/soc-dpcm.h}} - {{The Linux Kernel/doc|DPCM - Dynamic PCM|sound/soc/dpcm.html}}
: {{The Linux Kernel/include|sound/soc-dapm.h}} - {{The Linux Kernel/doc|DAPM - Dynamic Audio Power Management|sound/soc/dapm.html}}
:: {{The Linux Kernel/id|snd_soc_dapm_route}}, {{The Linux Kernel/id|snd_soc_dapm_to_component}}, {{The Linux Kernel/id|snd_soc_dapm_widget}}
👁 Examples
: {{The Linux Kernel/source|sound/soc/generic/simple-card.c}}
: {{The Linux Kernel/source|sound/soc/generic/audio-graph-card.c}} uses {{The Linux Kernel/include|sound/graph_card.h}}
⚙️ Internals
: {{The Linux Kernel/source|sound/soc}} – ASoC framework
: {{The Linux Kernel/id|snd_soc_card}}
:: {{The Linux Kernel/id|snd_soc_dai_link}}
📖 References
: {{The Linux Kernel/doc|ASoC - ALSA SoC Layer|sound/soc}}
: {{The Linux Kernel/doc|ASoC Core API|sound/kernel-api/alsa-driver-api.html?#asoc}}
: https://www.alsa-project.org/wiki/ASoC
:: https://www.alsa-project.org/wiki/DAPM
🗝️ Acronyms SAI could be
: STM ''Serial'' Audio Interface: {{The Linux Kernel/source|sound/soc/stm/stm32_sai.h}}
: Freescale (FSL) ''Synchronous'' Audio Interface: {{The Linux Kernel/source|sound/soc/fsl/fsl_sai.h}}
{{BookCat}}
{{status|25%}}
7ejbcrk5pikcu5y46ik32my6wwjquot
4640231
4640230
2026-06-13T18:18:57Z
Conan
3188
add audit section intro, API and include reference
4640231
wikitext
text/x-wiki
<noinclude>{{DISPLAYTITLE:Human interfaces}}</noinclude>
{| style="float:right; text-align: center; border-spacing: 0; margin: auto;" cellpadding="5pc"
! bgcolor="#fcd" |human interfaces
|- style=""
| bgcolor="#ecd" |[[#Text interfaces|text interfaces]]
|- style=""
| bgcolor="#dcd" |[[#Security|security]]
|- style=""
| bgcolor="#dcc" |[[#Debugging|debugging]]
|- style=""
| bgcolor="#cbb" |[[#Multimedia subsystems|multimedia subsystems]]
|- style=""
| bgcolor="#baa" |[[#HID|human interface devices]], [[#Input_devices|input devices]]
|- style=""
| bgcolor="#aaa" |[[#HI_device_drivers|HI drivers]]
|}
Welcome to the first article of this book.
The article is named after the {{W|USB human interface device class|USB class}} and the Linux facility for {{w|Human interface device|Human Interface Devices}} (HID).
The HID subsystem in Linux supports keyboards, mice, and other {{w|Input device|input devices}}.
In addition to input handling, this article also explores topics related to the console, multimedia (or simply media), sound (audio), video, and graphics—key areas of user interaction.
Security and debugging are also covered, as they are closely tied to human interaction and user-facing functionality.
== Text interfaces ==
In the world of Linux, text {{w|terminal emulator}}s and {{w|Linux console|console}}s are essential components of the operating system that allow users to interact with applications through the kernel.
A text terminal is a device that provides a text-based interface for communicating with the kernel, while the console is the physical device that houses the terminal and displays the output of the kernel.
The Linux kernel includes a built-in console driver that provides a basic interface for communicating with the console and controlling the terminal.
The console driver also supports various input and output devices, such as keyboards and displays, to enable users to interact with the system through a terminal.
The use of text {{w|Computer terminal|terminals}} and {{w|system console}}s in Linux can be traced back to the early days of computing, when {{w|Graphical terminal|graphical user interfaces}} were not yet widely available.
Despite the widespread adoption of graphical user interfaces, {{w|Text-based user interface|text-based interfaces}} and consoles remain popular among Linux users and developers for their simplicity, efficiency, and flexibility.
Overall, the text terminal and console play a crucial role in the Linux kernel, providing users with a powerful interface for managing and interacting with the operating system.
=== Char devices ===
{{The Linux Kernel/id|cdev}} – "character device" is a type of device driver that provides an implementation for character {{w|device file}} in the /dev directory.
The word "device" here means abstract interface, {{w|Proxy pattern|proxy}} to a usually peripheral physical device.
A character device is a type of device that can be accessed as a stream of bytes, rather than as a block of data like a block device.
Cdev drivers are commonly used for devices that provide a {{w|sequential access|stream}} of data, such as keyboards, mice, terminals, serial ports, and printers.
They are also used for devices that provide access to memory-mapped I/O regions, such as frame buffers and network devices.
A cdev driver typically consists of a set of functions that implement the low-level I/O operations for the device, such as open, read and write.
These functions are called by the kernel when a user space program accesses the character device file.
To create a cdev driver, a kernel developer must first initialize a cdev structure using {{The Linux Kernel/id|cdev_init}} or {{The Linux Kernel/id|cdev_alloc}}.
The cdev structure contains information about the device, such as its major and minor numbers and the set of I/O functions that the driver implements.
Once the cdev structure has been initialized, it can be registered with the kernel using the {{The Linux Kernel/id|cdev_add}} function.
This function creates the character device file in the /dev directory and associates it with the cdev driver.
You can find a list of registered char devices on the beginning the listing of <big>/proc/devices</big>. [[#Input_devices|Input devices]] keyboard and mouse are examples of char devices.
<small>''Tip: Browse the cross-referencing site to explore nearby API and use cases''</small>
💾 ''Historical: It is one of the most simple, fundamental and oldest concepts derived from UNIX. ''
⚲ API
: {{The Linux Kernel/include|linux/cdev.h}}
:: {{The Linux Kernel/id|dev_t}} - device id consists of {{The Linux Kernel/id|MAJOR}} and {{The Linux Kernel/id|MINOR}} numbers
:: {{The Linux Kernel/id|cdev}} - core char device struct
:: {{The Linux Kernel/id|cdev_init}} or {{The Linux Kernel/id|cdev_alloc}}
:: {{The Linux Kernel/id|cdev_device_add}} - helper function, uses
::: {{The Linux Kernel/id|cdev_add}} - common key function to add a char device to the system.
: {{The Linux Kernel/id|register_chrdev}} - ''obviously registers char device'' by '''major''' number, '''name''' and file operations
: {{The Linux Kernel/id|unregister_chrdev}}
: {{The Linux Kernel/id|alloc_chrdev_region}} / {{The Linux Kernel/id|register_chrdev_region}},
: {{The Linux Kernel/id|unregister_chrdev_region}}
: {{The Linux Kernel/include|uapi/linux/major.h}} - static definitions of many major numbers, including obsolete.
⚙️ Internals
: {{The Linux Kernel/source|fs/char_dev.c}} – character device registration
: {{The Linux Kernel/id|chrdevs}}
📖 References
: {{The Linux Kernel/doc|Char devices|core-api/kernel-api.html#char-devices}}
: [https://linux-kernel-labs.github.io/refs/heads/master/labs/device_drivers.html Character device drivers, linux-kernel-labs]
: [https://www.opensourceforu.com/2011/04/character-device-files-creation-operations/ Character device files, on opensourceforu]
💾 ''Historical''
: [http://lwn.net/images/pdf/LDD3/ch03.pdf LDD3:Char Drivers]
: [http://lwn.net/images/pdf/LDD3/ch06.pdf LDD3:Advanced Char Driver Operations]
: [http://www.xml.com/ldd/chapter/book/ch03.html LDD1:#3]
: [http://www.xml.com/ldd/chapter/book/ch05.html LDD1:#5]
=== Text terminals and console ===
🗝️ Acronyms
: {{w|Tty (unix)|tty}} - 💾 ''historically TeleTYpewriter'', means just terminal
: {{w|Pseudoterminal|pty}} - pseudoterminal
: pts - pseudoterminal slave
: ptmx - pseudoterminal master
⚲ API
: To find out current terminal:
:: readlink /proc/self/fd/0
:: {{The Linux Kernel/man|1|tty}}
:: {{The Linux Kernel/man|1|who}} -m
: {{The Linux Kernel/include|linux/tty.h}}
:{{The Linux Kernel/id|register_console}} obviously registers {{The Linux Kernel/id|console}}
:: 👁 example {{The Linux Kernel/id|virtio_console}}
: {{The Linux Kernel/include|linux/console.h}}
: {{The Linux Kernel/man|2|ioctl_console}}
⚙️ Internals
: {{The Linux Kernel/source|drivers/tty}} – TTY layer
: {{The Linux Kernel/source|fs/devpts}} – devpts pseudo-filesystem for PTY slaves
: {{The Linux Kernel/source|fs/proc/proc_tty.c}} – /proc/tty information
: {{The Linux Kernel/source|drivers/tty/vt/vt.c}} – virtual terminal console
📖 References
: {{The Linux Kernel/man|4|tty}} – controlling terminal
: {{The Linux Kernel/man|4|ptmx}} and pts – pseudoterminal master and slave
: {{The Linux Kernel/man|7|pty}} – pseudoterminal interfaces
: {{The Linux Kernel/doc|console|driver-api/console.html}}
💾 ''Historical''
: [http://lwn.net/images/pdf/LDD3/ch18.pdf LDD3:TTY Drivers]
==Security==
The goal of security is to restrict access through interfaces.
From access control and authentication mechanisms to secure boot and memory protection,
the Linux kernel employs a variety of techniques to safeguard the system and its users.
Basic Linux security is quite simple.
It consists of three ownership classes and three access modes.
One of the most frequently executed functions is {{The Linux Kernel/id|may_open}}.
It rejects access of unauthorized users to open a file.
See article [[../Security/]] for new features.
=== Authorization ===
{{w|Authorization}} is the function of specifying {{w|Computer access control|access}} rights/{{w|Privilege_(computing)|privilege}}s to system resources.
The main goal of authorization is prevention of {{w|privilege escalation}} under any circumstances.
🔧 TODO.
Keywords: permission, capabilities, ownership, {{w|mitigation}}.
⚲ API
: {{The Linux Kernel/include|linux/stat.h}}
: {{The Linux Kernel/include|uapi/linux/stat.h}}
Basic classic UNIX authorization is based on ownership and tree access modes: reading, writing and execution.
Ownership is encoded by owning user id {{The Linux Kernel/id|uid_t}} and owning group id {{The Linux Kernel/id|gid_t}}.
{{The Linux Kernel/id|umode_t}} - just typedef used for encoding access mode. {{The Linux Kernel/id|S_IRUSR}} - minimal "read only by user/owner" access mode.
{{The Linux Kernel/id|S_IALLUGO}} - full access mode.
Please read the source for details for other modes.
Binary {{w|Access Control Matrix}} of access modes:
{| class="wikitable"
|+
!modes
!bits
!Read
!Write
!Execute
|-
|bit offset
|
|2
|1
|0
|-
|'''Others'''
|0-2
|or
|ow
|ox
|-
|'''Group'''
|3-5
|gr
|gw
|gx
|-
|'''User'''
|6-8
|ur
|uw
|ux
|}
: {{The Linux Kernel/man|2|chown}} ↪ {{The Linux Kernel/id|do_fchownat}} changes ownership for file or directory
: {{The Linux Kernel/man|2|chmod}} ↪ {{The Linux Kernel/id|do_fchmodat}} changes access mode for file or directory
: {{The Linux Kernel/man|2|access}}, {{The Linux Kernel/man|2|faccessat}} ↪ {{The Linux Kernel/id|do_faccessat}} checks access rights
Common authorization errors
: {{The Linux Kernel/id|EPERM}} – "Operation not permitted"
: {{The Linux Kernel/id|EACCES}} – "Permission denied"
🚀 Advanced features
: {{The Linux Kernel/man|5|acl}} {{The Linux Kernel/id|posix_acl}}
: {{The Linux Kernel/include|uapi/linux/capability.h}}
:: {{The Linux Kernel/man|2|capset}} and capget – set/get capabilities of thread(s)
:: {{The Linux Kernel/man|3|libcap}}
: {{The Linux Kernel/man|1|setpriv}} – run a program with different privilege settings
⚙️ Internals
: {{The Linux Kernel/id|may_open}} rejects unauthorized file opening
:: {{The Linux Kernel/id|inode_permission}} checks for access rights to a given inode
: {{The Linux Kernel/source|kernel/capability.c}} – POSIX capabilities system calls
📖 References
: {{w|File-system permissions}}
: {{The Linux Kernel/man|7|capabilities}}
===Credentials===
🔧 TODO.
Keywords: {{w|authentication}}, user IDs, group IDs, Process group ID, session ID.
⚲ API
: {{The Linux Kernel/include|uapi/asm-generic/stat.h}}
: {{The Linux Kernel/source|arch/x86/include/uapi/asm/stat.h}} – x86 stat structure definitions
: {{The Linux Kernel/include|linux/cred.h}}
:: struct {{The Linux Kernel/id|cred}} - the security context of a task
: {{The Linux Kernel/man|1|id}}, {{The Linux Kernel/man|1|test}} - shell utilities
: {{The Linux Kernel/man|2|getuid}} ↪ {{The Linux Kernel/id|current_uid}}
: {{The Linux Kernel/man|2|getgid}}
: {{The Linux Kernel/man|2|geteuid}} is used by utility {{The Linux Kernel/man|1|whoami}}
: Real, effective, and saved user/group IDs:
:: {{The Linux Kernel/man|2|getresuid}}, getresgid
:: {{The Linux Kernel/man|2|setreuid}}, setregid
: {{The Linux Kernel/man|2|setfsuid}} - set user identity used for filesystem checks
: {{The Linux Kernel/man|2|umask}} - sets file mode creation mask
: {{The Linux Kernel/man|1|stat}}, {{The Linux Kernel/man|2|stat}} ↪ {{The Linux Kernel/id|vfs_fstat}}, {{The Linux Kernel/id|vfs_fstatat}}
: {{The Linux Kernel/man|2|statx}} ↪ {{The Linux Kernel/id|do_statx}}
⚙️ Internals
: {{The Linux Kernel/id|kstat}}
: {{The Linux Kernel/id|make_kuid}} etc
: {{The Linux Kernel/id|from_kuid_munged}} etc
📖 References
: {{The Linux Kernel/doc|Credentials in Linux|security/credentials.html}}
: {{The Linux Kernel/man|7|credentials}}
: https://www.geeksforgeeks.org/real-effective-and-saved-userid-in-linux/
=== Cryptography ===
🔧 TODO
🗝️ Acronyms
: AES - {{w|Advanced Encryption Standard}}
⚲ API
: {{The Linux Kernel/id|AF_ALG}} - {{The Linux Kernel/doc|User Space Interface|crypto/userspace-if.html}}
: {{The Linux Kernel/include|linux/crypto.h}} - Scatterlist Cryptographic API.
: {{The Linux Kernel/include|crypto}}
⚙️ Internals
: {{The Linux Kernel/source|crypto}} – cryptographic API core
: {{The Linux Kernel/source|drivers/crypto}} – hardware crypto accelerator drivers
: {{The Linux Kernel/source|lib/crypto}} – crypto library helpers
: {{The Linux Kernel/source|arch/x86/crypto}} – x86 optimized crypto implementations
: {{The Linux Kernel/source|fs/crypto}} - per-file encryption
: {{The Linux Kernel/source|fs/ecryptfs}} eCrypt FS - Encrypted filesystem that operates on the VFS layer.
: {{w|dm-crypt}}, {{The Linux Kernel/source|drivers/md/dm-crypt.c}}
📖 References
: {{The Linux Kernel/doc|Linux Kernel Crypto API|crypto}}
: {{w|Crypto API (Linux)}}
: [https://www.kernel.org/doc/Documentation/devicetree/bindings/crypto/ devicetree/bindings/crypto]
: {{The Linux Kernel/ltp|kernel|crypto}}
=== Audit ===
The Linux {{w|audit framework}} records security-relevant events such as system calls, file access, and authentication attempts.
The audit daemon (auditd) collects records from the kernel via a netlink socket.
⚲ API
: {{The Linux Kernel/man|8|auditctl}} – configure audit rules
: {{The Linux Kernel/man|8|auditd}} – audit daemon
: {{The Linux Kernel/man|7|audit.rules}}
: {{The Linux Kernel/include|linux/audit.h}}
⚙️ Internals
: {{The Linux Kernel/source|kernel/audit.h}} – audit internal definitions
: {{The Linux Kernel/source|kernel/audit.c}} – audit gateway between kernel and user-space daemon
: {{The Linux Kernel/source|kernel/auditsc.c}} – system-call auditing
: {{The Linux Kernel/source|kernel/audit_tree.c}} – audit directory tree watches
: {{The Linux Kernel/source|kernel/audit_watch.c}} – audit filesystem path watches
: {{The Linux Kernel/source|kernel/audit_fsnotify.c}} – audit fsnotify integration
: {{The Linux Kernel/source|kernel/auditfilter.c}} – audit rule filtering
📖 References
: https://wiki.archlinux.org/title/Audit_framework
See also [[The_Linux_Kernel/Debugging#eBPF|eBPF and BPF]]
=== ... ===
Appendix for Security:
🔧 TODO
: {{The Linux Kernel/man|2|fcntl}} ↪ {{The Linux Kernel/id|do_fcntl}}
: {{The Linux Kernel/man|2|seccomp}} ↪ {{The Linux Kernel/id|do_seccomp}}
: {{The Linux Kernel/man|2|add_key}} ↪ {{The Linux Kernel/source|security/keys/keyctl.c}}
: {{w|chroot}}, {{The Linux Kernel/man|2|chroot}}
: {{w|Address_space_layout_randomization#Linux|Address space layout randomization}}
:: {{The Linux Kernel/man|8|setarch}} / {{The Linux Kernel/man|2|personality}}
📖 References
: {{The Linux Kernel/doc|Security-related interfaces|userspace-api/index.html#security-related-interfaces}}
:: {{The Linux Kernel/doc|No New Privileges Flag|userspace-api/no_new_privs.html}}
:: {{The Linux Kernel/doc|Seccomp BPF (SECure COMPuting with filters)|userspace-api/seccomp_filter.html}}
:: {{The Linux Kernel/doc|Landlock: unprivileged access control|userspace-api/landlock.html}}
:: {{The Linux Kernel/doc|Linux Security Modules|userspace-api/lsm.html}}
:: {{The Linux Kernel/doc|Introduction of non-executable mfd|userspace-api/mfd_noexec.html}}
:: {{The Linux Kernel/doc|Speculation Control|userspace-api/spec_ctrl.html}}
:: {{The Linux Kernel/doc|TEE (Trusted Execution Environment) Userspace API|userspace-api/tee.html}}
:: {{The Linux Kernel/doc|Executability check|userspace-api/check_exec.html}}
: {{The Linux Kernel/doc|Security|security}}
:: {{The Linux Kernel/doc|LSM - Linux Security Modules|security/lsm.html}} [https://docs.kernel.org/admin-guide/perf-security.html Perf events and tool security]
: {{The Linux Kernel/doc|Hardware vulnerabilities|admin-guide/hw-vuln}}
: {{w|Linux Security Modules}}
: {{The Linux Kernel/include|linux/security.h}} ⇾ {{The Linux Kernel/source|security}}
: {{The Linux Kernel/include|keys}}
: {{The Linux Kernel/include|linux/verification.h}}
: {{The Linux Kernel/source|certs}} – module signing certificates
: {{The Linux Kernel/ltp|kernel|security}}
: {{The Linux Kernel/ltp||cve}}
: http://kernsec.org/wiki/index.php/Main_Page
: {{w|SELinux}} http://selinuxproject.org/
== Debugging ==
See [[The_Linux_Kernel/Debugging|Debugging the Linux kernel]]
==Multimedia subsystems==
⚙️ Internals
: {{The Linux Kernel/source|drivers/media}} – media subsystem (V4L2, DVB, etc.)
=== Graphics ===
Old graphics (not to be confused with v4l):
⚲ API
: {{The Linux Kernel/include|video}}
<!-- : {{The Linux Kernel/include|uapi/video}} old stuff -->
⚙️ Internals
: {{The Linux Kernel/source|drivers/video}} – framebuffer and video drivers
==== {{w|Direct Rendering Manager}} (DRM) ====
DRM is responsible for interfacing with GPUs of modern video cards.
DRM exposes an API that user-space programs can use to send commands and data to the GPU and perform operations such as configuring the mode setting of the display.
User-space programs can use the DRM API to command the GPU to do hardware-accelerated 3D rendering and video decoding, as well as {{w|General-purpose computing on graphics processing units|GPGPU}} computing.
⚲ API
: /sys/class/drm/
: {{The Linux Kernel/include|uapi/drm}}
:: {{The Linux Kernel/include|uapi/drm/drm.h}}
::: {{The Linux Kernel/id|DRM_IOCTL_BASE}}
::: {{The Linux Kernel/id|drm_version}}
⚙️ Internals
: {{The Linux Kernel/source|drivers/gpu/drm}} – DRM core and drivers
: {{The Linux Kernel/include|drm}}
: {{The Linux Kernel/include|drm_gem.h}} – Graphics Execution Manager Driver Interfaces
: {{The Linux Kernel/id|drm_dev_register}} registers {{The Linux Kernel/id|drm_device}}
=== {{w|Advanced Linux Sound Architecture}} (ALSA) ===
ALSA is a software framework and part of the Linux kernel that provides an API for sound card device drivers.
Some of the goals of the ALSA project at its inception were automatic configuration of sound-card hardware and graceful handling of multiple sound devices in a system.
The sound servers PulseAudio, JACK (low-latency professional-grade audio editing and mixing) and PipeWire, the higher-level abstraction APIs OpenAL, SDL audio, etc. work on top of ALSA and implemented sound card device drivers.
On Linux systems, ALSA succeeded the older {{w|Open Sound System}} (OSS).
⚲ API
: /proc/asound/cards, /sys/class/sound/
: {{The Linux Kernel/id|snd_card}} - central struct
: {{The Linux Kernel/id|snd_card_new}}
: {{The Linux Kernel/id|snd_card_register}}
: {{The Linux Kernel/id|snd_device_ops}}
: {{The Linux Kernel/id|snd_device_new}} creates an ALSA device component
: {{The Linux Kernel/include|uapi/sound/asound.h}}
: {{The Linux Kernel/include|sound/core.h}}
⚙️ Internals
: {{The Linux Kernel/source|sound}} – ALSA sound subsystem
: {{The Linux Kernel/source|sound/core/device.c}} – ALSA device management
: See [[#Sound SoC - ASoC|ASoC]]
📖 References
: {{The Linux Kernel/doc|ALSA (sound)|sound}}
: {{The Linux Kernel/doc|Writing an ALSA Driver|sound/kernel-api/writing-an-alsa-driver.html}}
: {{The Linux Kernel/ltp|kernel|sound}}
=== {{w|Video4Linux}} (V4L2) ===
V4L is a collection of device drivers and an API for supporting realtime video capture on Linux systems.
It supports many USB webcams, TV tuners, and related devices, standardizing their output, so programmers can easily add video support to their applications.
MythTV, tvtime and Tvheadend are typical applications that use the V4L framework.
⚲ API
: {{The Linux Kernel/id|v4l2_device_register}} registers {{The Linux Kernel/id|v4l2_device}}
: {{The Linux Kernel/id|video_register_device}} registers {{The Linux Kernel/id|video_device}}
: 👁 examples {{The Linux Kernel/source|drivers/media/test-drivers}}
📖 References
: {{w|Video4Linux}}
: {{The Linux Kernel/doc|media|driver-api/media}}
: {{The Linux Kernel/doc|V4L|userspace-api/media/drivers/}}
: [https://linuxtv.org/downloads/v4l-dvb-apis-new/driver-api/index.html Media subsystem kernel internal API]
==HID==
Generic human interface devices.
Don't confuse with [[../System#hiddev|hiddev]].
=== Input devices ===
Input device files are kind of [[#char devices|char devices]] with id {{The Linux Kernel/id|INPUT_MAJOR}}.
Classic input devices are keyboard and mouse.
⚲ API
: In shell: cat /proc/bus/input/devices
: {{The Linux Kernel/include|linux/input.h}}
: {{The Linux Kernel/id|devm_input_allocate_device}}, {{The Linux Kernel/id|input_register_device}}, {{The Linux Kernel/id|input_register_handler}}, {{The Linux Kernel/id|input_dev}}
: {{The Linux Kernel/id|input_report_key}} {{The Linux Kernel/id|input_sync}}
👁 Examples
: {{The Linux Kernel/source|drivers/input/mousedev.c}} – mouse device emulation
: {{The Linux Kernel/source|drivers/input/keyboard/atkbd.c}} – AT/PS2 keyboard driver
<big>⌨️</big> Hands on
sudo hexdump /dev/input/mice # dump your mouse movements events from your kernel
⚙️ Internals
: {{The Linux Kernel/source|drivers/input/input.c}} – input core
: {{The Linux Kernel/id|input_event}}
📖 References
: {{The Linux Kernel/doc|Input|input}}
: {{The Linux Kernel/ltp|kernel|input}}
=== HID devices ===
🔧 TODO
⚲ API
: {{The Linux Kernel/id|hid_device}} - device report descriptor. Operations: {{The Linux Kernel/id|hid_allocate_device}}, {{The Linux Kernel/id|hid_add_device}} . 👁 Example {{The Linux Kernel/id|usbhid_probe}}
: {{The Linux Kernel/include|uapi/linux/hid.h}}
: {{The Linux Kernel/include|linux/hid.h}}
=== Camera ===
🔧 TODO
⚲ API
: {{The Linux Kernel/include|uapi/linux/uvcvideo.h}}
📖 References
: {{The Linux Kernel/doc|UVC|userspace-api/media/drivers/uvcvideo.html}}
: {{The Linux Kernel/source|drivers/media/usb/uvc}} – USB Video Class driver
==HI device drivers==
This section is about low level drivers to human interface peripheral devices.
⚲ '''HID''' API
: {{The Linux Kernel/include|linux/hidraw.h}}
: {{The Linux Kernel/id|module_hid_driver}} registers {{The Linux Kernel/id|hid_driver}}
: {{The Linux Kernel/id|hid_hw_start}}
⚙️ Internals
: {{The Linux Kernel/id|hid_bus_type}}
: {{The Linux Kernel/source|drivers/hid}} – HID transport drivers
: {{The Linux Kernel/source|drivers/hid/hid-core.c}} – HID core parsing and event handling
: {{The Linux Kernel/source|drivers/accessibility}} – accessibility drivers (speakup)
: {{The Linux Kernel/source|drivers/leds}} – LED class drivers
: {{The Linux Kernel/source|samples/uhid/uhid-example.c}} - 👁 example of user mode HID driver
: {{The Linux Kernel/source|drivers/input}} : keyboard & mouse, misc, serio, tablet, touchscreen, gameport, joystick
:: <big>⌨️</big> Hands on
:: echo "module atkbd +pfl" | sudo tee /sys/kernel/debug/dynamic_debug/control
'''USB HID'''
⚲ '''HID''' API
: {{The Linux Kernel/id|USB_INTERFACE_CLASS_HID}} == {{The Linux Kernel/id|USB_CLASS_HID}}
⚙️ Internals
: {{The Linux Kernel/source|drivers/hid/usbhid}} – USB HID transport
:: {{The Linux Kernel/source|drivers/hid/usbhid/usbkbd.c}}: {{The Linux Kernel/id|usb_kbd_driver}}
:: {{The Linux Kernel/source|drivers/hid/usbhid/usbmouse.c}}: {{The Linux Kernel/id|usb_mouse_driver}}
📖 References
: <!--
find include/ -type f -name '*hid*' | sed 's-include/\(.*\)-* {{The Linux Kernel/include|\1}}-'
-->{{The Linux Kernel/doc|USB HID class|hid}}
=== Display drivers ===
🔧 TODO
🗝️ Acronyms
: FB - {{w|Linux framebuffer|Framebuffer}}
: GPU - {{w|Graphics processing unit}}
: TFT (LCD) - {{w|Thin-film-transistor liquid-crystal display}} used for 🤖 embedded devices
: MIPI - 📱 {{w|Mobile Industry Processor Interface}}
:: DBI - Display Bus Interface
:: DSI - {{w|Display Serial Interface}}
:: DCS - The Display Command Set
⚲ API
: cat /proc/fb
: ls -l /sys/class/graphics
: {{The Linux Kernel/include|video/mipi_display.h}}
: {{The Linux Kernel/include|linux/fb.h}}
: {{The Linux Kernel/id|register_framebuffer}}
: {{The Linux Kernel/id|FBTFT_REGISTER_DRIVER}}
: {{The Linux Kernel/id|fbtft_display}}
⚙️ Internals
: {{The Linux Kernel/source|drivers/video}} – framebuffer and video drivers
: {{The Linux Kernel/source|drivers/gpu}} – GPU and DRM drivers
👁 Examples
: {{The Linux Kernel/id|vivid_fb_init}}
: {{The Linux Kernel/id|fbtft_register_framebuffer}}
📖 References
: {{The Linux Kernel/doc|GPU Driver Developer’s Guide|gpu}}
: {{The Linux Kernel/doc|The Frame Buffer Device|fb}}
: {{The Linux Kernel/doc|Frame Buffer Library|driver-api/frame-buffer.html}}
: [https://lwn.net/Kernel/Index/#Device_drivers-Graphics LWN: Graphics]
=== Sound SoC - ASoC ===
ALSA System on Chip (ASoC) layer for 🤖 embedded systems.
ASoC is designed to handle complex audio processing and routing on low-power and resource-constrained systems, making it an ideal solution for embedded devices such as smartphones, tablets, and other IoT devices.
ASoC provides a comprehensive framework for audio drivers, enabling the creation of modular audio drivers that can be easily integrated with the rest of the kernel.
It also supports a wide range of audio interfaces, including I2S, PCM, AC97, and SPDIF, making it highly versatile and capable of handling a variety of audio formats.
One of the key features of ASoC is its ability to handle audio routing and processing using Digital Signal Processing (DSP) techniques.
This enables ASoC to support advanced audio features such as noise reduction, echo cancellation, and dynamic range compression, among others.
Overall, ASoC is a powerful and flexible subsystem that enables Linux to support a wide range of audio hardware in embedded devices.
It has become an essential component of many embedded Linux distributions and is widely used in the development of modern audio-enabled devices.
⚲ API
: {{The Linux Kernel/include|sound/soc.h}}
:: {{The Linux Kernel/id|snd_soc_card}}
::: is registered by {{The Linux Kernel/id|devm_snd_soc_register_card}} ⇾ {{The Linux Kernel/id|snd_soc_register_card}}
: {{The Linux Kernel/include|sound/soc-component.h}}
:: {{The Linux Kernel/id|snd_soc_component}}
::: {{The Linux Kernel/id|snd_soc_component_driver}}
::: {{The Linux Kernel/id|snd_soc_card}}
:::: {{The Linux Kernel/id|snd_card}}
:: {{The Linux Kernel/id|snd_soc_register_component}} {{The Linux Kernel/id|snd_soc_component_get_drvdata}} {{The Linux Kernel/id|snd_soc_component_read}} {{The Linux Kernel/id|snd_soc_component_update_bits}} {{The Linux Kernel/id|snd_soc_component_write}}
: {{The Linux Kernel/include|sound/soc-dai.h}} - {{The Linux Kernel/doc|DAI - Digital Audio Interface|sound/soc/dai.html}}: {{w|AC97}}, {{w|I2S}}, {{w|PCM}}
:: {{The Linux Kernel/id|snd_soc_dai}} {{The Linux Kernel/id|snd_soc_dai_driver}} {{The Linux Kernel/id|snd_soc_dai_get_drvdata}}
: {{The Linux Kernel/include|sound/soc-dpcm.h}} - {{The Linux Kernel/doc|DPCM - Dynamic PCM|sound/soc/dpcm.html}}
: {{The Linux Kernel/include|sound/soc-dapm.h}} - {{The Linux Kernel/doc|DAPM - Dynamic Audio Power Management|sound/soc/dapm.html}}
:: {{The Linux Kernel/id|snd_soc_dapm_route}}, {{The Linux Kernel/id|snd_soc_dapm_to_component}}, {{The Linux Kernel/id|snd_soc_dapm_widget}}
👁 Examples
: {{The Linux Kernel/source|sound/soc/generic/simple-card.c}}
: {{The Linux Kernel/source|sound/soc/generic/audio-graph-card.c}} uses {{The Linux Kernel/include|sound/graph_card.h}}
⚙️ Internals
: {{The Linux Kernel/source|sound/soc}} – ASoC framework
: {{The Linux Kernel/id|snd_soc_card}}
:: {{The Linux Kernel/id|snd_soc_dai_link}}
📖 References
: {{The Linux Kernel/doc|ASoC - ALSA SoC Layer|sound/soc}}
: {{The Linux Kernel/doc|ASoC Core API|sound/kernel-api/alsa-driver-api.html?#asoc}}
: https://www.alsa-project.org/wiki/ASoC
:: https://www.alsa-project.org/wiki/DAPM
🗝️ Acronyms SAI could be
: STM ''Serial'' Audio Interface: {{The Linux Kernel/source|sound/soc/stm/stm32_sai.h}}
: Freescale (FSL) ''Synchronous'' Audio Interface: {{The Linux Kernel/source|sound/soc/fsl/fsl_sai.h}}
{{BookCat}}
{{status|25%}}
39ivf21dhkm9iqh8uwqvbfp7dn1fpyx
4640283
4640231
2026-06-14T09:29:48Z
Conan
3188
add security/selinux, apparmor, landlock, keys source references
4640283
wikitext
text/x-wiki
<noinclude>{{DISPLAYTITLE:Human interfaces}}</noinclude>
{| style="float:right; text-align: center; border-spacing: 0; margin: auto;" cellpadding="5pc"
! bgcolor="#fcd" |human interfaces
|- style=""
| bgcolor="#ecd" |[[#Text interfaces|text interfaces]]
|- style=""
| bgcolor="#dcd" |[[#Security|security]]
|- style=""
| bgcolor="#dcc" |[[#Debugging|debugging]]
|- style=""
| bgcolor="#cbb" |[[#Multimedia subsystems|multimedia subsystems]]
|- style=""
| bgcolor="#baa" |[[#HID|human interface devices]], [[#Input_devices|input devices]]
|- style=""
| bgcolor="#aaa" |[[#HI_device_drivers|HI drivers]]
|}
Welcome to the first article of this book.
The article is named after the {{W|USB human interface device class|USB class}} and the Linux facility for {{w|Human interface device|Human Interface Devices}} (HID).
The HID subsystem in Linux supports keyboards, mice, and other {{w|Input device|input devices}}.
In addition to input handling, this article also explores topics related to the console, multimedia (or simply media), sound (audio), video, and graphics—key areas of user interaction.
Security and debugging are also covered, as they are closely tied to human interaction and user-facing functionality.
== Text interfaces ==
In the world of Linux, text {{w|terminal emulator}}s and {{w|Linux console|console}}s are essential components of the operating system that allow users to interact with applications through the kernel.
A text terminal is a device that provides a text-based interface for communicating with the kernel, while the console is the physical device that houses the terminal and displays the output of the kernel.
The Linux kernel includes a built-in console driver that provides a basic interface for communicating with the console and controlling the terminal.
The console driver also supports various input and output devices, such as keyboards and displays, to enable users to interact with the system through a terminal.
The use of text {{w|Computer terminal|terminals}} and {{w|system console}}s in Linux can be traced back to the early days of computing, when {{w|Graphical terminal|graphical user interfaces}} were not yet widely available.
Despite the widespread adoption of graphical user interfaces, {{w|Text-based user interface|text-based interfaces}} and consoles remain popular among Linux users and developers for their simplicity, efficiency, and flexibility.
Overall, the text terminal and console play a crucial role in the Linux kernel, providing users with a powerful interface for managing and interacting with the operating system.
=== Char devices ===
{{The Linux Kernel/id|cdev}} – "character device" is a type of device driver that provides an implementation for character {{w|device file}} in the /dev directory.
The word "device" here means abstract interface, {{w|Proxy pattern|proxy}} to a usually peripheral physical device.
A character device is a type of device that can be accessed as a stream of bytes, rather than as a block of data like a block device.
Cdev drivers are commonly used for devices that provide a {{w|sequential access|stream}} of data, such as keyboards, mice, terminals, serial ports, and printers.
They are also used for devices that provide access to memory-mapped I/O regions, such as frame buffers and network devices.
A cdev driver typically consists of a set of functions that implement the low-level I/O operations for the device, such as open, read and write.
These functions are called by the kernel when a user space program accesses the character device file.
To create a cdev driver, a kernel developer must first initialize a cdev structure using {{The Linux Kernel/id|cdev_init}} or {{The Linux Kernel/id|cdev_alloc}}.
The cdev structure contains information about the device, such as its major and minor numbers and the set of I/O functions that the driver implements.
Once the cdev structure has been initialized, it can be registered with the kernel using the {{The Linux Kernel/id|cdev_add}} function.
This function creates the character device file in the /dev directory and associates it with the cdev driver.
You can find a list of registered char devices on the beginning the listing of <big>/proc/devices</big>. [[#Input_devices|Input devices]] keyboard and mouse are examples of char devices.
<small>''Tip: Browse the cross-referencing site to explore nearby API and use cases''</small>
💾 ''Historical: It is one of the most simple, fundamental and oldest concepts derived from UNIX. ''
⚲ API
: {{The Linux Kernel/include|linux/cdev.h}}
:: {{The Linux Kernel/id|dev_t}} - device id consists of {{The Linux Kernel/id|MAJOR}} and {{The Linux Kernel/id|MINOR}} numbers
:: {{The Linux Kernel/id|cdev}} - core char device struct
:: {{The Linux Kernel/id|cdev_init}} or {{The Linux Kernel/id|cdev_alloc}}
:: {{The Linux Kernel/id|cdev_device_add}} - helper function, uses
::: {{The Linux Kernel/id|cdev_add}} - common key function to add a char device to the system.
: {{The Linux Kernel/id|register_chrdev}} - ''obviously registers char device'' by '''major''' number, '''name''' and file operations
: {{The Linux Kernel/id|unregister_chrdev}}
: {{The Linux Kernel/id|alloc_chrdev_region}} / {{The Linux Kernel/id|register_chrdev_region}},
: {{The Linux Kernel/id|unregister_chrdev_region}}
: {{The Linux Kernel/include|uapi/linux/major.h}} - static definitions of many major numbers, including obsolete.
⚙️ Internals
: {{The Linux Kernel/source|fs/char_dev.c}} – character device registration
: {{The Linux Kernel/id|chrdevs}}
📖 References
: {{The Linux Kernel/doc|Char devices|core-api/kernel-api.html#char-devices}}
: [https://linux-kernel-labs.github.io/refs/heads/master/labs/device_drivers.html Character device drivers, linux-kernel-labs]
: [https://www.opensourceforu.com/2011/04/character-device-files-creation-operations/ Character device files, on opensourceforu]
💾 ''Historical''
: [http://lwn.net/images/pdf/LDD3/ch03.pdf LDD3:Char Drivers]
: [http://lwn.net/images/pdf/LDD3/ch06.pdf LDD3:Advanced Char Driver Operations]
: [http://www.xml.com/ldd/chapter/book/ch03.html LDD1:#3]
: [http://www.xml.com/ldd/chapter/book/ch05.html LDD1:#5]
=== Text terminals and console ===
🗝️ Acronyms
: {{w|Tty (unix)|tty}} - 💾 ''historically TeleTYpewriter'', means just terminal
: {{w|Pseudoterminal|pty}} - pseudoterminal
: pts - pseudoterminal slave
: ptmx - pseudoterminal master
⚲ API
: To find out current terminal:
:: readlink /proc/self/fd/0
:: {{The Linux Kernel/man|1|tty}}
:: {{The Linux Kernel/man|1|who}} -m
: {{The Linux Kernel/include|linux/tty.h}}
:{{The Linux Kernel/id|register_console}} obviously registers {{The Linux Kernel/id|console}}
:: 👁 example {{The Linux Kernel/id|virtio_console}}
: {{The Linux Kernel/include|linux/console.h}}
: {{The Linux Kernel/man|2|ioctl_console}}
⚙️ Internals
: {{The Linux Kernel/source|drivers/tty}} – TTY layer
: {{The Linux Kernel/source|fs/devpts}} – devpts pseudo-filesystem for PTY slaves
: {{The Linux Kernel/source|fs/proc/proc_tty.c}} – /proc/tty information
: {{The Linux Kernel/source|drivers/tty/vt/vt.c}} – virtual terminal console
📖 References
: {{The Linux Kernel/man|4|tty}} – controlling terminal
: {{The Linux Kernel/man|4|ptmx}} and pts – pseudoterminal master and slave
: {{The Linux Kernel/man|7|pty}} – pseudoterminal interfaces
: {{The Linux Kernel/doc|console|driver-api/console.html}}
💾 ''Historical''
: [http://lwn.net/images/pdf/LDD3/ch18.pdf LDD3:TTY Drivers]
==Security==
The goal of security is to restrict access through interfaces.
From access control and authentication mechanisms to secure boot and memory protection,
the Linux kernel employs a variety of techniques to safeguard the system and its users.
Basic Linux security is quite simple.
It consists of three ownership classes and three access modes.
One of the most frequently executed functions is {{The Linux Kernel/id|may_open}}.
It rejects access of unauthorized users to open a file.
See article [[../Security/]] for new features.
=== Authorization ===
{{w|Authorization}} is the function of specifying {{w|Computer access control|access}} rights/{{w|Privilege_(computing)|privilege}}s to system resources.
The main goal of authorization is prevention of {{w|privilege escalation}} under any circumstances.
🔧 TODO.
Keywords: permission, capabilities, ownership, {{w|mitigation}}.
⚲ API
: {{The Linux Kernel/include|linux/stat.h}}
: {{The Linux Kernel/include|uapi/linux/stat.h}}
Basic classic UNIX authorization is based on ownership and tree access modes: reading, writing and execution.
Ownership is encoded by owning user id {{The Linux Kernel/id|uid_t}} and owning group id {{The Linux Kernel/id|gid_t}}.
{{The Linux Kernel/id|umode_t}} - just typedef used for encoding access mode. {{The Linux Kernel/id|S_IRUSR}} - minimal "read only by user/owner" access mode.
{{The Linux Kernel/id|S_IALLUGO}} - full access mode.
Please read the source for details for other modes.
Binary {{w|Access Control Matrix}} of access modes:
{| class="wikitable"
|+
!modes
!bits
!Read
!Write
!Execute
|-
|bit offset
|
|2
|1
|0
|-
|'''Others'''
|0-2
|or
|ow
|ox
|-
|'''Group'''
|3-5
|gr
|gw
|gx
|-
|'''User'''
|6-8
|ur
|uw
|ux
|}
: {{The Linux Kernel/man|2|chown}} ↪ {{The Linux Kernel/id|do_fchownat}} changes ownership for file or directory
: {{The Linux Kernel/man|2|chmod}} ↪ {{The Linux Kernel/id|do_fchmodat}} changes access mode for file or directory
: {{The Linux Kernel/man|2|access}}, {{The Linux Kernel/man|2|faccessat}} ↪ {{The Linux Kernel/id|do_faccessat}} checks access rights
Common authorization errors
: {{The Linux Kernel/id|EPERM}} – "Operation not permitted"
: {{The Linux Kernel/id|EACCES}} – "Permission denied"
🚀 Advanced features
: {{The Linux Kernel/man|5|acl}} {{The Linux Kernel/id|posix_acl}}
: {{The Linux Kernel/include|uapi/linux/capability.h}}
:: {{The Linux Kernel/man|2|capset}} and capget – set/get capabilities of thread(s)
:: {{The Linux Kernel/man|3|libcap}}
: {{The Linux Kernel/man|1|setpriv}} – run a program with different privilege settings
⚙️ Internals
: {{The Linux Kernel/id|may_open}} rejects unauthorized file opening
:: {{The Linux Kernel/id|inode_permission}} checks for access rights to a given inode
: {{The Linux Kernel/source|kernel/capability.c}} – POSIX capabilities system calls
📖 References
: {{w|File-system permissions}}
: {{The Linux Kernel/man|7|capabilities}}
===Credentials===
🔧 TODO.
Keywords: {{w|authentication}}, user IDs, group IDs, Process group ID, session ID.
⚲ API
: {{The Linux Kernel/include|uapi/asm-generic/stat.h}}
: {{The Linux Kernel/source|arch/x86/include/uapi/asm/stat.h}} – x86 stat structure definitions
: {{The Linux Kernel/include|linux/cred.h}}
:: struct {{The Linux Kernel/id|cred}} - the security context of a task
: {{The Linux Kernel/man|1|id}}, {{The Linux Kernel/man|1|test}} - shell utilities
: {{The Linux Kernel/man|2|getuid}} ↪ {{The Linux Kernel/id|current_uid}}
: {{The Linux Kernel/man|2|getgid}}
: {{The Linux Kernel/man|2|geteuid}} is used by utility {{The Linux Kernel/man|1|whoami}}
: Real, effective, and saved user/group IDs:
:: {{The Linux Kernel/man|2|getresuid}}, getresgid
:: {{The Linux Kernel/man|2|setreuid}}, setregid
: {{The Linux Kernel/man|2|setfsuid}} - set user identity used for filesystem checks
: {{The Linux Kernel/man|2|umask}} - sets file mode creation mask
: {{The Linux Kernel/man|1|stat}}, {{The Linux Kernel/man|2|stat}} ↪ {{The Linux Kernel/id|vfs_fstat}}, {{The Linux Kernel/id|vfs_fstatat}}
: {{The Linux Kernel/man|2|statx}} ↪ {{The Linux Kernel/id|do_statx}}
⚙️ Internals
: {{The Linux Kernel/id|kstat}}
: {{The Linux Kernel/id|make_kuid}} etc
: {{The Linux Kernel/id|from_kuid_munged}} etc
📖 References
: {{The Linux Kernel/doc|Credentials in Linux|security/credentials.html}}
: {{The Linux Kernel/man|7|credentials}}
: https://www.geeksforgeeks.org/real-effective-and-saved-userid-in-linux/
=== Cryptography ===
🔧 TODO
🗝️ Acronyms
: AES - {{w|Advanced Encryption Standard}}
⚲ API
: {{The Linux Kernel/id|AF_ALG}} - {{The Linux Kernel/doc|User Space Interface|crypto/userspace-if.html}}
: {{The Linux Kernel/include|linux/crypto.h}} - Scatterlist Cryptographic API.
: {{The Linux Kernel/include|crypto}}
⚙️ Internals
: {{The Linux Kernel/source|crypto}} – cryptographic API core
: {{The Linux Kernel/source|drivers/crypto}} – hardware crypto accelerator drivers
: {{The Linux Kernel/source|lib/crypto}} – crypto library helpers
: {{The Linux Kernel/source|arch/x86/crypto}} – x86 optimized crypto implementations
: {{The Linux Kernel/source|fs/crypto}} - per-file encryption
: {{The Linux Kernel/source|fs/ecryptfs}} eCrypt FS - Encrypted filesystem that operates on the VFS layer.
: {{w|dm-crypt}}, {{The Linux Kernel/source|drivers/md/dm-crypt.c}}
📖 References
: {{The Linux Kernel/doc|Linux Kernel Crypto API|crypto}}
: {{w|Crypto API (Linux)}}
: [https://www.kernel.org/doc/Documentation/devicetree/bindings/crypto/ devicetree/bindings/crypto]
: {{The Linux Kernel/ltp|kernel|crypto}}
=== Audit ===
The Linux {{w|audit framework}} records security-relevant events such as system calls, file access, and authentication attempts.
The audit daemon (auditd) collects records from the kernel via a netlink socket.
⚲ API
: {{The Linux Kernel/man|8|auditctl}} – configure audit rules
: {{The Linux Kernel/man|8|auditd}} – audit daemon
: {{The Linux Kernel/man|7|audit.rules}}
: {{The Linux Kernel/include|linux/audit.h}}
⚙️ Internals
: {{The Linux Kernel/source|kernel/audit.h}} – audit internal definitions
: {{The Linux Kernel/source|kernel/audit.c}} – audit gateway between kernel and user-space daemon
: {{The Linux Kernel/source|kernel/auditsc.c}} – system-call auditing
: {{The Linux Kernel/source|kernel/audit_tree.c}} – audit directory tree watches
: {{The Linux Kernel/source|kernel/audit_watch.c}} – audit filesystem path watches
: {{The Linux Kernel/source|kernel/audit_fsnotify.c}} – audit fsnotify integration
: {{The Linux Kernel/source|kernel/auditfilter.c}} – audit rule filtering
📖 References
: https://wiki.archlinux.org/title/Audit_framework
See also [[The_Linux_Kernel/Debugging#eBPF|eBPF and BPF]]
=== ... ===
Appendix for Security:
🔧 TODO
: {{The Linux Kernel/man|2|fcntl}} ↪ {{The Linux Kernel/id|do_fcntl}}
: {{The Linux Kernel/man|2|seccomp}} ↪ {{The Linux Kernel/id|do_seccomp}}
: {{The Linux Kernel/man|2|add_key}} ↪ {{The Linux Kernel/source|security/keys/keyctl.c}}
: {{w|chroot}}, {{The Linux Kernel/man|2|chroot}}
: {{w|Address_space_layout_randomization#Linux|Address space layout randomization}}
:: {{The Linux Kernel/man|8|setarch}} / {{The Linux Kernel/man|2|personality}}
📖 References
: {{The Linux Kernel/doc|Security-related interfaces|userspace-api/index.html#security-related-interfaces}}
:: {{The Linux Kernel/doc|No New Privileges Flag|userspace-api/no_new_privs.html}}
:: {{The Linux Kernel/doc|Seccomp BPF (SECure COMPuting with filters)|userspace-api/seccomp_filter.html}}
:: {{The Linux Kernel/doc|Landlock: unprivileged access control|userspace-api/landlock.html}}
:: {{The Linux Kernel/doc|Linux Security Modules|userspace-api/lsm.html}}
:: {{The Linux Kernel/doc|Introduction of non-executable mfd|userspace-api/mfd_noexec.html}}
:: {{The Linux Kernel/doc|Speculation Control|userspace-api/spec_ctrl.html}}
:: {{The Linux Kernel/doc|TEE (Trusted Execution Environment) Userspace API|userspace-api/tee.html}}
:: {{The Linux Kernel/doc|Executability check|userspace-api/check_exec.html}}
: {{The Linux Kernel/doc|Security|security}}
:: {{The Linux Kernel/doc|LSM - Linux Security Modules|security/lsm.html}} [https://docs.kernel.org/admin-guide/perf-security.html Perf events and tool security]
: {{The Linux Kernel/doc|Hardware vulnerabilities|admin-guide/hw-vuln}}
: {{w|Linux Security Modules}}
: {{The Linux Kernel/include|linux/security.h}} ⇾ {{The Linux Kernel/source|security}}
:: {{The Linux Kernel/source|security/selinux}} – {{w|SELinux}}, https://selinuxproject.github.io/
:: {{The Linux Kernel/source|security/apparmor}} – {{w|AppArmor}}
:: {{The Linux Kernel/source|security/landlock}} – Landlock unprivileged sandboxing (since 5.13)
:: {{The Linux Kernel/source|security/keys}} – key/keyring management
: {{The Linux Kernel/include|keys}}
: {{The Linux Kernel/include|linux/verification.h}}
: {{The Linux Kernel/source|certs}} – module signing certificates
: {{The Linux Kernel/ltp|kernel|security}}
: {{The Linux Kernel/ltp||cve}}
: http://kernsec.org/wiki/index.php/Main_Page
== Debugging ==
See [[The_Linux_Kernel/Debugging|Debugging the Linux kernel]]
==Multimedia subsystems==
⚙️ Internals
: {{The Linux Kernel/source|drivers/media}} – media subsystem (V4L2, DVB, etc.)
=== Graphics ===
Old graphics (not to be confused with v4l):
⚲ API
: {{The Linux Kernel/include|video}}
<!-- : {{The Linux Kernel/include|uapi/video}} old stuff -->
⚙️ Internals
: {{The Linux Kernel/source|drivers/video}} – framebuffer and video drivers
==== {{w|Direct Rendering Manager}} (DRM) ====
DRM is responsible for interfacing with GPUs of modern video cards.
DRM exposes an API that user-space programs can use to send commands and data to the GPU and perform operations such as configuring the mode setting of the display.
User-space programs can use the DRM API to command the GPU to do hardware-accelerated 3D rendering and video decoding, as well as {{w|General-purpose computing on graphics processing units|GPGPU}} computing.
⚲ API
: /sys/class/drm/
: {{The Linux Kernel/include|uapi/drm}}
:: {{The Linux Kernel/include|uapi/drm/drm.h}}
::: {{The Linux Kernel/id|DRM_IOCTL_BASE}}
::: {{The Linux Kernel/id|drm_version}}
⚙️ Internals
: {{The Linux Kernel/source|drivers/gpu/drm}} – DRM core and drivers
: {{The Linux Kernel/include|drm}}
: {{The Linux Kernel/include|drm_gem.h}} – Graphics Execution Manager Driver Interfaces
: {{The Linux Kernel/id|drm_dev_register}} registers {{The Linux Kernel/id|drm_device}}
=== {{w|Advanced Linux Sound Architecture}} (ALSA) ===
ALSA is a software framework and part of the Linux kernel that provides an API for sound card device drivers.
Some of the goals of the ALSA project at its inception were automatic configuration of sound-card hardware and graceful handling of multiple sound devices in a system.
The sound servers PulseAudio, JACK (low-latency professional-grade audio editing and mixing) and PipeWire, the higher-level abstraction APIs OpenAL, SDL audio, etc. work on top of ALSA and implemented sound card device drivers.
On Linux systems, ALSA succeeded the older {{w|Open Sound System}} (OSS).
⚲ API
: /proc/asound/cards, /sys/class/sound/
: {{The Linux Kernel/id|snd_card}} - central struct
: {{The Linux Kernel/id|snd_card_new}}
: {{The Linux Kernel/id|snd_card_register}}
: {{The Linux Kernel/id|snd_device_ops}}
: {{The Linux Kernel/id|snd_device_new}} creates an ALSA device component
: {{The Linux Kernel/include|uapi/sound/asound.h}}
: {{The Linux Kernel/include|sound/core.h}}
⚙️ Internals
: {{The Linux Kernel/source|sound}} – ALSA sound subsystem
: {{The Linux Kernel/source|sound/core/device.c}} – ALSA device management
: See [[#Sound SoC - ASoC|ASoC]]
📖 References
: {{The Linux Kernel/doc|ALSA (sound)|sound}}
: {{The Linux Kernel/doc|Writing an ALSA Driver|sound/kernel-api/writing-an-alsa-driver.html}}
: {{The Linux Kernel/ltp|kernel|sound}}
=== {{w|Video4Linux}} (V4L2) ===
V4L is a collection of device drivers and an API for supporting realtime video capture on Linux systems.
It supports many USB webcams, TV tuners, and related devices, standardizing their output, so programmers can easily add video support to their applications.
MythTV, tvtime and Tvheadend are typical applications that use the V4L framework.
⚲ API
: {{The Linux Kernel/id|v4l2_device_register}} registers {{The Linux Kernel/id|v4l2_device}}
: {{The Linux Kernel/id|video_register_device}} registers {{The Linux Kernel/id|video_device}}
: 👁 examples {{The Linux Kernel/source|drivers/media/test-drivers}}
📖 References
: {{w|Video4Linux}}
: {{The Linux Kernel/doc|media|driver-api/media}}
: {{The Linux Kernel/doc|V4L|userspace-api/media/drivers/}}
: [https://linuxtv.org/downloads/v4l-dvb-apis-new/driver-api/index.html Media subsystem kernel internal API]
==HID==
Generic human interface devices.
Don't confuse with [[../System#hiddev|hiddev]].
=== Input devices ===
Input device files are kind of [[#char devices|char devices]] with id {{The Linux Kernel/id|INPUT_MAJOR}}.
Classic input devices are keyboard and mouse.
⚲ API
: In shell: cat /proc/bus/input/devices
: {{The Linux Kernel/include|linux/input.h}}
: {{The Linux Kernel/id|devm_input_allocate_device}}, {{The Linux Kernel/id|input_register_device}}, {{The Linux Kernel/id|input_register_handler}}, {{The Linux Kernel/id|input_dev}}
: {{The Linux Kernel/id|input_report_key}} {{The Linux Kernel/id|input_sync}}
👁 Examples
: {{The Linux Kernel/source|drivers/input/mousedev.c}} – mouse device emulation
: {{The Linux Kernel/source|drivers/input/keyboard/atkbd.c}} – AT/PS2 keyboard driver
<big>⌨️</big> Hands on
sudo hexdump /dev/input/mice # dump your mouse movements events from your kernel
⚙️ Internals
: {{The Linux Kernel/source|drivers/input/input.c}} – input core
: {{The Linux Kernel/id|input_event}}
📖 References
: {{The Linux Kernel/doc|Input|input}}
: {{The Linux Kernel/ltp|kernel|input}}
=== HID devices ===
🔧 TODO
⚲ API
: {{The Linux Kernel/id|hid_device}} - device report descriptor. Operations: {{The Linux Kernel/id|hid_allocate_device}}, {{The Linux Kernel/id|hid_add_device}} . 👁 Example {{The Linux Kernel/id|usbhid_probe}}
: {{The Linux Kernel/include|uapi/linux/hid.h}}
: {{The Linux Kernel/include|linux/hid.h}}
=== Camera ===
🔧 TODO
⚲ API
: {{The Linux Kernel/include|uapi/linux/uvcvideo.h}}
📖 References
: {{The Linux Kernel/doc|UVC|userspace-api/media/drivers/uvcvideo.html}}
: {{The Linux Kernel/source|drivers/media/usb/uvc}} – USB Video Class driver
==HI device drivers==
This section is about low level drivers to human interface peripheral devices.
⚲ '''HID''' API
: {{The Linux Kernel/include|linux/hidraw.h}}
: {{The Linux Kernel/id|module_hid_driver}} registers {{The Linux Kernel/id|hid_driver}}
: {{The Linux Kernel/id|hid_hw_start}}
⚙️ Internals
: {{The Linux Kernel/id|hid_bus_type}}
: {{The Linux Kernel/source|drivers/hid}} – HID transport drivers
: {{The Linux Kernel/source|drivers/hid/hid-core.c}} – HID core parsing and event handling
: {{The Linux Kernel/source|drivers/accessibility}} – accessibility drivers (speakup)
: {{The Linux Kernel/source|drivers/leds}} – LED class drivers
: {{The Linux Kernel/source|samples/uhid/uhid-example.c}} - 👁 example of user mode HID driver
: {{The Linux Kernel/source|drivers/input}} : keyboard & mouse, misc, serio, tablet, touchscreen, gameport, joystick
:: <big>⌨️</big> Hands on
:: echo "module atkbd +pfl" | sudo tee /sys/kernel/debug/dynamic_debug/control
'''USB HID'''
⚲ '''HID''' API
: {{The Linux Kernel/id|USB_INTERFACE_CLASS_HID}} == {{The Linux Kernel/id|USB_CLASS_HID}}
⚙️ Internals
: {{The Linux Kernel/source|drivers/hid/usbhid}} – USB HID transport
:: {{The Linux Kernel/source|drivers/hid/usbhid/usbkbd.c}}: {{The Linux Kernel/id|usb_kbd_driver}}
:: {{The Linux Kernel/source|drivers/hid/usbhid/usbmouse.c}}: {{The Linux Kernel/id|usb_mouse_driver}}
📖 References
: <!--
find include/ -type f -name '*hid*' | sed 's-include/\(.*\)-* {{The Linux Kernel/include|\1}}-'
-->{{The Linux Kernel/doc|USB HID class|hid}}
=== Display drivers ===
🔧 TODO
🗝️ Acronyms
: FB - {{w|Linux framebuffer|Framebuffer}}
: GPU - {{w|Graphics processing unit}}
: TFT (LCD) - {{w|Thin-film-transistor liquid-crystal display}} used for 🤖 embedded devices
: MIPI - 📱 {{w|Mobile Industry Processor Interface}}
:: DBI - Display Bus Interface
:: DSI - {{w|Display Serial Interface}}
:: DCS - The Display Command Set
⚲ API
: cat /proc/fb
: ls -l /sys/class/graphics
: {{The Linux Kernel/include|video/mipi_display.h}}
: {{The Linux Kernel/include|linux/fb.h}}
: {{The Linux Kernel/id|register_framebuffer}}
: {{The Linux Kernel/id|FBTFT_REGISTER_DRIVER}}
: {{The Linux Kernel/id|fbtft_display}}
⚙️ Internals
: {{The Linux Kernel/source|drivers/video}} – framebuffer and video drivers
: {{The Linux Kernel/source|drivers/gpu}} – GPU and DRM drivers
👁 Examples
: {{The Linux Kernel/id|vivid_fb_init}}
: {{The Linux Kernel/id|fbtft_register_framebuffer}}
📖 References
: {{The Linux Kernel/doc|GPU Driver Developer’s Guide|gpu}}
: {{The Linux Kernel/doc|The Frame Buffer Device|fb}}
: {{The Linux Kernel/doc|Frame Buffer Library|driver-api/frame-buffer.html}}
: [https://lwn.net/Kernel/Index/#Device_drivers-Graphics LWN: Graphics]
=== Sound SoC - ASoC ===
ALSA System on Chip (ASoC) layer for 🤖 embedded systems.
ASoC is designed to handle complex audio processing and routing on low-power and resource-constrained systems, making it an ideal solution for embedded devices such as smartphones, tablets, and other IoT devices.
ASoC provides a comprehensive framework for audio drivers, enabling the creation of modular audio drivers that can be easily integrated with the rest of the kernel.
It also supports a wide range of audio interfaces, including I2S, PCM, AC97, and SPDIF, making it highly versatile and capable of handling a variety of audio formats.
One of the key features of ASoC is its ability to handle audio routing and processing using Digital Signal Processing (DSP) techniques.
This enables ASoC to support advanced audio features such as noise reduction, echo cancellation, and dynamic range compression, among others.
Overall, ASoC is a powerful and flexible subsystem that enables Linux to support a wide range of audio hardware in embedded devices.
It has become an essential component of many embedded Linux distributions and is widely used in the development of modern audio-enabled devices.
⚲ API
: {{The Linux Kernel/include|sound/soc.h}}
:: {{The Linux Kernel/id|snd_soc_card}}
::: is registered by {{The Linux Kernel/id|devm_snd_soc_register_card}} ⇾ {{The Linux Kernel/id|snd_soc_register_card}}
: {{The Linux Kernel/include|sound/soc-component.h}}
:: {{The Linux Kernel/id|snd_soc_component}}
::: {{The Linux Kernel/id|snd_soc_component_driver}}
::: {{The Linux Kernel/id|snd_soc_card}}
:::: {{The Linux Kernel/id|snd_card}}
:: {{The Linux Kernel/id|snd_soc_register_component}} {{The Linux Kernel/id|snd_soc_component_get_drvdata}} {{The Linux Kernel/id|snd_soc_component_read}} {{The Linux Kernel/id|snd_soc_component_update_bits}} {{The Linux Kernel/id|snd_soc_component_write}}
: {{The Linux Kernel/include|sound/soc-dai.h}} - {{The Linux Kernel/doc|DAI - Digital Audio Interface|sound/soc/dai.html}}: {{w|AC97}}, {{w|I2S}}, {{w|PCM}}
:: {{The Linux Kernel/id|snd_soc_dai}} {{The Linux Kernel/id|snd_soc_dai_driver}} {{The Linux Kernel/id|snd_soc_dai_get_drvdata}}
: {{The Linux Kernel/include|sound/soc-dpcm.h}} - {{The Linux Kernel/doc|DPCM - Dynamic PCM|sound/soc/dpcm.html}}
: {{The Linux Kernel/include|sound/soc-dapm.h}} - {{The Linux Kernel/doc|DAPM - Dynamic Audio Power Management|sound/soc/dapm.html}}
:: {{The Linux Kernel/id|snd_soc_dapm_route}}, {{The Linux Kernel/id|snd_soc_dapm_to_component}}, {{The Linux Kernel/id|snd_soc_dapm_widget}}
👁 Examples
: {{The Linux Kernel/source|sound/soc/generic/simple-card.c}}
: {{The Linux Kernel/source|sound/soc/generic/audio-graph-card.c}} uses {{The Linux Kernel/include|sound/graph_card.h}}
⚙️ Internals
: {{The Linux Kernel/source|sound/soc}} – ASoC framework
: {{The Linux Kernel/id|snd_soc_card}}
:: {{The Linux Kernel/id|snd_soc_dai_link}}
📖 References
: {{The Linux Kernel/doc|ASoC - ALSA SoC Layer|sound/soc}}
: {{The Linux Kernel/doc|ASoC Core API|sound/kernel-api/alsa-driver-api.html?#asoc}}
: https://www.alsa-project.org/wiki/ASoC
:: https://www.alsa-project.org/wiki/DAPM
🗝️ Acronyms SAI could be
: STM ''Serial'' Audio Interface: {{The Linux Kernel/source|sound/soc/stm/stm32_sai.h}}
: Freescale (FSL) ''Synchronous'' Audio Interface: {{The Linux Kernel/source|sound/soc/fsl/fsl_sai.h}}
{{BookCat}}
{{status|25%}}
h2a5p3a8fqb2cvlaehjsnrxldxp0myh
The Linux Kernel/wikis
0
427010
4640242
3850692
2026-06-13T19:15:21Z
Conan
3188
fix PA-RISC and Dracut typos, trim trailing spaces
4640242
wikitext
text/x-wiki
Linux kernel wikis statuses
'''https://wiki.kernel.org/'''
* [https://ext4.wiki.kernel.org/ EXT4]
* [https://btrfs.wiki.kernel.org/ btrfs]
* [https://i2c.wiki.kernel.org/ I2C]
* [https://parisc.wiki.kernel.org/ PA-RISC]
* [https://reiser4.wiki.kernel.org/ Reiser4]
* [https://perf.wiki.kernel.org/ Perf]
* [https://bottest.wiki.kernel.org/ bot tests]
** [https://kselftest.wiki.kernel.org/ kselftest]
* [https://sparse.docs.kernel.org/ Semantic parser]
* [https://raid.wiki.kernel.org/ RAID]
* [https://dracut.wiki.kernel.org/ Dracut] - an event driven initramfs infrastructure
* [https://backports.wiki.kernel.org/ Backports]
* [https://wireless.wiki.kernel.org/ Wireless]
* [https://xfs.wiki.kernel.org/ XFS]
* [https://hwmon.wiki.kernel.org/ hwmon]
'''Other'''
* https://www.linuxtv.org/wiki/
* https://gitlab.com/apparmor/apparmor/-/wikis/home
* https://wiki.linuxfoundation.org/
** TODO
'''Outdated, Historic, stalled, frozen wikis'''
* https://rt.wiki.kernel.org/ is being migrated to https://wiki.linuxfoundation.org/realtime/start
* https://ieee1394.wiki.kernel.org/ - 2016
* https://kgdb.wiki.kernel.org/ - 2014
* https://ckpt.wiki.kernel.org/ - 2013
* https://ata.wiki.kernel.org/ - 2013
* https://security.wiki.kernel.org/ - 2012, moved to http://kernsec.org/wiki/ and dead
* https://hail.wiki.kernel.org/ - 2010, cloud computing umbrella effort for several inter-related projects.
* https://modules.wiki.kernel.org/ - 2010
{{BookCat}}
dcyc9zu64q8xyeikknij6jg21magco5
4640243
4640242
2026-06-13T19:15:22Z
Conan
3188
remove dead security.wiki.kernel.org link (2012)
4640243
wikitext
text/x-wiki
Linux kernel wikis statuses
'''https://wiki.kernel.org/'''
* [https://ext4.wiki.kernel.org/ EXT4]
* [https://btrfs.wiki.kernel.org/ btrfs]
* [https://i2c.wiki.kernel.org/ I2C]
* [https://parisc.wiki.kernel.org/ PA-RISC]
* [https://reiser4.wiki.kernel.org/ Reiser4]
* [https://perf.wiki.kernel.org/ Perf]
* [https://bottest.wiki.kernel.org/ bot tests]
** [https://kselftest.wiki.kernel.org/ kselftest]
* [https://sparse.docs.kernel.org/ Semantic parser]
* [https://raid.wiki.kernel.org/ RAID]
* [https://dracut.wiki.kernel.org/ Dracut] - an event driven initramfs infrastructure
* [https://backports.wiki.kernel.org/ Backports]
* [https://wireless.wiki.kernel.org/ Wireless]
* [https://xfs.wiki.kernel.org/ XFS]
* [https://hwmon.wiki.kernel.org/ hwmon]
'''Other'''
* https://www.linuxtv.org/wiki/
* https://gitlab.com/apparmor/apparmor/-/wikis/home
* https://wiki.linuxfoundation.org/
** TODO
'''Outdated, Historic, stalled, frozen wikis'''
* https://rt.wiki.kernel.org/ is being migrated to https://wiki.linuxfoundation.org/realtime/start
* https://ieee1394.wiki.kernel.org/ - 2016
* https://kgdb.wiki.kernel.org/ - 2014
* https://ckpt.wiki.kernel.org/ - 2013
* https://ata.wiki.kernel.org/ - 2013
* https://hail.wiki.kernel.org/ - 2010, cloud computing umbrella effort for several inter-related projects.
* https://modules.wiki.kernel.org/ - 2010
{{BookCat}}
arcua06fw2maz756i27yerfux08q42e
4640244
4640243
2026-06-13T19:15:23Z
Conan
3188
move dracut wiki to outdated section, redirects to archive
4640244
wikitext
text/x-wiki
Linux kernel wikis statuses
'''https://wiki.kernel.org/'''
* [https://ext4.wiki.kernel.org/ EXT4]
* [https://btrfs.wiki.kernel.org/ btrfs]
* [https://i2c.wiki.kernel.org/ I2C]
* [https://parisc.wiki.kernel.org/ PA-RISC]
* [https://reiser4.wiki.kernel.org/ Reiser4]
* [https://perf.wiki.kernel.org/ Perf]
* [https://bottest.wiki.kernel.org/ bot tests]
** [https://kselftest.wiki.kernel.org/ kselftest]
* [https://sparse.docs.kernel.org/ Semantic parser]
* [https://raid.wiki.kernel.org/ RAID]
* [https://backports.wiki.kernel.org/ Backports]
* [https://wireless.wiki.kernel.org/ Wireless]
* [https://xfs.wiki.kernel.org/ XFS]
* [https://hwmon.wiki.kernel.org/ hwmon]
'''Other'''
* https://www.linuxtv.org/wiki/
* https://gitlab.com/apparmor/apparmor/-/wikis/home
* https://wiki.linuxfoundation.org/
** TODO
'''Outdated, Historic, stalled, frozen wikis'''
* https://rt.wiki.kernel.org/ is being migrated to https://wiki.linuxfoundation.org/realtime/start
* https://ieee1394.wiki.kernel.org/ - 2016
* https://kgdb.wiki.kernel.org/ - 2014
* https://ckpt.wiki.kernel.org/ - 2013
* https://ata.wiki.kernel.org/ - 2013
* https://hail.wiki.kernel.org/ - 2010, cloud computing umbrella effort for several inter-related projects.
* https://modules.wiki.kernel.org/ - 2010
* https://dracut.wiki.kernel.org/ - archived, redirects to archive.kernel.org
{{BookCat}}
jso0f47rhko9jikqiln9znobfts4jaq
4640245
4640244
2026-06-13T19:22:47Z
Conan
3188
reorganize wiki list: active/archived, remove dead links
4640245
wikitext
text/x-wiki
Linux kernel wikis statuses
'''Active'''
* [https://sparse.docs.kernel.org/ Sparse] - semantic parser
* https://www.linuxtv.org/wiki/
* https://gitlab.com/apparmor/apparmor/-/wikis/home
* https://realtime-linux.org/
'''Archived''' (redirected to archive.kernel.org, content still accessible)
* [https://ext4.wiki.kernel.org/ EXT4]
* [https://btrfs.wiki.kernel.org/ btrfs]
* [https://xfs.wiki.kernel.org/ XFS]
* [https://wireless.wiki.kernel.org/ Wireless]
* [https://raid.wiki.kernel.org/ RAID]
* [https://i2c.wiki.kernel.org/ I2C]
* [https://perfwiki.github.io/main/ Perf]
* [https://hwmon.wiki.kernel.org/ hwmon]
* [https://backports.wiki.kernel.org/ Backports]
* [https://parisc.wiki.kernel.org/ PA-RISC]
* [https://reiser4.wiki.kernel.org/ Reiser4]
* [https://bottest.wiki.kernel.org/ bot tests]
** [https://kselftest.wiki.kernel.org/ kselftest]
* [https://rt.wiki.kernel.org/ RT] - superseded by https://realtime-linux.org/
{{BookCat}}
r9exsajse6fr7c6tyj8c47rvccvbsxn
User:Conan/sandbox
2
438114
4640224
4632224
2026-06-13T17:58:31Z
Conan
3188
qqq
4640224
wikitext
text/x-wiki
:
: {{The Linux Kernel/include|linux/fs.h}} – declarations for the virtual filesystem and file operations.
: {{The Linux Kernel/include|linux/interrupt.h}} – interfaces for managing hardware and software interrupts.
: {{The Linux Kernel/include|linux/kernel.h}} – core kernel utility macros and common functions.
: {{The Linux Kernel/include|linux/mutex.h}} – mutex API for mutual exclusion synchronization.
: {{The Linux Kernel/include|linux/spinlock.h}} – spinlock primitives for low-level locking.
: {{The Linux Kernel/include|linux/sched.h}} – task scheduling and process management declarations.
: {{The Linux Kernel/include|linux/netdevice.h}} – structures and functions for network device drivers.
: {{The Linux Kernel/include|linux/skbuff.h}} – socket buffer structure and network packet handling.
: {{The Linux Kernel/include|linux/device.h}} – core definitions for the device model and driver framework.
: {{The Linux Kernel/include|linux/i2c.h}} – interfaces for I2C bus communication and device drivers.
: {{The Linux Kernel/include|linux/dma-mapping.h}} – APIs for managing DMA memory mapping for devices.
: {{The Linux Kernel/include|linux/regmap.h}} – register map abstraction layer for device drivers.
: {{The Linux Kernel/include|linux/io.h}} – low-level memory-mapped I/O access primitives.
: {{The Linux Kernel/include|linux/of.h}} – device tree interfaces for Open Firmware parsing.
: {{The Linux Kernel/include|linux/pci.h}} – interfaces for PCI device enumeration and configuration.
: {{The Linux Kernel/include|linux/platform_device.h}} – support for platform (non-discoverable) devices.
: {{The Linux Kernel/include|linux/pm_runtime.h}} – runtime power management framework interfaces.
qofhq0twlyz8defrbcbdxa51e2bgeri
Oberon/System Variants
0
446845
4640098
4639918
2026-06-13T14:18:33Z
PeterEasthope
660399
/* Source Texts in Oberon-07 */ Added punctuation.
4640098
wikitext
text/x-wiki
{{center|[[Oberon/Naming|<span class="mw-ui-button" style="border-style: solid; border-width: 1px; display: inline-block; margin: auto; width: 13em; text-align: center; Background-color:#F0FFFF;">← Naming</span>]] [[Oberon|<span class="mw-ui-button" style="border-style: solid; border-width: 1px; display: inline-block; margin: auto; width: 13em; text-align: center; Background-color:#F0FFFF;">↑ Oberon front page</span>]] [[Oberon/Licenses|<span class="mw-ui-button" style="border-style: solid; border-width: 1px; display: inline-block; margin: auto; width: 13em; text-align: center; Background-color:#F0FFFF;">Licenses →</span>]]}}
<br>
The Oberon system runs directly on several machine architectures and as a subsystem in several host [[w:Operating system|operating systems]]. Order of rows is approximately chronological. For each variant (row), a link in the second column leads to additional information.
<div id="VariantsTable"></div>
==Source Texts in [[Oberon/oreport|Oberon]]<ref name="Oberon"/>==
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| colspan="4" align="center" | Presentation as a table 
|-
! style="width: 15em" | Host Environment<ref name="HostEnvironment"/>
! style="width: 15em" | Software
! style="width: 15em" | Installation<br>archive
! style="width: 15em" | Installation<br>Instructions
|-
| [[w:Ceres_(workstation)|Ceres workstation]]<br>
[http://www.computerhistory.org/collections/catalog/X2321.2002A preserved Ceres]<br>
[http://www.computerhistory.org/collections/catalog/102674736 preserved Ceres]<br>
[http://www.computerhistory.org/collections/catalog/102722173 photo of Ceres 1]<br>
[[w:Field-programmable_gate_array|FPGA]] based [https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=165&No=830#contents Cyclone V GX].
| [[w:Oberon_(operating_system)|The Oberon System]]<br>[[Oberon/The Oberon System, V1 and V2|V1 and V2]]
| colspan="2" align="center" | [http://www.cpu-ns32k.net/Oberon.html Notes about Oberon] and [http://www.cpu-ns32k.net/Ceres.html implementation of Ceres]<!-- <br>by Udo Möller, 2023-25. --><ref name="VCFE2024"/><ref name="Ceres"/><br>[https://github.com/pcayuela/Project-Oberon/tree/main/CERES%20Oberon%20V4/ASCII Project-Oberon at Sourceforge]<br>[https://bitsavers.org/ETH https://bitsavers.org/ETH]
|-
| [[w:X86|X86 PC]] with [[w:MS_DOS|MS-DOS]] or [[w:FreeDOS|compatible OS]]
| [https://www.research-collection.ethz.ch/handle/20.500.11850/68911 ''Oberon for PC on an MS-DOS Base''](PDF), [[Oberon/Bibliography#Dis93|Dis93]]
| align="center" | [https://sourceforge.net/projects/dosoberon/files/ Sourceforge]<br>[https://github.com/Classic-Tools/DOSOberon Github]
| align="center" | README.TXT for System 3, Release 2.0 at [https://sourceforge.net/projects/dosoberon/files/DOS%20Oberon%20System%203%20Version%202.0/ Sourceforge],<br>and at [https://github.com/Classic-Tools/DOSOberon/blob/master/DOSOberon-S3R2.0/README.TXT Github]
|-
| Any system compatible with the included PAL library<ref name="PAL"/>
| Cross-platform ETH Oberon, System 3<ref name="Oberon"/>
| colspan="2" align="center" | [https://github.com/rochus-keller/OberonSystem3/ github]<ref name="PrecompiledCrossPlatformOberon"/>
|-
|[[w:ARM_architecture_family#32-bit_architecture|ARMv7]] as in the [[w:Raspberry_Pi#Flagship_series|Raspberry Pi 2B]].
|QEMU image and software operable on various Raspberry Pi machines.
| colspan="2" align="center" | [https://github.com/rochus-keller/OberonSystem3Native/releases/tag/2026-04-02 Github].
|}
{{b:User:PeterEasthope/ThreeBoxes
|'''Host Environment'''<ref name="HostEnvironment"/>
|'''Software'''
|'''Installation'''
|25px}}
{{b:User:PeterEasthope/ThreeBoxes
|[[w:Ceres_(workstation)|Ceres workstation]].<br>
[http://www.computerhistory.org/collections/catalog/X2321.2002A Preserved Ceres].<br>
[http://www.computerhistory.org/collections/catalog/102674736 Preserved Ceres].
|[[w:Oberon_(operating_system)|The Oberon System]],<br>
[[Oberon/The Oberon System, V1 and V2|V1 and V2]].
|[http://www.cpu-ns32k.net/Oberon.html Notes about Oberon] and [http://www.cpu-ns32k.net/Ceres.html implementation of Ceres].<ref name="VCFE2024"/><ref name="Ceres"/><br>
[https://github.com/pcayuela/Project-Oberon/tree/main/CERES%20Oberon%20V4/ASCII Project-Oberon at Sourceforge].
|85px}}
{{b:User:PeterEasthope/ThreeBoxes
|[[w:X86|X86 PC]] with [[w:MS_DOS|MS-DOS]] or [[w:FreeDOS|compatible OS]].
|[https://www.research-collection.ethz.ch/handle/20.500.11850/68911 ''Oberon for PC on an MS-DOS Base''](PDF), [[Oberon/Bibliography#Dis93|Dis93]].
|README.TXT for System 3, Release 2.0 at [https://sourceforge.net/projects/dosoberon/files/DOS%20Oberon%20System%203%20Version%202.0/ Sourceforge].<br>
At [https://github.com/Classic-Tools/DOSOberon/blob/master/DOSOberon-S3R2.0/README.TXT Github].
|85px}}
{{b:User:PeterEasthope/ThreeBoxes
|Any system compatible with the included PAL library.<ref name="PAL"/>
|Cross-platform ETH Oberon, System 3.<ref name="Oberon"/>
|[https://github.com/rochus-keller/OberonSystem3/ Github].<ref name="PrecompiledCrossPlatformOberon"/>
|50px}}
{{b:User:PeterEasthope/ThreeBoxes
|[[w:ARM_architecture_family#32-bit_architecture|ARMv7]] as in the [[w:Raspberry_Pi#Flagship_series|Raspberry Pi 2B]].
|QEMU image and software operable on various Raspberry Pi machines.
|[https://github.com/rochus-keller/OberonSystem3Native/releases/tag/2026-04-02 Github].
|80px}}
==Source Texts in [https://cseweb.ucsd.edu/~wgg/CSE131B/oberon2.htm Oberon-2]==
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| colspan="4" align="center" | Presentation as a table 
|-
! colspan="4" align="center" <!-- style="border-top: solid 2px" --> | Source Texts in [https://cseweb.ucsd.edu/~wgg/CSE131B/oberon2.htm Oberon-2]
|-
! style="width: 15em" | Host Environment<ref name="HostEnvironment"/>
! style="width: 15em" | Software
! style="width: 15em" | Installation<br>archive
! style="width: 15em" | Installation<br>Instructions
|- <div id="ETHO"></div>
|Bare [[w:X86|X86 PC]]<ref name="Transmeta"/>
| [[Oberon/ETH Oberon|ETH Oberon]], formerly System 3, PC-Native Oberon.<br />[[w:Oberon_(operating_system)#Native_Oberon| Wikipedia]]
| align="center" | [https://sourceforge.net/projects/nativeoberon/files/nativeoberon/ SourceForge]
| align="left" | [[Oberon/ETH Oberon/install|ETHZ, actual diskettes]]<br>
[[Oberon/ETH_Oberon/QEMUinstall|Hypervisor using diskette images]].<br>
[https://www.youtube.com/watch?v=Do2O1yFrnos Oberon Tutorials] at YouTube<ref name="YouTube"/>
|-
| [[w:X86|X86 PC]] with [[w:MS_DOS|MS-DOS]] or [[w:FreeDOS|compatible OS]]
| DOS Oberon System3, Version 2.0, [[Oberon/Bibliography#Dis93|Dis93]]<ref name="DOS"/>
| align="center" | [https://sourceforge.net/projects/dosoberon/files/DOS%20Oberon%20System%203%20Version%202.0/ SourceForge]<br />[https://github.com/Classic-Tools/DOSOberon/tree/master/DOSOberon-S3R2.0 Github]
| align="center" | [https://sourceforge.net/projects/dosoberon/files/DOS%20Oberon%20System%203%20Version%202.0/README.TXT/download SourceForge]<br />[https://github.com/Classic-Tools/DOSOberon/blob/master/DOSOberon-S3R2.0/README.TXT Github]
|-
| X86 PC with MS Windows
| ETH Oberon for Windows<ref name="Windows"/>
| align="center" | [https://github.com/pcayuela/oldftpETHZOberon/tree/master/System3/Win95NT Github]<ref name="Win95NT"/>
| align="center" | [https://github.com/pcayuela/oldftpETHZOberon/tree/master/System3/Win95NT/PlugIn readme.txt]
|-
| HP Alpha [aka DEC AXP] with OpenVMS
| [http://www.modulaware.com/mwovms.htm 64 bit (Linz-)Oberon System], [[Oberon/Linz Oberon, V4|V4]]
| align="center" | [http://www.modulaware.com/zel/aos/ modulaware.com]
| align="center" | [http://www.modulaware.com/zel/aos/ OpenVMS Alpha]
|-
| X86, ARM, ARMv7,<br>[[w:RISC-V|RISC-V]] or [[w:MIPS_architecture|MIPS]] with Linux
| [http://oberon.wikidot.com/oberon-linux-revival-olr Oberon Linux Revival, OLR]<ref name="OLR"/>
| colspan="2" align="center" | [http://oberon.wikidot.com/ P. Matthias]
|-
| X86 PC with Linux, UltraSPARC with Solaris or Sun3 with SunOS
| [http://www.mathematik.uni-ulm.de/oberon/ Ulm Oberon]
| colspan="2" align="center" | [http://www.mathematik.uni-ulm.de/oberon/ulm.html HTML page] and manual pages in the downloads
|- <div id="V4"></div>
| X86 PC with various operating systems<ref name="Linz"/>
| [http://ssw.jku.at/Research/Projects/Oberon.html Linz-Oberon], [[Oberon/Linz Oberon, V4|V4]]
| align="center" | [http://olymp.idle.at/tanis/oberon.linux.html olymp.idle.at]<ref name="olymp"/> and [https://sourceforge.net/projects/oberon/files/ SourceForge]
| align="center" | [http://olymp.idle.at/~tanis/INSTALL INSTALL at olymp.idle.at]<br>[https://sourceforge.net/p/oberon/wiki/Home/ Wiki at Sourceforge]
|-
| X86 PC with Windows or with *nix and Wine
| [[w:BlackBox Component Builder|BlackBox Component Builder]], an [[w:Integrated_development_environment|IDE]] for [[w:Component_Pascal|Component Pascal]]
<!-- | [[/BB/]] -->
| colspan="2" align="center" | [https://github.com/BlackBoxCenter BB Component Builder download].
|-
| [[w:Common Language Infrastructure|.NET and CLI]]
| [[w:Component_Pascal|Gardens Point Component Pascal, GPCP]] application for .NET and CLI<ref name="GPCP"/>
| colspan="2" align="center" | [https://github.com/k-john-gough/gpcp Current project at github] <br> [https://web.archive.org/web/20120911105411/http://plas.fit.qut.edu.au/gpcp/ Original site from Archive.org]
|-
| [[w:Java Virtual Machine|JVM]]
| [[w:Component_Pascal|Gardens Point Component Pascal]] application for JVM<ref name="GPCP"/>
| colspan="2" align="center" | [https://github.com/k-john-gough/gpcp Current project at github] <br> [https://web.archive.org/web/20120911105411/http://plas.fit.qut.edu.au/gpcp/ Original site from Archive.org]
|-
| [[w:Linux|Linux]]-[[w:IA-32|386]], [[w:Raspberry_Pi_OS|Rasbian]], [[w:Microsoft_Windows|Windows]]
| Ofront Oberon to C translator
| colspan="2" align="center" | Josef Templ, [https://github.com/jtempl/ofront/ github]
|-
| [[w:Linux|Linux]], [[w:OS X|OS X]] or [[w:MS Windows|MS Windows]]
| [https://ecs.openbrace.org/ Eigen Compiler Suite]
| align="center" | [https://ecs.openbrace.org/releases/ Releases]
| align="center" | [https://ecs.openbrace.org/manual User Manual]
|-
| Subsystem for Blackbox
| Ofront+ Oberon to C translator
| align="center" | various Oberon dialects
| colspan="2" align="center" | [https://github.com/Oleg-N-Cher/OfrontPlus/ github]
|}
{{User:PeterEasthope/ThreeBoxes
|'''Host Environment'''<ref name="HostEnvironment"/>
|'''Software'''
|'''Installation'''
|25px}}
{{User:PeterEasthope/ThreeBoxes
|1=Bare [[w:X86|X86 PC]]<ref name="Transmeta"/>
|2=[[Oberon/ETH Oberon|ETH Oberon]], formerly System 3, PC-Native Oberon. [[w:Oberon_(operating_system)#Native_Oberon|Wikipedia]] 
|3=[https://sourceforge.net/projects/nativeoberon/files/nativeoberon/ SourceForge]. [[Oberon/ETH_Oberon/install|ETHZ, real diskettes]]. [[Oberon/ETH_Oberon/QEMUinstall|Hypervisor with diskette images]]. [https://www.youtube.com/watch?v=Do2O1yFrnos Oberon Tutorials at YouTube]<ref name="YouTube"/>
|4=90px}}
{{User:PeterEasthope/ThreeBoxes
| [[w:X86|X86 PC]] with [[w:MS-DOS|MS-DOS]] or [[w:FreeDOS|compatible OS]]
| DOS Oberon System3, Version 2.0, [[Oberon/Bibliography#Dis93|Dis93]]<ref name="DOS"/>
| [https://sourceforge.net/projects/dosoberon/files/DOS%20Oberon%20System%203%20Version%202.0/ SourceForge] and [https://github.com/Classic-Tools/DOSOberon/tree/master/DOSOberon-S3R2.0 Github]
| 50px}}
{{b:User:PeterEasthope/ThreeBoxes
| X86 PC with MS Windows
| ETH Oberon for Windows<ref name="Windows"/>
| [https://github.com/pcayuela/oldftpETHZOberon/tree/master/System3/Win95NT Github]<ref name="Win95NT"/> including [https://github.com/pcayuela/oldftpETHZOberon/tree/master/System3/Win95NT/PlugIn readme.txt].
| 25px}}
{{b:User:PeterEasthope/ThreeBoxes
| HP Alpha [aka DEC AXP] with OpenVMS
| [http://www.modulaware.com/mwovms.htm 64 bit (Linz-)Oberon System], [[Oberon/Linz Oberon, V4|V4]]
| [http://www.modulaware.com/zel/aos/ modulaware.com, OpenVMS Alpha]
| 45px}}
{{b:User:PeterEasthope/ThreeBoxes
| X86, ARM, ARMv7,<br>[[w:RISC-V|RISC-V]] or [[w:MIPS_architecture|MIPS]] with Linux
| [http://oberon.wikidot.com/oberon-linux-revival-olr Oberon Linux Revival, OLR]<ref name="OLR"/>
| [http://oberon.wikidot.com/ P. Matthias]
| 45px}}
{{b:User:PeterEasthope/ThreeBoxes
| X86 PC with Linux, UltraSPARC with Solaris or Sun3 with SunOS
| [http://www.mathematik.uni-ulm.de/oberon/ Ulm Oberon]
| [http://www.mathematik.uni-ulm.de/oberon/ulm.html HTML page] and manual pages in the downloads
| 45px}}
{{b:User:PeterEasthope/ThreeBoxes
| X86 PC with various operating systems<ref name="Linz"/>
| [http://ssw.jku.at/Research/Projects/Oberon.html Linz-Oberon], [[Oberon/Linz Oberon, V4|V4]]
| [http://olymp.idle.at/tanis/oberon.linux.html olymp.idle.at]<ref name="olymp"/>. [https://sourceforge.net/projects/oberon/files/ SourceForge]. [http://olymp.idle.at/~tanis/INSTALL INSTALL at olymp.idle.at]. [https://sourceforge.net/p/oberon/wiki/Home/ Wiki at Sourceforge]
| 65px}}
{{b:User:PeterEasthope/ThreeBoxes
| X86 PC with Windows or with *nix and Wine
| [[w:BlackBox Component Builder|BlackBox Component Builder]], an [[w:Integrated_development_environment|IDE]] for [[w:Component_Pascal|Component Pascal]].
| [https://github.com/BlackBoxCenter BB Component Builder download].
| 45px}}
{{b:User:PeterEasthope/ThreeBoxes
| [[w:Common Language Infrastructure|.NET and CLI]]
| [[w:Component_Pascal|Gardens Point Component Pascal, GPCP]] application for .NET and CLI<ref name="GPCP"/>
| [https://github.com/k-john-gough/gpcp Current project at github]<br> [https://web.archive.org/web/20120911105411/http://plas.fit.qut.edu.au/gpcp/ Original site from Archive.org]
| 65px}}
{{b:User:PeterEasthope/ThreeBoxes
| [[w:Java Virtual Machine|JVM]]
| [[w:Component_Pascal|Gardens Point Component Pascal]] application for JVM<ref name="GPCP"/>
| [https://github.com/k-john-gough/gpcp Current project at github] <br> [https://web.archive.org/web/20120911105411/http://plas.fit.qut.edu.au/gpcp/ Original site from Archive.org]
| 45px}}
{{b:User:PeterEasthope/ThreeBoxes
| [[w:Linux|Linux]]-[[w:IA-32|386]], [[w:Raspberry_Pi_OS|Rasbian]], [[w:Microsoft_Windows|Windows]]
| Ofront Oberon to C translator
| Josef Templ, [https://github.com/jtempl/ofront/ github]
| 25px}}
{{b:User:PeterEasthope/ThreeBoxes
| [[w:Linux|Linux]], [[w:OS X|OS X]] or [[w:MS Windows|MS Windows]]
| [https://ecs.openbrace.org/ Eigen Compiler Suite]
| [https://ecs.openbrace.org/releases/ Releases] and [https://ecs.openbrace.org/manual User Manual].
| 25px}}
{{b:User:PeterEasthope/ThreeBoxes
| Subsystem for Blackbox
| Ofront+ Oberon to C translator
| [https://github.com/Oleg-N-Cher/OfrontPlus/ OfrontPlus at github] for various Oberon dialects.
| 45px}}
==Source Texts in [https://gitlab.inf.ethz.ch/felixf/oberon/-/tree/main/docu Active Oberon]==
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| colspan="4" align="center" | Presentation as a table 
|-
! style="width: 15em" | Host Environment<ref name="HostEnvironment"/>
! style="width: 15em" | Software
! style="width: 15em" | Installation<br>archive
! style="width: 15em" | Installation<br>Instructions
|- <div id="A2"></div>
| Bare [[w:X86|X86 PC]].
| [[Oberon/A2|A2 = AOS = Bluebottle]],<br />[[w:Bluebottle_OS|Bluebottle in Wikipedia]].
| align="center" | [https://sourceforge.net/projects/a2oberon/files/ SourceForge].
| align="center" | [[Oberon/A2#The_A2_Repository|Contemporary instructions]].<ref name="portability"/>
|-
| X86 PC with Solaris,<br>Linux or MacOSX (Darwin).
| [[Oberon/A2#Installing_and_Running_UnixAOS|UnixAos = UnixA2]].
| align="center" | [http://www.informatik.uni-bremen.de/~fld/UnixAos/ Uni-Bremen, G. Feldmann].
| align="center" | [http://www.informatik.uni-bremen.de/~fld/UnixAos/Readme.txt Readme.txt].
|-
| X86 PC with A2 or UnixA2 or WinA2.
| [[Oberon/A2#Oberon_Subsystem|Oberon subsystem of A2]].
| colspan="2" align="center" | Included in A2, UnixA2 and WinA2.
|-
|}
{{User:PeterEasthope/ThreeBoxes
|'''Host Environment'''<ref name="HostEnvironment"/>
|'''Software'''
|'''Installation'''
|25px}}
{{User:PeterEasthope/ThreeBoxes
| Bare [[w:X86|X86 PC]].
| [[Oberon/A2|A2 = AOS = Bluebottle]].<br>[[w:Bluebottle_OS|Bluebottle in Wikipedia]].
| [https://sourceforge.net/projects/a2oberon/files/ SourceForge].<br>[[Oberon/A2#Installing_and_Running_UnixAOS|Contemporary instructions]].<ref name="portability"/>
| 50px}}
{{User:PeterEasthope/ThreeBoxes
| X86 PC with Solaris,<br>Linux or MacOSX (Darwin).
| [[Oberon/A2#Installing_and_Running_UnixAOS|UnixAos = UnixA2]].
| [http://www.informatik.uni-bremen.de/~fld/UnixAos Uni-Bremen, G. Feldmann]. [http://www.informatik.uni-bremen.de/~fld/UnixAos/Readme.txt Readme.txt].
| 50px}}
{{User:PeterEasthope/ThreeBoxes
| X86 PC with A2 or UnixA2 or WinA2.
| [[Oberon/A2#Oberon_Subsystem|Oberon subsystem of A2]].
| Included in A2, UnixA2 and WinA2.
| 50px}}
==Source Texts in [https://people.inf.ethz.ch/wirth/Oberon/index.html Oberon-07]==
{| role="presentation" class="wikitable mw-collapsible <!-- mw-collapsed -->"
| colspan="4" align="center" | Presentation as a table 
|-
! style="width: 15em" | Host Environment<ref name="HostEnvironment"/>
! style="width: 15em" | Software
! style="width: 15em" | Installation<br>archive
! style="width: 15em" | Installation<br>Instructions
|-
| id="V5" | [[w:Field-programmable_gate_array|FPGA]] [[w:Reduced_instruction_set_computer|RISC]]
| [[Oberon/V5|V5]],<br>[[w:Oberon_(operating_system)#Project_Oberon_2013|Oberon V5]] in Wikipedia
| colspan="2" align="center" | [https://www.inf.ethz.ch/personal/wirth/ N. Wirth]<br>[http://www.projectoberon.net/ P. Reed]
|-
| id="RISCemu" | [[Oberon/Android]], [[w:Linux|Linux]],<br>
[[w:MacOS|Mac OS X]], [[w:Unix|Unix]] or<br>
[[w:Windows_NT|MS Windows]] on a wide variety of machines<ref name="RISCemuRequirements"/>
| RISC Emulator written in C.
| align="center" colspan="2" rowspan="2" | [https://github.com/pdewacht/oberon-risc-emu P. De Wachter]
|-
| Unix command line
| Norebo<ref name="norebo"/>
<!-- | colspan="2" align="center" | [https://github.com/pdewacht/project-norebo P. De Wachter] -->
|-
| <span id="ExtendedOberon"><span/> | Oberon [[w:Reduced_instruction_set_computer|RISC]] processor or emulation of it<ref name="ExtOberonFootnote"/>
| [[Oberon/Extended_Oberon|Extended Oberon]]
| colspan="2" align="center" | A. Pirklbauer<br>[https://github.com/andreaspirklbauer/Oberon-extended/blob/master/README.md README] [https://github.com/andreaspirklbauer/Oberon-extended/blob/master/Documentation/ Documentation]<br>[https://github.com/andreaspirklbauer/Oberon-extended Oberon{{nbhyph}}extended]<ref name="ExtOberonName"/><br>[https://github.com/andreaspirklbauer/Oberon-retro-compiler Oberon-retro-compiler]
|-
| [[w:Web_browser|Web browser]]
| Emulator written in [[w:JavaScript|JavaScript]].
| rowspan="2" colspan="2" align="center" | [https://github.com/schierlm/OberonEmulator/ Michael Schierl].
|-
| [[w:Web_browser|Web browser]]
| Emulator written in [[w:Java_(programming language)|Java]].
|-
| [[w:Linux|Linux]] or [[w:MacOS|Mac OS]]
| [https://github.com/io-core/io/ Integrated Oberon] with an emulator written in the [[w:Go_(programming_language)|Go programming language]].
| colspan="2" align="center" | [https://github.com/io-core/io/ Charles Perkins]
|-
| id="POL" | ARMv7, [[w:RISC-V|RISC-V]] or [[w:MIPS_architecture|MIPS]] running Linux.
[[w:RISC-V|RISC-V]] running [[w:FreeRTOS|FreeRTOS]] on Sipeed M1s, Linux 32bit and Linux 64bit.
| Project Oberon Linux, POL;<br>Using native compiler and Linux Kernel functions.
| align="center" colspan="2" rowspan="2" | [http://oberon.wikidot.com/ P. Matthias]
|-
| rowspan="2" | [[w:Java Virtual Machine|JVM]]
| Project Oberon using oberonc compiler from L. Boasso
<!-- | colspan="2" |P. Matthias -->
|-
| [https://github.com/lboasso/oberonc Oberonc] compiler for Oberon-07.<ref name="TypeRules"/>
| colspan="2" align="center" | [https://github.com/io-core/io/ L. Boasso]
|-
| Any system capable of running QEMU
| [https://github.com/io-core/qemu-risc6 qemu-risc6] fork of QEMU
| colspan="2" align="center" | [https://github.com/io-core/ Charles Perkins].
|-
| Any system capable of running [https://github.com/aixp/ProjectOberon-BlackBox BlackBox Component Builder]
| Oberon-07 compiler written in Oberon-2.
| colspan="2" align="center" | [https://github.com/aixp/ProjectOberon-BlackBox Alexander V. Shiryaev]
|-
| [[w:Linux|Linux]], [[w:OS X|OS X]] or [[w:MS Windows|MS Windows]]
| [https://github.com/solbjorg/oberon-riscv-emu oberon-riscv-emu]
| align="center" colspan="2" rowspan="2" | [https://github.com/solbjorg/oberon-riscv-emu Rikke Solbjørg]
|-
| [[w:Linux|Linux]], [[w:OS X|OS X]] or [[w:MS Windows|MS Windows]] with [https://github.com/solbjorg/oberon-riscv-emu oberon-riscv-emu] or a bare [[w:RISC-V|RISC-V]] machine.
| [https://github.com/solbjorg/oberon-riscv oberon-riscv]
<!-- | colspan="2" align="center" | [https://github.com/solbjorg/oberon-riscv Rikke Solbjørg] -->
|}
{{Reflist|refs=
<ref name="Oberon">The Oberon language evolved through several variations including [https://people.inf.ethz.ch/wirth/Oberon/Oberon.Report.pdf Oberon-90] in which Cross-platform Oberon is written. The differences between the latest 1990 version of Oberon and the 1991 superset, Oberon-2, are explained in bibliography references [[Oberon/authors#M|Moe91]] and [[Oberon/authors#M|MoW91a]].</ref>
<ref name="HostEnvironment">In some cases the host environment is a bare machine. Otherwise it is a machine running another system.</ref>
<ref name="VCFE2024">[https://www.youtube.com/watch?v=cEdHiE-HoGE&t=2145s Presentation at VCFE 23.0], September 2024. Jump to 35:46.</ref>
<ref name="Ceres">Hypothetically a Ceres can also be built with [http://cpu-ns32k.net/Gilbert.html wire wrap].</ref>
<ref name="PrecompiledCrossPlatformOberon">Links to precompiled images for MS Windows, Linux and MacOS are at the bottom of the Github page.</ref>
<ref name="PAL">PAL = Platform Abstraction Layer written by Rochus Keller and included with Cross-platform Oberon. Precompiled systems are currently available for Linux x86 & x64, Mac M1 & x64 and Windows x86 & x64. Porting to another system is primarily porting the PAL library.</ref>
<ref name="Transmeta">Including the [[w:Transmeta_Crusoe|Transmeta Crusoe 5400]] and the [[w:StrongARM|StrongARM SA 110 and SA 1110]].</ref>
<ref name="YouTube">A PC can boot from an Oberon0 diskette in an internal drive. In that case installation of ETH Oberon can proceed directly without involvement of DOS. Part 2 in the series includes a helpful explanation of the user interface.</ref>
<ref name="DOS">Sources for [https://github.com/Project-Oberon/Source-Code/tree/main/DOS%20Oberon%20System%203%20Release%202.0 Release 2.0] are available. ASCII sources can be read with any contemporary editor. The Text sources should be read in an Oberon system; otherwise display by Linux gedit may be tolerable.</ref>
<ref name="Windows">Also referred to as "ETH Oberon Plugin for Windows" and "Spirit of Oberon System3 for Windows".</ref>
<ref name="Win95NT">A server at ftp://ftp.ssw.uni-linz.ac.at/ remains accessible to an FTP client and installation archives can be retrieved. The Firefox browser is unable to navigate into the subdirectories.</ref>
<ref name="OLR">Sources following ETH Oberon closely. Note "Current state ... network not working."</ref>
<ref name="Linz">V4 can also execute on obsolete systems [[w:Motorola_68000_series|680x0 MacIntosh]] and [[w:PowerMac|PowerMac]] with [[w:MacOS|MacOS]] to version 9 inclusive, [[w:Amiga|Amiga]], [[w:Atari_ST|Atari ST]], [[w:DECstation|DECstation]], [[w:HPUX|HP-UX]], [[w:IBM_RISC_Dystem/6000|IBM RS/6000]], [[w:SGI_IRIS|SGI IRIS]] and [[w:Sparc|SPARC]] with [[w:Solaris_(operating_system)|Solaris]]. Refer to [https://sourceforge.net/projects/oberon/ https://sourceforge.net/projects/oberon/] and [https://ssw.jku.at/Research/Projects/Oberon.html https://ssw.jku.at/Research/Projects/Oberon.html]. A native version has not been produced.</ref>
<ref name="olymp">olymp.idle.at has verion 1.7.02. The last version at JKU Linz is 1.5.</ref>
<ref name="GPCP">GPCP provides a compiler for Component Pascal; not a full Oberon subsystem.</ref>
<ref name="portability">During the summer of 2019 work was underway at the ETHZ to improve portability and other aspects. Until the work is completed, the user may encounter difficulties with the native variant of A2. The Oberon subsystem remains available in UnixA2 and WinA2. A notice was in the [http://lists.inf.ethz.ch/pipermail/oberon/ mailing list at 2019-07-03]. Patience is advised.</ref>
<ref name="RISCemuRequirements">The SDL2 library and a C99 capable C compiler are required. GCC or Clang suffice for compiling the emulator.</ref>
<ref name="norebo">A software allowing execution of an Oberon command without the Oberon system and interface. The Oberon compiler, for example, can be executed at the Unix command line.</ref>
<ref name="ExtOberonFootnote">Extended Oberon does not modify the RISC processor; it modifies only the Oberon system which runs on it.</ref>
<ref name="ExtOberonName">Nomenclature explained in the [https://lists.inf.ethz.ch/pipermail/oberon/2023/016552.html Oberon mailing list at 2023-01-18].</ref>
<ref name="TypeRules">The [https://github.com/lboasso/oberonc/blob/master/doc/TypeRules.md TypeRules document] is noteworthy. Specific aspects of [[w:Data_type|types]] are discussed in the [http://lists.inf.ethz.ch/pipermail/oberon/ mailing list] beginning at 2019-12-07.</ref>
}}
<br>
{{center|[[Oberon/Naming|<span class="mw-ui-button" style="border-style: solid; border-width: 1px; display: inline-block; margin: auto; width: 13em; text-align: center; Background-color:#F0FFFF;">← Naming</span>]] [[Oberon|<span class="mw-ui-button" style="border-style: solid; border-width: 1px; display: inline-block; margin: auto; width: 13em; text-align: center; Background-color:#F0FFFF;">↑ Oberon front page</span>]] [[Oberon/Licenses|<span class="mw-ui-button" style="border-style: solid; border-width: 1px; display: inline-block; margin: auto; width: 13em; text-align: center; Background-color:#F0FFFF;">Licenses →</span>]]}}
{{BookCat}}
rzgerfx1corzq6zw805bo1anfbwbh4i
Wikibooks:GUS2Wiki
4
447875
4640227
4639215
2026-06-13T18:05:48Z
Alexis Jazz
470964
Updating gadget usage statistics from [[Special:GadgetUsage]] ([[phab:T121049]])
4640227
wikitext
text/x-wiki
{{#ifexist:Project:GUS2Wiki/top|{{/top}}|This page provides a historical record of [[Special:GadgetUsage]] through its page history. To get the data in CSV format, see wikitext. To customize this message or add categories, create [[/top]].}}
The following data is cached, and was last updated 2026-06-13T08:01:44Z. A maximum of {{PLURAL:5000|one result is|5000 results are}} available in the cache.
{| class="sortable wikitable"
! Gadget !! data-sort-type="number" | Number of users !! data-sort-type="number" | Active users
|-
|BookCat || 106 || 6
|-
|CleanDeleteReasons || 55 || 1
|-
|CommentsInLocalTime || 667 || 6
|-
|DeluxeBar || 208 || 7
|-
|GetCollection || 552 || 0
|-
|HotCat || 7 || 4
|-
|Massblock || 2 || 2
|-
|OneClickWelcomer || 27 || 3
|-
|SpecialSearch || 664 || 1
|-
|UTCLiveClock || 368 || 7
|-
|background-awesomeness || 785 || 4
|-
|bottomtabs || 431 || 3
|-
|commons-file || data-sort-value="Infinity" | Default || data-sort-value="Infinity" | Default
|-
|contribsrange || 330 || 5
|-
|markAdmins || 142 || 11
|-
|markblocked || 58 || 4
|-
|modrollback || 83 || 4
|-
|navpop || 843 || 10
|-
|purge || 620 || 10
|-
|rightsfilter || 372 || 5
|-
|searchbox || 210 || 4
|-
|sidebartranslate || 503 || 4
|-
|sixtabs || 312 || 0
|-
|subject-pages || 611 || 4
|-
|subpages || 29 || 6
|-
|wiked || 668 || 3
|-
|wikidialog || data-sort-value="Infinity" | Default || data-sort-value="Infinity" | Default
|}
* [[Special:GadgetUsage]]
* [[m:Meta:GUS2Wiki/Script|GUS2Wiki]]
<!-- data in CSV format:
BookCat,106,6
CleanDeleteReasons,55,1
CommentsInLocalTime,667,6
DeluxeBar,208,7
GetCollection,552,0
HotCat,7,4
Massblock,2,2
OneClickWelcomer,27,3
SpecialSearch,664,1
UTCLiveClock,368,7
background-awesomeness,785,4
bottomtabs,431,3
commons-file,default,default
contribsrange,330,5
markAdmins,142,11
markblocked,58,4
modrollback,83,4
navpop,843,10
purge,620,10
rightsfilter,372,5
searchbox,210,4
sidebartranslate,503,4
sixtabs,312,0
subject-pages,611,4
subpages,29,6
wiked,668,3
wikidialog,default,default
-->
2kohm1dlig48lnk9700nr3di7is6357
Mirad Grammar/Stress
0
448086
4640198
4638608
2026-06-13T16:25:01Z
ShakespeareFan00
46022
4640198
wikitext
text/x-wiki
<noinclude>{{status|100%}}</noinclude>
: Although '''''stress''''' in Mirad is not marked and is not phonemic, i.e. not semantically distinctive, in all words of more than one syllable, the stress occurs on the '''''last, non-final vowel''''', including glided vowels. The following chart gives some examples, where the syllables are separated by a plus sign and are marked with a stress (<big>'''ˈ'''</big>)
::{| class="wikitable" style="background:lightyellow; font-size:smaller; margin-left:4.8em"
|+ Stress
|-
! Mirad Word !! IPA
|-
| '''tejna'''....''vital'' || /'''<big>ˈ</big>teʒ+na'''/
|-
| '''igay'''....''quickly'' || /'''<big>ˈ</big>i+gay'''/ <sup>1</sup>
|-
| '''alayn'''....''eleventh'' || /'''a+<big>ˈ</big>lajn'''/
|-
| '''Mirad'''....''Mirad'' || /'''Mi+<big>ˈ</big>rad'''/
|-
| '''booka'''....''tired'' || /'''bo+<big>ˈ</big>o+ka'''/ <sup>2</sup>
|-
| '''bookan'''....''fatigue'' || /'''bo+o+<big>ˈ</big>kan'''/
|-
| '''akea'''....''winning'' || /'''a+<big>ˈ</big>ke+a'''/
|-
| '''boyxe'''....''deprives'' || /'''<big>ˈ</big>boj+ʃe'''/
|-
| '''byoskyin'''....''pendulum'' || /'''bjos+<big>ˈ</big>kjɪn'''/ <sup>3</sup>
|-
| '''pyaon'''....''wave'' || /'''pya+<big>ˈ</big>on'''/
|-
| '''tooyba'''....''female'' || /'''to+<big>ˈ</big>oj+ba'''/
|-
| '''yansauna'''....''common'' || /'''jan+sa+<big>ˈ</big>u+na'''/
|-
| '''bikiu'''....''take care'' || /'''bi+<big>ˈ</big>ki+u'''/
|-
| '''jwatua'''....''warned'' || /'''ʒwa+<big>ˈ</big>tu+a'''/
|-
| '''caulk'''....''copper'' || /'''t͡ʃa+<big>ˈ</big>ulk'''/
|-
| '''testaye'''....''has understood'' || /'''tɛs+<big>ˈ</big>ta+je'''/ <sup>4</sup>
|}
: <sup>1</sup> <small>Here '''ay''' is a single post-y-glided vowel, and final, so it is not stressed. </small>
: <sup>2</sup> <small>Two vowels in a row are pronounced in two syllables.</small>
: <sup>3</sup> <small>The letter '''i''' is pronounced like the short ''i'' in Eng. ''kin'' when in a closed syllable (i.e. one ending in a consonant).</small>
: <sup>4</sup> <small>The vowel '''e''' is pronounced like the short ''e'' in Eng. ''vest'' when in a closed syllable.</small>
: Here is a small passage where the stress of vowels in shown by underlining:
:* '''Hya t<u>o</u>bi t<u>a</u>je y<u>i</u>va ay g<u>e</u>a be utf<u>i</u>z ay doy<u>i</u>vi. Yit b<u>u</u>lwe tex<u>ya</u>f ay vyaot<u>ya</u>f ay y<u>ey</u>fe hyuitaxl<u>e</u>r gel t<u>i</u>di.'''
:* ''All men are born free and equal in dignity and rights. They are endowed with reason and conscience and should act toward one another as brothers.''
<noinclude>{{Chapter navigation with TOC|Syllabification|Phonotactics}}</noinclude>
b07qoupqgf40nx1huy7i781xn1w5ri9
The Linux Kernel/Debugging
0
462887
4640213
4596089
2026-06-13T17:19:30Z
Conan
3188
add brief descriptions to source file references
4640213
wikitext
text/x-wiki
{{DISPLAYTITLE:Debugging Linux kernel}}
⚲ API
: {{The Linux Kernel/include|linux/err.h}} – helper macros for error pointer handling and propagation
: {{The Linux Kernel/include|linux/errno.h}} – standard error codes used throughout the kernel.
== Performance ==
There are many factors that can affect the performance of the Linux kernel, including hardware configurations, software configurations, and workload characteristics.
In this context, performance optimization of the Linux kernel involves identifying and addressing performance {{w|Bottleneck (software)|bottlenecks}} in the system.
This can involve tuning kernel parameters, optimizing system resources, and identifying and fixing bugs and other issues that may be impacting performance.
Given the complexity of the Linux kernel and the wide range of factors that can affect performance, performance optimization can be a challenging task.
However, with the right tools and techniques, it is possible to significantly improve the performance and reliability of Linux-based systems.
=== Perf_events ===
{{w|perf (Linux)|Perf_events}}, short for performance events, is a powerful interface that provides detailed insights into the performance characteristics of software running on a system.
By analyzing the data collected by perf_events, developers can identify performance bottlenecks and optimize software to improve performance and reduce resource utilization.
Perf_events is designed to be a lightweight, low-overhead monitoring solution that has minimal impact on system performance.
🔧 TODO
⚲ Interfaces
: {{The Linux Kernel/man|1|perf}} – performance analysis tools
<!-- generated with
man -k perf | grep ^perf- | sed -n 's%\([^ ]*\) (\(.\+\)) \W\+\(.*\)%:: {{The Linux Kernel/man|\2|\1}} \– \3%p'
-->
: Basic commands:
:: {{The Linux Kernel/man|1|perf-help}} – display help information about perf
:: {{The Linux Kernel/man|1|perf-top}} – System profiling tool.
:: {{The Linux Kernel/man|1|perf-record}} – Run a command and record its profile into perf.data
:: {{The Linux Kernel/man|1|perf-report}} – Read perf.data (created by perf record) and display the profile
: Other commands:
:: {{The Linux Kernel/man|1|perf-annotate}} – Read perf.data (created by perf record) and display annotated code
:: {{The Linux Kernel/man|1|perf-archive}} – Create archive with object files with build-ids found ...
:: {{The Linux Kernel/man|1|perf-arm-spe}} – Support for Arm Statistical Profiling Extension within...
:: {{The Linux Kernel/man|1|perf-bench}} – General framework for benchmark suites
:: {{The Linux Kernel/man|1|perf-buildid-cache}} – Manage build-id cache.
:: {{The Linux Kernel/man|1|perf-buildid-list}} – List the buildids in a perf.data file
:: {{The Linux Kernel/man|1|perf-c2c}} – Shared Data C2C/HITM Analyzer.
:: {{The Linux Kernel/man|1|perf-config}} – Get and set variables in a configuration file.
:: {{The Linux Kernel/man|1|perf-daemon}} – Run record sessions on background
:: {{The Linux Kernel/man|1|perf-data}} – Data file related processing
:: {{The Linux Kernel/man|1|perf-diff}} – Read perf.data files and display the differential profile
:: {{The Linux Kernel/man|1|perf-dlfilter}} – Filter sample events using a dynamically loaded shared...
:: {{The Linux Kernel/man|1|perf-evlist}} – List the event names in a perf.data file
:: {{The Linux Kernel/man|1|perf-ftrace}} – simple wrapper for kernel's ftrace functionality
:: {{The Linux Kernel/man|1|perf-inject}} – Filter to augment the events stream with additional in...
:: {{The Linux Kernel/man|1|perf-intel-pt}} – Support for Intel Processor Trace within perf tools
:: {{The Linux Kernel/man|1|perf-iostat}} – Show I/O performance metrics
:: {{The Linux Kernel/man|1|perf-kallsyms}} – Searches running kernel for symbols
:: {{The Linux Kernel/man|1|perf-kmem}} – Tool to trace/measure kernel memory properties
:: {{The Linux Kernel/man|1|perf-kvm}} – Tool to trace/measure kvm guest os
:: {{The Linux Kernel/man|1|perf-kwork}} – Tool to trace/measure kernel work properties (latencies)
:: {{The Linux Kernel/man|1|perf-list}} – List all symbolic event types
:: {{The Linux Kernel/man|1|perf-lock}} – Analyze lock events
:: {{The Linux Kernel/man|1|perf-mem}} – Profile memory accesses
:: {{The Linux Kernel/man|1|perf-probe}} – Define new dynamic tracepoints
:: {{The Linux Kernel/man|1|perf-sched}} – Tool to trace/measure scheduler properties (latencies)
:: {{The Linux Kernel/man|1|perf-script}} – Read perf.data (created by perf record) and display tr...
::: {{The Linux Kernel/man|1|perf-script-perl}} – Process trace data with a Perl script
::: {{The Linux Kernel/man|1|perf-script-python}} – Process trace data with a Python script
:: {{The Linux Kernel/man|1|perf-stat}} – Run a command and gather performance counter statistics
:: {{The Linux Kernel/man|1|perf-test}} – Runs sanity tests.
:: {{The Linux Kernel/man|1|perf-timechart}} – Tool to visualize total system behavior during a workload
:: {{The Linux Kernel/man|1|perf-trace}} – strace inspired tool
:: {{The Linux Kernel/man|1|perf-version}} – display the version of perf binary
⚙️ Internals
: {{The Linux Kernel/man|2|perf_event_open}} – sets up performance monitoring
: {{The Linux Kernel/include|uapi/linux/perf_event.h}}
: {{The Linux Kernel/source|tools/perf}} – performance analysis tools
: {{The Linux Kernel/include|linux/perf_event.h}}
: {{The Linux Kernel/source|kernel/events/core.c}} – performance events core
: {{The Linux Kernel/source|kernel/profile.c}} – simple profiling
📖 References
: {{w|perf (Linux)|perf}} – instruments CPU performance counters, tracepoints, kprobes, and uprobes
: https://perf.wiki.kernel.org/
📚 Further reading
: [https://www.brendangregg.com/perf.html perf Examples]
: [https://web.eece.maine.edu/~vweaver/projects/perf_events/ The Unofficial Linux Perf Events Web-Page]
---------------
🛠️ Utilities
: {{w|Performance Co-Pilot}}, https://pcp.io/ – Performance Co-Pilot
: {{w|Prometheus (software)|Prometheus}}, https://prometheus.io/
: https://github.com/redhat-nfvpe/container-perf-tools
: https://github.com/brendangregg/perf-tools – performance analysis tools based on Linux perf_events (aka perf) and ftrace
: [https://linux.die.net/man/1/readprofile readprofile] – a tool to read kernel profiling information
📚 Further reading
: [https://wiki.ubuntu.com/Kernel/Reference/stress-ng stress-ng] – exercises various kernel interfaces
: http://trac.gateworks.com/wiki/linux/profiling
: [https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux_for_real_time/9/html/optimizing_rhel_9_for_real_time_for_low_latency_operation/assembly_analyzing-application-performance_optimizing-rhel9-for-real-time-for-low-latency-operation Analyzing application performance in RHEL 9]
: [https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/monitoring_and_managing_system_status_and_performance/index Monitoring and managing system status and performance in RHEL 9]
: [[Embedded_Systems/Linux#Real-time|Real-time Linux]]
== User space debug interfaces ==
⚲ Interfaces
: {{The Linux Kernel/man|1|dmesg}} – prints or control the kernel ring buffer
:: {{The Linux Kernel/man|2|syslog}} – system call, which is used to control the kernel printk() buffer
: {{The Linux Kernel/man|1|strace}} – system calls and signals tracing tool
:: {{The Linux Kernel/man|2|ptrace}} – process trace system call
: {{The Linux Kernel/man|3|klogctl}}
: {{The Linux Kernel/man|5|core}}
: /sys/kernel/debug/ – {{w|debugfs}}
: dmesg --console-level <level>
: gdb /usr/src/linux/vmlinux /proc/kcore
: /proc/self/stack
: {{The Linux Kernel/doc|dynamic|admin-guide/dynamic-debug-howto.html}} debug
:: <big>⌨️</big> hands-on:
:: echo "module atkbd +pfl" | sudo tee /sys/kernel/debug/dynamic_debug/control
⚙️ Internals
: {{The Linux Kernel/id|handle_sysrq}}
📚 '''References'''
: {{The Linux Kernel/doc|Development tools for the kernel|dev-tools}}
: {{The Linux Kernel/doc|DebugFS|filesystems/debugfs.html}}, {{The Linux Kernel/source|samples/qmi/qmi_sample_client.c}}
: {{The Linux Kernel/doc|Kprobe-based Event Tracing|trace/kprobetrace.html}}
: {{The Linux Kernel/doc|Dynamic debug|admin-guide/dynamic-debug-howto.html}}
: {{The Linux Kernel/doc|Linux Magic System Request Key Hacks|admin-guide/sysrq.html}}
: {{w|Magic SysRq key}}
== Tracing and logging ==
⚲ API:
'''User-space interface:'''
: {{The Linux Kernel/man|1|dmesg}} – prints or control the kernel ring buffer
:: {{The Linux Kernel/man|2|syslog}} – system call, which is used to control the kernel printk() buffer
: /proc/kmsg
: https://kernelshark.org/ – front end reader of trace-cmd
: https://trace-cmd.org/, {{The Linux Kernel/man|1|trace-cmd}} – CLI for {{The Linux Kernel/doc|Ftrace|trace/ftrace.}} – Linux kernel internal tracer /sys/kernel/debug/tracing/
'''The most commonly used functions'''
: {{The Linux Kernel/include|linux/printk.h}}
:: {{The Linux Kernel/id|dump_stack}} – prints the current kernel stack trace for debugging purposes
:: {{The Linux Kernel/id|pr_alert}} – logs an alert-level message, indicating a critical event that requires immediate attention
:: {{The Linux Kernel/id|pr_cont}} – continues printing the current message on the same line
:: {{The Linux Kernel/id|pr_crit}} – logs a critical-level message, indicating a severe condition that might require system halt
:: {{The Linux Kernel/id|pr_debug}} – logs a debug-level message for developers, usually enabled in debug builds
:: {{The Linux Kernel/id|pr_devel}} – logs a developer-specific message, typically used for fine-grained debug purposes, see {{The Linux Kernel/doc|dynamic|admin-guide/dynamic-debug-howto.html}}
:: {{The Linux Kernel/id|pr_emerg}} – logs an emergency-level message, indicating a serious error that could cause system crash
:: {{The Linux Kernel/id|pr_err}} – logs an error-level message, typically indicating an issue that requires attention
:: {{The Linux Kernel/id|pr_err_ratelimited}} – logs an error-level message with rate limiting to prevent excessive logging
:: {{The Linux Kernel/id|pr_fmt}} – defines a format string for kernel messages
:: {{The Linux Kernel/id|pr_info}} – logs an informational-level message, providing status updates or diagnostics
:: {{The Linux Kernel/id|pr_info_ratelimited}} – logs an informational-level message with rate limiting
:: {{The Linux Kernel/id|pr_notice}} – logs a notice-level message, typically used for events that aren't errors but should be noted
:: {{The Linux Kernel/id|pr_warn}} – logs a warning-level message, indicating a potential issue that doesn't immediately affect system functionality
:: {{The Linux Kernel/id|pr_warn_once}} – logs a warning message once, preventing repeated warnings for the same event
:: {{The Linux Kernel/id|pr_warn_ratelimited}} – logs a warning-level message with rate limiting
:: {{The Linux Kernel/id|print_hex_dump}} – prints a hexdump of data for debugging purposes
:: {{The Linux Kernel/id|print_hex_dump_debug}} – prints a detailed hexdump with debugging-level verbosity
:: {{The Linux Kernel/id|printk}} – the primary function for printing kernel messages with varying severity levels
:: {{The Linux Kernel/id|va_format}} – formats a variable argument list into a string for logging or printing purposes
::: <big>⌨️</big> hands-on:
::: echo "module atkbd +pfl" | sudo tee /sys/kernel/debug/dynamic_debug/control; dmesg -w
::: and type on build-in keyboard
: {{The Linux Kernel/include|include/linux/dev_printk.h}} – device-specific logging
:: {{The Linux Kernel/id|dev_crit}} – prints a critical-level message for a device
:: {{The Linux Kernel/id|dev_dbg}} – prints a debug-level message for a device if debugging is enabled
:: {{The Linux Kernel/id|dev_dbg_ratelimited}} – prints debug messages for a device with rate limiting
:: {{The Linux Kernel/id|dev_err}} – prints an error-level message for a device
:: {{The Linux Kernel/id|dev_err_once}} – prints an error message for a device only once
:: {{The Linux Kernel/id|dev_err_probe}} – prints an error related to probe failure with standard formatting
:: {{The Linux Kernel/id|dev_err_ratelimited}} – prints error messages for a device with rate limiting
:: {{The Linux Kernel/id|dev_fmt}} – defines a format string used by device-specific printk macros
:: {{The Linux Kernel/id|dev_info}} – prints an informational-level message for a device
:: {{The Linux Kernel/id|dev_notice}} – prints a notice-level message for a device
:: {{The Linux Kernel/id|dev_printk}} – generic function to print kernel messages with specified log level for a device
:: {{The Linux Kernel/id|dev_vdbg}} – prints verbose debug messages for a device if enabled at compile time
:: {{The Linux Kernel/id|dev_warn}} – prints a warning-level message for a device
:: {{The Linux Kernel/id|dev_warn_once}} – prints a warning message for a device only once
:: {{The Linux Kernel/id|dev_warn_ratelimited}} – prints warning messages for a device with rate limiting
: {{The Linux Kernel/include|asm-generic/bug.h}}
:: {{The Linux Kernel/id|WARN_ON}}
:: {{The Linux Kernel/id|WARN}}
⚙️ Internals
: {{The Linux Kernel/id|printk}}
: {{The Linux Kernel/source|kernel/printk/printk.c}} – kernel message logging
: {{The Linux Kernel/source|arch/x86/kernel/traps.c}} – x86 exception and trap handling
: {{The Linux Kernel/source|lib/dump_stack.c}} – stack trace dumping
: {{The Linux Kernel/source|kernel/trace}} – tracing infrastructure
: {{The Linux Kernel/source|scripts/tracing/draw_functrace.py}} – visualize function call graph from trace
: {{The Linux Kernel/ltp|kernel|logging}}, {{The Linux Kernel/ltp|kernel|tracing}}
: {{The Linux Kernel/source|samples/ftrace}} – ftrace usage examples
: {{The Linux Kernel/source|samples/trace_events}} – trace event examples
: {{The Linux Kernel/source|samples/trace_printk}} – trace_printk examples
: {{The Linux Kernel/include|linux/instrumentation.h}}
📚 '''References''':
: [https://elinux.org/Debugging_by_printing Debugging by printing]
: {{The Linux Kernel/doc|Message logging with printk|core-api/printk-basics.html}}
: {{The Linux Kernel/doc|Dynamic debug|admin-guide/dynamic-debug-howto.html}}
: {{w|SystemTap}}
:: {{The Linux Kernel/man|1|stap}} – systemtap script translator/driver
: {{w|strace}}
:: {{The Linux Kernel/man|1|strace}} – trace system calls and signals
: {{w|LTTng}}
: {{w|ftrace}}
: {{The Linux Kernel/doc|Linux Tracing Technologies|trace}}
:: {{The Linux Kernel/doc|Tracepoint Analysis|trace/tracepoint-analysis.html}}
:: {{The Linux Kernel/doc|Function Tracer|trace/ftrace.html}} – function, latency and event tracing
::: {{The Linux Kernel/doc|Event Tracing|trace/events.html}}
:: {{The Linux Kernel/doc|Using ftrace to hook to functions|trace/ftrace-uses.html}}
:: {{The Linux Kernel/doc|Fprobe - Function entry/exit probe|trace/fprobe.html}}
:: {{The Linux Kernel/doc|Kprobes|trace/kprobes.html}}
:: {{The Linux Kernel/doc|Kprobe-based Event Tracing|trace/kprobetrace.html}}
:: {{The Linux Kernel/doc|Uprobe-tracer: Uprobe-based Event Tracing|trace/uprobetracer.html}}
:: {{The Linux Kernel/doc|Using the Linux Kernel Tracepoints|trace/tracepoints.html}}
:: {{The Linux Kernel/doc|Subsystem Trace Points: kmem|trace/events-kmem.html}}
:: {{The Linux Kernel/doc|Subsystem Trace Points: power|trace/events-power.html}}
:: {{The Linux Kernel/doc|NMI Trace Events|trace/events-nmi.html}}
:: {{The Linux Kernel/doc|In-kernel memory-mapped I/O tracing|trace/mmiotrace.html}}
:: {{The Linux Kernel/doc|Event Histograms|trace/histogram.html}}
:: {{The Linux Kernel/doc|Histogram Design Notes|trace/histogram-design.html}}
:: {{The Linux Kernel/doc|Boot-time tracing|trace/boottime-trace.html}}
:: {{The Linux Kernel/doc|Hardware Latency Detector|trace/hwlat_detector.html}}
:: {{The Linux Kernel/doc|Intel(R) Trace Hub (TH)|trace/intel_th.html}}
:: {{The Linux Kernel/doc|Lockless Ring Buffer Design|trace/ring-buffer-design.html}}
:: {{The Linux Kernel/doc|System Trace Module|trace/stm.html}}
:: {{The Linux Kernel/doc|CoreSight - ARM Hardware Trace|trace/coresight}}
'''🔧 TODO. 🚀 advanced features'''
: {{The Linux Kernel/include|linux/kmemleak.h}} – memory leak detector
: {{The Linux Kernel/id|pr_cont}}- continues a previous log message in the same line
: {{The Linux Kernel/id|print_hex_dump_bytes}}
: {{The Linux Kernel/id|print_hex_dump_debug}}
: {{The Linux Kernel/id|dump_stack}}
: {{The Linux Kernel/id|CONFIG_PRINTK_CALLER}}
: {{The Linux Kernel/id|CONFIG_DEBUG_KERNEL}}
: {{The Linux Kernel/id|CONFIG_DEBUG_INFO}}
: https://git.kernel.org/pub/scm/libs/libtrace/
📚 Further reading
: https://lore.kernel.org/linux-trace-kernel/
: https://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git/
== kgdb and kdb ==
⚲ Interfaces
: {{The Linux Kernel/include|linux/kgdb.h}}
: {{The Linux Kernel/include|linux/kdb.h}}
⚙️ Internals
: {{The Linux Kernel/source|kernel/debug}} – kgdb/kdb debugger
📚 '''References'''
: {{The Linux Kernel/doc|Using kgdb, kdb and the kernel debugger internals|dev-tools/kgdb.html}}
: {{w|kdump (Linux)|kdump}}
: {{The Linux Kernel/doc|kdump|admin-guide/kdump}}
: {{The Linux Kernel/man|8|crash}} – Analyze Linux crash dump data or a live system
== {{w|eBPF}} ==
⚲ API:
: {{The Linux Kernel/man|2|bpf}} ↪ {{The Linux Kernel/source|kernel/bpf/syscall.c}}
📖 References
: {{The Linux Kernel/doc|eBPF and BPF|bpf}}
📚 Further reading
: {{The Linux Kernel/man|7|bpf-helpers}}
: [https://www.brendangregg.com/ebpf.html Linux Extended BPF (eBPF) Tracing Tools]
: [https://github.com/iovisor/bpftrace bpftrace – High-level tracing language for Linux eBPF]
: [https://github.com/iovisor/bcc#tools BCC – Tools for BPF-based Linux IO analysis, networking, monitoring, and more]
:: [https://github.com/iovisor/bcc/blob/master/tools/trace_example.txt Example] of [https://github.com/iovisor/bcc/blob/master/tools/trace.py trace.py]
: {{The Linux Kernel/man|8|stapbpf}}
: [https://medium.com/@zone24x7_inc/ebpf-programming-for-linux-kernel-tracing-30364dde3fb7 eBPF Programming for Linux Kernel Tracing]
: {{The Linux Kernel/doc|lockdep - Runtime locking correctness validator|locking/lockdep-design.html}}
== Watchdogs ==
[[../Softdog Driver]]
{{The Linux Kernel/id|dev_watchdog}} – network device watchdog
The NMI watchdog lockup detectors:
⚲ API
: /proc/sys/kernel/nmi_watchdog
: /proc/sys/kernel/soft_watchdog
: /proc/sys/kernel/watchdog
: /proc/sys/kernel/watchdog_cpumask
: /proc/sys/kernel/watchdog_thresh
: /proc/sys/kernel/hardlockup_all_cpu_backtrace
: /proc/sys/kernel/hardlockup_panic
: /proc/sys/kernel/softlockup_all_cpu_backtrace
: /proc/sys/kernel/softlockup_panic
: {{The Linux Kernel/include|linux/nmi.h}}
👁️ Example
: {{The Linux Kernel/source|./lib/test_lockup.c}} – test module to generate lockups
Provoke NMI watchdog without panic:
echo 0 > /proc/sys/kernel/hardlockup_panic
insmod test_lockup.ko disable_irq=1 time_secs=13
⚙️ Internals
: {{The Linux Kernel/source|kernel/watchdog.c}} – detects hard and soft lockups on a system
: {{The Linux Kernel/source|kernel/watchdog_perf.c}} – detects hard lockups on a system using perf
: {{The Linux Kernel/source|kernel/watchdog_buddy.c}} – coordinates watchdog checks across CPUs
📚 References
: {{The Linux Kernel/doc|Documentation for /proc/sys/kernel/|admin-guide/sysctl/kernel.html}}
: {{The Linux Kernel/doc|Softlockup detector and hardlockup detector (aka nmi_watchdog)|admin-guide/lockup-watchdogs.html}}
: kernel parameters:
:: {{The Linux Kernel/param|nmi_watchdog|nmi_watchdog}}
:: {{The Linux Kernel/param|nowatchdog|nowatchdog%09}}
:: {{The Linux Kernel/param|nosoftlockup|nosoftlockup}}
:: {{The Linux Kernel/param|softlockup_panic|softlockup_panic}}
<hr>
==...==
⚙️ Internals
: {{The Linux Kernel/source|arch/x86/kernel/traps.c}} – x86 exception and trap handling
📖 References for debugging
: {{The Linux Kernel/doc|Ramoops oops/panic logger|admin-guide/ramoops.html}}
: {{The Linux Kernel/doc|pstore block oops/panic logger|admin-guide/pstore-blk.html}}
: {{The Linux Kernel/doc|Fault injection|fault-injection}}
: {{The Linux Kernel/doc|Bisecting a bug|admin-guide/bug-bisect.html}}
: {{The Linux Kernel/doc|Development tools for the kernel|dev-tools}}
:: {{The Linux Kernel/doc|Kernel Testing Guide|dev-tools/testing-overview.html}}
:: {{The Linux Kernel/doc|Checkpatch|dev-tools/checkpatch.html}}, {{The Linux Kernel/source|scripts/checkpatch.pl}}
:: {{The Linux Kernel/doc|Selftests|dev-tools/kselftest.html}}, {{The Linux Kernel/source|tools/testing/selftests}}
: {{The Linux Kernel/include|linux/tracepoint.h}}
: {{The Linux Kernel/doc|Tracking down and identifying problems|admin-guide/index.html#tracking-down-and-identifying-problems}}
:: {{The Linux Kernel/doc|Bug hunting|admin-guide/bug-hunting.html}}
:: ...
📚 Further reading
: {{w|Linux kernel oops}}
: {{w|kdump (Linux)}}
: https://deepwiki.com/torvalds/linux/2.4-kernel-tracing-and-profiling
: https://drgn.readthedocs.io/ – programmable debugger
: https://crash-utility.github.io/
: https://wiki.ubuntu.com/Kernel/Debugging
: [https://www.intel.com/content/www/us/en/docs/vtune-profiler/user-guide/2025-1/enabling-linux-kernel-analysis.html Intel VTune Profiler]
: [[Linux Applications Debugging Techniques]]
{{BookCat}}
8vuwbw3vypeu4cji2ap9h09hefnbnel
4640234
4640213
2026-06-13T19:15:09Z
Conan
3188
fix broken ftrace doc link, double include path, typos
4640234
wikitext
text/x-wiki
{{DISPLAYTITLE:Debugging Linux kernel}}
⚲ API
: {{The Linux Kernel/include|linux/err.h}} – helper macros for error pointer handling and propagation
: {{The Linux Kernel/include|linux/errno.h}} – standard error codes used throughout the kernel.
== Performance ==
There are many factors that can affect the performance of the Linux kernel, including hardware configurations, software configurations, and workload characteristics.
In this context, performance optimization of the Linux kernel involves identifying and addressing performance {{w|Bottleneck (software)|bottlenecks}} in the system.
This can involve tuning kernel parameters, optimizing system resources, and identifying and fixing bugs and other issues that may be impacting performance.
Given the complexity of the Linux kernel and the wide range of factors that can affect performance, performance optimization can be a challenging task.
However, with the right tools and techniques, it is possible to significantly improve the performance and reliability of Linux-based systems.
=== Perf_events ===
{{w|perf (Linux)|Perf_events}}, short for performance events, is a powerful interface that provides detailed insights into the performance characteristics of software running on a system.
By analyzing the data collected by perf_events, developers can identify performance bottlenecks and optimize software to improve performance and reduce resource utilization.
Perf_events is designed to be a lightweight, low-overhead monitoring solution that has minimal impact on system performance.
🔧 TODO
⚲ Interfaces
: {{The Linux Kernel/man|1|perf}} – performance analysis tools
<!-- generated with
man -k perf | grep ^perf- | sed -n 's%\([^ ]*\) (\(.\+\)) \W\+\(.*\)%:: {{The Linux Kernel/man|\2|\1}} \– \3%p'
-->
: Basic commands:
:: {{The Linux Kernel/man|1|perf-help}} – display help information about perf
:: {{The Linux Kernel/man|1|perf-top}} – System profiling tool.
:: {{The Linux Kernel/man|1|perf-record}} – Run a command and record its profile into perf.data
:: {{The Linux Kernel/man|1|perf-report}} – Read perf.data (created by perf record) and display the profile
: Other commands:
:: {{The Linux Kernel/man|1|perf-annotate}} – Read perf.data (created by perf record) and display annotated code
:: {{The Linux Kernel/man|1|perf-archive}} – Create archive with object files with build-ids found ...
:: {{The Linux Kernel/man|1|perf-arm-spe}} – Support for Arm Statistical Profiling Extension within...
:: {{The Linux Kernel/man|1|perf-bench}} – General framework for benchmark suites
:: {{The Linux Kernel/man|1|perf-buildid-cache}} – Manage build-id cache.
:: {{The Linux Kernel/man|1|perf-buildid-list}} – List the buildids in a perf.data file
:: {{The Linux Kernel/man|1|perf-c2c}} – Shared Data C2C/HITM Analyzer.
:: {{The Linux Kernel/man|1|perf-config}} – Get and set variables in a configuration file.
:: {{The Linux Kernel/man|1|perf-daemon}} – Run record sessions on background
:: {{The Linux Kernel/man|1|perf-data}} – Data file related processing
:: {{The Linux Kernel/man|1|perf-diff}} – Read perf.data files and display the differential profile
:: {{The Linux Kernel/man|1|perf-dlfilter}} – Filter sample events using a dynamically loaded shared...
:: {{The Linux Kernel/man|1|perf-evlist}} – List the event names in a perf.data file
:: {{The Linux Kernel/man|1|perf-ftrace}} – simple wrapper for kernel's ftrace functionality
:: {{The Linux Kernel/man|1|perf-inject}} – Filter to augment the events stream with additional in...
:: {{The Linux Kernel/man|1|perf-intel-pt}} – Support for Intel Processor Trace within perf tools
:: {{The Linux Kernel/man|1|perf-iostat}} – Show I/O performance metrics
:: {{The Linux Kernel/man|1|perf-kallsyms}} – Searches running kernel for symbols
:: {{The Linux Kernel/man|1|perf-kmem}} – Tool to trace/measure kernel memory properties
:: {{The Linux Kernel/man|1|perf-kvm}} – Tool to trace/measure kvm guest os
:: {{The Linux Kernel/man|1|perf-kwork}} – Tool to trace/measure kernel work properties (latencies)
:: {{The Linux Kernel/man|1|perf-list}} – List all symbolic event types
:: {{The Linux Kernel/man|1|perf-lock}} – Analyze lock events
:: {{The Linux Kernel/man|1|perf-mem}} – Profile memory accesses
:: {{The Linux Kernel/man|1|perf-probe}} – Define new dynamic tracepoints
:: {{The Linux Kernel/man|1|perf-sched}} – Tool to trace/measure scheduler properties (latencies)
:: {{The Linux Kernel/man|1|perf-script}} – Read perf.data (created by perf record) and display tr...
::: {{The Linux Kernel/man|1|perf-script-perl}} – Process trace data with a Perl script
::: {{The Linux Kernel/man|1|perf-script-python}} – Process trace data with a Python script
:: {{The Linux Kernel/man|1|perf-stat}} – Run a command and gather performance counter statistics
:: {{The Linux Kernel/man|1|perf-test}} – Runs sanity tests.
:: {{The Linux Kernel/man|1|perf-timechart}} – Tool to visualize total system behavior during a workload
:: {{The Linux Kernel/man|1|perf-trace}} – strace inspired tool
:: {{The Linux Kernel/man|1|perf-version}} – display the version of perf binary
⚙️ Internals
: {{The Linux Kernel/man|2|perf_event_open}} – sets up performance monitoring
: {{The Linux Kernel/include|uapi/linux/perf_event.h}}
: {{The Linux Kernel/source|tools/perf}} – performance analysis tools
: {{The Linux Kernel/include|linux/perf_event.h}}
: {{The Linux Kernel/source|kernel/events/core.c}} – performance events core
: {{The Linux Kernel/source|kernel/profile.c}} – simple profiling
📖 References
: {{w|perf (Linux)|perf}} – instruments CPU performance counters, tracepoints, kprobes, and uprobes
: https://perf.wiki.kernel.org/
📚 Further reading
: [https://www.brendangregg.com/perf.html perf Examples]
: [https://web.eece.maine.edu/~vweaver/projects/perf_events/ The Unofficial Linux Perf Events Web-Page]
---------------
🛠️ Utilities
: {{w|Performance Co-Pilot}}, https://pcp.io/ – Performance Co-Pilot
: {{w|Prometheus (software)|Prometheus}}, https://prometheus.io/
: https://github.com/redhat-nfvpe/container-perf-tools
: https://github.com/brendangregg/perf-tools – performance analysis tools based on Linux perf_events (aka perf) and ftrace
: [https://linux.die.net/man/1/readprofile readprofile] – a tool to read kernel profiling information
📚 Further reading
: [https://wiki.ubuntu.com/Kernel/Reference/stress-ng stress-ng] – exercises various kernel interfaces
: http://trac.gateworks.com/wiki/linux/profiling
: [https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux_for_real_time/9/html/optimizing_rhel_9_for_real_time_for_low_latency_operation/assembly_analyzing-application-performance_optimizing-rhel9-for-real-time-for-low-latency-operation Analyzing application performance in RHEL 9]
: [https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/monitoring_and_managing_system_status_and_performance/index Monitoring and managing system status and performance in RHEL 9]
: [[Embedded_Systems/Linux#Real-time|Real-time Linux]]
== User space debug interfaces ==
⚲ Interfaces
: {{The Linux Kernel/man|1|dmesg}} – prints or control the kernel ring buffer
:: {{The Linux Kernel/man|2|syslog}} – system call, which is used to control the kernel printk() buffer
: {{The Linux Kernel/man|1|strace}} – system calls and signals tracing tool
:: {{The Linux Kernel/man|2|ptrace}} – process trace system call
: {{The Linux Kernel/man|3|klogctl}}
: {{The Linux Kernel/man|5|core}}
: /sys/kernel/debug/ – {{w|debugfs}}
: dmesg --console-level <level>
: gdb /usr/src/linux/vmlinux /proc/kcore
: /proc/self/stack
: {{The Linux Kernel/doc|dynamic|admin-guide/dynamic-debug-howto.html}} debug
:: <big>⌨️</big> hands-on:
:: echo "module atkbd +pfl" | sudo tee /sys/kernel/debug/dynamic_debug/control
⚙️ Internals
: {{The Linux Kernel/id|handle_sysrq}}
📚 '''References'''
: {{The Linux Kernel/doc|Development tools for the kernel|dev-tools}}
: {{The Linux Kernel/doc|DebugFS|filesystems/debugfs.html}}, {{The Linux Kernel/source|samples/qmi/qmi_sample_client.c}}
: {{The Linux Kernel/doc|Kprobe-based Event Tracing|trace/kprobetrace.html}}
: {{The Linux Kernel/doc|Dynamic debug|admin-guide/dynamic-debug-howto.html}}
: {{The Linux Kernel/doc|Linux Magic System Request Key Hacks|admin-guide/sysrq.html}}
: {{w|Magic SysRq key}}
== Tracing and logging ==
⚲ API:
'''User-space interface:'''
: {{The Linux Kernel/man|1|dmesg}} – prints or control the kernel ring buffer
:: {{The Linux Kernel/man|2|syslog}} – system call, which is used to control the kernel printk() buffer
: /proc/kmsg
: https://kernelshark.org/ – front end reader of trace-cmd
: https://trace-cmd.org/, {{The Linux Kernel/man|1|trace-cmd}} – CLI for {{The Linux Kernel/doc|Ftrace|trace/ftrace.html}} – Linux kernel internal tracer /sys/kernel/debug/tracing/
'''The most commonly used functions'''
: {{The Linux Kernel/include|linux/printk.h}}
:: {{The Linux Kernel/id|dump_stack}} – prints the current kernel stack trace for debugging purposes
:: {{The Linux Kernel/id|pr_alert}} – logs an alert-level message, indicating a critical event that requires immediate attention
:: {{The Linux Kernel/id|pr_cont}} – continues printing the current message on the same line
:: {{The Linux Kernel/id|pr_crit}} – logs a critical-level message, indicating a severe condition that might require system halt
:: {{The Linux Kernel/id|pr_debug}} – logs a debug-level message for developers, usually enabled in debug builds
:: {{The Linux Kernel/id|pr_devel}} – logs a developer-specific message, typically used for fine-grained debug purposes, see {{The Linux Kernel/doc|dynamic|admin-guide/dynamic-debug-howto.html}}
:: {{The Linux Kernel/id|pr_emerg}} – logs an emergency-level message, indicating a serious error that could cause system crash
:: {{The Linux Kernel/id|pr_err}} – logs an error-level message, typically indicating an issue that requires attention
:: {{The Linux Kernel/id|pr_err_ratelimited}} – logs an error-level message with rate limiting to prevent excessive logging
:: {{The Linux Kernel/id|pr_fmt}} – defines a format string for kernel messages
:: {{The Linux Kernel/id|pr_info}} – logs an informational-level message, providing status updates or diagnostics
:: {{The Linux Kernel/id|pr_info_ratelimited}} – logs an informational-level message with rate limiting
:: {{The Linux Kernel/id|pr_notice}} – logs a notice-level message, typically used for events that aren't errors but should be noted
:: {{The Linux Kernel/id|pr_warn}} – logs a warning-level message, indicating a potential issue that doesn't immediately affect system functionality
:: {{The Linux Kernel/id|pr_warn_once}} – logs a warning message once, preventing repeated warnings for the same event
:: {{The Linux Kernel/id|pr_warn_ratelimited}} – logs a warning-level message with rate limiting
:: {{The Linux Kernel/id|print_hex_dump}} – prints a hexdump of data for debugging purposes
:: {{The Linux Kernel/id|print_hex_dump_debug}} – prints a detailed hexdump with debugging-level verbosity
:: {{The Linux Kernel/id|printk}} – the primary function for printing kernel messages with varying severity levels
:: {{The Linux Kernel/id|va_format}} – formats a variable argument list into a string for logging or printing purposes
::: <big>⌨️</big> hands-on:
::: echo "module atkbd +pfl" | sudo tee /sys/kernel/debug/dynamic_debug/control; dmesg -w
::: and type on built-in keyboard
: {{The Linux Kernel/include|linux/dev_printk.h}} – device-specific logging
:: {{The Linux Kernel/id|dev_crit}} – prints a critical-level message for a device
:: {{The Linux Kernel/id|dev_dbg}} – prints a debug-level message for a device if debugging is enabled
:: {{The Linux Kernel/id|dev_dbg_ratelimited}} – prints debug messages for a device with rate limiting
:: {{The Linux Kernel/id|dev_err}} – prints an error-level message for a device
:: {{The Linux Kernel/id|dev_err_once}} – prints an error message for a device only once
:: {{The Linux Kernel/id|dev_err_probe}} – prints an error related to probe failure with standard formatting
:: {{The Linux Kernel/id|dev_err_ratelimited}} – prints error messages for a device with rate limiting
:: {{The Linux Kernel/id|dev_fmt}} – defines a format string used by device-specific printk macros
:: {{The Linux Kernel/id|dev_info}} – prints an informational-level message for a device
:: {{The Linux Kernel/id|dev_notice}} – prints a notice-level message for a device
:: {{The Linux Kernel/id|dev_printk}} – generic function to print kernel messages with specified log level for a device
:: {{The Linux Kernel/id|dev_vdbg}} – prints verbose debug messages for a device if enabled at compile time
:: {{The Linux Kernel/id|dev_warn}} – prints a warning-level message for a device
:: {{The Linux Kernel/id|dev_warn_once}} – prints a warning message for a device only once
:: {{The Linux Kernel/id|dev_warn_ratelimited}} – prints warning messages for a device with rate limiting
: {{The Linux Kernel/include|asm-generic/bug.h}}
:: {{The Linux Kernel/id|WARN_ON}}
:: {{The Linux Kernel/id|WARN}}
⚙️ Internals
: {{The Linux Kernel/id|printk}}
: {{The Linux Kernel/source|kernel/printk/printk.c}} – kernel message logging
: {{The Linux Kernel/source|arch/x86/kernel/traps.c}} – x86 exception and trap handling
: {{The Linux Kernel/source|lib/dump_stack.c}} – stack trace dumping
: {{The Linux Kernel/source|kernel/trace}} – tracing infrastructure
: {{The Linux Kernel/source|scripts/tracing/draw_functrace.py}} – visualize function call graph from trace
: {{The Linux Kernel/ltp|kernel|logging}}, {{The Linux Kernel/ltp|kernel|tracing}}
: {{The Linux Kernel/source|samples/ftrace}} – ftrace usage examples
: {{The Linux Kernel/source|samples/trace_events}} – trace event examples
: {{The Linux Kernel/source|samples/trace_printk}} – trace_printk examples
: {{The Linux Kernel/include|linux/instrumentation.h}}
📚 '''References''':
: [https://elinux.org/Debugging_by_printing Debugging by printing]
: {{The Linux Kernel/doc|Message logging with printk|core-api/printk-basics.html}}
: {{The Linux Kernel/doc|Dynamic debug|admin-guide/dynamic-debug-howto.html}}
: {{w|SystemTap}}
:: {{The Linux Kernel/man|1|stap}} – systemtap script translator/driver
: {{w|strace}}
:: {{The Linux Kernel/man|1|strace}} – trace system calls and signals
: {{w|LTTng}}
: {{w|ftrace}}
: {{The Linux Kernel/doc|Linux Tracing Technologies|trace}}
:: {{The Linux Kernel/doc|Tracepoint Analysis|trace/tracepoint-analysis.html}}
:: {{The Linux Kernel/doc|Function Tracer|trace/ftrace.html}} – function, latency and event tracing
::: {{The Linux Kernel/doc|Event Tracing|trace/events.html}}
:: {{The Linux Kernel/doc|Using ftrace to hook to functions|trace/ftrace-uses.html}}
:: {{The Linux Kernel/doc|Fprobe - Function entry/exit probe|trace/fprobe.html}}
:: {{The Linux Kernel/doc|Kprobes|trace/kprobes.html}}
:: {{The Linux Kernel/doc|Kprobe-based Event Tracing|trace/kprobetrace.html}}
:: {{The Linux Kernel/doc|Uprobe-tracer: Uprobe-based Event Tracing|trace/uprobetracer.html}}
:: {{The Linux Kernel/doc|Using the Linux Kernel Tracepoints|trace/tracepoints.html}}
:: {{The Linux Kernel/doc|Subsystem Trace Points: kmem|trace/events-kmem.html}}
:: {{The Linux Kernel/doc|Subsystem Trace Points: power|trace/events-power.html}}
:: {{The Linux Kernel/doc|NMI Trace Events|trace/events-nmi.html}}
:: {{The Linux Kernel/doc|In-kernel memory-mapped I/O tracing|trace/mmiotrace.html}}
:: {{The Linux Kernel/doc|Event Histograms|trace/histogram.html}}
:: {{The Linux Kernel/doc|Histogram Design Notes|trace/histogram-design.html}}
:: {{The Linux Kernel/doc|Boot-time tracing|trace/boottime-trace.html}}
:: {{The Linux Kernel/doc|Hardware Latency Detector|trace/hwlat_detector.html}}
:: {{The Linux Kernel/doc|Intel(R) Trace Hub (TH)|trace/intel_th.html}}
:: {{The Linux Kernel/doc|Lockless Ring Buffer Design|trace/ring-buffer-design.html}}
:: {{The Linux Kernel/doc|System Trace Module|trace/stm.html}}
:: {{The Linux Kernel/doc|CoreSight - ARM Hardware Trace|trace/coresight}}
'''🔧 TODO. 🚀 advanced features'''
: {{The Linux Kernel/include|linux/kmemleak.h}} – memory leak detector
: {{The Linux Kernel/id|pr_cont}} - continues a previous log message in the same line
: {{The Linux Kernel/id|print_hex_dump_bytes}}
: {{The Linux Kernel/id|print_hex_dump_debug}}
: {{The Linux Kernel/id|dump_stack}}
: {{The Linux Kernel/id|CONFIG_PRINTK_CALLER}}
: {{The Linux Kernel/id|CONFIG_DEBUG_KERNEL}}
: {{The Linux Kernel/id|CONFIG_DEBUG_INFO}}
: https://git.kernel.org/pub/scm/libs/libtrace/
📚 Further reading
: https://lore.kernel.org/linux-trace-kernel/
: https://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git/
== kgdb and kdb ==
⚲ Interfaces
: {{The Linux Kernel/include|linux/kgdb.h}}
: {{The Linux Kernel/include|linux/kdb.h}}
⚙️ Internals
: {{The Linux Kernel/source|kernel/debug}} – kgdb/kdb debugger
📚 '''References'''
: {{The Linux Kernel/doc|Using kgdb, kdb and the kernel debugger internals|dev-tools/kgdb.html}}
: {{w|kdump (Linux)|kdump}}
: {{The Linux Kernel/doc|kdump|admin-guide/kdump}}
: {{The Linux Kernel/man|8|crash}} – Analyze Linux crash dump data or a live system
== {{w|eBPF}} ==
⚲ API:
: {{The Linux Kernel/man|2|bpf}} ↪ {{The Linux Kernel/source|kernel/bpf/syscall.c}}
📖 References
: {{The Linux Kernel/doc|eBPF and BPF|bpf}}
📚 Further reading
: {{The Linux Kernel/man|7|bpf-helpers}}
: [https://www.brendangregg.com/ebpf.html Linux Extended BPF (eBPF) Tracing Tools]
: [https://github.com/iovisor/bpftrace bpftrace – High-level tracing language for Linux eBPF]
: [https://github.com/iovisor/bcc#tools BCC – Tools for BPF-based Linux IO analysis, networking, monitoring, and more]
:: [https://github.com/iovisor/bcc/blob/master/tools/trace_example.txt Example] of [https://github.com/iovisor/bcc/blob/master/tools/trace.py trace.py]
: {{The Linux Kernel/man|8|stapbpf}}
: [https://medium.com/@zone24x7_inc/ebpf-programming-for-linux-kernel-tracing-30364dde3fb7 eBPF Programming for Linux Kernel Tracing]
: {{The Linux Kernel/doc|lockdep - Runtime locking correctness validator|locking/lockdep-design.html}}
== Watchdogs ==
[[../Softdog Driver]]
{{The Linux Kernel/id|dev_watchdog}} – network device watchdog
The NMI watchdog lockup detectors:
⚲ API
: /proc/sys/kernel/nmi_watchdog
: /proc/sys/kernel/soft_watchdog
: /proc/sys/kernel/watchdog
: /proc/sys/kernel/watchdog_cpumask
: /proc/sys/kernel/watchdog_thresh
: /proc/sys/kernel/hardlockup_all_cpu_backtrace
: /proc/sys/kernel/hardlockup_panic
: /proc/sys/kernel/softlockup_all_cpu_backtrace
: /proc/sys/kernel/softlockup_panic
: {{The Linux Kernel/include|linux/nmi.h}}
👁️ Example
: {{The Linux Kernel/source|lib/test_lockup.c}} – test module to generate lockups
Provoke NMI watchdog without panic:
echo 0 > /proc/sys/kernel/hardlockup_panic
insmod test_lockup.ko disable_irq=1 time_secs=13
⚙️ Internals
: {{The Linux Kernel/source|kernel/watchdog.c}} – detects hard and soft lockups on a system
: {{The Linux Kernel/source|kernel/watchdog_perf.c}} – detects hard lockups on a system using perf
: {{The Linux Kernel/source|kernel/watchdog_buddy.c}} – coordinates watchdog checks across CPUs
📚 References
: {{The Linux Kernel/doc|Documentation for /proc/sys/kernel/|admin-guide/sysctl/kernel.html}}
: {{The Linux Kernel/doc|Softlockup detector and hardlockup detector (aka nmi_watchdog)|admin-guide/lockup-watchdogs.html}}
: kernel parameters:
:: {{The Linux Kernel/param|nmi_watchdog|nmi_watchdog}}
:: {{The Linux Kernel/param|nowatchdog|nowatchdog%09}}
:: {{The Linux Kernel/param|nosoftlockup|nosoftlockup}}
:: {{The Linux Kernel/param|softlockup_panic|softlockup_panic}}
<hr>
==...==
⚙️ Internals
: {{The Linux Kernel/source|arch/x86/kernel/traps.c}} – x86 exception and trap handling
📖 References for debugging
: {{The Linux Kernel/doc|Ramoops oops/panic logger|admin-guide/ramoops.html}}
: {{The Linux Kernel/doc|pstore block oops/panic logger|admin-guide/pstore-blk.html}}
: {{The Linux Kernel/doc|Fault injection|fault-injection}}
: {{The Linux Kernel/doc|Bisecting a bug|admin-guide/bug-bisect.html}}
: {{The Linux Kernel/doc|Development tools for the kernel|dev-tools}}
:: {{The Linux Kernel/doc|Kernel Testing Guide|dev-tools/testing-overview.html}}
:: {{The Linux Kernel/doc|Checkpatch|dev-tools/checkpatch.html}}, {{The Linux Kernel/source|scripts/checkpatch.pl}}
:: {{The Linux Kernel/doc|Selftests|dev-tools/kselftest.html}}, {{The Linux Kernel/source|tools/testing/selftests}}
: {{The Linux Kernel/include|linux/tracepoint.h}}
: {{The Linux Kernel/doc|Tracking down and identifying problems|admin-guide/index.html#tracking-down-and-identifying-problems}}
:: {{The Linux Kernel/doc|Bug hunting|admin-guide/bug-hunting.html}}
:: ...
📚 Further reading
: {{w|Linux kernel oops}}
: {{w|kdump (Linux)}}
: https://deepwiki.com/torvalds/linux/2.4-kernel-tracing-and-profiling
: https://drgn.readthedocs.io/ – programmable debugger
: https://crash-utility.github.io/
: https://wiki.ubuntu.com/Kernel/Debugging
: [https://www.intel.com/content/www/us/en/docs/vtune-profiler/user-guide/2025-1/enabling-linux-kernel-analysis.html Intel VTune Profiler]
: [[Linux Applications Debugging Techniques]]
{{BookCat}}
592qgj1hjs14etg4c943xcdge3s9f7r
4640246
4640234
2026-06-13T19:22:49Z
Conan
3188
update perf wiki URL to perfwiki.github.io
4640246
wikitext
text/x-wiki
{{DISPLAYTITLE:Debugging Linux kernel}}
⚲ API
: {{The Linux Kernel/include|linux/err.h}} – helper macros for error pointer handling and propagation
: {{The Linux Kernel/include|linux/errno.h}} – standard error codes used throughout the kernel.
== Performance ==
There are many factors that can affect the performance of the Linux kernel, including hardware configurations, software configurations, and workload characteristics.
In this context, performance optimization of the Linux kernel involves identifying and addressing performance {{w|Bottleneck (software)|bottlenecks}} in the system.
This can involve tuning kernel parameters, optimizing system resources, and identifying and fixing bugs and other issues that may be impacting performance.
Given the complexity of the Linux kernel and the wide range of factors that can affect performance, performance optimization can be a challenging task.
However, with the right tools and techniques, it is possible to significantly improve the performance and reliability of Linux-based systems.
=== Perf_events ===
{{w|perf (Linux)|Perf_events}}, short for performance events, is a powerful interface that provides detailed insights into the performance characteristics of software running on a system.
By analyzing the data collected by perf_events, developers can identify performance bottlenecks and optimize software to improve performance and reduce resource utilization.
Perf_events is designed to be a lightweight, low-overhead monitoring solution that has minimal impact on system performance.
🔧 TODO
⚲ Interfaces
: {{The Linux Kernel/man|1|perf}} – performance analysis tools
<!-- generated with
man -k perf | grep ^perf- | sed -n 's%\([^ ]*\) (\(.\+\)) \W\+\(.*\)%:: {{The Linux Kernel/man|\2|\1}} \– \3%p'
-->
: Basic commands:
:: {{The Linux Kernel/man|1|perf-help}} – display help information about perf
:: {{The Linux Kernel/man|1|perf-top}} – System profiling tool.
:: {{The Linux Kernel/man|1|perf-record}} – Run a command and record its profile into perf.data
:: {{The Linux Kernel/man|1|perf-report}} – Read perf.data (created by perf record) and display the profile
: Other commands:
:: {{The Linux Kernel/man|1|perf-annotate}} – Read perf.data (created by perf record) and display annotated code
:: {{The Linux Kernel/man|1|perf-archive}} – Create archive with object files with build-ids found ...
:: {{The Linux Kernel/man|1|perf-arm-spe}} – Support for Arm Statistical Profiling Extension within...
:: {{The Linux Kernel/man|1|perf-bench}} – General framework for benchmark suites
:: {{The Linux Kernel/man|1|perf-buildid-cache}} – Manage build-id cache.
:: {{The Linux Kernel/man|1|perf-buildid-list}} – List the buildids in a perf.data file
:: {{The Linux Kernel/man|1|perf-c2c}} – Shared Data C2C/HITM Analyzer.
:: {{The Linux Kernel/man|1|perf-config}} – Get and set variables in a configuration file.
:: {{The Linux Kernel/man|1|perf-daemon}} – Run record sessions on background
:: {{The Linux Kernel/man|1|perf-data}} – Data file related processing
:: {{The Linux Kernel/man|1|perf-diff}} – Read perf.data files and display the differential profile
:: {{The Linux Kernel/man|1|perf-dlfilter}} – Filter sample events using a dynamically loaded shared...
:: {{The Linux Kernel/man|1|perf-evlist}} – List the event names in a perf.data file
:: {{The Linux Kernel/man|1|perf-ftrace}} – simple wrapper for kernel's ftrace functionality
:: {{The Linux Kernel/man|1|perf-inject}} – Filter to augment the events stream with additional in...
:: {{The Linux Kernel/man|1|perf-intel-pt}} – Support for Intel Processor Trace within perf tools
:: {{The Linux Kernel/man|1|perf-iostat}} – Show I/O performance metrics
:: {{The Linux Kernel/man|1|perf-kallsyms}} – Searches running kernel for symbols
:: {{The Linux Kernel/man|1|perf-kmem}} – Tool to trace/measure kernel memory properties
:: {{The Linux Kernel/man|1|perf-kvm}} – Tool to trace/measure kvm guest os
:: {{The Linux Kernel/man|1|perf-kwork}} – Tool to trace/measure kernel work properties (latencies)
:: {{The Linux Kernel/man|1|perf-list}} – List all symbolic event types
:: {{The Linux Kernel/man|1|perf-lock}} – Analyze lock events
:: {{The Linux Kernel/man|1|perf-mem}} – Profile memory accesses
:: {{The Linux Kernel/man|1|perf-probe}} – Define new dynamic tracepoints
:: {{The Linux Kernel/man|1|perf-sched}} – Tool to trace/measure scheduler properties (latencies)
:: {{The Linux Kernel/man|1|perf-script}} – Read perf.data (created by perf record) and display tr...
::: {{The Linux Kernel/man|1|perf-script-perl}} – Process trace data with a Perl script
::: {{The Linux Kernel/man|1|perf-script-python}} – Process trace data with a Python script
:: {{The Linux Kernel/man|1|perf-stat}} – Run a command and gather performance counter statistics
:: {{The Linux Kernel/man|1|perf-test}} – Runs sanity tests.
:: {{The Linux Kernel/man|1|perf-timechart}} – Tool to visualize total system behavior during a workload
:: {{The Linux Kernel/man|1|perf-trace}} – strace inspired tool
:: {{The Linux Kernel/man|1|perf-version}} – display the version of perf binary
⚙️ Internals
: {{The Linux Kernel/man|2|perf_event_open}} – sets up performance monitoring
: {{The Linux Kernel/include|uapi/linux/perf_event.h}}
: {{The Linux Kernel/source|tools/perf}} – performance analysis tools
: {{The Linux Kernel/include|linux/perf_event.h}}
: {{The Linux Kernel/source|kernel/events/core.c}} – performance events core
: {{The Linux Kernel/source|kernel/profile.c}} – simple profiling
📖 References
: {{w|perf (Linux)|perf}} – instruments CPU performance counters, tracepoints, kprobes, and uprobes
: https://perfwiki.github.io/main/
📚 Further reading
: [https://www.brendangregg.com/perf.html perf Examples]
: [https://web.eece.maine.edu/~vweaver/projects/perf_events/ The Unofficial Linux Perf Events Web-Page]
---------------
🛠️ Utilities
: {{w|Performance Co-Pilot}}, https://pcp.io/ – Performance Co-Pilot
: {{w|Prometheus (software)|Prometheus}}, https://prometheus.io/
: https://github.com/redhat-nfvpe/container-perf-tools
: https://github.com/brendangregg/perf-tools – performance analysis tools based on Linux perf_events (aka perf) and ftrace
: [https://linux.die.net/man/1/readprofile readprofile] – a tool to read kernel profiling information
📚 Further reading
: [https://wiki.ubuntu.com/Kernel/Reference/stress-ng stress-ng] – exercises various kernel interfaces
: http://trac.gateworks.com/wiki/linux/profiling
: [https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux_for_real_time/9/html/optimizing_rhel_9_for_real_time_for_low_latency_operation/assembly_analyzing-application-performance_optimizing-rhel9-for-real-time-for-low-latency-operation Analyzing application performance in RHEL 9]
: [https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/monitoring_and_managing_system_status_and_performance/index Monitoring and managing system status and performance in RHEL 9]
: [[Embedded_Systems/Linux#Real-time|Real-time Linux]]
== User space debug interfaces ==
⚲ Interfaces
: {{The Linux Kernel/man|1|dmesg}} – prints or control the kernel ring buffer
:: {{The Linux Kernel/man|2|syslog}} – system call, which is used to control the kernel printk() buffer
: {{The Linux Kernel/man|1|strace}} – system calls and signals tracing tool
:: {{The Linux Kernel/man|2|ptrace}} – process trace system call
: {{The Linux Kernel/man|3|klogctl}}
: {{The Linux Kernel/man|5|core}}
: /sys/kernel/debug/ – {{w|debugfs}}
: dmesg --console-level <level>
: gdb /usr/src/linux/vmlinux /proc/kcore
: /proc/self/stack
: {{The Linux Kernel/doc|dynamic|admin-guide/dynamic-debug-howto.html}} debug
:: <big>⌨️</big> hands-on:
:: echo "module atkbd +pfl" | sudo tee /sys/kernel/debug/dynamic_debug/control
⚙️ Internals
: {{The Linux Kernel/id|handle_sysrq}}
📚 '''References'''
: {{The Linux Kernel/doc|Development tools for the kernel|dev-tools}}
: {{The Linux Kernel/doc|DebugFS|filesystems/debugfs.html}}, {{The Linux Kernel/source|samples/qmi/qmi_sample_client.c}}
: {{The Linux Kernel/doc|Kprobe-based Event Tracing|trace/kprobetrace.html}}
: {{The Linux Kernel/doc|Dynamic debug|admin-guide/dynamic-debug-howto.html}}
: {{The Linux Kernel/doc|Linux Magic System Request Key Hacks|admin-guide/sysrq.html}}
: {{w|Magic SysRq key}}
== Tracing and logging ==
⚲ API:
'''User-space interface:'''
: {{The Linux Kernel/man|1|dmesg}} – prints or control the kernel ring buffer
:: {{The Linux Kernel/man|2|syslog}} – system call, which is used to control the kernel printk() buffer
: /proc/kmsg
: https://kernelshark.org/ – front end reader of trace-cmd
: https://trace-cmd.org/, {{The Linux Kernel/man|1|trace-cmd}} – CLI for {{The Linux Kernel/doc|Ftrace|trace/ftrace.html}} – Linux kernel internal tracer /sys/kernel/debug/tracing/
'''The most commonly used functions'''
: {{The Linux Kernel/include|linux/printk.h}}
:: {{The Linux Kernel/id|dump_stack}} – prints the current kernel stack trace for debugging purposes
:: {{The Linux Kernel/id|pr_alert}} – logs an alert-level message, indicating a critical event that requires immediate attention
:: {{The Linux Kernel/id|pr_cont}} – continues printing the current message on the same line
:: {{The Linux Kernel/id|pr_crit}} – logs a critical-level message, indicating a severe condition that might require system halt
:: {{The Linux Kernel/id|pr_debug}} – logs a debug-level message for developers, usually enabled in debug builds
:: {{The Linux Kernel/id|pr_devel}} – logs a developer-specific message, typically used for fine-grained debug purposes, see {{The Linux Kernel/doc|dynamic|admin-guide/dynamic-debug-howto.html}}
:: {{The Linux Kernel/id|pr_emerg}} – logs an emergency-level message, indicating a serious error that could cause system crash
:: {{The Linux Kernel/id|pr_err}} – logs an error-level message, typically indicating an issue that requires attention
:: {{The Linux Kernel/id|pr_err_ratelimited}} – logs an error-level message with rate limiting to prevent excessive logging
:: {{The Linux Kernel/id|pr_fmt}} – defines a format string for kernel messages
:: {{The Linux Kernel/id|pr_info}} – logs an informational-level message, providing status updates or diagnostics
:: {{The Linux Kernel/id|pr_info_ratelimited}} – logs an informational-level message with rate limiting
:: {{The Linux Kernel/id|pr_notice}} – logs a notice-level message, typically used for events that aren't errors but should be noted
:: {{The Linux Kernel/id|pr_warn}} – logs a warning-level message, indicating a potential issue that doesn't immediately affect system functionality
:: {{The Linux Kernel/id|pr_warn_once}} – logs a warning message once, preventing repeated warnings for the same event
:: {{The Linux Kernel/id|pr_warn_ratelimited}} – logs a warning-level message with rate limiting
:: {{The Linux Kernel/id|print_hex_dump}} – prints a hexdump of data for debugging purposes
:: {{The Linux Kernel/id|print_hex_dump_debug}} – prints a detailed hexdump with debugging-level verbosity
:: {{The Linux Kernel/id|printk}} – the primary function for printing kernel messages with varying severity levels
:: {{The Linux Kernel/id|va_format}} – formats a variable argument list into a string for logging or printing purposes
::: <big>⌨️</big> hands-on:
::: echo "module atkbd +pfl" | sudo tee /sys/kernel/debug/dynamic_debug/control; dmesg -w
::: and type on built-in keyboard
: {{The Linux Kernel/include|linux/dev_printk.h}} – device-specific logging
:: {{The Linux Kernel/id|dev_crit}} – prints a critical-level message for a device
:: {{The Linux Kernel/id|dev_dbg}} – prints a debug-level message for a device if debugging is enabled
:: {{The Linux Kernel/id|dev_dbg_ratelimited}} – prints debug messages for a device with rate limiting
:: {{The Linux Kernel/id|dev_err}} – prints an error-level message for a device
:: {{The Linux Kernel/id|dev_err_once}} – prints an error message for a device only once
:: {{The Linux Kernel/id|dev_err_probe}} – prints an error related to probe failure with standard formatting
:: {{The Linux Kernel/id|dev_err_ratelimited}} – prints error messages for a device with rate limiting
:: {{The Linux Kernel/id|dev_fmt}} – defines a format string used by device-specific printk macros
:: {{The Linux Kernel/id|dev_info}} – prints an informational-level message for a device
:: {{The Linux Kernel/id|dev_notice}} – prints a notice-level message for a device
:: {{The Linux Kernel/id|dev_printk}} – generic function to print kernel messages with specified log level for a device
:: {{The Linux Kernel/id|dev_vdbg}} – prints verbose debug messages for a device if enabled at compile time
:: {{The Linux Kernel/id|dev_warn}} – prints a warning-level message for a device
:: {{The Linux Kernel/id|dev_warn_once}} – prints a warning message for a device only once
:: {{The Linux Kernel/id|dev_warn_ratelimited}} – prints warning messages for a device with rate limiting
: {{The Linux Kernel/include|asm-generic/bug.h}}
:: {{The Linux Kernel/id|WARN_ON}}
:: {{The Linux Kernel/id|WARN}}
⚙️ Internals
: {{The Linux Kernel/id|printk}}
: {{The Linux Kernel/source|kernel/printk/printk.c}} – kernel message logging
: {{The Linux Kernel/source|arch/x86/kernel/traps.c}} – x86 exception and trap handling
: {{The Linux Kernel/source|lib/dump_stack.c}} – stack trace dumping
: {{The Linux Kernel/source|kernel/trace}} – tracing infrastructure
: {{The Linux Kernel/source|scripts/tracing/draw_functrace.py}} – visualize function call graph from trace
: {{The Linux Kernel/ltp|kernel|logging}}, {{The Linux Kernel/ltp|kernel|tracing}}
: {{The Linux Kernel/source|samples/ftrace}} – ftrace usage examples
: {{The Linux Kernel/source|samples/trace_events}} – trace event examples
: {{The Linux Kernel/source|samples/trace_printk}} – trace_printk examples
: {{The Linux Kernel/include|linux/instrumentation.h}}
📚 '''References''':
: [https://elinux.org/Debugging_by_printing Debugging by printing]
: {{The Linux Kernel/doc|Message logging with printk|core-api/printk-basics.html}}
: {{The Linux Kernel/doc|Dynamic debug|admin-guide/dynamic-debug-howto.html}}
: {{w|SystemTap}}
:: {{The Linux Kernel/man|1|stap}} – systemtap script translator/driver
: {{w|strace}}
:: {{The Linux Kernel/man|1|strace}} – trace system calls and signals
: {{w|LTTng}}
: {{w|ftrace}}
: {{The Linux Kernel/doc|Linux Tracing Technologies|trace}}
:: {{The Linux Kernel/doc|Tracepoint Analysis|trace/tracepoint-analysis.html}}
:: {{The Linux Kernel/doc|Function Tracer|trace/ftrace.html}} – function, latency and event tracing
::: {{The Linux Kernel/doc|Event Tracing|trace/events.html}}
:: {{The Linux Kernel/doc|Using ftrace to hook to functions|trace/ftrace-uses.html}}
:: {{The Linux Kernel/doc|Fprobe - Function entry/exit probe|trace/fprobe.html}}
:: {{The Linux Kernel/doc|Kprobes|trace/kprobes.html}}
:: {{The Linux Kernel/doc|Kprobe-based Event Tracing|trace/kprobetrace.html}}
:: {{The Linux Kernel/doc|Uprobe-tracer: Uprobe-based Event Tracing|trace/uprobetracer.html}}
:: {{The Linux Kernel/doc|Using the Linux Kernel Tracepoints|trace/tracepoints.html}}
:: {{The Linux Kernel/doc|Subsystem Trace Points: kmem|trace/events-kmem.html}}
:: {{The Linux Kernel/doc|Subsystem Trace Points: power|trace/events-power.html}}
:: {{The Linux Kernel/doc|NMI Trace Events|trace/events-nmi.html}}
:: {{The Linux Kernel/doc|In-kernel memory-mapped I/O tracing|trace/mmiotrace.html}}
:: {{The Linux Kernel/doc|Event Histograms|trace/histogram.html}}
:: {{The Linux Kernel/doc|Histogram Design Notes|trace/histogram-design.html}}
:: {{The Linux Kernel/doc|Boot-time tracing|trace/boottime-trace.html}}
:: {{The Linux Kernel/doc|Hardware Latency Detector|trace/hwlat_detector.html}}
:: {{The Linux Kernel/doc|Intel(R) Trace Hub (TH)|trace/intel_th.html}}
:: {{The Linux Kernel/doc|Lockless Ring Buffer Design|trace/ring-buffer-design.html}}
:: {{The Linux Kernel/doc|System Trace Module|trace/stm.html}}
:: {{The Linux Kernel/doc|CoreSight - ARM Hardware Trace|trace/coresight}}
'''🔧 TODO. 🚀 advanced features'''
: {{The Linux Kernel/include|linux/kmemleak.h}} – memory leak detector
: {{The Linux Kernel/id|pr_cont}} - continues a previous log message in the same line
: {{The Linux Kernel/id|print_hex_dump_bytes}}
: {{The Linux Kernel/id|print_hex_dump_debug}}
: {{The Linux Kernel/id|dump_stack}}
: {{The Linux Kernel/id|CONFIG_PRINTK_CALLER}}
: {{The Linux Kernel/id|CONFIG_DEBUG_KERNEL}}
: {{The Linux Kernel/id|CONFIG_DEBUG_INFO}}
: https://git.kernel.org/pub/scm/libs/libtrace/
📚 Further reading
: https://lore.kernel.org/linux-trace-kernel/
: https://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git/
== kgdb and kdb ==
⚲ Interfaces
: {{The Linux Kernel/include|linux/kgdb.h}}
: {{The Linux Kernel/include|linux/kdb.h}}
⚙️ Internals
: {{The Linux Kernel/source|kernel/debug}} – kgdb/kdb debugger
📚 '''References'''
: {{The Linux Kernel/doc|Using kgdb, kdb and the kernel debugger internals|dev-tools/kgdb.html}}
: {{w|kdump (Linux)|kdump}}
: {{The Linux Kernel/doc|kdump|admin-guide/kdump}}
: {{The Linux Kernel/man|8|crash}} – Analyze Linux crash dump data or a live system
== {{w|eBPF}} ==
⚲ API:
: {{The Linux Kernel/man|2|bpf}} ↪ {{The Linux Kernel/source|kernel/bpf/syscall.c}}
📖 References
: {{The Linux Kernel/doc|eBPF and BPF|bpf}}
📚 Further reading
: {{The Linux Kernel/man|7|bpf-helpers}}
: [https://www.brendangregg.com/ebpf.html Linux Extended BPF (eBPF) Tracing Tools]
: [https://github.com/iovisor/bpftrace bpftrace – High-level tracing language for Linux eBPF]
: [https://github.com/iovisor/bcc#tools BCC – Tools for BPF-based Linux IO analysis, networking, monitoring, and more]
:: [https://github.com/iovisor/bcc/blob/master/tools/trace_example.txt Example] of [https://github.com/iovisor/bcc/blob/master/tools/trace.py trace.py]
: {{The Linux Kernel/man|8|stapbpf}}
: [https://medium.com/@zone24x7_inc/ebpf-programming-for-linux-kernel-tracing-30364dde3fb7 eBPF Programming for Linux Kernel Tracing]
: {{The Linux Kernel/doc|lockdep - Runtime locking correctness validator|locking/lockdep-design.html}}
== Watchdogs ==
[[../Softdog Driver]]
{{The Linux Kernel/id|dev_watchdog}} – network device watchdog
The NMI watchdog lockup detectors:
⚲ API
: /proc/sys/kernel/nmi_watchdog
: /proc/sys/kernel/soft_watchdog
: /proc/sys/kernel/watchdog
: /proc/sys/kernel/watchdog_cpumask
: /proc/sys/kernel/watchdog_thresh
: /proc/sys/kernel/hardlockup_all_cpu_backtrace
: /proc/sys/kernel/hardlockup_panic
: /proc/sys/kernel/softlockup_all_cpu_backtrace
: /proc/sys/kernel/softlockup_panic
: {{The Linux Kernel/include|linux/nmi.h}}
👁️ Example
: {{The Linux Kernel/source|lib/test_lockup.c}} – test module to generate lockups
Provoke NMI watchdog without panic:
echo 0 > /proc/sys/kernel/hardlockup_panic
insmod test_lockup.ko disable_irq=1 time_secs=13
⚙️ Internals
: {{The Linux Kernel/source|kernel/watchdog.c}} – detects hard and soft lockups on a system
: {{The Linux Kernel/source|kernel/watchdog_perf.c}} – detects hard lockups on a system using perf
: {{The Linux Kernel/source|kernel/watchdog_buddy.c}} – coordinates watchdog checks across CPUs
📚 References
: {{The Linux Kernel/doc|Documentation for /proc/sys/kernel/|admin-guide/sysctl/kernel.html}}
: {{The Linux Kernel/doc|Softlockup detector and hardlockup detector (aka nmi_watchdog)|admin-guide/lockup-watchdogs.html}}
: kernel parameters:
:: {{The Linux Kernel/param|nmi_watchdog|nmi_watchdog}}
:: {{The Linux Kernel/param|nowatchdog|nowatchdog%09}}
:: {{The Linux Kernel/param|nosoftlockup|nosoftlockup}}
:: {{The Linux Kernel/param|softlockup_panic|softlockup_panic}}
<hr>
==...==
⚙️ Internals
: {{The Linux Kernel/source|arch/x86/kernel/traps.c}} – x86 exception and trap handling
📖 References for debugging
: {{The Linux Kernel/doc|Ramoops oops/panic logger|admin-guide/ramoops.html}}
: {{The Linux Kernel/doc|pstore block oops/panic logger|admin-guide/pstore-blk.html}}
: {{The Linux Kernel/doc|Fault injection|fault-injection}}
: {{The Linux Kernel/doc|Bisecting a bug|admin-guide/bug-bisect.html}}
: {{The Linux Kernel/doc|Development tools for the kernel|dev-tools}}
:: {{The Linux Kernel/doc|Kernel Testing Guide|dev-tools/testing-overview.html}}
:: {{The Linux Kernel/doc|Checkpatch|dev-tools/checkpatch.html}}, {{The Linux Kernel/source|scripts/checkpatch.pl}}
:: {{The Linux Kernel/doc|Selftests|dev-tools/kselftest.html}}, {{The Linux Kernel/source|tools/testing/selftests}}
: {{The Linux Kernel/include|linux/tracepoint.h}}
: {{The Linux Kernel/doc|Tracking down and identifying problems|admin-guide/index.html#tracking-down-and-identifying-problems}}
:: {{The Linux Kernel/doc|Bug hunting|admin-guide/bug-hunting.html}}
:: ...
📚 Further reading
: {{w|Linux kernel oops}}
: {{w|kdump (Linux)}}
: https://deepwiki.com/torvalds/linux/2.4-kernel-tracing-and-profiling
: https://drgn.readthedocs.io/ – programmable debugger
: https://crash-utility.github.io/
: https://wiki.ubuntu.com/Kernel/Debugging
: [https://www.intel.com/content/www/us/en/docs/vtune-profiler/user-guide/2025-1/enabling-linux-kernel-analysis.html Intel VTune Profiler]
: [[Linux Applications Debugging Techniques]]
{{BookCat}}
m08a63w34ldrbdww6yljonk5wnyjdvx
4640273
4640246
2026-06-14T08:15:18Z
Conan
3188
add debugfs, BPF subsystem, memory debugging sections
4640273
wikitext
text/x-wiki
{{DISPLAYTITLE:Debugging Linux kernel}}
⚲ API
: {{The Linux Kernel/include|linux/err.h}} – helper macros for error pointer handling and propagation
: {{The Linux Kernel/include|linux/errno.h}} – standard error codes used throughout the kernel.
== Performance ==
There are many factors that can affect the performance of the Linux kernel, including hardware configurations, software configurations, and workload characteristics.
In this context, performance optimization of the Linux kernel involves identifying and addressing performance {{w|Bottleneck (software)|bottlenecks}} in the system.
This can involve tuning kernel parameters, optimizing system resources, and identifying and fixing bugs and other issues that may be impacting performance.
Given the complexity of the Linux kernel and the wide range of factors that can affect performance, performance optimization can be a challenging task.
However, with the right tools and techniques, it is possible to significantly improve the performance and reliability of Linux-based systems.
=== Perf_events ===
{{w|perf (Linux)|Perf_events}}, short for performance events, is a powerful interface that provides detailed insights into the performance characteristics of software running on a system.
By analyzing the data collected by perf_events, developers can identify performance bottlenecks and optimize software to improve performance and reduce resource utilization.
Perf_events is designed to be a lightweight, low-overhead monitoring solution that has minimal impact on system performance.
🔧 TODO
⚲ Interfaces
: {{The Linux Kernel/man|1|perf}} – performance analysis tools
<!-- generated with
man -k perf | grep ^perf- | sed -n 's%\([^ ]*\) (\(.\+\)) \W\+\(.*\)%:: {{The Linux Kernel/man|\2|\1}} \– \3%p'
-->
: Basic commands:
:: {{The Linux Kernel/man|1|perf-help}} – display help information about perf
:: {{The Linux Kernel/man|1|perf-top}} – System profiling tool.
:: {{The Linux Kernel/man|1|perf-record}} – Run a command and record its profile into perf.data
:: {{The Linux Kernel/man|1|perf-report}} – Read perf.data (created by perf record) and display the profile
: Other commands:
:: {{The Linux Kernel/man|1|perf-annotate}} – Read perf.data (created by perf record) and display annotated code
:: {{The Linux Kernel/man|1|perf-archive}} – Create archive with object files with build-ids found ...
:: {{The Linux Kernel/man|1|perf-arm-spe}} – Support for Arm Statistical Profiling Extension within...
:: {{The Linux Kernel/man|1|perf-bench}} – General framework for benchmark suites
:: {{The Linux Kernel/man|1|perf-buildid-cache}} – Manage build-id cache.
:: {{The Linux Kernel/man|1|perf-buildid-list}} – List the buildids in a perf.data file
:: {{The Linux Kernel/man|1|perf-c2c}} – Shared Data C2C/HITM Analyzer.
:: {{The Linux Kernel/man|1|perf-config}} – Get and set variables in a configuration file.
:: {{The Linux Kernel/man|1|perf-daemon}} – Run record sessions on background
:: {{The Linux Kernel/man|1|perf-data}} – Data file related processing
:: {{The Linux Kernel/man|1|perf-diff}} – Read perf.data files and display the differential profile
:: {{The Linux Kernel/man|1|perf-dlfilter}} – Filter sample events using a dynamically loaded shared...
:: {{The Linux Kernel/man|1|perf-evlist}} – List the event names in a perf.data file
:: {{The Linux Kernel/man|1|perf-ftrace}} – simple wrapper for kernel's ftrace functionality
:: {{The Linux Kernel/man|1|perf-inject}} – Filter to augment the events stream with additional in...
:: {{The Linux Kernel/man|1|perf-intel-pt}} – Support for Intel Processor Trace within perf tools
:: {{The Linux Kernel/man|1|perf-iostat}} – Show I/O performance metrics
:: {{The Linux Kernel/man|1|perf-kallsyms}} – Searches running kernel for symbols
:: {{The Linux Kernel/man|1|perf-kmem}} – Tool to trace/measure kernel memory properties
:: {{The Linux Kernel/man|1|perf-kvm}} – Tool to trace/measure kvm guest os
:: {{The Linux Kernel/man|1|perf-kwork}} – Tool to trace/measure kernel work properties (latencies)
:: {{The Linux Kernel/man|1|perf-list}} – List all symbolic event types
:: {{The Linux Kernel/man|1|perf-lock}} – Analyze lock events
:: {{The Linux Kernel/man|1|perf-mem}} – Profile memory accesses
:: {{The Linux Kernel/man|1|perf-probe}} – Define new dynamic tracepoints
:: {{The Linux Kernel/man|1|perf-sched}} – Tool to trace/measure scheduler properties (latencies)
:: {{The Linux Kernel/man|1|perf-script}} – Read perf.data (created by perf record) and display tr...
::: {{The Linux Kernel/man|1|perf-script-perl}} – Process trace data with a Perl script
::: {{The Linux Kernel/man|1|perf-script-python}} – Process trace data with a Python script
:: {{The Linux Kernel/man|1|perf-stat}} – Run a command and gather performance counter statistics
:: {{The Linux Kernel/man|1|perf-test}} – Runs sanity tests.
:: {{The Linux Kernel/man|1|perf-timechart}} – Tool to visualize total system behavior during a workload
:: {{The Linux Kernel/man|1|perf-trace}} – strace inspired tool
:: {{The Linux Kernel/man|1|perf-version}} – display the version of perf binary
⚙️ Internals
: {{The Linux Kernel/man|2|perf_event_open}} – sets up performance monitoring
: {{The Linux Kernel/include|uapi/linux/perf_event.h}}
: {{The Linux Kernel/source|tools/perf}} – performance analysis tools
: {{The Linux Kernel/include|linux/perf_event.h}}
: {{The Linux Kernel/source|kernel/events/core.c}} – performance events core
: {{The Linux Kernel/source|kernel/profile.c}} – simple profiling
📖 References
: {{w|perf (Linux)|perf}} – instruments CPU performance counters, tracepoints, kprobes, and uprobes
: https://perfwiki.github.io/main/
📚 Further reading
: [https://www.brendangregg.com/perf.html perf Examples]
: [https://web.eece.maine.edu/~vweaver/projects/perf_events/ The Unofficial Linux Perf Events Web-Page]
---------------
🛠️ Utilities
: {{w|Performance Co-Pilot}}, https://pcp.io/ – Performance Co-Pilot
: {{w|Prometheus (software)|Prometheus}}, https://prometheus.io/
: https://github.com/redhat-nfvpe/container-perf-tools
: https://github.com/brendangregg/perf-tools – performance analysis tools based on Linux perf_events (aka perf) and ftrace
: [https://linux.die.net/man/1/readprofile readprofile] – a tool to read kernel profiling information
📚 Further reading
: [https://wiki.ubuntu.com/Kernel/Reference/stress-ng stress-ng] – exercises various kernel interfaces
: http://trac.gateworks.com/wiki/linux/profiling
: [https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux_for_real_time/9/html/optimizing_rhel_9_for_real_time_for_low_latency_operation/assembly_analyzing-application-performance_optimizing-rhel9-for-real-time-for-low-latency-operation Analyzing application performance in RHEL 9]
: [https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/monitoring_and_managing_system_status_and_performance/index Monitoring and managing system status and performance in RHEL 9]
: [[Embedded_Systems/Linux#Real-time|Real-time Linux]]
== User space debug interfaces ==
⚲ Interfaces
: {{The Linux Kernel/man|1|dmesg}} – prints or control the kernel ring buffer
:: {{The Linux Kernel/man|2|syslog}} – system call, which is used to control the kernel printk() buffer
: {{The Linux Kernel/man|1|strace}} – system calls and signals tracing tool
:: {{The Linux Kernel/man|2|ptrace}} – process trace system call
: {{The Linux Kernel/man|3|klogctl}}
: {{The Linux Kernel/man|5|core}}
: /sys/kernel/debug/ – {{w|debugfs}}
: dmesg --console-level <level>
: gdb /usr/src/linux/vmlinux /proc/kcore
: /proc/self/stack
: {{The Linux Kernel/doc|dynamic|admin-guide/dynamic-debug-howto.html}} debug
:: <big>⌨️</big> hands-on:
:: echo "module atkbd +pfl" | sudo tee /sys/kernel/debug/dynamic_debug/control
⚙️ Internals
: {{The Linux Kernel/id|handle_sysrq}}
: {{The Linux Kernel/include|linux/debugfs.h}} – debugfs API
: {{The Linux Kernel/source|fs/debugfs}} – debugfs implementation
📚 '''References'''
: {{The Linux Kernel/doc|Development tools for the kernel|dev-tools}}
: {{The Linux Kernel/doc|DebugFS|filesystems/debugfs.html}}, {{The Linux Kernel/source|samples/qmi/qmi_sample_client.c}}
: {{The Linux Kernel/doc|Kprobe-based Event Tracing|trace/kprobetrace.html}}
: {{The Linux Kernel/doc|Dynamic debug|admin-guide/dynamic-debug-howto.html}}
: {{The Linux Kernel/doc|Linux Magic System Request Key Hacks|admin-guide/sysrq.html}}
: {{w|Magic SysRq key}}
== Tracing and logging ==
⚲ API:
'''User-space interface:'''
: {{The Linux Kernel/man|1|dmesg}} – prints or control the kernel ring buffer
:: {{The Linux Kernel/man|2|syslog}} – system call, which is used to control the kernel printk() buffer
: /proc/kmsg
: https://kernelshark.org/ – front end reader of trace-cmd
: https://trace-cmd.org/, {{The Linux Kernel/man|1|trace-cmd}} – CLI for {{The Linux Kernel/doc|Ftrace|trace/ftrace.html}} – Linux kernel internal tracer /sys/kernel/debug/tracing/
'''The most commonly used functions'''
: {{The Linux Kernel/include|linux/printk.h}}
:: {{The Linux Kernel/id|dump_stack}} – prints the current kernel stack trace for debugging purposes
:: {{The Linux Kernel/id|pr_alert}} – logs an alert-level message, indicating a critical event that requires immediate attention
:: {{The Linux Kernel/id|pr_cont}} – continues printing the current message on the same line
:: {{The Linux Kernel/id|pr_crit}} – logs a critical-level message, indicating a severe condition that might require system halt
:: {{The Linux Kernel/id|pr_debug}} – logs a debug-level message for developers, usually enabled in debug builds
:: {{The Linux Kernel/id|pr_devel}} – logs a developer-specific message, typically used for fine-grained debug purposes, see {{The Linux Kernel/doc|dynamic|admin-guide/dynamic-debug-howto.html}}
:: {{The Linux Kernel/id|pr_emerg}} – logs an emergency-level message, indicating a serious error that could cause system crash
:: {{The Linux Kernel/id|pr_err}} – logs an error-level message, typically indicating an issue that requires attention
:: {{The Linux Kernel/id|pr_err_ratelimited}} – logs an error-level message with rate limiting to prevent excessive logging
:: {{The Linux Kernel/id|pr_fmt}} – defines a format string for kernel messages
:: {{The Linux Kernel/id|pr_info}} – logs an informational-level message, providing status updates or diagnostics
:: {{The Linux Kernel/id|pr_info_ratelimited}} – logs an informational-level message with rate limiting
:: {{The Linux Kernel/id|pr_notice}} – logs a notice-level message, typically used for events that aren't errors but should be noted
:: {{The Linux Kernel/id|pr_warn}} – logs a warning-level message, indicating a potential issue that doesn't immediately affect system functionality
:: {{The Linux Kernel/id|pr_warn_once}} – logs a warning message once, preventing repeated warnings for the same event
:: {{The Linux Kernel/id|pr_warn_ratelimited}} – logs a warning-level message with rate limiting
:: {{The Linux Kernel/id|print_hex_dump}} – prints a hexdump of data for debugging purposes
:: {{The Linux Kernel/id|print_hex_dump_debug}} – prints a detailed hexdump with debugging-level verbosity
:: {{The Linux Kernel/id|printk}} – the primary function for printing kernel messages with varying severity levels
:: {{The Linux Kernel/id|va_format}} – formats a variable argument list into a string for logging or printing purposes
::: <big>⌨️</big> hands-on:
::: echo "module atkbd +pfl" | sudo tee /sys/kernel/debug/dynamic_debug/control; dmesg -w
::: and type on built-in keyboard
: {{The Linux Kernel/include|linux/dev_printk.h}} – device-specific logging
:: {{The Linux Kernel/id|dev_crit}} – prints a critical-level message for a device
:: {{The Linux Kernel/id|dev_dbg}} – prints a debug-level message for a device if debugging is enabled
:: {{The Linux Kernel/id|dev_dbg_ratelimited}} – prints debug messages for a device with rate limiting
:: {{The Linux Kernel/id|dev_err}} – prints an error-level message for a device
:: {{The Linux Kernel/id|dev_err_once}} – prints an error message for a device only once
:: {{The Linux Kernel/id|dev_err_probe}} – prints an error related to probe failure with standard formatting
:: {{The Linux Kernel/id|dev_err_ratelimited}} – prints error messages for a device with rate limiting
:: {{The Linux Kernel/id|dev_fmt}} – defines a format string used by device-specific printk macros
:: {{The Linux Kernel/id|dev_info}} – prints an informational-level message for a device
:: {{The Linux Kernel/id|dev_notice}} – prints a notice-level message for a device
:: {{The Linux Kernel/id|dev_printk}} – generic function to print kernel messages with specified log level for a device
:: {{The Linux Kernel/id|dev_vdbg}} – prints verbose debug messages for a device if enabled at compile time
:: {{The Linux Kernel/id|dev_warn}} – prints a warning-level message for a device
:: {{The Linux Kernel/id|dev_warn_once}} – prints a warning message for a device only once
:: {{The Linux Kernel/id|dev_warn_ratelimited}} – prints warning messages for a device with rate limiting
: {{The Linux Kernel/include|asm-generic/bug.h}}
:: {{The Linux Kernel/id|WARN_ON}}
:: {{The Linux Kernel/id|WARN}}
⚙️ Internals
: {{The Linux Kernel/id|printk}}
: {{The Linux Kernel/source|kernel/printk/printk.c}} – kernel message logging
: {{The Linux Kernel/source|arch/x86/kernel/traps.c}} – x86 exception and trap handling
: {{The Linux Kernel/source|lib/dump_stack.c}} – stack trace dumping
: {{The Linux Kernel/source|kernel/trace}} – tracing infrastructure
: {{The Linux Kernel/source|scripts/tracing/draw_functrace.py}} – visualize function call graph from trace
: {{The Linux Kernel/ltp|kernel|logging}}, {{The Linux Kernel/ltp|kernel|tracing}}
: {{The Linux Kernel/source|samples/ftrace}} – ftrace usage examples
: {{The Linux Kernel/source|samples/trace_events}} – trace event examples
: {{The Linux Kernel/source|samples/trace_printk}} – trace_printk examples
: {{The Linux Kernel/include|linux/instrumentation.h}}
📚 '''References''':
: [https://elinux.org/Debugging_by_printing Debugging by printing]
: {{The Linux Kernel/doc|Message logging with printk|core-api/printk-basics.html}}
: {{The Linux Kernel/doc|Dynamic debug|admin-guide/dynamic-debug-howto.html}}
: {{w|SystemTap}}
:: {{The Linux Kernel/man|1|stap}} – systemtap script translator/driver
: {{w|strace}}
:: {{The Linux Kernel/man|1|strace}} – trace system calls and signals
: {{w|LTTng}}
: {{w|ftrace}}
: {{The Linux Kernel/doc|Linux Tracing Technologies|trace}}
:: {{The Linux Kernel/doc|Tracepoint Analysis|trace/tracepoint-analysis.html}}
:: {{The Linux Kernel/doc|Function Tracer|trace/ftrace.html}} – function, latency and event tracing
::: {{The Linux Kernel/doc|Event Tracing|trace/events.html}}
:: {{The Linux Kernel/doc|Using ftrace to hook to functions|trace/ftrace-uses.html}}
:: {{The Linux Kernel/doc|Fprobe - Function entry/exit probe|trace/fprobe.html}}
:: {{The Linux Kernel/doc|Kprobes|trace/kprobes.html}}
:: {{The Linux Kernel/doc|Kprobe-based Event Tracing|trace/kprobetrace.html}}
:: {{The Linux Kernel/doc|Uprobe-tracer: Uprobe-based Event Tracing|trace/uprobetracer.html}}
:: {{The Linux Kernel/doc|Using the Linux Kernel Tracepoints|trace/tracepoints.html}}
:: {{The Linux Kernel/doc|Subsystem Trace Points: kmem|trace/events-kmem.html}}
:: {{The Linux Kernel/doc|Subsystem Trace Points: power|trace/events-power.html}}
:: {{The Linux Kernel/doc|NMI Trace Events|trace/events-nmi.html}}
:: {{The Linux Kernel/doc|In-kernel memory-mapped I/O tracing|trace/mmiotrace.html}}
:: {{The Linux Kernel/doc|Event Histograms|trace/histogram.html}}
:: {{The Linux Kernel/doc|Histogram Design Notes|trace/histogram-design.html}}
:: {{The Linux Kernel/doc|Boot-time tracing|trace/boottime-trace.html}}
:: {{The Linux Kernel/doc|Hardware Latency Detector|trace/hwlat_detector.html}}
:: {{The Linux Kernel/doc|Intel(R) Trace Hub (TH)|trace/intel_th.html}}
:: {{The Linux Kernel/doc|Lockless Ring Buffer Design|trace/ring-buffer-design.html}}
:: {{The Linux Kernel/doc|System Trace Module|trace/stm.html}}
:: {{The Linux Kernel/doc|CoreSight - ARM Hardware Trace|trace/coresight}}
'''🔧 TODO. 🚀 advanced features'''
: {{The Linux Kernel/include|linux/kmemleak.h}} – memory leak detector
: {{The Linux Kernel/id|pr_cont}} - continues a previous log message in the same line
: {{The Linux Kernel/id|print_hex_dump_bytes}}
: {{The Linux Kernel/id|print_hex_dump_debug}}
: {{The Linux Kernel/id|dump_stack}}
: {{The Linux Kernel/id|CONFIG_PRINTK_CALLER}}
: {{The Linux Kernel/id|CONFIG_DEBUG_KERNEL}}
: {{The Linux Kernel/id|CONFIG_DEBUG_INFO}}
: https://git.kernel.org/pub/scm/libs/libtrace/
📚 Further reading
: https://lore.kernel.org/linux-trace-kernel/
: https://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git/
== Memory debugging ==
⚙️ Internals:
: {{The Linux Kernel/source|mm/kasan}} – {{The Linux Kernel/doc|KernelAddressSANitizer|dev-tools/kasan.html}}, detects out-of-bounds and use-after-free bugs
: {{The Linux Kernel/source|mm/kfence}} – {{The Linux Kernel/doc|Kernel Electric-Fence|dev-tools/kfence.html}}, low-overhead sampling-based memory safety detector
: {{The Linux Kernel/include|linux/kmemleak.h}} – {{The Linux Kernel/doc|memory leak detector|dev-tools/kmemleak.html}}, {{The Linux Kernel/source|mm/kmemleak.c}}
== kgdb and kdb ==
⚲ Interfaces
: {{The Linux Kernel/include|linux/kgdb.h}}
: {{The Linux Kernel/include|linux/kdb.h}}
⚙️ Internals
: {{The Linux Kernel/source|kernel/debug}} – kgdb/kdb debugger
📚 '''References'''
: {{The Linux Kernel/doc|Using kgdb, kdb and the kernel debugger internals|dev-tools/kgdb.html}}
: {{w|kdump (Linux)|kdump}}
: {{The Linux Kernel/doc|kdump|admin-guide/kdump}}
: {{The Linux Kernel/man|8|crash}} – Analyze Linux crash dump data or a live system
== {{w|eBPF}} ==
⚲ API:
: {{The Linux Kernel/man|2|bpf}} ↪ {{The Linux Kernel/source|kernel/bpf/syscall.c}}
: {{The Linux Kernel/include|linux/bpf.h}} – BPF core definitions
⚙️ Internals:
: {{The Linux Kernel/source|kernel/bpf}} – BPF subsystem core
: {{The Linux Kernel/source|net/bpf}} – BPF networking hooks
📖 References
: {{The Linux Kernel/doc|eBPF and BPF|bpf}}
📚 Further reading
: {{The Linux Kernel/man|7|bpf-helpers}}
: [https://www.brendangregg.com/ebpf.html Linux Extended BPF (eBPF) Tracing Tools]
: [https://github.com/iovisor/bpftrace bpftrace – High-level tracing language for Linux eBPF]
: [https://github.com/iovisor/bcc#tools BCC – Tools for BPF-based Linux IO analysis, networking, monitoring, and more]
:: [https://github.com/iovisor/bcc/blob/master/tools/trace_example.txt Example] of [https://github.com/iovisor/bcc/blob/master/tools/trace.py trace.py]
: {{The Linux Kernel/man|8|stapbpf}}
: [https://medium.com/@zone24x7_inc/ebpf-programming-for-linux-kernel-tracing-30364dde3fb7 eBPF Programming for Linux Kernel Tracing]
: {{The Linux Kernel/doc|lockdep - Runtime locking correctness validator|locking/lockdep-design.html}}
== Watchdogs ==
[[../Softdog Driver]]
{{The Linux Kernel/id|dev_watchdog}} – network device watchdog
The NMI watchdog lockup detectors:
⚲ API
: /proc/sys/kernel/nmi_watchdog
: /proc/sys/kernel/soft_watchdog
: /proc/sys/kernel/watchdog
: /proc/sys/kernel/watchdog_cpumask
: /proc/sys/kernel/watchdog_thresh
: /proc/sys/kernel/hardlockup_all_cpu_backtrace
: /proc/sys/kernel/hardlockup_panic
: /proc/sys/kernel/softlockup_all_cpu_backtrace
: /proc/sys/kernel/softlockup_panic
: {{The Linux Kernel/include|linux/nmi.h}}
👁️ Example
: {{The Linux Kernel/source|lib/test_lockup.c}} – test module to generate lockups
Provoke NMI watchdog without panic:
echo 0 > /proc/sys/kernel/hardlockup_panic
insmod test_lockup.ko disable_irq=1 time_secs=13
⚙️ Internals
: {{The Linux Kernel/source|kernel/watchdog.c}} – detects hard and soft lockups on a system
: {{The Linux Kernel/source|kernel/watchdog_perf.c}} – detects hard lockups on a system using perf
: {{The Linux Kernel/source|kernel/watchdog_buddy.c}} – coordinates watchdog checks across CPUs
📚 References
: {{The Linux Kernel/doc|Documentation for /proc/sys/kernel/|admin-guide/sysctl/kernel.html}}
: {{The Linux Kernel/doc|Softlockup detector and hardlockup detector (aka nmi_watchdog)|admin-guide/lockup-watchdogs.html}}
: kernel parameters:
:: {{The Linux Kernel/param|nmi_watchdog|nmi_watchdog}}
:: {{The Linux Kernel/param|nowatchdog|nowatchdog%09}}
:: {{The Linux Kernel/param|nosoftlockup|nosoftlockup}}
:: {{The Linux Kernel/param|softlockup_panic|softlockup_panic}}
<hr>
==...==
⚙️ Internals
: {{The Linux Kernel/source|arch/x86/kernel/traps.c}} – x86 exception and trap handling
📖 References for debugging
: {{The Linux Kernel/doc|Ramoops oops/panic logger|admin-guide/ramoops.html}}
: {{The Linux Kernel/doc|pstore block oops/panic logger|admin-guide/pstore-blk.html}}
: {{The Linux Kernel/doc|Fault injection|fault-injection}}
: {{The Linux Kernel/doc|Bisecting a bug|admin-guide/bug-bisect.html}}
: {{The Linux Kernel/doc|Development tools for the kernel|dev-tools}}
:: {{The Linux Kernel/doc|Kernel Testing Guide|dev-tools/testing-overview.html}}
:: {{The Linux Kernel/doc|Checkpatch|dev-tools/checkpatch.html}}, {{The Linux Kernel/source|scripts/checkpatch.pl}}
:: {{The Linux Kernel/doc|Selftests|dev-tools/kselftest.html}}, {{The Linux Kernel/source|tools/testing/selftests}}
: {{The Linux Kernel/include|linux/tracepoint.h}}
: {{The Linux Kernel/doc|Tracking down and identifying problems|admin-guide/index.html#tracking-down-and-identifying-problems}}
:: {{The Linux Kernel/doc|Bug hunting|admin-guide/bug-hunting.html}}
:: ...
📚 Further reading
: {{w|Linux kernel oops}}
: {{w|kdump (Linux)}}
: https://deepwiki.com/torvalds/linux/2.4-kernel-tracing-and-profiling
: https://drgn.readthedocs.io/ – programmable debugger
: https://crash-utility.github.io/
: https://wiki.ubuntu.com/Kernel/Debugging
: [https://www.intel.com/content/www/us/en/docs/vtune-profiler/user-guide/2025-1/enabling-linux-kernel-analysis.html Intel VTune Profiler]
: [[Linux Applications Debugging Techniques]]
{{BookCat}}
t1k9em7xl4jnb01hyjokk9k2envhd2g
Inclusive Data Research Skills for Arts and Humanities
0
464300
4640257
4639801
2026-06-14T00:39:04Z
TunnelESON
10882
- deleted link
4640257
wikitext
text/x-wiki
{{book title|Inclusive Data Research Skills for Arts and Humanities}}
[[File:University of Edinburgh Spy Week Wikipedia edit-a-thon 08.jpg|330px|thumb|Hackathon participants will have the opportunity to collaboratively develop materials openly available through a creative commons licence|center]]
== Welcome ==
The DAReS project aims to develop an inclusive data and digital skills curriculum for the arts and humanities, which can inform a scalable regional or national pilot. This Hackathon is part of the DAReS project, funded by the AHRC as part of the IDAH Digital Skills Network, lead by the London College of Communication, University of the Arts London, with the Creative Computing Institute, King’s College London, Leeds University, Roehampton University, and partners, CRAC/Vitae and Wikimedia UK. The final section was updated in an AI and Inclusion 'Edit-a-thon' co-led with Wikimedia UK.
=== Resources for contributors ===
*[[/How to create an account/]]
*[[/What is Wikibooks/]]
*[[/How to add a chapter/]]
*The [https://outreachdashboard.wmflabs.org/courses/Introduction_to_WikiBooks/Inclusive_Data_Research_Skills_Hackathon_for_Arts_and_Humanities outreach dashboard]
*[[/Guidance on accessibility and good practice/]]
*[[/Agenda for the Day/]]
== Contents ==
{{Book search}}
=== [[Inclusive Data Research Skills for Arts and Humanities/About the Project|About the Project]] ===
*[[/About the DAReS project/]]
*[[/Project Team/]]
*[[/DAReS Codesigners/]]
*[[/Contributors/]]
*[[/Self Sustaining Community of Researchers/|Self-Sustaining Community of Researchers]]
=== [[Inclusive Data Research Skills for Arts and Humanities/About the Project|DAReS Hackathon Code of Conduct]] ===
*[[/Purpose, values, code and consequences/]]
=== [[/Section 1/|Session 1: Data skills: What works for arts and humanities?]] ===
*[[/What counts as data?/]]
*[[/Data Visualization/]]
*[[/Data practices/]]
=== [[/Section 2/|Session 2: Data epistemologies and decolonising data tools and skills]] ===
*[[/Introductory context: How we came to data epistemologies and decolonial approaches/]]
*[[/Deconstructing data methods and decolonising approaches/|Deconstructing Data Methods and Decolonising Approaches]]
*[[/Data agencies/|Data Agencies]]
*[[/Data inequalities and power/|Data Inequalities and Power]]
=== [[/Section 3/|Session 3: Hacking the Research Journey]] ===
*[[/What is the research journey?/]]
*[[/What kinds of research can data-oriented arts and humanities researchers do and what are the possible challenges?/]]
*[[/What should a research goal be?/]]
*[[/Who can potential collaborators, partners and team be?/]]
*[[/How do you get funding?/]]
=== [[/Section 4/|Section 4: DAReS Hackathon Reflection and Comments]] ===
=== [[/Section 5/|Section 5: AI and Inclusion]] ===
*[[/AI Show and tell/]]
*[[/Wikimedia and the age of AI/]]
*[[/Barriers to Inclusion and Demand for Inclusive AI/]]
*
== Outreach dashboard ==
This book was collaboratively written by members of the DAReS project and attendees at the hackathon on 26 January 2024. It was updated to include an additional section on AI and Inclusion on June 10, 2026. A list of contributors can be found [https://outreachdashboard.wmflabs.org/courses/Introduction_to_WikiBooks/Inclusive_Data_Research_Skills_Hackathon_for_Arts_and_Humanities/students on the outreach dashboard].
'''Contributors Included:'''
Karen Hanrahan
Claire Carroll
Zoetanya Sujon
Beatrice Wohl
Corey Ford
Diana Galindo
5499iq39bsuvw7vxqwp28btdgze7p7n
The Linux Kernel/Multitasking/Real-time
0
470358
4640207
4637702
2026-06-13T17:19:22Z
Conan
3188
fix ...
4640207
wikitext
text/x-wiki
<noinclude>
{{DISPLAYTITLE:Real-time Linux}}
</noinclude>
==== RT preemption ====
[https://wiki.linuxfoundation.org/realtime/start The Linux Foundation's Real-Time Linux (RTL) collaborative project] is focused on improving the real-time capabilities of Linux and advancing the adoption of real-time Linux in various industries, including aerospace, automotive, robotics, and telecommunications.
Parameter {{The Linux Kernel/id|CONFIG_PREEMPT_RT}} enables real-time preemption.
==== RT scheduling policies ====
Scheduling policies for RT:
: {{The Linux Kernel/id|SCHED_FIFO}}, {{The Linux Kernel/id|SCHED_RR}}
:: implemented in {{The Linux Kernel/source|kernel/sched/rt.c}}
: {{w|SCHED_DEADLINE}}
:: implemented in {{The Linux Kernel/source|kernel/sched/deadline.c}}
API:
: {{The Linux Kernel/man|1|chrt}} – manipulate the real-time attributes of a process
: {{The Linux Kernel/man|2|sched_rr_get_interval}} – get the SCHED_RR interval for the named process
: {{The Linux Kernel/man|2|sched_setscheduler}}, sched_getscheduler – set and get scheduling policy/parameters
: {{The Linux Kernel/man|2|sched_get_priority_min}}, sched_get_priority_max – get static priority range
==== RT synchronization ====
⚲ APIs
: {{The Linux Kernel/id|migrate_disable}} + {{The Linux Kernel/id|spin_lock}}
: {{The Linux Kernel/id|local_lock}} calls migrate_disable(); {{The Linux Kernel/id|rt_spin_lock}}({{The Linux Kernel/id|this_cpu_ptr}}((__lock)));
📖 References
: [https://docs.kernel.org/locking/locktypes.html#:~:text=migrate_disable Usage of migrate_disable]
: {{The Linux Kernel/doc|PREEMPT_RT caveats: spinlock_t, rwlock_t, migrate_disable and local_lock|locking/locktypes.html#spinlock-t-and-rwlock-t}}
⚙️ Internals
Spinlock
: {{The Linux Kernel/include|linux/spinlock_rt.h}} used via {{The Linux Kernel/include|linux/spinlock_types.h}}
:: {{The Linux Kernel/id|spinlock_t}}
::: {{The Linux Kernel/id|rt_mutex_base}}
::: {{The Linux Kernel/id|rt_spin_lock}} ...
:::: {{The Linux Kernel/id|__rt_spin_lock}} ...
::::: {{The Linux Kernel/id|rtlock_lock}} ...
: {{The Linux Kernel/source|kernel/locking/spinlock_rt.c}}
RT Mutex
: {{The Linux Kernel/include|linux/rtmutex.h}} used via {{The Linux Kernel/include|linux/mutex_types.h}}
:: {{The Linux Kernel/id|rt_mutex_base}}
:: {{The Linux Kernel/id|rt_mutex}}
::: {{The Linux Kernel/id|rt_mutex_lock}} ...
: {{The Linux Kernel/source|kernel/locking/rtmutex_api.c}}
: {{The Linux Kernel/source|kernel/locking/rtmutex_common.h}}
: {{The Linux Kernel/source|kernel/locking/rtmutex.c}}
rwbase_rt
: {{The Linux Kernel/include|linux/rwbase_rt.h}} used via {{The Linux Kernel/include|linux/rwlock_types.h}}
:: {{The Linux Kernel/id|rwlock_t}}
::: {{The Linux Kernel/id|rwbase_rt}} – used to implement real-time read/write locks
::: {{The Linux Kernel/id|rt_read_trylock}} ...
: {{The Linux Kernel/source|kernel/locking/rwbase_rt.c}}
: {{The Linux Kernel/source|kernel/locking/spinlock_rt.c}}
==== Testing RT capabilities ====
The testing process for Real-Time Linux typically involves several key aspects.
First and foremost, it is crucial to verify the accuracy and stability of the system's timekeeping mechanisms.
Precise time management is fundamental to real-time applications, and any inaccuracies can lead to timing errors and compromise the system's real-time capabilities.
Another essential aspect of testing is evaluating the system's scheduling algorithms.
Real-Time Linux employs advanced scheduling policies to prioritize critical tasks and ensure their timely execution.
Testing the scheduler involves assessing its ability to allocate resources efficiently, handle task prioritization correctly, and prevent resource contention or priority inversion scenarios.
Furthermore, latency measurement is a critical part of Real-Time Linux testing.
Latency refers to the time delay between the occurrence of an event and the system's response to it.
In real-time applications, minimizing latency is crucial to achieving timely and predictable behavior.
Testing latency involves measuring the time it takes for the system to respond to various stimuli and identifying any sources of delay or unpredictability.
Additionally, stress testing plays a significant role in assessing the system's robustness under heavy workloads.
It involves subjecting the Real-Time Linux system to high levels of concurrent activities, intense computational loads, and input/output operations to evaluate its performance, responsiveness, and stability.
Stress testing helps identify potential bottlenecks, resource limitations, or issues that might degrade the real-time behavior of the system.
===== RTLA =====
: [https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/rtla RTLA – The realtime Linux analysis tool]:
:: {{The Linux Kernel/doc|rtla timerlat|tools/rtla/rtla-timerlat.html}} – CLI for the kernel's {{The Linux Kernel/doc|timerlat tracer|trace/timerlat-tracer.html}}
:: {{The Linux Kernel/doc|rtla osnoise|tools/rtla/rtla-osnoise.html}} – CLI for the kernel's {{The Linux Kernel/doc|osnoise tracer|trace/osnoise-tracer.html}}.
::: Kernel function {{The Linux Kernel/id|run_osnoise}} measures time with function {{The Linux Kernel/id|trace_clock_local}} in loop.
:: {{The Linux Kernel/doc|rtla hwnoise|tools/rtla/rtla-hwnoise.html}} – CLI for the {{The Linux Kernel/doc|osnoise tracer|trace/osnoise-tracer.html}} with interrupts disabled
::: Implementation: {{The Linux Kernel/source|tools/tracing/rtla}} and {{The Linux Kernel/source|kernel/trace/trace_osnoise.c}}
:: [https://bristot.me/linux-scheduling-latency-debug-and-analysis/ Linux scheduling latency debug and analysis]
===== RT-Tests =====
: [https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/rt-tests RT-Tests], [https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git/tree/src/ source], [https://gitlab.com/linux-kernel/rt-tests @gitlab]
:: [https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/cyclictest/start cyclictest]
: some RT-Tests man pages:
:: [https://man.archlinux.org/man/cyclictest.8.en cyclictest] – measures {{The Linux Kernel/man|2|clock_nanosleep}} or {{The Linux Kernel/man|2|nanosleep}} delay
<!-- generated with
grep -h ' \\- ' ./rt-tests/src/*/*.[0-9] | sed 's#^#:: #;s#\\f.##g;s#\([^ ]\+\) \\-#[https://man.archlinux.org/man/\1.8.en \1] \–#'
-->
:: [https://man.archlinux.org/man/hwlatdetect.8.en hwlatdetect] – CLI for {{The Linux Kernel/doc|/sys/kernel/tracing/hwlat_detector|trace/hwlat_detector.html}} / {{The Linux Kernel/source|kernel/trace/trace_hwlat.c}}. Kernel function {{The Linux Kernel/id|kthread_fn}} measures time delays with function {{The Linux Kernel/id|trace_clock_local}} in loop.
:: [https://man.archlinux.org/man/oslat.8.en oslat] – measures delay with {{w|Time_Stamp_Counter|RDTSC}} in busy loop
:: [https://man.archlinux.org/man/hackbench.8.en hackbench] – scheduler benchmark/stress test
===== ftrace =====
Testing latencies with the ftrace - Function Tracer.
: [https://docs.kernel.org/trace/ftrace.html#:~:text=tracing_max_latency tracing_max_latency]
: the {{The Linux Kernel/doc|irqsoff|trace/ftrace.html#irqsoff}}, {{The Linux Kernel/doc|preemptoff|trace/ftrace.html#preemptoff}}, {{The Linux Kernel/doc|preemptirqsoff|trace/ftrace.html#preemptirqsoff}} tracers
: {{The Linux Kernel/source|tools/tracing/latency}}
: {{The Linux Kernel/id|CONFIG_IRQSOFF_TRACER}} – interrupts-off latency tracer
: {{The Linux Kernel/id|CONFIG_PREEMPT_TRACER}} – preemption-off latency tracer
: {{The Linux Kernel/id|CONFIG_SCHED_TRACER}} – scheduling latency tracer
===== Other tests =====
: [https://github.com/xzpeter/rt-trace-bpf RT Tracing Tools with eBPF]
: {{The Linux Kernel/ltp||realtime}}
: https://www.latencytop.org/, {{The Linux Kernel/source|kernel/latencytop.c}}
==== ... ====
📚 Further reading:
: https://lore.kernel.org/linux-rt-users/
: https://lore.kernel.org/linux-trace-kernel/
📖 References
: {{The Linux Kernel/doc|Real-time preemption|core-api/real-time/index.html}}
: https://realtime-linux.org/
:: [https://realtime-linux.org/getting-started-with-preempt_rt-guide/ Getting Started with PREEMPT_RT Guide]
:: [https://realtime-linux.org/a-checklist-for-real-time-applications-in-linux/ A Checklist for Real-Time Applications in Linux]
: [https://wiki.linuxfoundation.org/realtime/start the Real-Time Linux wiki]
:: [https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/cpu-partitioning/start CPU partitioning and isolation]
: [https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt.git linux-stable-rt.git]
: [https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git/log/?h=for-kbuild-bot/current-stable linux-rt-devel.git]
📚 Further reading about real-time Linux:
: https://deepwiki.com/torvalds/linux/2.1-process-scheduler
: [https://www.youtube.com/watch?v=x6g15nRGpAM Introduction to Real-Time Linux: Unleashing Deterministic Computing]
: [https://www.youtube.com/playlist?list=PL0fKordpLTjKsBOUcZqnzlHShri4YBL1H Power Management and Scheduling in the Linux Kernel (OSPM)]
: [https://lwn.net/Kernel/Index/#Realtime Realtime@LWN]
: [https://wiki.archlinux.org/title/Realtime_kernel_patchset Realtime kernel patchset, Arch Linux]
: https://www.kernel.org/pub/linux/kernel/projects/rt/ - RT patches for upstream kernel
: {{w|High Precision Event Timer}} (HPET)
: [https://bristot.me/demystifying-the-real-time-linux-latency/ Demystifying the Real-Time Linux Scheduling Latency]
: [https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux_for_real_time/ RHEL for RT]
: Linux subsystems related to real-time
:: {{w|Linux kernel#Scheduling and preemption|Linux kernel scheduling and preemption}}
:: [[The_Linux_Kernel/Multitasking#Interrupts|Interrupts]]
:: [[The_Linux_Kernel/Multitasking#Deferred_works|Deferred works]]
:: [https://0xax.gitbooks.io/linux-insides/content/Interrupts/linux-interrupts-6.html Non-maskable interrupt handler] (NMI)
:: [https://wiki.linuxfoundation.org/realtime/documentation/howto/debugging/smi-latency/smi System management interrupt] (SMI)
:: {{The Linux Kernel/man|7|sched}}
: [https://lore.kernel.org/lkml/?q=latency latency @ LKML]
: [https://lore.kernel.org/lkml/?q=PREEMPT_RT PREEMPT_RT @ LKML]
: [https://www.youtube.com/watch?v=O1dzeGJUvvU QA about PREEMPT_RT, LPC'23], [https://lpc.events/event/17/contributions/1483/attachments/1261/2554/state-of-the-onion.pdf State of the onion, pdf]
💾 Historical
The {{w|PREEMPT_RT}} patch has been fully merged into the mainline Linux kernel, starting from version 6.12.
{{BookCat}}
gtr2oyhfql4cbs9nwtoewddfisbgn6u
4640208
4640207
2026-06-13T17:19:23Z
Conan
3188
CONFIG_PSI_DEFAULT_DISABLED
4640208
wikitext
text/x-wiki
<noinclude>
{{DISPLAYTITLE:Real-time Linux}}
</noinclude>
==== RT preemption ====
[https://wiki.linuxfoundation.org/realtime/start The Linux Foundation's Real-Time Linux (RTL) collaborative project] is focused on improving the real-time capabilities of Linux and advancing the adoption of real-time Linux in various industries, including aerospace, automotive, robotics, and telecommunications.
Parameter {{The Linux Kernel/id|CONFIG_PREEMPT_RT}} enables real-time preemption.
==== RT scheduling policies ====
Scheduling policies for RT:
: {{The Linux Kernel/id|SCHED_FIFO}}, {{The Linux Kernel/id|SCHED_RR}}
:: implemented in {{The Linux Kernel/source|kernel/sched/rt.c}}
: {{w|SCHED_DEADLINE}}
:: implemented in {{The Linux Kernel/source|kernel/sched/deadline.c}}
API:
: {{The Linux Kernel/man|1|chrt}} – manipulate the real-time attributes of a process
: {{The Linux Kernel/man|2|sched_rr_get_interval}} – get the SCHED_RR interval for the named process
: {{The Linux Kernel/man|2|sched_setscheduler}}, sched_getscheduler – set and get scheduling policy/parameters
: {{The Linux Kernel/man|2|sched_get_priority_min}}, sched_get_priority_max – get static priority range
==== RT synchronization ====
⚲ APIs
: {{The Linux Kernel/id|migrate_disable}} + {{The Linux Kernel/id|spin_lock}}
: {{The Linux Kernel/id|local_lock}} calls migrate_disable(); {{The Linux Kernel/id|rt_spin_lock}}({{The Linux Kernel/id|this_cpu_ptr}}((__lock)));
📖 References
: [https://docs.kernel.org/locking/locktypes.html#:~:text=migrate_disable Usage of migrate_disable]
: {{The Linux Kernel/doc|PREEMPT_RT caveats: spinlock_t, rwlock_t, migrate_disable and local_lock|locking/locktypes.html#spinlock-t-and-rwlock-t}}
⚙️ Internals
Spinlock
: {{The Linux Kernel/include|linux/spinlock_rt.h}} used via {{The Linux Kernel/include|linux/spinlock_types.h}}
:: {{The Linux Kernel/id|spinlock_t}}
::: {{The Linux Kernel/id|rt_mutex_base}}
::: {{The Linux Kernel/id|rt_spin_lock}} ...
:::: {{The Linux Kernel/id|__rt_spin_lock}} ...
::::: {{The Linux Kernel/id|rtlock_lock}} ...
: {{The Linux Kernel/source|kernel/locking/spinlock_rt.c}}
RT Mutex
: {{The Linux Kernel/include|linux/rtmutex.h}} used via {{The Linux Kernel/include|linux/mutex_types.h}}
:: {{The Linux Kernel/id|rt_mutex_base}}
:: {{The Linux Kernel/id|rt_mutex}}
::: {{The Linux Kernel/id|rt_mutex_lock}} ...
: {{The Linux Kernel/source|kernel/locking/rtmutex_api.c}}
: {{The Linux Kernel/source|kernel/locking/rtmutex_common.h}}
: {{The Linux Kernel/source|kernel/locking/rtmutex.c}}
rwbase_rt
: {{The Linux Kernel/include|linux/rwbase_rt.h}} used via {{The Linux Kernel/include|linux/rwlock_types.h}}
:: {{The Linux Kernel/id|rwlock_t}}
::: {{The Linux Kernel/id|rwbase_rt}} – used to implement real-time read/write locks
::: {{The Linux Kernel/id|rt_read_trylock}} ...
: {{The Linux Kernel/source|kernel/locking/rwbase_rt.c}}
: {{The Linux Kernel/source|kernel/locking/spinlock_rt.c}}
==== Testing RT capabilities ====
The testing process for Real-Time Linux typically involves several key aspects.
First and foremost, it is crucial to verify the accuracy and stability of the system's timekeeping mechanisms.
Precise time management is fundamental to real-time applications, and any inaccuracies can lead to timing errors and compromise the system's real-time capabilities.
Another essential aspect of testing is evaluating the system's scheduling algorithms.
Real-Time Linux employs advanced scheduling policies to prioritize critical tasks and ensure their timely execution.
Testing the scheduler involves assessing its ability to allocate resources efficiently, handle task prioritization correctly, and prevent resource contention or priority inversion scenarios.
Furthermore, latency measurement is a critical part of Real-Time Linux testing.
Latency refers to the time delay between the occurrence of an event and the system's response to it.
In real-time applications, minimizing latency is crucial to achieving timely and predictable behavior.
Testing latency involves measuring the time it takes for the system to respond to various stimuli and identifying any sources of delay or unpredictability.
Additionally, stress testing plays a significant role in assessing the system's robustness under heavy workloads.
It involves subjecting the Real-Time Linux system to high levels of concurrent activities, intense computational loads, and input/output operations to evaluate its performance, responsiveness, and stability.
Stress testing helps identify potential bottlenecks, resource limitations, or issues that might degrade the real-time behavior of the system.
===== RTLA =====
: [https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/rtla RTLA – The realtime Linux analysis tool]:
:: {{The Linux Kernel/doc|rtla timerlat|tools/rtla/rtla-timerlat.html}} – CLI for the kernel's {{The Linux Kernel/doc|timerlat tracer|trace/timerlat-tracer.html}}
:: {{The Linux Kernel/doc|rtla osnoise|tools/rtla/rtla-osnoise.html}} – CLI for the kernel's {{The Linux Kernel/doc|osnoise tracer|trace/osnoise-tracer.html}}.
::: Kernel function {{The Linux Kernel/id|run_osnoise}} measures time with function {{The Linux Kernel/id|trace_clock_local}} in loop.
:: {{The Linux Kernel/doc|rtla hwnoise|tools/rtla/rtla-hwnoise.html}} – CLI for the {{The Linux Kernel/doc|osnoise tracer|trace/osnoise-tracer.html}} with interrupts disabled
::: Implementation: {{The Linux Kernel/source|tools/tracing/rtla}} and {{The Linux Kernel/source|kernel/trace/trace_osnoise.c}}
:: [https://bristot.me/linux-scheduling-latency-debug-and-analysis/ Linux scheduling latency debug and analysis]
===== RT-Tests =====
: [https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/rt-tests RT-Tests], [https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git/tree/src/ source], [https://gitlab.com/linux-kernel/rt-tests @gitlab]
:: [https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/cyclictest/start cyclictest]
: some RT-Tests man pages:
:: [https://man.archlinux.org/man/cyclictest.8.en cyclictest] – measures {{The Linux Kernel/man|2|clock_nanosleep}} or {{The Linux Kernel/man|2|nanosleep}} delay
<!-- generated with
grep -h ' \\- ' ./rt-tests/src/*/*.[0-9] | sed 's#^#:: #;s#\\f.##g;s#\([^ ]\+\) \\-#[https://man.archlinux.org/man/\1.8.en \1] \–#'
-->
:: [https://man.archlinux.org/man/hwlatdetect.8.en hwlatdetect] – CLI for {{The Linux Kernel/doc|/sys/kernel/tracing/hwlat_detector|trace/hwlat_detector.html}} / {{The Linux Kernel/source|kernel/trace/trace_hwlat.c}}. Kernel function {{The Linux Kernel/id|kthread_fn}} measures time delays with function {{The Linux Kernel/id|trace_clock_local}} in loop.
:: [https://man.archlinux.org/man/oslat.8.en oslat] – measures delay with {{w|Time_Stamp_Counter|RDTSC}} in busy loop
:: [https://man.archlinux.org/man/hackbench.8.en hackbench] – scheduler benchmark/stress test
===== ftrace =====
Testing latencies with the ftrace - Function Tracer.
: [https://docs.kernel.org/trace/ftrace.html#:~:text=tracing_max_latency tracing_max_latency]
: the {{The Linux Kernel/doc|irqsoff|trace/ftrace.html#irqsoff}}, {{The Linux Kernel/doc|preemptoff|trace/ftrace.html#preemptoff}}, {{The Linux Kernel/doc|preemptirqsoff|trace/ftrace.html#preemptirqsoff}} tracers
: {{The Linux Kernel/source|tools/tracing/latency}}
: {{The Linux Kernel/id|CONFIG_IRQSOFF_TRACER}} – interrupts-off latency tracer
: {{The Linux Kernel/id|CONFIG_PREEMPT_TRACER}} – preemption-off latency tracer
: {{The Linux Kernel/id|CONFIG_SCHED_TRACER}} – scheduling latency tracer
===== Other tests =====
: [https://github.com/xzpeter/rt-trace-bpf RT Tracing Tools with eBPF]
: {{The Linux Kernel/ltp||realtime}}
: https://www.latencytop.org/, {{The Linux Kernel/source|kernel/latencytop.c}}
==== RT optimizations ====
: {{The Linux Kernel/id|CONFIG_PSI_DEFAULT_DISABLED}} – disable {{The Linux Kernel/doc|PSI|accounting/psi.html}}
:: Check: <code>ls /proc/pressure/</code> should fail
==== ... ====
📚 Further reading:
: https://lore.kernel.org/linux-rt-users/
: https://lore.kernel.org/linux-trace-kernel/
📖 References
: {{The Linux Kernel/doc|Real-time preemption|core-api/real-time/index.html}}
: https://realtime-linux.org/
:: [https://realtime-linux.org/getting-started-with-preempt_rt-guide/ Getting Started with PREEMPT_RT Guide]
:: [https://realtime-linux.org/a-checklist-for-real-time-applications-in-linux/ A Checklist for Real-Time Applications in Linux]
: [https://wiki.linuxfoundation.org/realtime/start the Real-Time Linux wiki]
:: [https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/cpu-partitioning/start CPU partitioning and isolation]
: [https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt.git linux-stable-rt.git]
: [https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git/log/?h=for-kbuild-bot/current-stable linux-rt-devel.git]
📚 Further reading about real-time Linux:
: https://deepwiki.com/torvalds/linux/2.1-process-scheduler
: [https://www.youtube.com/watch?v=x6g15nRGpAM Introduction to Real-Time Linux: Unleashing Deterministic Computing]
: [https://www.youtube.com/playlist?list=PL0fKordpLTjKsBOUcZqnzlHShri4YBL1H Power Management and Scheduling in the Linux Kernel (OSPM)]
: [https://lwn.net/Kernel/Index/#Realtime Realtime@LWN]
: [https://wiki.archlinux.org/title/Realtime_kernel_patchset Realtime kernel patchset, Arch Linux]
: https://www.kernel.org/pub/linux/kernel/projects/rt/ - RT patches for upstream kernel
: {{w|High Precision Event Timer}} (HPET)
: [https://bristot.me/demystifying-the-real-time-linux-latency/ Demystifying the Real-Time Linux Scheduling Latency]
: [https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux_for_real_time/ RHEL for RT]
: Linux subsystems related to real-time
:: {{w|Linux kernel#Scheduling and preemption|Linux kernel scheduling and preemption}}
:: [[The_Linux_Kernel/Multitasking#Interrupts|Interrupts]]
:: [[The_Linux_Kernel/Multitasking#Deferred_works|Deferred works]]
:: [https://0xax.gitbooks.io/linux-insides/content/Interrupts/linux-interrupts-6.html Non-maskable interrupt handler] (NMI)
:: [https://wiki.linuxfoundation.org/realtime/documentation/howto/debugging/smi-latency/smi System management interrupt] (SMI)
:: {{The Linux Kernel/man|7|sched}}
: [https://lore.kernel.org/lkml/?q=latency latency @ LKML]
: [https://lore.kernel.org/lkml/?q=PREEMPT_RT PREEMPT_RT @ LKML]
: [https://www.youtube.com/watch?v=O1dzeGJUvvU QA about PREEMPT_RT, LPC'23], [https://lpc.events/event/17/contributions/1483/attachments/1261/2554/state-of-the-onion.pdf State of the onion, pdf]
💾 Historical
The {{w|PREEMPT_RT}} patch has been fully merged into the mainline Linux kernel, starting from version 6.12.
{{BookCat}}
8i090eobn0tbzbai6856a4llok8e3c0
4640209
4640208
2026-06-13T17:19:25Z
Conan
3188
News from PREEMPT_RT, LPC 2025
4640209
wikitext
text/x-wiki
<noinclude>
{{DISPLAYTITLE:Real-time Linux}}
</noinclude>
==== RT preemption ====
[https://wiki.linuxfoundation.org/realtime/start The Linux Foundation's Real-Time Linux (RTL) collaborative project] is focused on improving the real-time capabilities of Linux and advancing the adoption of real-time Linux in various industries, including aerospace, automotive, robotics, and telecommunications.
Parameter {{The Linux Kernel/id|CONFIG_PREEMPT_RT}} enables real-time preemption.
==== RT scheduling policies ====
Scheduling policies for RT:
: {{The Linux Kernel/id|SCHED_FIFO}}, {{The Linux Kernel/id|SCHED_RR}}
:: implemented in {{The Linux Kernel/source|kernel/sched/rt.c}}
: {{w|SCHED_DEADLINE}}
:: implemented in {{The Linux Kernel/source|kernel/sched/deadline.c}}
API:
: {{The Linux Kernel/man|1|chrt}} – manipulate the real-time attributes of a process
: {{The Linux Kernel/man|2|sched_rr_get_interval}} – get the SCHED_RR interval for the named process
: {{The Linux Kernel/man|2|sched_setscheduler}}, sched_getscheduler – set and get scheduling policy/parameters
: {{The Linux Kernel/man|2|sched_get_priority_min}}, sched_get_priority_max – get static priority range
==== RT synchronization ====
⚲ APIs
: {{The Linux Kernel/id|migrate_disable}} + {{The Linux Kernel/id|spin_lock}}
: {{The Linux Kernel/id|local_lock}} calls migrate_disable(); {{The Linux Kernel/id|rt_spin_lock}}({{The Linux Kernel/id|this_cpu_ptr}}((__lock)));
📖 References
: [https://docs.kernel.org/locking/locktypes.html#:~:text=migrate_disable Usage of migrate_disable]
: {{The Linux Kernel/doc|PREEMPT_RT caveats: spinlock_t, rwlock_t, migrate_disable and local_lock|locking/locktypes.html#spinlock-t-and-rwlock-t}}
⚙️ Internals
Spinlock
: {{The Linux Kernel/include|linux/spinlock_rt.h}} used via {{The Linux Kernel/include|linux/spinlock_types.h}}
:: {{The Linux Kernel/id|spinlock_t}}
::: {{The Linux Kernel/id|rt_mutex_base}}
::: {{The Linux Kernel/id|rt_spin_lock}} ...
:::: {{The Linux Kernel/id|__rt_spin_lock}} ...
::::: {{The Linux Kernel/id|rtlock_lock}} ...
: {{The Linux Kernel/source|kernel/locking/spinlock_rt.c}}
RT Mutex
: {{The Linux Kernel/include|linux/rtmutex.h}} used via {{The Linux Kernel/include|linux/mutex_types.h}}
:: {{The Linux Kernel/id|rt_mutex_base}}
:: {{The Linux Kernel/id|rt_mutex}}
::: {{The Linux Kernel/id|rt_mutex_lock}} ...
: {{The Linux Kernel/source|kernel/locking/rtmutex_api.c}}
: {{The Linux Kernel/source|kernel/locking/rtmutex_common.h}}
: {{The Linux Kernel/source|kernel/locking/rtmutex.c}}
rwbase_rt
: {{The Linux Kernel/include|linux/rwbase_rt.h}} used via {{The Linux Kernel/include|linux/rwlock_types.h}}
:: {{The Linux Kernel/id|rwlock_t}}
::: {{The Linux Kernel/id|rwbase_rt}} – used to implement real-time read/write locks
::: {{The Linux Kernel/id|rt_read_trylock}} ...
: {{The Linux Kernel/source|kernel/locking/rwbase_rt.c}}
: {{The Linux Kernel/source|kernel/locking/spinlock_rt.c}}
==== Testing RT capabilities ====
The testing process for Real-Time Linux typically involves several key aspects.
First and foremost, it is crucial to verify the accuracy and stability of the system's timekeeping mechanisms.
Precise time management is fundamental to real-time applications, and any inaccuracies can lead to timing errors and compromise the system's real-time capabilities.
Another essential aspect of testing is evaluating the system's scheduling algorithms.
Real-Time Linux employs advanced scheduling policies to prioritize critical tasks and ensure their timely execution.
Testing the scheduler involves assessing its ability to allocate resources efficiently, handle task prioritization correctly, and prevent resource contention or priority inversion scenarios.
Furthermore, latency measurement is a critical part of Real-Time Linux testing.
Latency refers to the time delay between the occurrence of an event and the system's response to it.
In real-time applications, minimizing latency is crucial to achieving timely and predictable behavior.
Testing latency involves measuring the time it takes for the system to respond to various stimuli and identifying any sources of delay or unpredictability.
Additionally, stress testing plays a significant role in assessing the system's robustness under heavy workloads.
It involves subjecting the Real-Time Linux system to high levels of concurrent activities, intense computational loads, and input/output operations to evaluate its performance, responsiveness, and stability.
Stress testing helps identify potential bottlenecks, resource limitations, or issues that might degrade the real-time behavior of the system.
===== RTLA =====
: [https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/rtla RTLA – The realtime Linux analysis tool]:
:: {{The Linux Kernel/doc|rtla timerlat|tools/rtla/rtla-timerlat.html}} – CLI for the kernel's {{The Linux Kernel/doc|timerlat tracer|trace/timerlat-tracer.html}}
:: {{The Linux Kernel/doc|rtla osnoise|tools/rtla/rtla-osnoise.html}} – CLI for the kernel's {{The Linux Kernel/doc|osnoise tracer|trace/osnoise-tracer.html}}.
::: Kernel function {{The Linux Kernel/id|run_osnoise}} measures time with function {{The Linux Kernel/id|trace_clock_local}} in loop.
:: {{The Linux Kernel/doc|rtla hwnoise|tools/rtla/rtla-hwnoise.html}} – CLI for the {{The Linux Kernel/doc|osnoise tracer|trace/osnoise-tracer.html}} with interrupts disabled
::: Implementation: {{The Linux Kernel/source|tools/tracing/rtla}} and {{The Linux Kernel/source|kernel/trace/trace_osnoise.c}}
:: [https://bristot.me/linux-scheduling-latency-debug-and-analysis/ Linux scheduling latency debug and analysis]
===== RT-Tests =====
: [https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/rt-tests RT-Tests], [https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git/tree/src/ source], [https://gitlab.com/linux-kernel/rt-tests @gitlab]
:: [https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/cyclictest/start cyclictest]
: some RT-Tests man pages:
:: [https://man.archlinux.org/man/cyclictest.8.en cyclictest] – measures {{The Linux Kernel/man|2|clock_nanosleep}} or {{The Linux Kernel/man|2|nanosleep}} delay
<!-- generated with
grep -h ' \\- ' ./rt-tests/src/*/*.[0-9] | sed 's#^#:: #;s#\\f.##g;s#\([^ ]\+\) \\-#[https://man.archlinux.org/man/\1.8.en \1] \–#'
-->
:: [https://man.archlinux.org/man/hwlatdetect.8.en hwlatdetect] – CLI for {{The Linux Kernel/doc|/sys/kernel/tracing/hwlat_detector|trace/hwlat_detector.html}} / {{The Linux Kernel/source|kernel/trace/trace_hwlat.c}}. Kernel function {{The Linux Kernel/id|kthread_fn}} measures time delays with function {{The Linux Kernel/id|trace_clock_local}} in loop.
:: [https://man.archlinux.org/man/oslat.8.en oslat] – measures delay with {{w|Time_Stamp_Counter|RDTSC}} in busy loop
:: [https://man.archlinux.org/man/hackbench.8.en hackbench] – scheduler benchmark/stress test
===== ftrace =====
Testing latencies with the ftrace - Function Tracer.
: [https://docs.kernel.org/trace/ftrace.html#:~:text=tracing_max_latency tracing_max_latency]
: the {{The Linux Kernel/doc|irqsoff|trace/ftrace.html#irqsoff}}, {{The Linux Kernel/doc|preemptoff|trace/ftrace.html#preemptoff}}, {{The Linux Kernel/doc|preemptirqsoff|trace/ftrace.html#preemptirqsoff}} tracers
: {{The Linux Kernel/source|tools/tracing/latency}}
: {{The Linux Kernel/id|CONFIG_IRQSOFF_TRACER}} – interrupts-off latency tracer
: {{The Linux Kernel/id|CONFIG_PREEMPT_TRACER}} – preemption-off latency tracer
: {{The Linux Kernel/id|CONFIG_SCHED_TRACER}} – scheduling latency tracer
===== Other tests =====
: [https://github.com/xzpeter/rt-trace-bpf RT Tracing Tools with eBPF]
: {{The Linux Kernel/ltp||realtime}}
: https://www.latencytop.org/, {{The Linux Kernel/source|kernel/latencytop.c}}
==== RT optimizations ====
: {{The Linux Kernel/id|CONFIG_PSI_DEFAULT_DISABLED}} – disable {{The Linux Kernel/doc|PSI|accounting/psi.html}}
:: Check: <code>ls /proc/pressure/</code> should fail
==== ... ====
📚 Further reading:
: https://lore.kernel.org/linux-rt-users/
: https://lore.kernel.org/linux-trace-kernel/
📖 References
: {{The Linux Kernel/doc|Real-time preemption|core-api/real-time/index.html}}
: https://realtime-linux.org/
:: [https://realtime-linux.org/getting-started-with-preempt_rt-guide/ Getting Started with PREEMPT_RT Guide]
:: [https://realtime-linux.org/a-checklist-for-real-time-applications-in-linux/ A Checklist for Real-Time Applications in Linux]
: [https://wiki.linuxfoundation.org/realtime/start the Real-Time Linux wiki]
:: [https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/cpu-partitioning/start CPU partitioning and isolation]
: [https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt.git linux-stable-rt.git]
: [https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git/log/?h=for-kbuild-bot/current-stable linux-rt-devel.git]
📚 Further reading about real-time Linux:
: [https://lpc.events/event/19/contributions/2264/ News from PREEMPT_RT] – LPC 2025, post-mainline developments
: https://deepwiki.com/torvalds/linux/2.1-process-scheduler
: [https://www.youtube.com/watch?v=x6g15nRGpAM Introduction to Real-Time Linux: Unleashing Deterministic Computing]
: [https://www.youtube.com/playlist?list=PL0fKordpLTjKsBOUcZqnzlHShri4YBL1H Power Management and Scheduling in the Linux Kernel (OSPM)]
: [https://lwn.net/Kernel/Index/#Realtime Realtime@LWN]
: [https://wiki.archlinux.org/title/Realtime_kernel_patchset Realtime kernel patchset, Arch Linux]
: https://www.kernel.org/pub/linux/kernel/projects/rt/ - RT patches for upstream kernel
: {{w|High Precision Event Timer}} (HPET)
: [https://bristot.me/demystifying-the-real-time-linux-latency/ Demystifying the Real-Time Linux Scheduling Latency]
: [https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux_for_real_time/ RHEL for RT]
: Linux subsystems related to real-time
:: {{w|Linux kernel#Scheduling and preemption|Linux kernel scheduling and preemption}}
:: [[The_Linux_Kernel/Multitasking#Interrupts|Interrupts]]
:: [[The_Linux_Kernel/Multitasking#Deferred_works|Deferred works]]
:: [https://0xax.gitbooks.io/linux-insides/content/Interrupts/linux-interrupts-6.html Non-maskable interrupt handler] (NMI)
:: [https://wiki.linuxfoundation.org/realtime/documentation/howto/debugging/smi-latency/smi System management interrupt] (SMI)
:: {{The Linux Kernel/man|7|sched}}
: [https://lore.kernel.org/lkml/?q=latency latency @ LKML]
: [https://lore.kernel.org/lkml/?q=PREEMPT_RT PREEMPT_RT @ LKML]
: [https://www.youtube.com/watch?v=O1dzeGJUvvU QA about PREEMPT_RT, LPC'23], [https://lpc.events/event/17/contributions/1483/attachments/1261/2554/state-of-the-onion.pdf State of the onion, pdf]
💾 Historical
The {{w|PREEMPT_RT}} patch has been fully merged into the mainline Linux kernel, starting from version 6.12.
{{BookCat}}
n2o9xfkiagcgw9cy0mfw5yzs0p1j7hg
4640220
4640209
2026-06-13T17:19:40Z
Conan
3188
add brief descriptions to source file references
4640220
wikitext
text/x-wiki
<noinclude>
{{DISPLAYTITLE:Real-time Linux}}
</noinclude>
==== RT preemption ====
[https://wiki.linuxfoundation.org/realtime/start The Linux Foundation's Real-Time Linux (RTL) collaborative project] is focused on improving the real-time capabilities of Linux and advancing the adoption of real-time Linux in various industries, including aerospace, automotive, robotics, and telecommunications.
Parameter {{The Linux Kernel/id|CONFIG_PREEMPT_RT}} enables real-time preemption.
==== RT scheduling policies ====
Scheduling policies for RT:
: {{The Linux Kernel/id|SCHED_FIFO}}, {{The Linux Kernel/id|SCHED_RR}}
:: implemented in {{The Linux Kernel/source|kernel/sched/rt.c}}
: {{w|SCHED_DEADLINE}}
:: implemented in {{The Linux Kernel/source|kernel/sched/deadline.c}}
API:
: {{The Linux Kernel/man|1|chrt}} – manipulate the real-time attributes of a process
: {{The Linux Kernel/man|2|sched_rr_get_interval}} – get the SCHED_RR interval for the named process
: {{The Linux Kernel/man|2|sched_setscheduler}}, sched_getscheduler – set and get scheduling policy/parameters
: {{The Linux Kernel/man|2|sched_get_priority_min}}, sched_get_priority_max – get static priority range
==== RT synchronization ====
⚲ APIs
: {{The Linux Kernel/id|migrate_disable}} + {{The Linux Kernel/id|spin_lock}}
: {{The Linux Kernel/id|local_lock}} calls migrate_disable(); {{The Linux Kernel/id|rt_spin_lock}}({{The Linux Kernel/id|this_cpu_ptr}}((__lock)));
📖 References
: [https://docs.kernel.org/locking/locktypes.html#:~:text=migrate_disable Usage of migrate_disable]
: {{The Linux Kernel/doc|PREEMPT_RT caveats: spinlock_t, rwlock_t, migrate_disable and local_lock|locking/locktypes.html#spinlock-t-and-rwlock-t}}
⚙️ Internals
Spinlock
: {{The Linux Kernel/include|linux/spinlock_rt.h}} used via {{The Linux Kernel/include|linux/spinlock_types.h}}
:: {{The Linux Kernel/id|spinlock_t}}
::: {{The Linux Kernel/id|rt_mutex_base}}
::: {{The Linux Kernel/id|rt_spin_lock}} ...
:::: {{The Linux Kernel/id|__rt_spin_lock}} ...
::::: {{The Linux Kernel/id|rtlock_lock}} ...
: {{The Linux Kernel/source|kernel/locking/spinlock_rt.c}} – RT-aware spinlock implementation
RT Mutex
: {{The Linux Kernel/include|linux/rtmutex.h}} used via {{The Linux Kernel/include|linux/mutex_types.h}}
:: {{The Linux Kernel/id|rt_mutex_base}}
:: {{The Linux Kernel/id|rt_mutex}}
::: {{The Linux Kernel/id|rt_mutex_lock}} ...
: {{The Linux Kernel/source|kernel/locking/rtmutex_api.c}} – RT mutex kernel API
: {{The Linux Kernel/source|kernel/locking/rtmutex_common.h}} – RT mutex internal definitions
: {{The Linux Kernel/source|kernel/locking/rtmutex.c}} – RT mutex core with priority inheritance
rwbase_rt
: {{The Linux Kernel/include|linux/rwbase_rt.h}} used via {{The Linux Kernel/include|linux/rwlock_types.h}}
:: {{The Linux Kernel/id|rwlock_t}}
::: {{The Linux Kernel/id|rwbase_rt}} – used to implement real-time read/write locks
::: {{The Linux Kernel/id|rt_read_trylock}} ...
: {{The Linux Kernel/source|kernel/locking/rwbase_rt.c}} – RT rw_semaphore/rwlock base
: {{The Linux Kernel/source|kernel/locking/spinlock_rt.c}} – RT-aware spinlock implementation
==== Testing RT capabilities ====
The testing process for Real-Time Linux typically involves several key aspects.
First and foremost, it is crucial to verify the accuracy and stability of the system's timekeeping mechanisms.
Precise time management is fundamental to real-time applications, and any inaccuracies can lead to timing errors and compromise the system's real-time capabilities.
Another essential aspect of testing is evaluating the system's scheduling algorithms.
Real-Time Linux employs advanced scheduling policies to prioritize critical tasks and ensure their timely execution.
Testing the scheduler involves assessing its ability to allocate resources efficiently, handle task prioritization correctly, and prevent resource contention or priority inversion scenarios.
Furthermore, latency measurement is a critical part of Real-Time Linux testing.
Latency refers to the time delay between the occurrence of an event and the system's response to it.
In real-time applications, minimizing latency is crucial to achieving timely and predictable behavior.
Testing latency involves measuring the time it takes for the system to respond to various stimuli and identifying any sources of delay or unpredictability.
Additionally, stress testing plays a significant role in assessing the system's robustness under heavy workloads.
It involves subjecting the Real-Time Linux system to high levels of concurrent activities, intense computational loads, and input/output operations to evaluate its performance, responsiveness, and stability.
Stress testing helps identify potential bottlenecks, resource limitations, or issues that might degrade the real-time behavior of the system.
===== RTLA =====
: [https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/rtla RTLA – The realtime Linux analysis tool]:
:: {{The Linux Kernel/doc|rtla timerlat|tools/rtla/rtla-timerlat.html}} – CLI for the kernel's {{The Linux Kernel/doc|timerlat tracer|trace/timerlat-tracer.html}}
:: {{The Linux Kernel/doc|rtla osnoise|tools/rtla/rtla-osnoise.html}} – CLI for the kernel's {{The Linux Kernel/doc|osnoise tracer|trace/osnoise-tracer.html}}.
::: Kernel function {{The Linux Kernel/id|run_osnoise}} measures time with function {{The Linux Kernel/id|trace_clock_local}} in loop.
:: {{The Linux Kernel/doc|rtla hwnoise|tools/rtla/rtla-hwnoise.html}} – CLI for the {{The Linux Kernel/doc|osnoise tracer|trace/osnoise-tracer.html}} with interrupts disabled
::: Implementation: {{The Linux Kernel/source|tools/tracing/rtla}} and {{The Linux Kernel/source|kernel/trace/trace_osnoise.c}}
:: [https://bristot.me/linux-scheduling-latency-debug-and-analysis/ Linux scheduling latency debug and analysis]
===== RT-Tests =====
: [https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/rt-tests RT-Tests], [https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git/tree/src/ source], [https://gitlab.com/linux-kernel/rt-tests @gitlab]
:: [https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/cyclictest/start cyclictest]
: some RT-Tests man pages:
:: [https://man.archlinux.org/man/cyclictest.8.en cyclictest] – measures {{The Linux Kernel/man|2|clock_nanosleep}} or {{The Linux Kernel/man|2|nanosleep}} delay
<!-- generated with
grep -h ' \\- ' ./rt-tests/src/*/*.[0-9] | sed 's#^#:: #;s#\\f.##g;s#\([^ ]\+\) \\-#[https://man.archlinux.org/man/\1.8.en \1] \–#'
-->
:: [https://man.archlinux.org/man/hwlatdetect.8.en hwlatdetect] – CLI for {{The Linux Kernel/doc|/sys/kernel/tracing/hwlat_detector|trace/hwlat_detector.html}} / {{The Linux Kernel/source|kernel/trace/trace_hwlat.c}}. Kernel function {{The Linux Kernel/id|kthread_fn}} measures time delays with function {{The Linux Kernel/id|trace_clock_local}} in loop.
:: [https://man.archlinux.org/man/oslat.8.en oslat] – measures delay with {{w|Time_Stamp_Counter|RDTSC}} in busy loop
:: [https://man.archlinux.org/man/hackbench.8.en hackbench] – scheduler benchmark/stress test
===== ftrace =====
Testing latencies with the ftrace - Function Tracer.
: [https://docs.kernel.org/trace/ftrace.html#:~:text=tracing_max_latency tracing_max_latency]
: the {{The Linux Kernel/doc|irqsoff|trace/ftrace.html#irqsoff}}, {{The Linux Kernel/doc|preemptoff|trace/ftrace.html#preemptoff}}, {{The Linux Kernel/doc|preemptirqsoff|trace/ftrace.html#preemptirqsoff}} tracers
: {{The Linux Kernel/source|tools/tracing/latency}} – latency measurement tools
: {{The Linux Kernel/id|CONFIG_IRQSOFF_TRACER}} – interrupts-off latency tracer
: {{The Linux Kernel/id|CONFIG_PREEMPT_TRACER}} – preemption-off latency tracer
: {{The Linux Kernel/id|CONFIG_SCHED_TRACER}} – scheduling latency tracer
===== Other tests =====
: [https://github.com/xzpeter/rt-trace-bpf RT Tracing Tools with eBPF]
: {{The Linux Kernel/ltp||realtime}}
: https://www.latencytop.org/, {{The Linux Kernel/source|kernel/latencytop.c}}
==== RT optimizations ====
: {{The Linux Kernel/id|CONFIG_PSI_DEFAULT_DISABLED}} – disable {{The Linux Kernel/doc|PSI|accounting/psi.html}}
:: Check: <code>ls /proc/pressure/</code> should fail
==== ... ====
📚 Further reading:
: https://lore.kernel.org/linux-rt-users/
: https://lore.kernel.org/linux-trace-kernel/
📖 References
: {{The Linux Kernel/doc|Real-time preemption|core-api/real-time/index.html}}
: https://realtime-linux.org/
:: [https://realtime-linux.org/getting-started-with-preempt_rt-guide/ Getting Started with PREEMPT_RT Guide]
:: [https://realtime-linux.org/a-checklist-for-real-time-applications-in-linux/ A Checklist for Real-Time Applications in Linux]
: [https://wiki.linuxfoundation.org/realtime/start the Real-Time Linux wiki]
:: [https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/cpu-partitioning/start CPU partitioning and isolation]
: [https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt.git linux-stable-rt.git]
: [https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git/log/?h=for-kbuild-bot/current-stable linux-rt-devel.git]
📚 Further reading about real-time Linux:
: [https://lpc.events/event/19/contributions/2264/ News from PREEMPT_RT] – LPC 2025, post-mainline developments
: https://deepwiki.com/torvalds/linux/2.1-process-scheduler
: [https://www.youtube.com/watch?v=x6g15nRGpAM Introduction to Real-Time Linux: Unleashing Deterministic Computing]
: [https://www.youtube.com/playlist?list=PL0fKordpLTjKsBOUcZqnzlHShri4YBL1H Power Management and Scheduling in the Linux Kernel (OSPM)]
: [https://lwn.net/Kernel/Index/#Realtime Realtime@LWN]
: [https://wiki.archlinux.org/title/Realtime_kernel_patchset Realtime kernel patchset, Arch Linux]
: https://www.kernel.org/pub/linux/kernel/projects/rt/ - RT patches for upstream kernel
: {{w|High Precision Event Timer}} (HPET)
: [https://bristot.me/demystifying-the-real-time-linux-latency/ Demystifying the Real-Time Linux Scheduling Latency]
: [https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux_for_real_time/ RHEL for RT]
: Linux subsystems related to real-time
:: {{w|Linux kernel#Scheduling and preemption|Linux kernel scheduling and preemption}}
:: [[The_Linux_Kernel/Multitasking#Interrupts|Interrupts]]
:: [[The_Linux_Kernel/Multitasking#Deferred_works|Deferred works]]
:: [https://0xax.gitbooks.io/linux-insides/content/Interrupts/linux-interrupts-6.html Non-maskable interrupt handler] (NMI)
:: [https://wiki.linuxfoundation.org/realtime/documentation/howto/debugging/smi-latency/smi System management interrupt] (SMI)
:: {{The Linux Kernel/man|7|sched}}
: [https://lore.kernel.org/lkml/?q=latency latency @ LKML]
: [https://lore.kernel.org/lkml/?q=PREEMPT_RT PREEMPT_RT @ LKML]
: [https://www.youtube.com/watch?v=O1dzeGJUvvU QA about PREEMPT_RT, LPC'23], [https://lpc.events/event/17/contributions/1483/attachments/1261/2554/state-of-the-onion.pdf State of the onion, pdf]
💾 Historical
The {{w|PREEMPT_RT}} patch has been fully merged into the mainline Linux kernel, starting from version 6.12.
{{BookCat}}
gmrqal67fgl22ld356lcwh7ren5vene
The Linux Kernel/Processes
0
470360
4640211
4632256
2026-06-13T17:19:27Z
Conan
3188
add brief descriptions to source file references
4640211
wikitext
text/x-wiki
<noinclude>{{DISPLAYTITLE:Linux processes}}</noinclude><includeonly>== Processes ==</includeonly>
'''Process''' is a running user space program.
Kernel starts the first process '''/sbin/init''' in function {{The Linux Kernel/id|run_init_process}} using {{The Linux Kernel/id|kernel_execve}}.
Processes occupy system resources, like memory, CPU time.
System calls {{The Linux Kernel/id|sys_fork}} and {{The Linux Kernel/id|sys_execve}} are used to create new processes from user space.
The process exit with an {{The Linux Kernel/id|sys_exit}} system call.
Linux inherits from Unix its basic process management system calls (⚲ API ↪ ⚙️ implementations):
{{The Linux Kernel/man|2|fork}} ↪ {{The Linux Kernel/id|kernel_clone}} creates a new process by {{w|Prototype_pattern|duplicating}} the process invoking it.
{{The Linux Kernel/man|2|_exit}} ↪ {{The Linux Kernel/id|do_exit}} terminates the calling process "immediately". Any open file descriptors belonging to the process are closed.
{{The Linux Kernel/man|2|wait}} ↪ {{The Linux Kernel/id|kernel_waitid}} suspends the execution of the calling process until one of its children processes terminates.
Linux enhances the traditional Unix process API with its own system calls {{The Linux Kernel/man|2|clone}}.
Clone creates a child process that may share parts of its execution context with the parent.
It is often used to implement threads (though programmers will typically use a higher-level interface such as {{The Linux Kernel/man|7|pthreads}}, implemented on top of clone).
PID - {{w|Process identifier}} defined as {{The Linux Kernel/id|pid_t}} is unique sequential number.
{{The Linux Kernel/man|1|ps}} -A lists current processes.
⚲ API
: [https://man7.org/linux/man-pages/man0/unistd.h.0p.html unistd.h]
: [https://man7.org/linux/man-pages/man0/sys_types.h.0p.html sys/types.h]
: [https://man7.org/linux/man-pages/man0/sys_wait.h.0p.html sys/wait.h]
⚙️ Internals
: {{The Linux Kernel/id|task_struct}}
: {{The Linux Kernel/id|pid_type}}
: {{The Linux Kernel/source|kernel/fork.c}} – process creation and cloning
:: syscalls:
:: {{The Linux Kernel/man|2|set_tid_address}} – set pointer to thread ID
:: {{The Linux Kernel/man|2|fork}} – create a child process
:: {{The Linux Kernel/man|2|vfork}} – create a child process and block parent
:: {{The Linux Kernel/man|2|clone}} – create a child process
:: {{The Linux Kernel/man|2|unshare}} – disassociate parts of the process execution context
: {{The Linux Kernel/source|kernel/sys.c}} – system and process operations
:: syscalls:
:: {{The Linux Kernel/man|2|prctl}} – operations on a process or thread
: {{The Linux Kernel/source|kernel/pid.c}} – PID allocation and management
:: syscalls:
:: {{The Linux Kernel/man|2|pidfd_open}} – obtain a file descriptor that refers to a process
:: {{The Linux Kernel/man|2|pidfd_getfd}} – obtain a duplicate of another process's file descriptor
:: syscalls:
:: {{The Linux Kernel/man|2|pidfd_open}} – obtain a file descriptor that refers to a process
:: {{The Linux Kernel/man|2|pidfd_getfd}} – obtain a duplicate of another process's file descriptor
: {{The Linux Kernel/source|kernel/exit.c}} – process termination
:: syscalls:
:: {{The Linux Kernel/man|2|exit}} – terminate the calling process
:: {{The Linux Kernel/man|2|exit_group}} – exit all threads in a process
:: {{The Linux Kernel/man|2|waitid}} – wait for process to change state
:: {{The Linux Kernel/man|2|waitpid}} – wait for process to change state
: {{The Linux Kernel/source|fs/exec.c}} – program execution (execve)
📖 References
: {{w|fork (system call)}}
: {{w|exit (system call)}}
: {{w|wait (system call)}}
: {{w|exec (system call)}}
{{BookCat}}
29w4rlps0mud9d3uy9vjf28x479d3ns
4640232
4640211
2026-06-13T19:15:07Z
Conan
3188
remove duplicate pidfd_open/pidfd_getfd entries
4640232
wikitext
text/x-wiki
<noinclude>{{DISPLAYTITLE:Linux processes}}</noinclude><includeonly>== Processes ==</includeonly>
'''Process''' is a running user space program.
Kernel starts the first process '''/sbin/init''' in function {{The Linux Kernel/id|run_init_process}} using {{The Linux Kernel/id|kernel_execve}}.
Processes occupy system resources, like memory, CPU time.
System calls {{The Linux Kernel/id|sys_fork}} and {{The Linux Kernel/id|sys_execve}} are used to create new processes from user space.
The process exit with an {{The Linux Kernel/id|sys_exit}} system call.
Linux inherits from Unix its basic process management system calls (⚲ API ↪ ⚙️ implementations):
{{The Linux Kernel/man|2|fork}} ↪ {{The Linux Kernel/id|kernel_clone}} creates a new process by {{w|Prototype_pattern|duplicating}} the process invoking it.
{{The Linux Kernel/man|2|_exit}} ↪ {{The Linux Kernel/id|do_exit}} terminates the calling process "immediately". Any open file descriptors belonging to the process are closed.
{{The Linux Kernel/man|2|wait}} ↪ {{The Linux Kernel/id|kernel_waitid}} suspends the execution of the calling process until one of its children processes terminates.
Linux enhances the traditional Unix process API with its own system calls {{The Linux Kernel/man|2|clone}}.
Clone creates a child process that may share parts of its execution context with the parent.
It is often used to implement threads (though programmers will typically use a higher-level interface such as {{The Linux Kernel/man|7|pthreads}}, implemented on top of clone).
PID - {{w|Process identifier}} defined as {{The Linux Kernel/id|pid_t}} is unique sequential number.
{{The Linux Kernel/man|1|ps}} -A lists current processes.
⚲ API
: [https://man7.org/linux/man-pages/man0/unistd.h.0p.html unistd.h]
: [https://man7.org/linux/man-pages/man0/sys_types.h.0p.html sys/types.h]
: [https://man7.org/linux/man-pages/man0/sys_wait.h.0p.html sys/wait.h]
⚙️ Internals
: {{The Linux Kernel/id|task_struct}}
: {{The Linux Kernel/id|pid_type}}
: {{The Linux Kernel/source|kernel/fork.c}} – process creation and cloning
:: syscalls:
:: {{The Linux Kernel/man|2|set_tid_address}} – set pointer to thread ID
:: {{The Linux Kernel/man|2|fork}} – create a child process
:: {{The Linux Kernel/man|2|vfork}} – create a child process and block parent
:: {{The Linux Kernel/man|2|clone}} – create a child process
:: {{The Linux Kernel/man|2|unshare}} – disassociate parts of the process execution context
: {{The Linux Kernel/source|kernel/sys.c}} – system and process operations
:: syscalls:
:: {{The Linux Kernel/man|2|prctl}} – operations on a process or thread
: {{The Linux Kernel/source|kernel/pid.c}} – PID allocation and management
:: syscalls:
:: {{The Linux Kernel/man|2|pidfd_open}} – obtain a file descriptor that refers to a process
:: {{The Linux Kernel/man|2|pidfd_getfd}} – obtain a duplicate of another process's file descriptor
: {{The Linux Kernel/source|kernel/exit.c}} – process termination
:: syscalls:
:: {{The Linux Kernel/man|2|exit}} – terminate the calling process
:: {{The Linux Kernel/man|2|exit_group}} – exit all threads in a process
:: {{The Linux Kernel/man|2|waitid}} – wait for process to change state
:: {{The Linux Kernel/man|2|waitpid}} – wait for process to change state
: {{The Linux Kernel/source|fs/exec.c}} – program execution (execve)
📖 References
: {{w|fork (system call)}}
: {{w|exit (system call)}}
: {{w|wait (system call)}}
: {{w|exec (system call)}}
{{BookCat}}
mcs25wgk581ypr69gb20m59mbtxjpfb
Chess Opening Theory/1. e4/1...e5/2. Nf3/2...Nc6/3. Nc3/3...Nf6/4. Bb5/4...Bc5
0
474450
4640088
4490462
2026-06-13T12:59:21Z
~2026-34729-74
3605898
/* Ruy Lopez: Four Knights Game */ fix position
4640088
wikitext
text/x-wiki
= Ruy Lopez: Four Knights Game =
{{Chess Opening Theory/Position|=
|Spanish Four Knights Game|
|rd| |bd|qd|kd| | |rd|=
|pd|pd|pd|pd| |pd|pd|pd|=
| | |nd| | |nd| | |=
| |bl|bd| |pd| | | |=
| | | | |pl| | | |=
| | |nl| | |nl| | |=
|pl|pl|pl|pl| |pl|pl|pl|=
|rl| |bl|ql|kl| ||rl|=
||
}}
If Bxc6 dxc6 Nxe5? is a mistake after Bxf2 targeting the weak f2 square by sacrificing the bishop. After Kxf2, Qd4+ forks the King and the Knight. After Ke2 Qxe5, White has a king which cannot castle in a relatively open position.
==Theory table==
{{Chess Opening Theory/Table}}
'''1. e4 e5 2. Nf3 Nc6 3. Nc3 Nf6 4. Bb5 Bc5'''
<table border="0" cellspacing="0" cellpadding="4">
<tr>
<th align = “right”></th>
<td>O-O<br>O-O </td>
<td>+=</td>
</tr>
</table>
==References==
{{Chess Opening Theory/Footer}}
gbp2sm27ic4kd4yrduijekoh7urrm4b
The Linux Kernel/Multitasking/CPU
0
475313
4640219
4632529
2026-06-13T17:19:39Z
Conan
3188
add brief descriptions to source file references
4640219
wikitext
text/x-wiki
<noinclude>{{DISPLAYTITLE:Interrupts and CPU}}</noinclude>
== Interrupts ==
An {{w|interrupt}} is a signal to the processor emitted by hardware or software indicating an event that needs immediate attention.
An interrupt alerts the processor to a high-priority condition requiring the interruption of the current code the processor is executing.
The processor responds by suspending its current activities, saving its state, and executing a function called an ''interrupt handler'' (or an interrupt service routine, ISR) to deal with the event.
This interruption is temporary, and, after the interrupt handler finishes, the processor resumes normal activities.
There are two types of interrupts: hardware interrupts and software interrupts.
Hardware interrupts are used by devices to communicate that they require attention from the operating system.
For example, pressing a key on the keyboard or moving the mouse triggers hardware interrupts that cause the processor to read the keystroke or mouse position.
Unlike the software type, hardware interrupts are asynchronous and can occur in the middle of instruction execution, requiring additional care in programming.
The act of initiating a hardware interrupt is referred to as an ''interrupt request'' - IRQ ↪ {{w|Interrupt descriptor table|IDT}} ↪ {{The Linux Kernel/id|common_interrupt}} on x86.
A software interrupt is caused either by an exceptional condition in the processor itself, or a special instruction in the instruction set which causes an interrupt when it is executed.
The former is often called a ''{{w|Trap (computing)|trap}}'' (⚙️ {{The Linux Kernel/id|do_trap}}) or ''exception'' and is used for errors or events occurring during program execution that are exceptional enough that they cannot be handled within the program itself.
For example, if the processor's arithmetic logic unit is commanded to divide a number by zero, this impossible demand will cause a ''divide-by-zero exception'' (⚙️ {{The Linux Kernel/id|X86_TRAP_DE}}), perhaps causing the computer to abandon the calculation or display an error message.
Software interrupt instructions function similarly to subroutine calls and are used for a variety of purposes, such as to request services from low-level system software such as device drivers.
For example, computers often use software interrupt instructions to communicate with the disk controller to request data be read or written to the disk.
Each interrupt has its own interrupt handler. The number of hardware interrupts is limited by the number of interrupt request (IRQ) lines to the processor, but there may be hundreds of different software interrupts.
⚲ API
: /proc/interrupts
: {{The Linux Kernel/man|1|irqtop}} – utility to display kernel interrupt information
: [https://github.com/Irqbalance/irqbalance irqbalance] – distribute hardware interrupts across processors on a multiprocessor system
: There are many ways to request ISR, two of them
: {{The Linux Kernel/id|devm_request_threaded_irq}} – preferable function to allocate an interrupt line for a managed device with a threaded ISR
: {{The Linux Kernel/id|request_irq}}, {{The Linux Kernel/id|free_irq}} – old and common functions to add and remove a handler for an interrupt line
: {{The Linux Kernel/include|linux/interrupt.h}} – main interrupt support header
:: {{The Linux Kernel/id|irqaction}} – contains handler functions
: {{The Linux Kernel/include|linux/irq.h}}
:: {{The Linux Kernel/id|irq_data}}
: {{The Linux Kernel/include|linux/irqflags.h}}
:: {{The Linux Kernel/id|irqs_disabled}}
:: {{The Linux Kernel/id|local_irq_save}} ...
:: {{The Linux Kernel/id|local_irq_disable}} ...
: {{The Linux Kernel/include|linux/irqdesc.h}}
:: {{The Linux Kernel/id|irq_desc}}
: {{The Linux Kernel/include|linux/irqdomain.h}}
:: {{The Linux Kernel/id|irq_domain}} – hardware interrupt number translation object
:: {{The Linux Kernel/id|irq_domain_get_irq_data}}
: {{The Linux Kernel/include|linux/msi.h}} – {{w|Message Signaled Interrupts}}
:: {{The Linux Kernel/id|msi_desc}}
: Structure of structures:
:: {{The Linux Kernel/id|irq_desc}} is container of
::: {{The Linux Kernel/id|irq_data}}
:::: irq – interrupt number
::: {{The Linux Kernel/id|irq_common_data}}
::: list of {{The Linux Kernel/id|irqaction}}
⚙️ Internals
: {{The Linux Kernel/source|kernel/irq/settings.h}} – IRQ descriptor status flags
: {{The Linux Kernel/source|kernel/irq}} – generic IRQ handling
:: {{The Linux Kernel/source|kernel/irq/internals.h}} – IRQ subsystem internal functions
: ls /sys/kernel/debug/irq/domains/
:: {{The Linux Kernel/id|x86_vector_domain}}, {{The Linux Kernel/id|x86_vector_domain_ops}}
: {{The Linux Kernel/id|irq_chip}}
: {{The Linux Kernel/id|load_idt}} – load Interrupt Descriptor Table
: {{The Linux Kernel/source|arch/x86/include/asm/idtentry.h}} – interrupt entry/exit definitions
: {{The Linux Kernel/source|arch/x86/include/asm/hw_irq.h}} – x86 hardware IRQ definitions
:: {{The Linux Kernel/id|irq_entries_start}} – hardware IRQ entry stubs
: {{The Linux Kernel/source|arch/x86/kernel/irq.c}} – x86 interrupt handling
:: {{The Linux Kernel/id|common_interrupt}} – handles all normal device IRQs on x86
📖 References
: {{The Linux Kernel/doc|IRQs|core-api/irq}}
:: {{The Linux Kernel/doc|The irq_domain interrupt number mapping library|core-api/irq/irq-domain.html}}
: {{The Linux Kernel/doc|Linux generic IRQ handling|core-api/genericirq.html}}
: {{The Linux Kernel/doc|Message Signaled Interrupts: The MSI Driver Guide|PCI/msi-howto.html}}
: {{The Linux Kernel/doc|Lock types and their rules|locking/locktypes.html}}
: {{The Linux Kernel/doc|Hard IRQ Context|kernel-hacking/locking.html#hard-irq-context}}
: [https://0xax.gitbooks.io/linux-insides/content/Interrupts/ Interrupts]
👁 Examples
: {{The Linux Kernel/id|dummy_irq_chip}} – dummy interrupt chip implementation
: {{The Linux Kernel/source|lib/locking-selftest.c}} – locking correctness self-tests
=== IRQ affinity ===
⚲ API
: /proc/irq/default_smp_affinity
: /proc/irq/*/smp_affinity and /proc/irq/*/smp_affinity_list
Common types and functions:
: struct {{The Linux Kernel/id|irq_affinity}} – description for automatic irq affinity assignments, see {{The Linux Kernel/id|devm_platform_get_irqs_affinity}}
: struct {{The Linux Kernel/id|irq_affinity_desc}} – interrupt affinity descriptor, see {{The Linux Kernel/id|irq_update_affinity_desc}}, {{The Linux Kernel/id|irq_create_affinity_masks}}
: {{The Linux Kernel/id|irq_set_affinity}}
: {{The Linux Kernel/id|irq_get_affinity_mask}}
: {{The Linux Kernel/id|irq_can_set_affinity}}
: {{The Linux Kernel/id|irq_set_affinity_hint}}
: {{The Linux Kernel/id|irqd_affinity_is_managed}}
: {{The Linux Kernel/id|irq_data_get_affinity_mask}}
: {{The Linux Kernel/id|irq_data_get_effective_affinity_mask}}
: {{The Linux Kernel/id|irq_data_update_effective_affinity}}
: {{The Linux Kernel/id|irq_set_affinity_notifier}}
: {{The Linux Kernel/id|irq_affinity_notify}}
: {{The Linux Kernel/id|irq_chip_set_affinity_parent}}
: {{The Linux Kernel/id|irq_set_vcpu_affinity}}
🛠️ Utilities
: [https://man.archlinux.org/man/extra/irqbalance/irqbalance.1.en irqbalance] – distributes hardware interrupts across CPUs
📖 References
: {{The Linux Kernel/doc|SMP IRQ affinity|core-api/irq/irq-affinity.html}}
: [https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/cpu-partitioning/start#irq_affinity IRQ affinity, LF]
: [https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt#:~:text=managed_irq managed_irq kernel parameter], [https://lore.kernel.org/lkml/?q=managed_irq @LKML]
: [https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt#:~:text=irqaffinity= irqaffinity kernel parameter], [https://lore.kernel.org/lkml/?q=irqaffinity @LKML]
=== Non-maskable interrupts ===
⚲ API
: {{The Linux Kernel/include|linux/nmi.h}}
:: {{The Linux Kernel/id|in_nmi}}
:: {{The Linux Kernel/id|touch_nmi_watchdog}}
:: ...
: {{The Linux Kernel/include|trace/events/nmi.h}}
: {{The Linux Kernel/source|arch/x86/include/asm/nmi.h}} – x86 NMI handler registration
:: {{The Linux Kernel/id|register_nmi_handler}}
:: {{The Linux Kernel/id|unregister_nmi_handler}}
⚙️ Internals
: {{The Linux Kernel/source|arch/x86/kernel/nmi.c}} – x86 NMI handler
: {{The Linux Kernel/source|arch/x86/kernel/nmi_selftest.c}} – NMI IPI self-tests
📖 References
: {{The Linux Kernel/doc|NMI Trace Events|trace/events-nmi.html}}
📚 Further reading
: [https://0xax.gitbooks.io/linux-insides/content/Interrupts/linux-interrupts-6.html Non-maskable interrupt handler] (NMI)
=== ... ===
📚 Further reading about interrupts
: IDT – {{w|Interrupt descriptor table}}
: [https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/ticklesskernel Tickless (Full dynticks)] reduces timer interrupts overhead, {{The Linux Kernel/id|CONFIG_NO_HZ_FULL}}
: [https://www.felixcloutier.com/x86/lgdt:lidt LGDT/LIDT – Load Global/Interrupt Descriptor Table Register] asm instruction
== Deferred works ==
=== Scheduler context ===
==== kthread work ====
This framework simplifies the use of kernel kthreads.
A {{The Linux Kernel/id|kthread_work}} item can be queued with {{The Linux Kernel/id|kthread_queue_work}} and flushed using {{The Linux Kernel/id|kthread_flush_work}}.
All queued kthread_work items are processed by a dedicated kernel thread executing the {{The Linux Kernel/id|kthread_worker_fn}} function.
⚲ API
: {{The Linux Kernel/id|kthread_work}} – contains {{The Linux Kernel/id|kthread_work_func_t}} to execute
:: {{The Linux Kernel/id|kthread_init_work}}
:: {{The Linux Kernel/id|kthread_flush_work}}
: {{The Linux Kernel/id|kthread_worker}} – links a kthread_work and a task
:: {{The Linux Kernel/id|kthread_run_worker}} – creates and wakes a kthread worker
::: {{The Linux Kernel/id|kthread_create_worker}}
::: {{The Linux Kernel/id|kthread_flush_worker}}
:: {{The Linux Kernel/id|kthread_destroy_worker}}
: {{The Linux Kernel/id|kthread_queue_work}} – queues a kthread_work on a kthread_worker
⚙️ Internals
: {{The Linux Kernel/id|__kthread_create_worker_on_node}}
: {{The Linux Kernel/id|kthread_worker_fn}} – executes work's function
👁 Example usages
: {{The Linux Kernel/id|watchdog_kworker}}, {{The Linux Kernel/id|pwq_release_worker}}, {{The Linux Kernel/id|pump_messages}}
==== Threaded IRQ ====
⚲ API
{{The Linux Kernel/id|devm_request_threaded_irq}}, {{The Linux Kernel/id|request_threaded_irq}}
ISR should return IRQ_WAKE_THREAD to run thread function
⚙️ Internals
: {{The Linux Kernel/id|setup_irq_thread}}, {{The Linux Kernel/id|irq_thread}}
: {{The Linux Kernel/source|kernel/irq/manage.c}} – IRQ request, free and affinity management
📖 References
: {{The Linux Kernel/doc|request_threaded_irq|core-api/genericirq.html#c.request_threaded_irq}}
==== Work and workqueue ====
Generic async execution with shared worker pool.
⚲ API
: {{The Linux Kernel/id|PF_WQ_WORKER}} – workqueue worker process flag
: {{The Linux Kernel/include|linux/workqueue.h}}, {{The Linux Kernel/include|linux/workqueue_types.h}}
: {{The Linux Kernel/id|work_struct}}, {{The Linux Kernel/id|INIT_WORK}}, {{The Linux Kernel/id|schedule_work}},
: {{The Linux Kernel/id|delayed_work}}, {{The Linux Kernel/id|INIT_DELAYED_WORK}}, {{The Linux_Kernel/id|schedule_delayed_work}}, {{The Linux Kernel/id|cancel_delayed_work_sync}}
: {{The Linux Kernel/id|workqueue_struct}}
:: {{The Linux Kernel/id|alloc_workqueue}}
:: {{The Linux Kernel/id|destroy_workqueue}}
: {{The Linux Kernel/id|queue_work}} – queues work on a workqueue
: {{The Linux Kernel/id|show_all_workqueues}}
:: {{The Linux Kernel/id|show_one_workqueue}}
: {{The Linux Kernel/id|system_power_efficient_wq}} ...
👁 Example usage {{The Linux Kernel/source|samples/ftrace/sample-trace-array.c}}
⚙️ Internals
: {{The Linux Kernel/source|kernel/workqueue.c}} – generic async execution with shared worker pool
:: {{The Linux Kernel/id|workqueue_init}}
::: {{The Linux Kernel/id|create_worker}}
:::: {{The Linux Kernel/id|worker_thread}}
::::: {{The Linux Kernel/id|process_one_work}}
:: {{The Linux Kernel/id|format_worker_id}} – names kworker kthreads
:: {{The Linux Kernel/id|pool_workqueue}}
::: {{The Linux Kernel/id|worker_pool}}
📖 References
: {{The Linux Kernel/doc|Concurrency Managed Workqueue|core-api/workqueue.html}}
=== Interrupt context ===
: {{The Linux Kernel/include|linux/irq_work.h}} – framework for enqueueing and running callbacks from hardirq context
:: {{The Linux Kernel/source|samples/trace_printk/trace-printk.c}}
==== Timers ====
===== softirq timer =====
This timer is a softirq for periodical tasks with jiffies resolution
⚲ API
: {{The Linux Kernel/include|linux/timer.h}}
: {{The Linux Kernel/id|timer_list}}, {{The Linux Kernel/id|DEFINE_TIMER}}, {{The Linux Kernel/id|timer_setup}}
: {{The Linux Kernel/id|mod_timer}} — sets expiration time in jiffies.
: {{The Linux Kernel/id|del_timer}}
⚙️ Internals
: {{The Linux Kernel/source|kernel/time/timer.c}} – kernel internal timers
:: {{The Linux Kernel/id|timer_bases}}
👁 Examples
: {{The Linux Kernel/id|input_enable_softrepeat}} and {{The Linux Kernel/id|input_start_autorepeat}}
📚 References
: {{The Linux Kernel/doc|Time and timer routines|driver-api/basics.html#time-and-timer-routines}}
:: {{The Linux Kernel/doc|mod_timer_pending ... |driver-api/basics.html#c.mod_timer_pending}}
===== High-resolution timer =====
⚲ API
: /proc/timer_list
: /proc/sys/kernel/timer_migration
: {{The Linux Kernel/include|linux/hrtimer_defs.h}}
: {{The Linux Kernel/include|linux/hrtimer.h}}
: {{The Linux Kernel/id|hrtimer}}, hrtimer.function — callback
: {{The Linux Kernel/id|hrtimer_init}}
: {{The Linux Kernel/id|hrtimer_setup}}
: {{The Linux Kernel/id|hrtimer_start}} — starts a timer with nanosecond resolution
: {{The Linux Kernel/id|hrtimer_cancel}}
👁 Examples {{The Linux Kernel/id|alarm_init}}, {{The Linux Kernel/id|watchdog_enable}}
⚙️ Internals
: {{The Linux Kernel/id|CONFIG_HIGH_RES_TIMERS}}
: {{The Linux Kernel/source|kernel/time/tick-internal.h}} – tick and timer internal definitions
:: {{The Linux Kernel/id|hrtimer_bases}}
: {{The Linux Kernel/source|kernel/time/hrtimer.c}} – high-resolution timer implementation
: {{The Linux Kernel/source|kernel/time/itimer.c}} – interval timers
: {{The Linux Kernel/source|kernel/time/timer_list.c}} – /proc/timer_list debugfs
📚 HR timers references
: {{The Linux Kernel/doc|High-resolution timers|driver-api/basics.html#high-resolution-timers}}
: {{The Linux Kernel/doc|hrtimers - subsystem for high-resolution kernel timers|timers/hrtimers.html}}
: {{The Linux Kernel/doc|high resolution timers and dynamic ticks design notes|timers/highres.html}}
===== ... =====
📚 Timers references
: {{The Linux Kernel/doc|Timers|timers}}
: [https://lwn.net/Articles/913568/ Better CPU selection for timer expiration]
==== Tasklet ====
tasklet is a softirq, for time critical operations
⚲ API is deprecated in favor of threaded IRQs: {{The Linux Kernel/id|devm_request_threaded_irq}}
: {{The Linux Kernel/id|tasklet_struct}}, {{The Linux Kernel/id|tasklet_init}}, {{The Linux Kernel/id|tasklet_schedule}}
⚙️ Internals: {{The Linux Kernel/id|tasklet_action_common}} HI_SOFTIRQ, TASKLET_SOFTIRQ
==== Softirq ====
softirq is internal system facility and should not be used directly.
Use tasklet or threaded IRQs
⚲ API
: {{The Linux Kernel/include|linux/interrupt.h}}
: cat /proc/softirqs
: {{The Linux Kernel/id|open_softirq}} registers {{The Linux Kernel/id|softirq_action}}
⚙️ Internals
: {{The Linux Kernel/source|kernel/softirq.c}} – software interrupt handling
📖 References
: [https://0xax.gitbooks.io/linux-insides/content/Interrupts/linux-interrupts-9.html Introduction to deferred interrupts (Softirq, Tasklets and Workqueues)]
: [https://0xax.gitbooks.io/linux-insides/content/Timers/ Timers and time management]
: [https://linux-kernel-labs.github.io/refs/heads/master/labs/deferred_work.html Deferred work, linux-kernel-labs]
: [https://www.oreilly.com/library/view/linux-device-drivers/0596005903/ch07.html Chapter 7. Time, Delays, and Deferred Work]
==CPU specific==
🖱️ GUI
: [https://manpages.ubuntu.com/manpages/kinetic/en/man8/tuna.8.html tuna] – program for tuning running processes
⚲ API
: cat /proc/cpuinfo
: /sys/devices/system/cpu/
: /sys/devices/system/node/
: /sys/cpu/
: /sys/fs/cgroup/cpu/
: grep -i cpu /proc/self/status
: [https://manpages.ubuntu.com/manpages/jammy/man1/rdmsr.1.html rdmsr] – tool for reading CPU machine specific registers (MSR)
: {{The Linux Kernel/man|1|lscpu}} – display information about the CPU architecture
: {{The Linux Kernel/include|linux/arch_topology.h}} – arch specific cpu topology information
: {{The Linux Kernel/include|linux/cpu.h}} – generic cpu definition
: {{The Linux Kernel/include|linux/cpu_cooling.h}}
: {{The Linux Kernel/include|linux/cpu_pm.h}}
: {{The Linux Kernel/include|linux/cpufeature.h}}
: {{The Linux Kernel/source|arch/x86/include/asm/cpufeature.h}} – x86 CPU feature detection
: {{The Linux Kernel/include|linux/peci-cpu.h}}
: {{The Linux Kernel/include|linux/sched/cputime.h}} – cputime accounting APIs
: {{The Linux Kernel/include|linux/clk.h}} – interfaces for managing hardware clocks in device drivers
⚙️ Internals
: {{The Linux Kernel/source|drivers/base/cpu.c}} – CPU driver model subsystem
:: {{The Linux Kernel/id|cpu_dev_init}}
=== Cache ===
: {{The Linux Kernel/include|linux/cacheflush.h}}
:: {{The Linux Kernel/source|arch/x86/include/asm/cacheflush.h}}: {{The Linux Kernel/id|clflush_cache_range}}
: {{The Linux Kernel/include|linux/cache.h}}
:: {{The Linux Kernel/source|arch/x86/include/asm/cache.h}} – x86 cache line size definitions
⚙️ Internals
: {{The Linux Kernel/source|arch/x86/mm/pat/set_memory.c}} – page attribute table memory type control
: {{The Linux Kernel/source|arch/x86/kernel/cpu/mtrr/}} – memory type range register driver
📚 Further reading
: MTRR – {{w|Memory type range register}}
: {{w|CPU cache}}
=== {{w|Symmetric_multiprocessing|SMP}} ===
This chapter is about multiprocessing and {{w|Multi-core processor|multi-core}} aspects of Linux kernel.
Key concepts and features of Linux SMP include:
* Symmetry: In an SMP system, all processors are considered the same without hardware hierarchy in contradiction to use of {{w|coprocessor}}s.
* Load balancing: The Linux kernel employs load balancing mechanisms to distribute tasks evenly among available CPU cores. This prevents any one core from becoming overwhelmed while others remain underutilized.
* Parallelism: SMP enables parallel processing, where multiple threads or processes can execute simultaneously on different CPU cores. This can significantly improve the execution speed of applications that are designed to take advantage of multiple threads.
* Thread scheduling: The Linux kernel scheduler is responsible for determining which threads or processes run on which CPU cores and for how long. It aims to optimize performance by minimizing contention and maximizing CPU utilization.
* Shared memory: In an SMP system, all CPU cores typically share the same physical memory space. This allows processes and threads running on different cores to communicate and share data more efficiently.
* NUMA – {{w|Non-Uniform Memory Access}}: In larger SMP systems, memory access times might not be uniform due to the physical arrangement of memory banks and processors. Linux has mechanisms to handle NUMA architectures efficiently, allowing processes to be scheduled on CPUs closer to their associated memory.
* Cache coherency: SMP systems require mechanisms to ensure that all CPU cores have consistent views of memory. Cache coherency protocols ensure that changes made to shared memory locations are correctly propagated to all cores.
* Scalability: SMP systems can be scaled up to include more CPU cores, enhancing the overall computing power of the system. However, as the number of cores increases, challenges related to memory access, contention, and communication between cores may arise.
* Kernel and user space: Linux applications running in user space can take advantage of SMP without needing to be aware of the underlying hardware details. The kernel handles the management of CPU cores and resource allocation.
⚲ API
: <code>ps -PLe</code> – lists threads with processor that the thread last executed on (the third column PSR).
: {{The Linux Kernel/man|2|getcpu}} – determine CPU and NUMA node on which the calling thread is running
: {{The Linux Kernel/man|8|chcpu}} – configure CPUs
: {{The Linux Kernel/man|3|CPU_SET}} – macros for manipulating CPU sets
: {{The Linux Kernel/include|linux/smp.h}}
:: The most commonly used functions:
:: {{The Linux Kernel/id|crash_smp_send_stop}} – halts all CPUs except the calling one in a crash context
:: {{The Linux Kernel/id|get_cpu}} – disables preemption and returns the current processor ID
:: {{The Linux Kernel/id|on_each_cpu}} – runs a given function on all CPUs, possibly with synchronization
:: {{The Linux Kernel/id|on_each_cpu_cond_mask}} – conditionally runs a function on selected CPUs
:: {{The Linux Kernel/id|on_each_cpu_mask}} – executes a function on a specified set of CPUs
:: {{The Linux Kernel/id|panic_smp_self_stop}} – stops the local CPU during a panic while ensuring others halt
:: {{The Linux Kernel/id|put_cpu}} – re-enables preemption after a previous get_cpu call
:: {{The Linux Kernel/id|raw_smp_processor_id}} – returns the current CPU ID without preemption safety
:: {{The Linux Kernel/id|setup_max_cpus}} – sets up the maximum number of CPUs to be brought online
:: {{The Linux Kernel/id|smp_call_func_t}} – typedef for the function signature used in SMP function calls
:: {{The Linux Kernel/id|smp_call_function}} – invokes a function on all other CPUs asynchronously
:: {{The Linux Kernel/id|smp_call_function_any}} – runs a function on any available CPU in a given mask
:: {{The Linux Kernel/id|smp_call_function_many}} – sends a function call to a specified set of CPUs
:: {{The Linux Kernel/id|smp_call_function_single}} – sends a function to execute on a single target CPU
:: {{The Linux Kernel/id|smp_call_function_single_async}} – queues a function to run asynchronously on one CPU
:: {{The Linux Kernel/id|smp_call_on_cpu}} – executes a function on a specific CPU and waits for the result
:: {{The Linux Kernel/id|smp_init}} – initializes core SMP structures and state during boot
:: {{The Linux Kernel/id|smp_prepare_boot_cpu}} – prepares the boot CPU during early SMP initialization
:: {{The Linux Kernel/id|smp_prepare_cpus}} – prepares all CPUs for booting before secondary CPUs are started
:: {{The Linux Kernel/id|smp_processor_id}} – returns the ID of the current CPU with preemption checks
:: {{The Linux Kernel/id|smp_send_reschedule}} – sends a reschedule interrupt to a target CPU
:: {{The Linux Kernel/id|smp_send_stop}} – stops all other CPUs in response to critical events
:: {{The Linux Kernel/id|wake_up_all_idle_cpus}} – wakes all idle CPUs to ensure prompt task execution
: {{The Linux Kernel/include|linux/cpu.h}}
: {{The Linux Kernel/include|linux/group_cpus.h}}: {{The Linux Kernel/id|group_cpus_evenly}} – groups all CPUs evenly per NUMA/CPU locality
: {{The Linux Kernel/include|asm-generic/percpu.h}}
: {{The Linux Kernel/include|linux/percpu-defs.h}} – basic definitions for percpu areas
:: {{The Linux Kernel/id|this_cpu_ptr}}
: {{The Linux Kernel/include|linux/percpu.h}}
: {{The Linux Kernel/include|linux/percpu-refcount.h}}
: {{The Linux Kernel/include|linux/percpu-rwsem.h}}
: {{The Linux Kernel/include|linux/preempt.h}}
:: {{The Linux Kernel/id|migrate_disable}}, {{The Linux Kernel/id|migrate_enable}}
: /sys/bus/cpu
: [[#per_CPU_local_lock|per CPU local_lock]]
: {{The Linux Kernel/include|linux/topology.h}} – {{The Linux Kernel/id|cpu_to_node}}, {{The Linux Kernel/id|numa_node_id}}
: {{The Linux Kernel/source|arch/x86/include/asm/topology.h}} – x86 NUMA and CPU topology
: See also [[../../Memory#NUMA|NUMA memory section]]
⚙️ Internals
: {{The Linux Kernel/id|boot_cpu_init}} activates the first CPU
: {{The Linux Kernel/id|smp_prepare_cpus}} initializes rest CPUs during boot
: {{The Linux Kernel/id|cpu_number}}
: {{The Linux Kernel/id|CONFIG_SMP}}
:: {{The Linux Kernel/id|CONFIG_NUMA}}
: {{The Linux Kernel/include|trace/events/percpu.h}}
: IPI – {{w|Inter-processor interrupt}}
:: {{The Linux Kernel/include|trace/events/ipi.h}}
:: {{The Linux Kernel/file|kernel/irq/ipi.c}} – inter-processor interrupt helpers
:: {{The Linux Kernel/id|ipi_send_single}}, {{The Linux Kernel/id|ipi_send_mask}} ...
:: {{The Linux Kernel/file|drivers/base/cpu.c}} – CPU driver model subsystem support
:: {{The Linux Kernel/file|kernel/cpu.c}} – CPU hotplug state machine
: smpboot
:: {{The Linux Kernel/include|linux/smpboot.h}}
:: {{The Linux Kernel/source|kernel/smpboot.c}} – common SMP CPU bringup/teardown
:: {{The Linux Kernel/source|arch/x86/kernel/smpboot.c}} – x86 SMP booting
: {{The Linux Kernel/source|lib/group_cpus.c}} – distribute CPUs evenly across groups
🛠️ Utilities
: [https://man.archlinux.org/man/extra/irqbalance/irqbalance.1.en irqbalance] – distributes hardware interrupts across CPUs
: {{The Linux Kernel/man|8|numactl}} – controls NUMA policy for processes or shared memory
📖 References
: {{The Linux Kernel/doc|Per-CPU Data|kernel-hacking/locking.html#per-cpu-data}}
: {{The Linux Kernel/doc|How CPU topology info is exported via sysfs|admin-guide/cputopology.html}}
📚 Further reading
: [https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/monitoring_and_managing_system_status_and_performance/customizing-tuned-profiles_monitoring-and-managing-system-status-and-performance#functionalities-of-the-scheduler-tuned-plug-in_customizing-tuned-profiles Functionalities of the scheduler TuneD plugin]
: [https://man.archlinux.org/man/tuned-adm.8 tuned-adm] – command line tool for switching between different tuning profiles
==== CPU affinity ====
Affinity refers to assigning a process or thread to specific CPU cores.
This helps control which CPUs execute tasks, potentially improving performance by reducing data movement between cores.
It can be managed using system calls or commands.
Affinity can be represented as CPU bitmask: {{The Linux Kernel/id|cpumask_t}} or CPU affinity list: {{The Linux Kernel/id|cpulist_parse}}.
⚲ API
: {{The Linux Kernel/man|1|taskset}} – set or retrieve a process's CPU affinity
: grep Cpus_allowed /proc/self/status
: {{The Linux Kernel/man|2|sched_setaffinity}} {{The Linux Kernel/man|2|sched_getaffinity}} – set and get a thread's CPU affinity mask
:: ↪ {{The Linux Kernel/id|sched_setaffinity}}
: {{The Linux Kernel/id|set_cpus_allowed_ptr}} – common kernel function to change a task's affinity mask
: {{The Linux Kernel/include|linux/cpu_rmap.h}} – CPU affinity reverse-map support
: {{The Linux Kernel/include|linux/cpumask_types.h}}
:: struct cpumask, {{The Linux Kernel/id|cpumask_t}} – CPUs bitmap, can be very big
:: {{The Linux Kernel/id|cpumask_var_t}} – type for local cpumask variable, see {{The Linux Kernel/id|alloc_cpumask_var}}, {{The Linux Kernel/id|free_cpumask_var}}.
: {{The Linux Kernel/include|linux/cpumask.h}} – Cpumasks provide a bitmap suitable for representing the set of CPU's in a system, one bit position per CPU number
:: {{The Linux Kernel/id|for_each_possible_cpu}}
:: {{The Linux Kernel/id|num_online_cpus}}
:: {{The Linux Kernel/id|cpumask_set_cpu}}
:: {{The Linux Kernel/id|cpumask_test_cpu}}
:: {{The Linux Kernel/id|for_each_cpu}}
⚙️ Internals
: {{The Linux Kernel/id|cpus_mask}} – affinity of {{The Linux Kernel/id|task_struct}}
: {{The Linux Kernel/id|cpus_allowed}} – affinity of {{The Linux Kernel/id|cpuset}}
📚 Further reading
: {{w|Processor affinity}}
: {{w|Affinity mask}}
==== CPU hotplug ====
CPU hotplugging in Linux refers to the ability to dynamically add or remove CPUs from the system without needing a reboot.
This feature is crucial in environments requiring high availability and resource flexibility, such as data centers, virtualized systems, and systems that use power management aggressively.
🗝️ Acronyms
: BP – Bootstrap Processor
: AP – Application Processor
⚲ API
: /sys/devices/system/cpu/cpu*/online
: /sys/devices/system/cpu/cpu*/hotplug/
: {{The Linux Kernel/include|linux/cpu.h}}
:: {{The Linux Kernel/id|add_cpu}} ...
: {{The Linux Kernel/include|linux/cpuhotplug.h}}
:: {{The Linux Kernel/id|cpuhp_state}} – CPU hotplug states
:: {{The Linux Kernel/id|cpuhp_setup_state}} ... – setups hotplug state callbacks
::: {{The Linux Kernel/id|cpuhp_setup_state_multi}}
::: {{The Linux Kernel/id|cpuhp_setup_state_nocalls}}
: {{The Linux Kernel/include|linux/cpuhplock.h}} – CPU hotplug locking
:: {{The Linux Kernel/id|cpus_read_lock}} ...
:: {{The Linux Kernel/id|remove_cpu}} ...
⚙️ Internals
: {{The Linux Kernel/source|kernel/cpu.c}} – CPU hotplug state machine
:: {{The Linux Kernel/id|cpuhp_state}} – from CPUHP_OFFLINE to CPUHP_AP_ACTIVE and CPUHP_ONLINE.
:: {{The Linux Kernel/id|cpuhp_hp_states}}
:: {{The Linux Kernel/id|boot_cpu_hotplug_init}}
:: {{The Linux Kernel/id|cpuhp_threads_init}}
:: ... {{The Linux Kernel/id|cpuhp_invoke_callback_range}} ...
: {{The Linux Kernel/source|kernel/irq/cpuhotplug.c}} – IRQ migration on CPU hotunplug
: {{The Linux Kernel/source|drivers/base/cpu.c}} – CPU subsystem support
:: {{The Linux Kernel/id|cpu_dev_init}}
::: ... {{The Linux Kernel/id|cpu_subsys_online}}
: {{The Linux Kernel/include|trace/events/cpuhp.h}}
: {{The Linux Kernel/include|linux/cpuhplock.h}}
👁️ Examples
: {{The Linux Kernel/id|torture_onoff}}
: {{The Linux Kernel/source|tools/testing/selftests/sched_ext/hotplug.c}} – sched_ext CPU hotplug test
📖 References
: {{The Linux Kernel/doc|CPU hotplug in the Kernel|core-api/cpu_hotplug.html}}
:: {{The Linux Kernel/doc|Introduction|core-api/cpu_hotplug.html#introduction}}
:: {{The Linux Kernel/doc|Command Line Switches|core-api/cpu_hotplug.html#command-line-switches}}
:: {{The Linux Kernel/doc|CPU maps|core-api/cpu_hotplug.html#cpu-maps}}
:: {{The Linux Kernel/doc|Using CPU hotplug|core-api/cpu_hotplug.html#using-cpu-hotplug}}
:: {{The Linux Kernel/doc|The CPU hotplug coordination|core-api/cpu_hotplug.html#the-cpu-hotplug-coordination}}
:: {{The Linux Kernel/doc|The CPU hotplug API|core-api/cpu_hotplug.html#the-cpu-hotplug-api}}
::: {{The Linux Kernel/doc|CPU hotplug state machine|core-api/cpu_hotplug.html#cpu-hotplug-state-machine}}
::: {{The Linux Kernel/doc|CPU online/offline operations|core-api/cpu_hotplug.html#cpu-online-offline-operations}}
::: {{The Linux Kernel/doc|Allocating a state|core-api/cpu_hotplug.html#allocating-a-state}}
::: {{The Linux Kernel/doc|Setup of a CPU hotplug state|core-api/cpu_hotplug.html#setup-of-a-cpu-hotplug-state}}
::: {{The Linux Kernel/doc|Removal of a CPU hotplug state|core-api/cpu_hotplug.html#removal-of-a-cpu-hotplug-state}}
::: {{The Linux Kernel/doc|Multi-Instance state instance management|core-api/cpu_hotplug.html#multi-instance-state-instance-management}}
::: {{The Linux Kernel/doc|Examples|core-api/cpu_hotplug.html#examples}}
:: {{The Linux Kernel/doc|Testing of hotplug states|core-api/cpu_hotplug.html#testing-of-hotplug-states}}
:: {{The Linux Kernel/doc|Architecture’s requirements|core-api/cpu_hotplug.html#architecture-s-requirements}}
:: {{The Linux Kernel/doc|User Space Notification|core-api/cpu_hotplug.html#user-space-notification}}
:: {{The Linux Kernel/doc|Kernel Inline Documentations Reference|core-api/cpu_hotplug.html#kernel-inline-documentations-reference}}
📚 Further reading
: [https://manpages.ubuntu.com/manpages/focal/man1/stress-ng.1.html#:~:text=cpu%2Donline stress-ng --cpu-online]
: {{The Linux Kernel/id|CONFIG_CPU_HOTPLUG_STATE_CONTROL}} – enables the ability to write incremental steps between "offline" and "online" states to the CPU's sysfs target file, allowing for more granular control of state transitions.
:: {{The Linux Kernel/id|target_store}}: {{The Linux Kernel/id|cpu_up}}/{{The Linux Kernel/id|cpu_down}}
: [https://lore.kernel.org/lkml/?q=cpuhotplug+OR+cpuhp cpuhotplug, cpuhp @LKML]
==== CPU isolation ====
CPU isolation ensures that specific tasks run on dedicated CPUs, reducing contention and latency.
'''Housekeeping''' CPUs refer to the CPUs that are reserved for various '''system''' tasks. See {{The Linux Kernel/id|hk_type}}.
'''Isolated''' CPUs are dedicated to '''real-time''' applications, such as DPDK.
⚲ API
: /sys/devices/system/cpu/isolated
: /sys/devices/system/cpu/nohz_full
: [https://docs.kernel.org/admin-guide/cgroup-v2.html#:~:text=cpuset.cpus.isolated /sys/fs/cgroup/cpuset.cpus.isolated]
: [https://docs.kernel.org/admin-guide/cgroup-v2.html#:~:text=Partition%20root%20without%20load%20balancing /sys/fs/cgroup/.../cpuset.cpus.partition]
: {{The Linux Kernel/include|linux/sched/isolation.h}}
:: {{The Linux Kernel/id|hk_type}} – housekeeping type
:: {{The Linux Kernel/id|housekeeping_cpumask}} – returns CPUs available for housekeeping of a given type
:: {{The Linux Kernel/id|cpu_is_isolated}}
: {{The Linux Kernel/include|linux/cpuset.h}} – cpuset interface
: {{The Linux Kernel/man|7|cpuset}} – confine processes to processor and memory node subsets
⚙️ Internals
: {{The Linux Kernel/id|CONFIG_CPU_ISOLATION}}
:: {{The Linux Kernel/source|kernel/sched/isolation.c}} – housekeeping CPU management
::: {{The Linux Kernel/id|housekeeping_init}}, {{The Linux Kernel/id|housekeeping_update}}
: {{The Linux Kernel/id|CONFIG_CPUSETS}}
:: {{The Linux Kernel/source|kernel/cgroup/cpuset.c}} – cpuset cgroup controller
::: {{The Linux Kernel/id|cpuset_init}}
::: {{The Linux Kernel/id|cpuset_init_smp}}
::: {{The Linux Kernel/id|isolated_cpus}}
::: {{The Linux Kernel/id|partition_xcpus_add}}, {{The Linux Kernel/id|partition_xcpus_del}}
📖 References
: {{The Linux Kernel/doc|CPU lists in command-line parameters|admin-guide/kernel-parameters.html#cpu-lists}}
:: [https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt#:~:text=nohz_full= '''nohz_full'''] clears housekeeping.{{The Linux Kernel/id|cpumasks}} for tick, wq, timer, rcu, misc, and kthread in {{The Linux Kernel/id|housekeeping_nohz_full_setup}}
:: [https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt#:~:text=isolcpus '''isolcpus'''] clears housekeeping.{{The Linux Kernel/id|cpumasks}} for [https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt#:~:text=domain%20isolation domain] (by default), [https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt#:~:text=nohz nohz], and [https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt#:~:text=managed_irq managed_irq] in {{The Linux Kernel/id|housekeeping_isolcpus_setup}}
: {{The Linux Kernel/doc|Housekeeping|core-api/housekeeping.html}}
: {{The Linux Kernel/doc|NO_HZ: Reducing Scheduling-Clock Ticks|timers/no_hz.html}}
: {{The Linux Kernel/doc|CPUSETS of cgroup v2|admin-guide/cgroup-v2.html#cpuset}}
: {{The Linux Kernel/doc|CPUSETS of cgroup v1|admin-guide/cgroup-v1/cpusets.html}}
📚 Further reading
: [https://www.youtube.com/watch?v=1lomUhSS82s CPU Isolation state of the art, LPC'23]
: [https://www.suse.com/c/cpu-isolation-introduction-part-1/ CPU Isolation]
: [https://lore.kernel.org/lkml/?q=isolcpus isolcpus @LKML]
: [https://lore.kernel.org/lkml/?q=housekeeping housekeeping @LKML]
: [https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/#explicitly-reserved-cpu-list Explicitly Reserved CPU List, Kubernetes Documentation]
: [https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/cpu-partitioning/start CPU Partitioning]
: {{The Linux Kernel/doc|Scheduler Domains|scheduler/sched-domains.html}} – the Scheduler balances CPUs (scheduling groups) within a sched domain
: [https://lore.kernel.org/lkml/?q=nohz_full nohz_full @LKML]
💾 Historical since v7.0
: {{The Linux Kernel/id|cpuset_cpu_is_isolated}} – removed, use {{The Linux Kernel/id|cpu_is_isolated}} instead
=== Runtime code patching ===
The kernel patches its own machine code at boot or runtime to optimize hot paths.
Static keys patch a {{w|NOP_(code)|NOP}} to a jump (or vice versa); static calls patch indirect calls to direct calls; alternatives replace instructions based on CPU features.
⚲ API
: {{The Linux Kernel/include|linux/jump_label.h}} – static keys
:: {{The Linux Kernel/id|DEFINE_STATIC_KEY_FALSE}} – define a key, initially false
:: {{The Linux Kernel/id|static_branch_unlikely}} – zero-cost branch check (NOP when key is false)
:: {{The Linux Kernel/id|static_branch_enable}} – patch all sites to take the branch (expensive, rare use)
: {{The Linux Kernel/include|linux/static_call.h}} – static calls
:: {{The Linux Kernel/id|DEFINE_STATIC_CALL}} – define a call site with initial target function
:: {{The Linux Kernel/id|static_call}} – invoke the patched direct call
:: {{The Linux Kernel/id|static_call_update}} – change target function, patch all sites
: {{The Linux Kernel/source|arch/x86/include/asm/alternative.h}} – alternatives
:: {{The Linux Kernel/id|ALTERNATIVE}} – replace instructions at boot based on CPU features
:: {{The Linux Kernel/source|arch/x86/include/asm/cpufeatures.h}} – X86_FEATURE_* flags
⚙️ Internals
: {{The Linux Kernel/id|CONFIG_JUMP_LABEL}}
:: {{The Linux Kernel/source|kernel/jump_label.c}} – static key patching core
:: {{The Linux Kernel/source|arch/x86/kernel/jump_label.c}} – x86 static key patching
: {{The Linux Kernel/id|CONFIG_HAVE_STATIC_CALL}}
:: {{The Linux Kernel/source|kernel/static_call_inline.c}} – static call core
:: {{The Linux Kernel/source|arch/x86/kernel/static_call.c}} – x86 static call patching
: {{The Linux Kernel/source|arch/x86/include/asm/alternative.h}} – runtime instruction patching
:: {{The Linux Kernel/source|arch/x86/kernel/alternative.c}} – x86 alternatives engine
👁 Examples
: {{The Linux Kernel/id|housekeeping_overridden}}
: {{The Linux Kernel/id|preempt_schedule}}
: tracepoints
📖 References
: {{The Linux Kernel/doc|Static Keys|staging/static-keys.html}}
: {{The Linux Kernel/doc|x86 CPU feature flags|arch/x86/cpuinfo.html}}
=== {{w|Memory barrier}}s ===
Memory barriers (MB) are synchronization mechanisms used to ensure proper ordering of memory operations in a SMP environment.
They play a crucial role in maintaining the consistency and correctness of data shared among different CPU cores or processors.
MBs prevent unexpected and potentially harmful reordering of memory access instructions by the compiler or CPU, which can lead to data corruption and race conditions in a concurrent software system.
⚲ API
: {{The Linux Kernel/man|2|membarrier}}
: {{The Linux Kernel/include|asm-generic/barrier.h}}
:: {{The Linux Kernel/id|mb}}, {{The Linux Kernel/id|rmb}}, {{The Linux Kernel/id|wmb}}
:: {{The Linux Kernel/id|smp_mb}}, {{The Linux Kernel/id|smp_rmb}}, {{The Linux Kernel/id|smp_wmb}}
⚙️ Internals
: {{The Linux Kernel/source|arch/x86/include/asm/barrier.h}} – x86 memory barrier instructions
: {{The Linux Kernel/source|kernel/sched/membarrier.c}} – membarrier system call
📖 References
: {{The Linux Kernel/doc|Memory barriers|core-api/wrappers/memory-barriers.html}}
=== States ===
C-states and P-states are features in modern CPUs designed to improve energy efficiency.
🗝️ Acronyms
: [https://uefi.org/htmlspecs/ACPI_Spec_6_4_html/08_Processor_Configuration_and_Control/processor-power-states.html C-states] – CPU(?) states, aka idle states
: EPP – {{The Linux Kernel/doc|Energy Performance Preference|admin-guide/pm/amd-pstate.html#energy-performance-preference-epp-rw}}
: HWP – hardware-managed P-states, see [https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt#:~:text=hwp_only hwp_only]
: [https://www.intel.com/content/www/us/en/docs/socwatch/user-guide/2020/p-state.html P-states] – Performance states, see CPU Power and frequency scaling
⚲ API
: [https://linux.die.net/man/1/cpupower cpupower]
📖 References
: {{The Linux Kernel/doc|Working-State Power Management|admin-guide/pm/working-state.html}}
: https://lwn.net/Kernel/Index/#Power_management
==== Idle ====
C-states, {{w|ACPI#Processor_states|power states}}:
: C0 – the operating state.
: C1 (aka Halt) – the processor is not executing instructions, but can return to an executing state instantaneously.
: C2 (aka Stop-Clock) – the processor maintains all software-visible state, but may take longer to wake up.
: C3 (aka Sleep) – takes longer to wake up.
: ...
⚲ API
: turbostat --show CPU --quiet -n 1 --interval 0.1 --show sysfs
: [https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt#:~:text=idle= idle=]
: /dev/cpu_dma_latency – see {{The Linux Kernel/id|set_cpu_dma_latency}}
: C-states interfaces:
:: /sys/devices/system/cpu/cpuidle/
:: /sys/devices/system/cpu/cpu*/cpuidle/
:: {{The Linux Kernel/include|linux/cpuidle.h}} – a generic framework for CPU idle power management
:: {{The Linux Kernel/doc|intel_idle CPU Idle Time Management Driver|admin-guide/pm/intel_idle.html}}
: {{The Linux Kernel/include|linux/pm_qos.h}}
⚙️ Internals
: {{The Linux Kernel/source|drivers/cpuidle}} – CPU idle governors and drivers
: {{The Linux Kernel/source|kernel/power/qos.c}} – PM quality of service
:: {{The Linux Kernel/id|cpu_latency_qos_miscdev}} – implementation of /dev/cpu_dma_latency
📖 References
:: {{The Linux Kernel/doc|CPU Idle Time Management|admin-guide/pm/cpuidle.html}}
📚 Further reading
:: https://lwn.net/Kernel/Index/#Power_management-cpuidle
: {{The Linux Kernel/doc|PM Quality Of Service Interface|power/pm_qos_interface.html}}
==== Power and frequency ====
P-states, {{w|ACPI#Performance_state|performance states}}:
: P0 – maximum power and frequency
: Pn – less power and frequency
: ...
⚲ API
: Reliable measurement of actual CPU frequency
:: [https://manpages.debian.org/testing/linux-cpupower/turbostat.8.en.html turbostat] --quiet --show CPU,Bzy_MHz -n 1 --interval 0.1
::: Bzy_MHz – average clock rate while the CPU was not idle (ie. in "c0" state).
: [https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt#:~:text=intel_pstate intel_pstate=]
:: {{The Linux Kernel/doc|Kernel Command Line Options for intel_pstate|admin-guide/pm/intel_pstate.html#kernel-command-line-options-for-intel-pstate}}
: [https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt#:~:text=cpufreq.default_governor cpufreq.default_governor=]
: P-states interfaces:
:: /sys/devices/system/cpu/cpufreq/
:: /sys/devices/system/cpu/cpu*/cpufreq/
::: scaling_cur_freq – unreliable assumption on CPU frequency
:: /sys/devices/system/cpu/intel_pstate/
:: {{The Linux Kernel/include|linux/cpufreq.h}}
:: {{The Linux Kernel/include|linux/sched/cpufreq.h}} – interface between cpufreq drivers and the scheduler
⚙️ Internals
: {{The Linux Kernel/source|drivers/cpufreq}} – CPU frequency scaling drivers
:: {{The Linux Kernel/id|intel_pstate}}
:: {{The Linux Kernel/id|acpi_cpufreq_driver}}
: {{The Linux Kernel/source|kernel/sched/cpufreq_schedutil.c}} – implementation of cpufreq.default_governor=schedutil
: {{The Linux Kernel/source|arch/x86/kernel/cpu/intel_epb.c}} – Intel Performance and Energy Bias Hint support
📖 References
: {{The Linux Kernel/doc|CPU Performance Scaling|admin-guide/pm/cpufreq.html}}
: {{The Linux Kernel/doc|Device Frequency Scaling|driver-api/devfreq.html}}
: [https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt CPUFreq Governor]
: {{The Linux Kernel/doc|CPUFreq - CPU frequency and voltage scaling|cpu-freq}}
: {{The Linux Kernel/doc|Intel Performance and Energy Bias Hint|admin-guide/pm/intel_epb.html}}
: {{The Linux Kernel/doc|intel_pstate CPU Performance Scaling Driver|admin-guide/pm/intel_pstate.html}}
:: {{The Linux Kernel/doc|General Information|admin-guide/pm/intel_pstate.html#general-information}}
:: {{The Linux Kernel/doc|Operation Modes|admin-guide/pm/intel_pstate.html#operation-modes}}
::: {{The Linux Kernel/doc|Active Mode|admin-guide/pm/intel_pstate.html#active-mode}}
<!--
:::: {{The Linux Kernel/doc|Active Mode With HWP|admin-guide/pm/intel_pstate.html#active-mode-with-hwp}}
::::: {{The Linux Kernel/doc|HWP + performance|admin-guide/pm/intel_pstate.html#hwp-performance}}
::::: {{The Linux Kernel/doc|HWP + powersave|admin-guide/pm/intel_pstate.html#hwp-powersave}}
:::: {{The Linux Kernel/doc|Active Mode Without HWP|admin-guide/pm/intel_pstate.html#active-mode-without-hwp}}
::::: {{The Linux Kernel/doc|performance|admin-guide/pm/intel_pstate.html#performance}}
::::: {{The Linux Kernel/doc|powersave|admin-guide/pm/intel_pstate.html#powersave}}
-->
::: {{The Linux Kernel/doc|Passive Mode|admin-guide/pm/intel_pstate.html#passive-mode}}
:: {{The Linux Kernel/doc|Turbo P-states Support|admin-guide/pm/intel_pstate.html#turbo-p-states-support}}
:: {{The Linux Kernel/doc|Processor Support|admin-guide/pm/intel_pstate.html#processor-support}}
:: {{The Linux Kernel/doc|Support for Hybrid Processors|admin-guide/pm/intel_pstate.html#support-for-hybrid-processors}}
::: {{The Linux Kernel/doc|Hybrid Processors with SMT|admin-guide/pm/intel_pstate.html#hybrid-processors-with-smt}}
::: {{The Linux Kernel/doc|Capacity-Aware Scheduling Support|admin-guide/pm/intel_pstate.html#capacity-aware-scheduling-support}}
::: {{The Linux Kernel/doc|Energy-Aware Scheduling Support|admin-guide/pm/intel_pstate.html#energy-aware-scheduling-support}}
:: {{The Linux Kernel/doc|User Space Interface in sysfs|admin-guide/pm/intel_pstate.html#user-space-interface-in-sysfs}}
::: {{The Linux Kernel/doc|Global Attributes|admin-guide/pm/intel_pstate.html#global-attributes}}
::: {{The Linux Kernel/doc|Interpretation of Policy Attributes|admin-guide/pm/intel_pstate.html#interpretation-of-policy-attributes}}
::: {{The Linux Kernel/doc|Coordination of P-State Limits|admin-guide/pm/intel_pstate.html#coordination-of-p-state-limits}}
::: {{The Linux Kernel/doc|Energy vs Performance Hints|admin-guide/pm/intel_pstate.html#energy-vs-performance-hints}}
:: {{The Linux Kernel/doc|intel_pstate vs acpi-cpufreq|admin-guide/pm/intel_pstate.html#intel-pstate-vs-acpi-cpufreq}}
:: {{The Linux Kernel/doc|Kernel Command Line Options for intel_pstate|admin-guide/pm/intel_pstate.html#kernel-command-line-options-for-intel-pstate}}
:: {{The Linux Kernel/doc|Diagnostics and Tuning|admin-guide/pm/intel_pstate.html#diagnostics-and-tuning}}
::: {{The Linux Kernel/doc|Trace Events|admin-guide/pm/intel_pstate.html#trace-events}}
::: {{The Linux Kernel/doc|ftrace|admin-guide/pm/intel_pstate.html#ftrace}}
<!-- end of intel_pstate.html -->
📚 Further reading
: https://lwn.net/Kernel/Index/#Power_management-Frequency_scaling
: [https://wiki.archlinux.org/title/CPU_frequency_scaling CPU frequency scaling]
: {{The Linux Kernel/ltp|kernel/device-drivers|cpufreq}}
: [https://www.thinkwiki.org/wiki/How_to_use_cpufrequtils How to use cpufrequtils]
:: [https://linux.die.net/man/1/cpufreq-info cpufreq-info]
:: [https://linux.die.net/man/1/cpufreq-set cpufreq-set]
: https://github.com/intel/power-optimization-library
: https://github.com/intel/kubernetes-power-manager
=== Architectures ===
Linux CPU architectures refer to the different types of central processing units (CPUs) that are compatible with the Linux operating system.
Linux is designed to run on a wide range of CPU architectures, which allows it to be utilized on various devices, from smartphones to servers and supercomputers.
Each architecture has its own unique features, advantages, and design considerations.
Architectures are classified by family (e.g. x86, ARM), {{w|Word (computer architecture)|word}} or {{w|Integer_(computer_science)#Long_integer|long int}} size (e.g. {{The Linux Kernel/id|CONFIG_32BIT}}, {{The Linux Kernel/id|CONFIG_64BIT}}).
Some functions with different implementations for different CPU architectures:
: {{The Linux Kernel/id|do_boot_cpu}} > {{The Linux Kernel/id|start_secondary}} > {{The Linux Kernel/id|cpu_init}}
: {{The Linux Kernel/id|setup_arch}}, {{The Linux Kernel/id|start_thread}}, {{The Linux Kernel/id|get_current}}, {{Linux ident|current}}
⚲ API
: {{The Linux Kernel/id|BITS_PER_LONG}}, {{The Linux Kernel/id|__BITS_PER_LONG}},
⚙️ Arch internals
: {{The Linux Kernel/source|arch}} – architecture-specific code
:: '''x86'''
::: {{The Linux Kernel/id|CONFIG_X86}}
::: {{The Linux Kernel/source|arch/x86}} – x86 architecture support
::: {{The Linux Kernel/source|drivers/platform/x86}} – x86 platform drivers
::: https://lwn.net/Kernel/Index/#Architectures-x86
::: {{The Linux Kernel/man|1|perf-intel-pt}} – support for Intel Processor Trace within perf
:: '''ARM'''
::: {{The Linux Kernel/id|CONFIG_ARM}}
::: {{The Linux Kernel/source|arch/arm}}, {{The Linux Kernel/doc|ARM Architecture|arch/arm}}
::: https://lwn.net/Kernel/Index/#Architectures-ARM
::: {{The Linux Kernel/source|arch/arm64}}, {{The Linux Kernel/doc|ARM64 Architecture|arm64}}
: [https://0xax.gitbooks.io/linux-insides/content/Initialization/linux-initialization-5.html architecture-specific initialization]
📖 References
: {{The Linux Kernel/doc|CPU Architectures|arch}}
:: {{The Linux Kernel/doc|x86-specific|arch/x86}}
::: {{The Linux Kernel/doc|x86_64 Support|arch/x86/x86_64}}
{{BookCat}}
59ymzx02d6nk78tnw4n726pyd7p0tz5
Cookbook:Nshima
102
483127
4640268
4634382
2026-06-14T02:12:00Z
~2026-34882-63
3606186
Fixed categories
4640268
wikitext
text/x-wiki
{{Recipe summary
| Category = Zambian recipes
| Servings = 4
| Medium = 2
|Cooking time = 20 minutes
|Cuisine = Zambian
}}{{Incomplete recipe|reason=missing template, style/tone}}
[[File:Nshima and Fish traditionally prepared.jpg|thumb|Nshima_and_Fish_traditionally_prepared]]
'''Nshima''' is a staple maize dish meal wisely consumed in Zambia and neighboring regions. Nshima is widely eaten in much of Sub-Saharan Africa actually, where it is known by different names in different countries e.g Ugali (Uganda), Sadza (Zimbabwe), Tuwo (Nigeria), Pap (South Africa) etc.
== Ingredients ==
* 3 cups of Mealie Meal/ White [[Cookbook:Cornmeal|Cornmeal]]
* 1 Litre Boiling water
* 1 1/2 cups Cold Water
== Techniques ==
# Sauce pan
# Cooking stick
# Cornmeal
# [[Cookbook:Water|Water]]
== Procedure ==
# Boil 1 Litre of water in advance, in a Kettle or Sauce pan.
# Once the water boils, combine 1 cup of Cornmeal or Meal as we call it, with 1 1/2 cups of cold water in a sauce pan, to make a smooth paste. A flat cooking stick is ideal for this.
# Transfer the Cornmeal paste to the stove (set at medium high heat), and then slowly pour about 700ml of boiling water into the saucepan, stirring continuously, making sure the mixture is smooth and well combined.
# This should lead to a smooth porridge, almost creamy. Allow this to boil for at least 10 minutes, covered.
# Remove the cover after 10 minutes and begin to add the remaining Cornmeal to the porridge, a little at a time, making sure it is well combined, before adding some more.
# The porridge should stiffen up quickly with each addition of Cornmeal, and you will need to exert a bit of muscle to mix this well, smoothing out any lumps that form in the process
# Remove from the stove after the 10 minutes, and using a smooth serving spoon, scoop out the Nshima, one lump at a time and transfer into your serving dish.
== Serving ==
protein (meat, fish, poultry, or [[Cookbook:Beans porridge|beans]]) and side of green [[Cookbook:Vegetable|vegetables]]
[[Category:Recipes]]
[[Category:Zambian recipes]]
[[Category:Easy recipes]]
[[Category:Boiled recipes]]
[[Category:Vegetarian recipes]]
[[Category:Vegan recipes]]
9o5re9874lub7ecuy90zstoh8h0d5cc
FlightGear Flight Simulator/Getting Started
0
483314
4640172
4639813
2026-06-13T15:59:40Z
ShakespeareFan00
46022
4640172
wikitext
text/x-wiki
This page will introduce the process of getting started with FlightGear.
== Running FlightGear ==
=== Starting FlightGear ===
The easiest way to start FlightGear is to use the desktop icon. This starts the graphical interface FlightGear Qt launcher where you can choose aircraft, start position etc. Remember the Qt launcher only has basic options to get you started. A lot of options for graphics, scenery, weather, environment, input devices etc. are available from the menu inside the simulator.
Many users choose however to start FlightGear directly from the command line. The executable name is <code>fgfs</code> and can be run without options. If it is "not found", it is likely not in your path. The location depends on your particular system and choices you made during compile and installation. There is a list of Command Line Parameters which must be used to change many options, like the aircraft you want. The most important:
fgfs --launcher # opens the FlightGear Qt launcher
fgfs --show-aircraft # displays a list of installed aircraft
fgfs --aircraft=c172p # start FG with the aircraft "c172p" (from the list)
The Qt launcher also lets users add command line parameters for options that are normally changed from the menu inside the simulator, as well as quite advanced options that are only available from the command line.
=== Configuring rendering and UI ===
[[File:FlightGear Rendering options 2024.1.png|thumb|Rendering options]]
If your render quality or framerate is too low, click "View > Rendering Options" to adjust the graphic settings. For newer hardware, it's recommended to set "graphics quality" to high and check "use disk space for faster loading", "animated jetways" and "satellite photoscenery".
If the menu text appears too small on high DPI or large screens, you can manually change the menubar font size by editing the data file, or simply click "Debug > Cycle GUI Style".
=== Using the keyboard and/or mouse ===
Users with limited access to a joystick or other controllers sometimes use the keyboard or mouse to control their aircraft. Using the keyboard to fly can be difficult and the mouse is recommended over the keyboard for flying, yet even a cheap joystick would improve the experience so much.
To get help with keyboard commands, with FlightGear running, go to the ''Help'' menu, look under ''Basic Keys'' (for simulator related commands) and ''Common Aircraft Keys'' (for commands universal to all aircraft) and ''Aircraft Help'' (for key commands specific to your aircraft). If the main menu is hidden, press F10.
To use the mouse to fly the aircraft, press Tab (the cursor should change to a cross) and move the mouse to direct the aircraft. Press Tab again to look around (cursor should show a two sided arrow), and press Tab again to return to normal mode, used to click stuff in the cockpit. You can click "File > Input Devices > Mouse Config" to adjust the mouse sensitivity.
For most users lacking a rudder axis control, it’s difficult to manually coordinate aileron and rudder movements during a turn. To enable auto-coordination and make flight easier, you may click "Settings", then click the "Show more" button on the right of "General", and finally click "Enable auto-coordination" in the launcher.
=== First time in the cockpit ===
Finding your way around the cockpit may be challenging the first time.
You can use Ctrl+V to switch to the cockpit view. If the text on the panel are too small, you can use the ''view'' mode of the mouse (press Tab until you get a cursor shaped like a double arrow) to pan and the mouse wheel to zoom, or pan with the joystick hat and zoom with X and Shift+X.
One of the first steps that many take on entering an unfamiliar cockpit is to press Ctrl+C to highlight all the "hotspots", that is instrument controls, buttons, knobs, etc. Many aircraft also offer a specific help menu.
Some functions, such as starter or magneto, may be difficult to use or simply lack clickable "hotspots", especially in aircraft models which are in development. In most cases you can use the keyboard. The keyboard always work according to the assignments listed on the "Help > Aircraft help" or "Help > Common aircraft keys" menu, but sometimes some keys are reassigned by an aircraft or configuration. Again, remember to check all the help dialogs.
=== Starting the engine ===
You are eager to fly, but the engine is off. Well, turning on the engines is not always easy. Most aircraft have an ''autostart'' entry in their custom menu, but here is a general procedure that should work in many cases:
In general to start the engine on a piston-engine type aircraft, you need (after making sure the game is not paused p):
# Fuel: Some aircraft start the simulation with no fuel. You can add it in ''Equipment'' > ''Fuel and Payload''.
# Correct fuel mixture: This is generally ''rich'', so push the red knob all the way in, or use the key m to enrich (Shift+m leans.)
# Magnetos set on ''both'': Turn the key or press } ''three times'' to move through ''R'', ''L'', ''Both''.
# Throttle: Some engines start better with a little gas.
# Run the starter: Click the ''Start'' position of the key on the panel, or press s. Hold the starter for sufficient time, even 10 seconds.
Starting all engines in a multi-engine aircraft is similar to the single engine - except you must follow the same start sequence for each and every engine. FlightGear provides a convenient way to do this for all engines at once: Press ~ and all the procedure above will work for all the engines. Note though that the default 2D panel is connected to ''only one engine'' and the ~ trick might not work. Also, give some gas to be sure that all the engines are on.
These instructions may not work for jet aircraft, helicopters, or other types of aircraft with complex start procedures. Check the instructions in the aircraft help menu (press ?) and/or look at the aircraft's article on this wiki. In general to start the engine on a jet engine type aircraft, you need to:
# Set cutoff ''ON''
# Engage the starter
# Once the engines spools up to approximately 5% N1, set cutoff ''OFF''
# Disengage the starter once the engine has reached operational speed
== Learning to fly ==
=== FlightGear's Manual ===
FlightGear has an official manual that covers the basics of flight. As a beginner, you may want to start with "Chapter 8: A Basic Flight Simulator Tutorial."
=== Tutorials ===
Many aircraft have their own interactive tutorials. With tutorials, you can learn to operate particular aircraft but also learn to fly. You can access tutorials by going to ''Help'' > ''Tutorial''. A great place to start is the tutorial for the Cessna 172P aircraft, commonly used in real life to learn to fly fixed-winged aircraft.
If the tutorial starts without a runway and surrounded by water, your setup of FlightGear is missing the scenery for the airport at which the tutorial was supposed to run. To get scenery see the #Getting scenery section above.
== Making your first flight ==
=== Realism ===
One of the most frequent questions novice pilots ask about any flight simulator, but more so to FlightGear, is "Why is my aircraft turning left all the time?" Although it could be due to wind gusts crossing the runway, it is more likely due to the propeller torque and p-factor.
In certain other flight simulators, despite marketing slogans to the contrary, some settings are turned down to make the aircraft easier to fly. This reduces effects such as the above. The realism is always turned up in FlightGear.
Here are some of the FlightGear realism points, which may be confusing to first time pilots:
* "Left turning syndrome" for the previously mentioned reasons.
* Compass turning error: A compass, when subjected to the forces of flight, tends to turn in the opposite direction for a brief period before settling on the correct heading. This is not a malfunction (see also the Wikipedia article Aircraft compass turns).
* The Vertical Speed Indicator (VSI) is also subject to error.
* The Horizontal Situation Indicator (HSI) is driven by a gyroscope (that is why it is sometimes called a Directional Gyroscope), which is subject to ''gyro drift''. The indicator will drift from its current heading and must be periodically (every ~15 minutes) calibrated to agree with the magnetic compass heading.
* You cannot just cancel a turn or climb by centering the yoke or stick. You must turn or push the stick the other way to get to level and level flight. But even then, the plane will not maintain its altitude or heading by itself. A common mistake is trying to find a hands off yoke position. While with trimming one could leave the plane for a couple of seconds, one must use autopilot or constantly adjust the yoke.
Many forces act on an aircraft in flight as well as on the avionics and instruments used for control and navigation, and may be counter-intuitive. Pilots must learn to recognize these phenomena and compensate for their effects. ''FlightGear models instrument errors that exist in the real world''. If you don't want it, press h to enable the HUD.
=== Airports and navigation aids ===
When you first start FlightGear, whether from the command line or the graphical interface of the launchers, you may wonder how to determine what airports are available. The launcher displays a list of airports, but you will not see details such as tower or ILS frequencies. You will not find a map showing VORs and their frequencies. What can you do? See Getting aeronautical charts.
In-sim, there is a map you can use in ''Main Menu'' > ''Equipment'' > ''Map'', which will allow you to see navigation data and the position of airports and aids. For more help with navigation see Understanding navigation.
=== Flying using the autopilot ===
A generic autopilot is available from the ''Autopilot > Autopilot Settings'' menu, while many aircraft come with their own ''specific'' autopilot, frequently a model of the real life one.
For aircraft that provide their own autopilot, you should use the autopilot controls available in the virtual cockpit. This means clicking on the instrument panel in the virtual cockpit. The Autopilot menu may be grayed out and unavailable when the aircraft supplies its own autopilot in some aircraft, including the Airbuses and the C172P.
The Cessna 172 comes with a Bendix/King KAP140 Autopilot in its virtual cockpit. You can use both the autopilot device in the cockpit and the autopilot settings from the menu.
== Advanced ==
=== Flying ===
* If you continue to fly light civilian aircraft, Cessna 182S which is more complex than C172P and PA28 are good choices.
* If you are interested in flying airlines, Airbus A320 family, Boeing 777/787, MD-11 and MD-80 are suggested.
* If you are fascinated by fighter aircrafts, choose a highly rated military aircraft (such as F-16/F-15), and enable multiplayer damage or install Bombable.
* If you switch to helicopters, it is recommended to fly Eurocopter EC130 B4.
Besides common aircraft, there are also detailed space shuttles available.
=== Scenery ===
It is fascinating to explore the scenery (or just test the graphics/frame rate) with UFO. First of all, increase your graphics quality. If you don't see buildings initially, keep FG open and wait for a while for TerraSync to finish downloading and for the buildings to appear.
There are plenty of well-developed airports and scenery areas. You can also explore the scenery objects on the model map.
=== Multiplayer ===
FlightGear has some multiplayer servers that will let you fly in more lively skies, see Howto: Multiplayer. There are also OpenRadar and ATC-pie, standalone programs that will let you be an air traffic controller.
There is also a multiplayer map that lets you see who is online right now, and even what navaids are nearby.
=== Addons ===
FlightGear has a lot of third-party addons containing enhancements. For beginners, Logbook and Which Runway may be the most useful addons.<ref>https://wiki.flightgear.org/New_to_FlightGear</ref>
== References ==
{{Reflist}}
{{BookCat}}
h2ld4d5q85egrljle2ckg2tba9a1re6
Wikibooks:Reading room/Administrative Assistance/Archives/2026/May
4
483382
4640271
4639882
2026-06-14T08:10:15Z
ArchiverBot
1227662
Bot: Archiving 1 thread from [[Wikibooks:Reading room/Administrative Assistance]]
4640271
wikitext
text/x-wiki
{{talk archive}}
== Kevinsteinfeldt reported by MathXplore ==
* {{userlinks|Kevinsteinfeldt}}
Cross-wiki issues: Vandalism-only account <!-- USERREPORTED:/Kevinsteinfeldt/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 05:15, 28 April 2026 (UTC)
: Globally locked by Count Count. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 14:57, 3 May 2026 (UTC)
== Your username will be adjusted to "Mutesstud" due to technical restrictions reported by MathXplore ==
* {{userlinks|Your username will be adjusted to "Mutesstud" due to technical restrictions}}
Vandalism <!-- USERREPORTED:/Your username will be adjusted to "Mutesstud" due to technical restrictions/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 07:02, 28 April 2026 (UTC)
: Globally locked by M7. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 14:58, 3 May 2026 (UTC)
== Degroot1 reported by MathXplore ==
* {{userlinks|Degroot1}}
Spam <!-- USERREPORTED:/Degroot1/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 10:47, 28 April 2026 (UTC)
: Page was already deleted, but the account is otherwise {{stale}}. Please re-report if they continue spamming. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 14:59, 3 May 2026 (UTC)
== Jalwagamesonline reported by MathXplore ==
* {{userlinks|Jalwagamesonline}}
Spam <!-- USERREPORTED:/Jalwagamesonline/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 22:30, 28 April 2026 (UTC)
: Page was already deleted, but the account is otherwise {{stale}}. Please re-report if they continue spamming. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 15:00, 3 May 2026 (UTC)
== ~2026-26947-55 reported by MathXplore ==
* {{userlinks|~2026-26947-55}}
Vandalism <!-- USERREPORTED:/~2026-26947-55/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:24, 3 May 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 15:00, 3 May 2026 (UTC)
== Glinemovers reported by MathXplore ==
* {{userlinks|Glinemovers}}
Spam <!-- USERREPORTED:/Glinemovers/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:08, 6 May 2026 (UTC)
:{{done}} —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 12:37, 6 May 2026 (UTC)
== Deftsoft51 reported by MathXplore ==
* {{userlinks|Deftsoft51}}
Spam <!-- USERREPORTED:/Deftsoft51/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:09, 6 May 2026 (UTC)
:{{done}} —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 12:37, 6 May 2026 (UTC)
== Pizzazilla1 reported by MathXplore ==
* {{userlinks|Pizzazilla1}}
Spam <!-- USERREPORTED:/Pizzazilla1/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:20, 8 May 2026 (UTC)
:Done. //[[User:SHB2000|SHB2000]] ([[User talk:SHB2000|discuss]] • [[Special:Contributions/SHB2000|contribs]]) 00:31, 9 May 2026 (UTC)
== Omran Tokhi Nickname OT7 reported by MathXplore ==
* {{userlinks|Omran Tokhi Nickname OT7}}
Long-term abuse. Spam / spambot. [[Special:CentralAuth/OmranTokhi7]] <!-- USERREPORTED:/Omran Tokhi Nickname OT7/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 03:25, 10 May 2026 (UTC)
:{{done}}. --[[User:SHB2000|SHB2000]] ([[User talk:SHB2000|discuss]] • [[Special:Contributions/SHB2000|contribs]]) 04:29, 10 May 2026 (UTC)
== ~2026-28014-44 reported by MathXplore ==
* {{userlinks|~2026-28014-44}}
Vandalism <!-- USERREPORTED:/~2026-28014-44/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 01:02, 9 May 2026 (UTC)
: I blocked the underlying range. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 16:40, 10 May 2026 (UTC)
== Cs24jam2 reported by MathXplore ==
* {{userlinks|Cs24jam2}}
Vandalism <!-- USERREPORTED:/Cs24jam2/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 11:54, 11 May 2026 (UTC)
:{{done}} by @[[User:Codename Noreste|Codename Noreste]] —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 16:58, 11 May 2026 (UTC)
== Can't log in :( ==
Xania here. I am logged in on Wikipedia but can't log in here even though it has always been automatic when switching between the two. Wikibooks seems to want me to authenticate myself via my authenticator app which I have not done before. Allows me to also use a recovery code which I do not have. How do I log in guys? [[Special:Contributions/~2026-28255-89|~2026-28255-89]] ([[User talk:~2026-28255-89|talk]]) 18:15, 10 May 2026 (UTC)
: I believe it might be the CheckUser permission requiring 2FA (on parity with interface administrators and oversighters) as that group has restrictions. You might need to temporarily request to the [[m:Stewards' noticeboard|stewards]] to remove CU access from your account to enable 2FA; however, since this project only has 2 CUs, [[User:MarcGarver|MarcGarver]]'s CU rights would be temporarily suspended. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 18:36, 10 May 2026 (UTC)
: Thanks, I've left a notice on the Steward's board.--[[Special:Contributions/~2026-28255-89|~2026-28255-89]] ([[User talk:~2026-28255-89|talk]]) 18:59, 10 May 2026 (UTC)
::This happened before when your CU rights were removed because you hadn't enrolled in 2FA. I presume you must have enrolled to get the CU rights back. Are you really sure you've never used any authenticator here? [[User:MarcGarver|MarcGarver]] ([[User talk:MarcGarver|discuss]] • [[Special:Contributions/MarcGarver|contribs]]) 11:49, 11 May 2026 (UTC)
:::See [https://en.wikibooks.org/wiki/User_talk:MarcGarver#Check_User previous discussion] from last year [[User:MarcGarver|MarcGarver]] ([[User talk:MarcGarver|discuss]] • [[Special:Contributions/MarcGarver|contribs]]) 11:51, 11 May 2026 (UTC)
::::Thanks. Good to know. I had completely forgotten that discussion. I will have to install some old authenticators and see which works.--[[Special:Contributions/~2026-28255-89|~2026-28255-89]] ([[User talk:~2026-28255-89|talk]]) 17:09, 16 May 2026 (UTC)
: Logged in finally. Seems I had recovery codes (totally forgotten about them) saved but no authenticator so each time I log in I'll need to use the codes.--[[User:Xania|Xania]] [[Image:Flag_of_Estonia.svg|15px]] [[Image:Flag_of_Ukraine.svg|15px]] [[User talk:Xania|<sup>talk</sup>]] 17:54, 16 May 2026 (UTC)
== Mnckhagaul reported by MathXplore ==
* {{userlinks|Mnckhagaul}}
Spam <!-- USERREPORTED:/Mnckhagaul/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 08:35, 16 May 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 03:28, 17 May 2026 (UTC)
== No data in page linked to by Wikidata ==
The page, [https://en.wikibooks.org/wiki/OpenSSH/Third_Party_Utilities OpenSSH: Third Party Utilities] has no data and thus should not be linked to from [https://www.wikidata.org/wiki/Q139625509 Q139625509] How can the link be deleted? Thanks. [[User:Larsnooden|Larsnooden]] ([[User talk:Larsnooden|discuss]] • [[Special:Contributions/Larsnooden|contribs]]) 05:06, 4 May 2026 (UTC)
:Same for Q139611668 and Q139611580. All three links should be deleted / removed as the destination pages in the en.wikibook do not have any data but instead normal prose. - [[User:Larsnooden|Larsnooden]] ([[User talk:Larsnooden|discuss]] • [[Special:Contributions/Larsnooden|contribs]]) 05:15, 4 May 2026 (UTC)
:Same for Q139806271, Q139806269, Q139806266, Q139806265, Q139806264, Q139806263, Q139806262, Q139806261, Q139806260, Q139806258, Q139806256, Q139806255, Q139625509, Q139611668, and Q139611580. There seems to be some new kind of vandalism going on. Perhaps there is a better page to report it on instead of this one? • [[User:Larsnooden|Larsnooden]] ([[User talk:Larsnooden|discuss]] • [[Special:Contributions/Larsnooden|contribs]]) 17:37, 17 May 2026 (UTC)
:: @[[User:Larsnooden|Larsnooden]] Given that this situation is happening on Wikidata, there is nothing that English Wikibooks admins can do. Please report this matter to the Wikidata administrators. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 18:13, 17 May 2026 (UTC)
== Vrindavanmathuratourpackages reported by MathXplore ==
* {{userlinks|Vrindavanmathuratourpackages}}
Spam <!-- USERREPORTED:/Vrindavanmathuratourpackages/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:13, 18 May 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 15:28, 18 May 2026 (UTC)
== Shawndavidsonosp2 reported by MathXplore ==
* {{userlinks|Shawndavidsonosp2}}
Spam, [[Special:AbuseLog/312343]], [[Special:AbuseLog/312344]] <!-- USERREPORTED:/Shawndavidsonosp2/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:10, 19 May 2026 (UTC)
:This is not a spam. Its a discussion topic on Healthcare Software Development [[User:Shawndavidsonosp2|Shawndavidsonosp2]] ([[User talk:Shawndavidsonosp2|discuss]] • [[Special:Contributions/Shawndavidsonosp2|contribs]]) 13:00, 19 May 2026 (UTC)
: {{ping|MarcGarver|Xania}} (CU request) User:Shawndavidsonosp2 & User:Lunasora33 made link additions for osplabs.com ([https://en.wikibooks.org/w/index.php?title=Information_Technology_and_Ethics/IT_and_Healthcare&diff=prev&oldid=4636437], [https://spamcheck.toolforge.org/by-domain?q=osplabs.com])
: {{ping|MarcGarver|SHB2000}} [[Special:CentralAuth/Rachvictor05]] & [[Special:CentralAuth/Emma_Joseph_Swift]] (Locked) also made link additions for osplabs.com ([https://spamcheck.toolforge.org/by-domain?q=osplabs.com]) [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:46, 19 May 2026 (UTC)
::Clearly promotional accounts, both blocked. [[User:MarcGarver|MarcGarver]] ([[User talk:MarcGarver|discuss]] • [[Special:Contributions/MarcGarver|contribs]]) 16:00, 19 May 2026 (UTC)
:::and their spam domain added to the blacklist [[User:MarcGarver|MarcGarver]] ([[User talk:MarcGarver|discuss]] • [[Special:Contributions/MarcGarver|contribs]]) 16:02, 19 May 2026 (UTC)
== Banibrotechnologies reported by MathXplore ==
* {{userlinks|Banibrotechnologies}}
Spam <!-- USERREPORTED:/Banibrotechnologies/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:10, 19 May 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 16:51, 19 May 2026 (UTC)
== Texasanne12 reported by MathXplore ==
* {{userlinks|Texasanne12}}
Link spam, [[Special:AbuseLog/312336]] <!-- USERREPORTED:/Texasanne12/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:18, 19 May 2026 (UTC)
:{{done}} —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 02:14, 20 May 2026 (UTC)
== Sharmasejal reported by MathXplore ==
* {{userlinks|Sharmasejal}}
Spam, [[Special:AbuseLog/312466]] <!-- USERREPORTED:/Sharmasejal/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 11:12, 22 May 2026 (UTC)
:{{done}} —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 12:28, 22 May 2026 (UTC)
== Abbeypartyrental reported by MathXplore ==
* {{userlinks|Abbeypartyrental}}
Spam <!-- USERREPORTED:/Abbeypartyrental/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 04:26, 24 May 2026 (UTC)
:{{done}} —[[User:Atcovi|Atcovi]] [[User talk:Atcovi|(Talk]] - [[Special:Contributions/Atcovi|Contribs)]] 13:33, 26 May 2026 (UTC)
== Varundraravinds reported by MathXplore ==
* {{userlinks|Varundraravinds}}
Spam <!-- USERREPORTED:/Varundraravinds/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:10, 26 May 2026 (UTC)
:{{done}} —[[User:Atcovi|Atcovi]] [[User talk:Atcovi|(Talk]] - [[Special:Contributions/Atcovi|Contribs)]] 13:33, 26 May 2026 (UTC)
== Prabhuabd reported by MathXplore ==
* {{userlinks|Prabhuabd}}
Spam <!-- USERREPORTED:/Prabhuabd/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:12, 26 May 2026 (UTC)
:{{done}} —[[User:Atcovi|Atcovi]] [[User talk:Atcovi|(Talk]] - [[Special:Contributions/Atcovi|Contribs)]] 13:33, 26 May 2026 (UTC)
== [[User:Me Lendroz]] (CU request) ==
{{ping|MarcGarver|Xania}} (this is related to previous CU, [[Wikibooks:Reading_room/Administrative_Assistance/Archives/2024/February#Alert_about_possible_evasion_of_previous_1-week_block_at_English_Wikibooks_(CU_needed?)]], [[Wikibooks:Reading_room/Administrative_Assistance/Archives/2024/August#Another_user_editing_User:Jay_Bolero's_user_page]]) <br>
I found [[Special:Contributions/CarlessParking]] editing the user page of [[User:Me Lendroz]]. What do our CUs think about this? [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 14:00, 19 May 2026 (UTC)
:It's an obvious sock of Jay Bolero not least because the account has posted "my name is Karl Basallote" everywhere and "Basallote" matches the previous sock. I've blocked CarlessParking as this is an abusive use of multiple accounts. [[User:MarcGarver|MarcGarver]] ([[User talk:MarcGarver|discuss]] • [[Special:Contributions/MarcGarver|contribs]]) 15:57, 19 May 2026 (UTC)
:: @[[User:MarcGarver|MarcGarver]] In that case, should their edits be reverted and/or marked as unreviewed? They were now blocked indefinitely for sockpuppetry. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 14:38, 27 May 2026 (UTC)
== Manipathakblog reported by MathXplore ==
* {{userlinks|Manipathakblog}}
Promotion-only account <!-- USERREPORTED:/Manipathakblog/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 06:54, 30 May 2026 (UTC)
: Globally locked by Barras. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 12:44, 30 May 2026 (UTC)
bayjn5pkmu97a2vi2x7cruzhsuquc6c
Vehicle Identification Numbers (VIN codes)/Volkswagen/VIN Codes
0
483652
4640269
4640026
2026-06-14T07:20:48Z
JustTheFacts33
3434282
/* Position 5, Engine Type: */
4640269
wikitext
text/x-wiki
{{Vehicle Identification Numbers (VIN codes)/Warning}}{{clear}}
===Positions 1–3, World Manufacturer Identifier:===
* WVW - VW passenger car
* WVG - VW SUV & ID Buzz
* WV1 - VW Comm. Vehicles - cargo van, pickup truck (truck) (Canadian mkt. '92 Transporter Double-Cab Pickup)
* WV2 - VW Comm. Vehicles - passenger van, camper van, or minibus (M.P.V.) (Canadian mkt. '92 Transporter Window Van, '95 Transporter)
* WV3 - VW Comm. Vehicles - chassis cab or cutaway (incomplete vehicle) [Winnebago Rialta ('97-'04), Winnebago Vista ('02-'04), Itasca Sunstar ('02-'04)]
* WV4 - VW Comm. Vehicles made by Ford (T7 Transporter, 2nd gen. Amarok) - cargo van, pickup truck (truck)
* WV5 - VW Comm. Vehicles made by Ford (T7 Caravelle) - passenger van, camper van, or minibus (M.P.V.)
* 1VW - VW passenger car made in USA
* 1V1 - VW truck made in USA
* 1V2 - VW SUV made in USA
* 1WV - Winnebago M.P.V. - Class C Motorhome built on VW chassis & front cab [Winnebago Rialta ('95-'96)]
* 2V8 - VW M.P.V. (Routan) 2009 with side airbags made by Chrysler Canada
* 2V4 - VW M.P.V. (Routan) 2010-2011 made by Chrysler Canada
* 2C4 - Chrysler Group Canada (all brands produced) M.P.V. - used for 2012-2014 Routan
* 3VW - VW passenger car made in Mexico
* 3VV - VW SUV made in Mexico
* 8AW - VW passenger car made in Argentina
* 9BW - VW passenger car made in Brazil
M.P.V.=Multipurpose Passenger Vehicle
===Position 5, Engine Type: ===
{| class="wikitable"
|+Position 5
|-
! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications
|-
| A || 2.0L || Flat-4 || Gas || OHV || Air-cooled. Bosch L-Jetronic MPI. VW Type 4 air-cooled flat-4 engine. VW Vanagon ('81-Mid '83)
|-
| A || 1.8L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 20 valve || MPI. Audi EA827/EA113 engine. 150 hp. VW Passat ('98-'00)
|-
| A || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA113 engine. FSI. Timing belt. VW Eos ('07-'08)
|-
| A || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine. TSI. Timing chain. VW Eos ('09-'10)
|-
| A || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 16 valve || Common-Rail Direct injection. SCR. VW EA288 engine.<br> VW Golf TDI ('15), Golf SportWagen TDI ('15), Jetta sedan Mk6 TDI ('15)
|-
| B || 1.9L || Flat-4 || Gas || OHV || Water-cooled. Digijet (Digital-Jetronic) MPI. VW Wasserboxer engine. VW Vanagon (Mid '83-'85)
|-
| B || 2.1L || Flat-4 || Gas || OHV || Water-cooled. VW-Bosch Digifant-controlled MPI. VW Wasserboxer engine. VW Vanagon ('86-'91)
|-
| B || 2.0L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. VW Passat ('90-'93)
|-
| B || 2.8L || 15° VR6 || Gas || SOHC,<br /> 24 valve || MPI. VW VR6 engine.<br> VW Eurovan ('01-'03), Winnebago Rialta ('01-'04), Winnebago Vista ('02-'04), Itasca Sunstar ('02-'04)
|-
| B || 3.2L || 15° VR6 || Gas || DOHC,<br /> 24 valve || MPI. VW EA390 engine. <br> VW Eos ('07-'08)
|-
| B || 4.2L || 90° V8 || Gas || DOHC,<br /> 32 valve || Direct injection. Audi EA824 engine. 4163cc.<br> VW Touareg V8 ('07-'08)
|-
| C || 2.0L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. VW Passat ('91-'93)
|-
| C || 2.5L || I5 || Gas || SOHC,<br /> 10 valve || MPI. VW Eurovan (US: '93, Canada: '92-'93), Transporter (Canada: '92)
|-
| C || 2.0L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. VW Passat ('95-'96)
|-
| C || 1.8L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 20 valve || MPI. Audi EA827/EA113 engine. 150 hp. VW Passat (B5) ('01 - 1st 1/2)
|-
| C || 3.2L || 15° VR6 || Gas || DOHC,<br /> 24 valve || MPI. VW EA390 engine. 220hp.<br> VW Touareg V6 ('04) (when C follows B or Z in the 4th pos. of VIN)
|-
| C || 4.2L || 90° V8 || Gas || DOHC,<br /> 40 valve || MPI. Audi EA824 engine. 4172cc.<br> VW Touareg V8 (Early prod. '04) (when C follows C in the 4th pos. of VIN)
|-
| C || 3.2L || 15° VR6 || Gas || DOHC,<br /> 24 valve || MPI. VW EA390 engine. 250 hp.<br> VW R32 ('08)
|-
| D || 2.5L || I5 || Gas || SOHC,<br /> 10 valve || MPI. VW Eurovan (US: '93, Canada: '93-'94)
|-
| D || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine.<br> VW Corrado ('92-'93), Passat GLX VR6 ('93), GTI VR6 (Gen 3), Jetta GLX VR6 (Gen 3) ('95-'99)
|-
| D || 2.8L || 90° V6 || Gas || DOHC,<br /> 30 valve || MPI. Audi EA835 engine - Gen 2. Iron Block.<br> VW Passat ('98-'00)
|-
| D || 1.8L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 20 valve || MPI. Audi EA827/EA113 engine. 170 hp. VW Passat (B5.5) (Mid '01-'05)
|-
| E || 2.0L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. VW Golf GTI 16V ('90-'92), Jetta GLI 16V ('90-'92)
|-
| E || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine.<br> VW Corrado ('92-'93), Passat GLX VR6 ('93, '95-'97), GTI VR6 (Gen 3) ('95), Jetta GLX VR6 (Gen 3) ('95)
|-
| E || 2.5L || I5 || Gas || SOHC,<br /> 10 valve || MPI. VW Eurovan (US: '95, Canada: '94-'96), Winnebago Rialta ('95-'96)
|-
| E || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. VW EA188 engine. VW Passat TDI ('04-'05)
|-
| E || 3.6L || 10.6° VR6 || Gas || DOHC,<br /> 24 valve || Direct injection. VW EA390 engine.<br> VW Touareg ('07-'09)
|-
| F || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine. VW Passat GLX VR6 ('93-'94), Corrado ('93-'94 & '95 in Canada)
|-
| F || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. VW EA827 engine. VW Jetta TDI ('97-'00)
|-
| F || 4.2L || 90° V8 || Gas || DOHC,<br /> 40 valve || MPI. Audi EA824 engine. 4172cc. VW Phaeton ('04-'06)
|-
| F || 3.6L || 10.6° VR6 || Gas || DOHC,<br /> 24 valve || Direct injection. VW EA390 engine.<br> VW Touareg ('10)
|-
| G || 1.6L || I4 || Diesel || SOHC,<br /> 8 valve || Water-cooled. Indirect injection. VW EA827 engine. VW Vanagon ('82-'83)
|-
| G || 2.4L || I5 || Diesel || SOHC,<br /> 10 valve || Indirect injection. VW Eurovan (Canada only: '93-'97), Transporter (Canada only: '95)
|-
| G || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. VW EA827 engine. VW Passat TDI ('96-'97)
|-
| G || 3.2L || 15° VR6 || Gas || DOHC,<br /> 24 valve || MPI. VW EA390 engine. 240 hp.<br> VW R32 ('04), Touareg ('05-'06)
|-
| H || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine. VW Eurovan ('97, '99-'00), Winnebago Rialta ('97-'00)
|-
| H || 2.8L || 90° V6 || Gas || DOHC,<br /> 30 valve || MPI. Audi EA835 engine - Gen 2. Iron Block.<br> VW Passat ('00-'04, '05: Early prod.)
|-
| H || 6.0L || 72° W12 || Gas || DOHC,<br /> 48 valve || MPI. VW W12 engine. 414 hp. VW Phaeton ('04-'05)
|-
| H || 4.9L || 90° V10 Twin Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 20 valve || Direct injection. VW V10 TDI engine. <br> VW Touareg V10 TDI ('04) (when H follows G or H in the 4th pos. of VIN)
|-
| J || 2.0L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. VW Golf GTI 16V ('91-'92), Jetta GLI 16V ('90-'92)
|-
| J || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine. TSI. Timing chain. VW Passat (Mid '08)
|-
| K || 4.0L || 72° W8 || Gas || DOHC,<br /> 32 valve || MPI. VW W8 engine. VW Passat W8 ('02-'04)
|-
| K || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA113 engine. FSI. Timing belt. VW Passat ('06-Mid '08)
|-
| K || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine. TSI. Timing chain. VW Passat ('09-'10)
|-
| K || 6.0L || 72° W12 || Gas || DOHC,<br /> 48 valve || MPI. VW W12 engine. 444 hp. VW Phaeton ('06)
|-
| K || 3.0L || 90° V6 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 24 valve || Direct injection. Audi EA897 engine. VW Touareg ('10)
|-
| L || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 16 valve || Common-Rail Direct injection. VW EA189 engine.<br> VW Jetta sedan Mk5 [1K] TDI ('09-'10), Jetta Sportwagen ('09-'14), Jetta sedan Mk6 TDI ('11-'14)
|-
| L || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine. TSI. Timing chain. VW CC ('09-'10)
|-
| M || 4.2L || 90° V8 || Gas || DOHC,<br /> 40 valve || MPI. Audi EA824 engine. 4172cc.<br> VW Touareg V8 ('04-'06)
|-
| M || 3.0L || 90° V6 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 24 valve || Direct injection. Audi EA897 engine. VW Touareg ('09)
|-
| M || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 16 valve || Common-Rail Direct injection. VW EA189 engine.<br> VW Golf TDI ('10-'14)
|-
| P || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. VW EA827 engine. VW Jetta sedan TDI ('01-'03), Jetta wagon ('02-'03)
|-
| R || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. VW EA827 engine. VW Jetta sedan Mk4 [9M] TDI ('04-'05), Jetta wagon ('04-'05 & '06 in Canada)
|-
| R || 4.2L || 90° V8 || Gas || DOHC,<br /> 32 valve || Direct injection. Audi EA824 engine. 4163cc.<br> VW Touareg V8 ('09)
|-
| S || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine. VW Jetta GLX VR6 ('94)
|-
| T || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. VW EA827 engine. VW Jetta Mk5 [1K] TDI (Mid '05-'06)
|-
| T || 4.9L || 90° V10 Twin Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 20 valve || Direct injection. VW V10 TDI engine. <br> VW Touareg V10 TDI ('06-'08)
|-
| U || 2.8L || 90° V6 || Gas || DOHC,<br /> 30 valve || MPI. Audi EA835 engine - Gen 2. Iron Block.<br> VW Passat ('05)
|-
| U || 3.6L || 10.6° VR6 || Gas || DOHC,<br /> 24 valve || Direct injection. VW EA390 engine.<br> VW Passat ('06-'08), VW CC ('09-)
|-
| Z || 4.9L || 90° V10 Twin Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 20 valve || Direct injection. VW V10 TDI engine. <br> VW Touareg V10 TDI ('04) (when Z follows P in the 4th pos. of VIN)
|}
SCR=Selective Catalytic Reduction
===Position 6, Restraint Systems:===
*0 = Active (Manual) 3-point Seat Belts only
*1 = VW-RA (VW Restraint Automatic): Door-mounted front shoulder belts and front knee bolsters
*2 = VW-RA (VW Restraint Automatic): Door-mounted front shoulder belts, Manual front lap belts, and front knee bolsters
*4 = VW-ELRA (VW Electromechanical Restraint Automatic): Motorized front shoulder belts, Manual front lap belts
*5 = Driver-side Airbag, Driver and Passenger Active (Manual) 3-point Seat Belts
*8 = Driver and Passenger Front Airbags
*6 = Active (Manual) belts plus Driver and Passenger Front Airbags & Front Side Airbags & Side Curtain Airbags
*9 = Active (Manual) belts plus Driver and Passenger Front Dual-stage Airbags & Front Side Airbags & Side Curtain Airbags
*3 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front Side Airbags
*0 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front Side Airbags & Side Curtain Airbags (Phaeton)
*7 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front Side Airbags & Side Curtain Airbags (Touareg)
*8 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front and Rear Side Airbags & Side Curtain Airbags (Jetta)
*9 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front and Rear Side Airbags & Side Curtain Airbags (Except Jetta)
===Position 7-8, Model Line:===
1981-2009:
*30 = Fox ('87-'93)
*15 = Rabbit Convertible ('81-'84), Cabriolet ('85-'93)
*16 = Jetta ('81-'88)
*17 = Rabbit ('81-'84), Rabbit Truck ('81-'83), Golf (US built: '85-'89)
*1G = Golf (Mexican built: '89-'92), Jetta ('89-'92)
*1H = Golf/GTI ('93-'99 - Mark III), Jetta ('93-'99 - Mark III)
*1E = Cabrio ('95-'99)
*1V = Cabrio ('00-'02)
*1J = Golf/GTI ('99-'06 - Mark IV), R32 ('04), City Golf (Canada only: '07-'09), Jetta wagon ('01-'05 & '06 in Canada - Mark IV)
*9M = Jetta sedan ('99-'05 - Mark IV), City Jetta (Canada only: '07-'09)
*1K = Rabbit/GTI ('06-'09 - Mark V), R32 ('08), Jetta sedan ('05-'09 - Mark V), Jetta Sportwagen ('09 - Mark V)
*32 = Dasher hatchback ('81), Quantum hatchback ('82-'83)/sedan ('82-'88)
*33 = Dasher wagon ('81), Quantum wagon ('82-'88)
*31 = Passat ('90-'94)
*3A = Passat ('95-'97)
*3B = Passat ('98-'05)
*3C = Passat ('06-'09), CC ('09)
*3D = Phaeton ('04-'06)
*53 = Scirocco ('81-'88 & '89 in Canada)
*50 = Corrado ('90-'94 & '95 in Canada)
*1C = New Beetle coupe ('98-'09)
*1Y = New Beetle convertible ('03-'09)
*1F = Eos ('07-'09)
*25 - Vanagon ('81-'91)
*70 = Eurovan ('93-'03 & '92 in Canada), Eurovan-based Winnebago Rialta, Winnebago Vista, Itasca Sunstar Class C motorhomes
*5N = Tiguan ('09)
*7L = Touareg ('04-'09)
2010-:
*BE (Type 1J) = City Golf (Canada only: '10)
*AJ (Type 5K) = Golf/GTI ('10-'14 - Mark 6), Golf R ('12-'13)
*AU (Type AU) = Golf/GTI ('15-'21 - Mark 7), Golf R ('15-'19), Golf Sportwagen ('15-'19 - Mark 7), Golf Alltrack ('17-'19), e-Golf ('15-'19 & '20 in Canada)
*CD (Type CD) = Golf GTI/Golf R ('22-24 - Mark 8)
*CD (Type DA) = Golf GTI/Golf R ('25-present - Mark 8.5)
*AJ (Type 1K) = Jetta sedan ('10 - Mark V), Jetta Sportwagen ('10-'14 - Mark V)
*AJ (Type 16) = Jetta sedan ('11-'18 - Mark VI)
*BU = Jetta sedan ('19-present - Mark VII)
*AN (Type 3C) = Passat ('10)
*A3 (NMS) = Passat ('12-'22)
*AN (Type 3C) = CC ('10-'17)
*AN (Type 3H) = Arteon ('19-'23)
*AG (Type 1C) = New Beetle coupe ('10)
*AL (Type 1Y) = New Beetle convertible ('10)
*AT (Type 5C) = Beetle ('12-'19)
*AH (Type 1F) = Eos ('10-'16)
*EB = ID Buzz ('25)
*B2 (Type CL) = Taos ('22-)
*AX (Type 5N) = Tiguan ('10-'17), Tiguan Limited ('17-'18)
*AX (Type BW) = Tiguan ('18-'24)
*RM = Tiguan ('25-)
*A9 (Type 7L) = Touareg ('10)
*BP (Type 7P) = Touareg ('11-'17)
*CA = Atlas ('18-'26), Atlas Cross Sport ('20-'26)
*E2 = ID.4 (German built: '21-'22)
*E8 = ID.4 (US built: '23-'26)
===Position 9, Check Digit===
[[Vehicle Identification Numbers (VIN codes)/Check digit |Check digit]]
===Position 10, Model Year: ===
[[Vehicle Identification Numbers (VIN codes)/Model year|Model year]]
===Position 11, Production Plant:===
* B: Brussels, Belgium
* C: Chattanooga, TN, USA
* D: Bratislava, Slovakia
* E: Emden, Germany
* G: Graz, Austria (Steyr-Daimler-Puch plant: Vanagon Syncro 4wd [US: '86-'87, '89-'91, Canada: '86-'91])
* H: Hanover, Germany
* K: Osnabrueck, Germany (Karmann plant: Scirocco ['81-'88 & '89 in Canada], Corrado ['90-'94 & '95 in Canada], Rabbit Convertible ['81-'84], Cabriolet ['85-'93], Cabrio ['95-'96])
* K: Osnabrueck, Germany (ex-Karmann VW Osnabrueck GmbH plant: Tiguan ['17], Tiguan Limited ['17-'18])
* M: Puebla, Mexico
* P: Zwickau, Germany [For WMI: WVW or WVG]
* P: Sao Bernardo do Campo, Sao Paulo state, Brazil (Anchieta plant) [For WMI: 9BW]
* R: Windsor Assembly - Windsor, ON, Canada (Chrysler plant)
* V: Westmoreland Assembly - East Huntingdon, Westmoreland County, PA, USA [For WMI: 1VW or 1V1]
* V: Portugal [For WMI: WVW]
* W: Wolfsburg, Germany
* 4: Sao Jose dos Pinhais, Parana state, Brazil (Curitiba plant)
* 8: Dresden, Germany
'''Positions 12–17, Serial Number'''
'''Select VW equipment codes:'''
*X9A - Equipment Options for USA market
*X9B - Equipment Options for Canadian market
{{BookCat}}
i5a70leor276suufhp39bopc4pmpd53
4640270
4640269
2026-06-14T07:47:45Z
JustTheFacts33
3434282
/* Position 5, Engine Type: */
4640270
wikitext
text/x-wiki
{{Vehicle Identification Numbers (VIN codes)/Warning}}{{clear}}
===Positions 1–3, World Manufacturer Identifier:===
* WVW - VW passenger car
* WVG - VW SUV & ID Buzz
* WV1 - VW Comm. Vehicles - cargo van, pickup truck (truck) (Canadian mkt. '92 Transporter Double-Cab Pickup)
* WV2 - VW Comm. Vehicles - passenger van, camper van, or minibus (M.P.V.) (Canadian mkt. '92 Transporter Window Van, '95 Transporter)
* WV3 - VW Comm. Vehicles - chassis cab or cutaway (incomplete vehicle) [Winnebago Rialta ('97-'04), Winnebago Vista ('02-'04), Itasca Sunstar ('02-'04)]
* WV4 - VW Comm. Vehicles made by Ford (T7 Transporter, 2nd gen. Amarok) - cargo van, pickup truck (truck)
* WV5 - VW Comm. Vehicles made by Ford (T7 Caravelle) - passenger van, camper van, or minibus (M.P.V.)
* 1VW - VW passenger car made in USA
* 1V1 - VW truck made in USA
* 1V2 - VW SUV made in USA
* 1WV - Winnebago M.P.V. - Class C Motorhome built on VW chassis & front cab [Winnebago Rialta ('95-'96)]
* 2V8 - VW M.P.V. (Routan) 2009 with side airbags made by Chrysler Canada
* 2V4 - VW M.P.V. (Routan) 2010-2011 made by Chrysler Canada
* 2C4 - Chrysler Group Canada (all brands produced) M.P.V. - used for 2012-2014 Routan
* 3VW - VW passenger car made in Mexico
* 3VV - VW SUV made in Mexico
* 8AW - VW passenger car made in Argentina
* 9BW - VW passenger car made in Brazil
M.P.V.=Multipurpose Passenger Vehicle
===Position 5, Engine Type: ===
{| class="wikitable"
|+Position 5
|-
! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications
|-
| A || 2.0L || Flat-4 || Gas || OHV || Air-cooled. Bosch L-Jetronic MPI. VW Type 4 air-cooled flat-4 engine. VW Vanagon ('81-Mid '83)
|-
| A || 1.8L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 20 valve || MPI. Audi EA827/EA113 engine. 150 hp. VW Passat ('98-'00)
|-
| A || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA113 engine. FSI. Timing belt. VW Eos ('07-'08)
|-
| A || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine. TSI. Timing chain. VW Eos ('09-'10)
|-
| A || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 16 valve || Common-Rail Direct injection. SCR. VW EA288 engine.<br> VW Golf TDI ('15), Golf SportWagen TDI ('15), Jetta sedan Mk6 TDI ('15)
|-
| B || 1.9L || Flat-4 || Gas || OHV || Water-cooled. Digijet (Digital-Jetronic) MPI. VW Wasserboxer engine. VW Vanagon (Mid '83-'85)
|-
| B || 2.1L || Flat-4 || Gas || OHV || Water-cooled. VW-Bosch Digifant-controlled MPI. VW Wasserboxer engine. VW Vanagon ('86-'91)
|-
| B || 2.0L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. VW Passat ('90-'93)
|-
| B || 2.8L || 15° VR6 || Gas || SOHC,<br /> 24 valve || MPI. VW VR6 engine.<br> VW Eurovan ('01-'03), Winnebago Rialta ('01-'04), Winnebago Vista ('02-'04), Itasca Sunstar ('02-'04)
|-
| B || 3.2L || 15° VR6 || Gas || DOHC,<br /> 24 valve || MPI. VW EA390 engine. <br> VW Eos ('07-'08)
|-
| B || 4.2L || 90° V8 || Gas || DOHC,<br /> 32 valve || Direct injection. Audi EA824 engine. 4163cc.<br> VW Touareg V8 ('07-'08)
|-
| C || 2.0L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. VW Passat ('91-'93)
|-
| C || 2.5L || I5 || Gas || SOHC,<br /> 10 valve || MPI. VW Eurovan (US: '93, Canada: '92-'93), Transporter (Canada: '92)
|-
| C || 2.0L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. VW Passat ('95-'96)
|-
| C || 1.8L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 20 valve || MPI. Audi EA827/EA113 engine. 150 hp. VW Passat (B5) ('01 - 1st 1/2)
|-
| C || 3.2L || 15° VR6 || Gas || DOHC,<br /> 24 valve || MPI. VW EA390 engine. 220hp.<br> VW Touareg V6 ('04) (when C follows B or Z in the 4th pos. of VIN)
|-
| C || 4.2L || 90° V8 || Gas || DOHC,<br /> 40 valve || MPI. Audi EA824 engine. 4172cc.<br> VW Touareg V8 (Early prod. '04) (when C follows C in the 4th pos. of VIN)
|-
| C || 3.2L || 15° VR6 || Gas || DOHC,<br /> 24 valve || MPI. VW EA390 engine. 250 hp.<br> VW R32 ('08)
|-
| D || 2.5L || I5 || Gas || SOHC,<br /> 10 valve || MPI. VW Eurovan (US: '93, Canada: '93-'94)
|-
| D || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine.<br> VW Corrado ('92-'93), Passat GLX VR6 ('93), GTI VR6 (Gen 3), Jetta GLX VR6 (Gen 3) ('95-'99)
|-
| D || 2.8L || 90° V6 || Gas || DOHC,<br /> 30 valve || MPI. Audi EA835 engine - Gen 2. Iron Block.<br> VW Passat ('98-'00)
|-
| D || 1.8L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 20 valve || MPI. Audi EA827/EA113 engine. 170 hp. VW Passat (B5.5) (Mid '01-'05)
|-
| E || 2.0L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. VW Golf GTI 16V ('90-'92), Jetta GLI 16V ('90-'92)
|-
| E || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine.<br> VW Corrado ('92-'93), Passat GLX VR6 ('93, '95-'97), GTI VR6 (Gen 3) ('95), Jetta GLX VR6 (Gen 3) ('95)
|-
| E || 2.5L || I5 || Gas || SOHC,<br /> 10 valve || MPI. VW Eurovan (US: '95, Canada: '94-'96), Winnebago Rialta ('95-'96)
|-
| E || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. VW EA188 engine. VW Passat TDI ('04-'05)
|-
| E || 3.6L || 10.6° VR6 || Gas || DOHC,<br /> 24 valve || Direct injection. VW EA390 engine.<br> VW Touareg ('07-'09)
|-
| F || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine. VW Passat GLX VR6 ('93-'94), Corrado ('93-'94 & '95 in Canada)
|-
| F || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. VW EA827 engine. VW Jetta TDI ('97-'00)
|-
| F || 4.2L || 90° V8 || Gas || DOHC,<br /> 40 valve || MPI. Audi EA824 engine. 4172cc. VW Phaeton ('04-'06)
|-
| F || 3.6L || 10.6° VR6 || Gas || DOHC,<br /> 24 valve || Direct injection. VW EA390 engine.<br> VW Touareg ('10)
|-
| G || 1.6L || I4 || Diesel || SOHC,<br /> 8 valve || Water-cooled. Indirect injection. VW EA827 engine. VW Vanagon ('82-'83)
|-
| G || 2.4L || I5 || Diesel || SOHC,<br /> 10 valve || Indirect injection. VW Eurovan (Canada only: '93-'97), Transporter (Canada only: '95)
|-
| G || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. VW EA827 engine. VW Passat TDI ('96-'97)
|-
| G || 3.2L || 15° VR6 || Gas || DOHC,<br /> 24 valve || MPI. VW EA390 engine. 240 hp.<br> VW R32 ('04), Touareg ('05-'06)
|-
| H || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine. VW Eurovan ('97, '99-'00), Winnebago Rialta ('97-'00)
|-
| H || 2.8L || 90° V6 || Gas || DOHC,<br /> 30 valve || MPI. Audi EA835 engine - Gen 2. Iron Block.<br> VW Passat ('00-'04, '05: Early prod.)
|-
| H || 6.0L || 72° W12 || Gas || DOHC,<br /> 48 valve || MPI. VW W12 engine. 414 hp. VW Phaeton ('04-'05)
|-
| H || 4.9L || 90° V10 Twin Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 20 valve || Direct injection. VW V10 TDI engine. <br> VW Touareg V10 TDI ('04) (when H follows G or H in the 4th pos. of VIN)
|-
| J || 2.0L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. VW Golf GTI 16V ('91-'92), Jetta GLI 16V ('90-'92)
|-
| J || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine. TSI. Timing chain. VW Passat (Mid '08)
|-
| K || 4.0L || 72° W8 || Gas || DOHC,<br /> 32 valve || MPI. VW W8 engine. VW Passat W8 ('02-'04)
|-
| K || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA113 engine. FSI. Timing belt. VW Passat ('06-Mid '08)
|-
| K || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine. TSI. Timing chain. VW Passat ('09-'10)
|-
| K || 6.0L || 72° W12 || Gas || DOHC,<br /> 48 valve || MPI. VW W12 engine. 444 hp. VW Phaeton ('06)
|-
| K || 3.0L || 90° V6 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 24 valve || Direct injection. Audi EA897 engine. VW Touareg ('10)
|-
| L || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 16 valve || Common-Rail Direct injection. VW EA189 engine.<br> VW Jetta sedan Mk5 [1K] TDI ('09-'10), Jetta Sportwagen ('09-'14), Jetta sedan Mk6 TDI ('11-'14)
|-
| L || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine. TSI. Timing chain. VW CC ('09-'10)
|-
| M || 4.2L || 90° V8 || Gas || DOHC,<br /> 40 valve || MPI. Audi EA824 engine. 4172cc.<br> VW Touareg V8 ('04-'06)
|-
| M || 3.0L || 90° V6 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 24 valve || Direct injection. Audi EA897 engine. VW Touareg ('09)
|-
| M || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 16 valve || Common-Rail Direct injection. VW EA189 engine.<br> VW Golf TDI ('10-'14)
|-
| P || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. VW EA827 engine. 90 hp.<br> VW Jetta sedan TDI ('01-'03), Jetta wagon ('02-'03)
|-
| R || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. Pumpe Düse (Pump Injection). VW EA827 engine. 100 hp.<br> VW Jetta sedan Mk4 [9M] TDI ('04-'05), Jetta wagon ('04-'05 & '06 in Canada)
|-
| R || 4.2L || 90° V8 || Gas || DOHC,<br /> 32 valve || Direct injection. Audi EA824 engine. 4163cc.<br> VW Touareg V8 ('09)
|-
| S || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine. VW Jetta GLX VR6 ('94)
|-
| T || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. VW EA827 engine. VW Jetta Mk5 [1K] TDI (Mid '05-'06)
|-
| T || 4.9L || 90° V10 Twin Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 20 valve || Direct injection. VW V10 TDI engine. <br> VW Touareg V10 TDI ('06-'08)
|-
| U || 2.8L || 90° V6 || Gas || DOHC,<br /> 30 valve || MPI. Audi EA835 engine - Gen 2. Iron Block.<br> VW Passat ('05)
|-
| U || 3.6L || 10.6° VR6 || Gas || DOHC,<br /> 24 valve || Direct injection. VW EA390 engine.<br> VW Passat ('06-'08), VW CC ('09-)
|-
| Z || 4.9L || 90° V10 Twin Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 20 valve || Direct injection. VW V10 TDI engine. <br> VW Touareg V10 TDI ('04) (when Z follows P in the 4th pos. of VIN)
|}
SCR=Selective Catalytic Reduction
===Position 6, Restraint Systems:===
*0 = Active (Manual) 3-point Seat Belts only
*1 = VW-RA (VW Restraint Automatic): Door-mounted front shoulder belts and front knee bolsters
*2 = VW-RA (VW Restraint Automatic): Door-mounted front shoulder belts, Manual front lap belts, and front knee bolsters
*4 = VW-ELRA (VW Electromechanical Restraint Automatic): Motorized front shoulder belts, Manual front lap belts
*5 = Driver-side Airbag, Driver and Passenger Active (Manual) 3-point Seat Belts
*8 = Driver and Passenger Front Airbags
*6 = Active (Manual) belts plus Driver and Passenger Front Airbags & Front Side Airbags & Side Curtain Airbags
*9 = Active (Manual) belts plus Driver and Passenger Front Dual-stage Airbags & Front Side Airbags & Side Curtain Airbags
*3 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front Side Airbags
*0 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front Side Airbags & Side Curtain Airbags (Phaeton)
*7 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front Side Airbags & Side Curtain Airbags (Touareg)
*8 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front and Rear Side Airbags & Side Curtain Airbags (Jetta)
*9 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front and Rear Side Airbags & Side Curtain Airbags (Except Jetta)
===Position 7-8, Model Line:===
1981-2009:
*30 = Fox ('87-'93)
*15 = Rabbit Convertible ('81-'84), Cabriolet ('85-'93)
*16 = Jetta ('81-'88)
*17 = Rabbit ('81-'84), Rabbit Truck ('81-'83), Golf (US built: '85-'89)
*1G = Golf (Mexican built: '89-'92), Jetta ('89-'92)
*1H = Golf/GTI ('93-'99 - Mark III), Jetta ('93-'99 - Mark III)
*1E = Cabrio ('95-'99)
*1V = Cabrio ('00-'02)
*1J = Golf/GTI ('99-'06 - Mark IV), R32 ('04), City Golf (Canada only: '07-'09), Jetta wagon ('01-'05 & '06 in Canada - Mark IV)
*9M = Jetta sedan ('99-'05 - Mark IV), City Jetta (Canada only: '07-'09)
*1K = Rabbit/GTI ('06-'09 - Mark V), R32 ('08), Jetta sedan ('05-'09 - Mark V), Jetta Sportwagen ('09 - Mark V)
*32 = Dasher hatchback ('81), Quantum hatchback ('82-'83)/sedan ('82-'88)
*33 = Dasher wagon ('81), Quantum wagon ('82-'88)
*31 = Passat ('90-'94)
*3A = Passat ('95-'97)
*3B = Passat ('98-'05)
*3C = Passat ('06-'09), CC ('09)
*3D = Phaeton ('04-'06)
*53 = Scirocco ('81-'88 & '89 in Canada)
*50 = Corrado ('90-'94 & '95 in Canada)
*1C = New Beetle coupe ('98-'09)
*1Y = New Beetle convertible ('03-'09)
*1F = Eos ('07-'09)
*25 - Vanagon ('81-'91)
*70 = Eurovan ('93-'03 & '92 in Canada), Eurovan-based Winnebago Rialta, Winnebago Vista, Itasca Sunstar Class C motorhomes
*5N = Tiguan ('09)
*7L = Touareg ('04-'09)
2010-:
*BE (Type 1J) = City Golf (Canada only: '10)
*AJ (Type 5K) = Golf/GTI ('10-'14 - Mark 6), Golf R ('12-'13)
*AU (Type AU) = Golf/GTI ('15-'21 - Mark 7), Golf R ('15-'19), Golf Sportwagen ('15-'19 - Mark 7), Golf Alltrack ('17-'19), e-Golf ('15-'19 & '20 in Canada)
*CD (Type CD) = Golf GTI/Golf R ('22-24 - Mark 8)
*CD (Type DA) = Golf GTI/Golf R ('25-present - Mark 8.5)
*AJ (Type 1K) = Jetta sedan ('10 - Mark V), Jetta Sportwagen ('10-'14 - Mark V)
*AJ (Type 16) = Jetta sedan ('11-'18 - Mark VI)
*BU = Jetta sedan ('19-present - Mark VII)
*AN (Type 3C) = Passat ('10)
*A3 (NMS) = Passat ('12-'22)
*AN (Type 3C) = CC ('10-'17)
*AN (Type 3H) = Arteon ('19-'23)
*AG (Type 1C) = New Beetle coupe ('10)
*AL (Type 1Y) = New Beetle convertible ('10)
*AT (Type 5C) = Beetle ('12-'19)
*AH (Type 1F) = Eos ('10-'16)
*EB = ID Buzz ('25)
*B2 (Type CL) = Taos ('22-)
*AX (Type 5N) = Tiguan ('10-'17), Tiguan Limited ('17-'18)
*AX (Type BW) = Tiguan ('18-'24)
*RM = Tiguan ('25-)
*A9 (Type 7L) = Touareg ('10)
*BP (Type 7P) = Touareg ('11-'17)
*CA = Atlas ('18-'26), Atlas Cross Sport ('20-'26)
*E2 = ID.4 (German built: '21-'22)
*E8 = ID.4 (US built: '23-'26)
===Position 9, Check Digit===
[[Vehicle Identification Numbers (VIN codes)/Check digit |Check digit]]
===Position 10, Model Year: ===
[[Vehicle Identification Numbers (VIN codes)/Model year|Model year]]
===Position 11, Production Plant:===
* B: Brussels, Belgium
* C: Chattanooga, TN, USA
* D: Bratislava, Slovakia
* E: Emden, Germany
* G: Graz, Austria (Steyr-Daimler-Puch plant: Vanagon Syncro 4wd [US: '86-'87, '89-'91, Canada: '86-'91])
* H: Hanover, Germany
* K: Osnabrueck, Germany (Karmann plant: Scirocco ['81-'88 & '89 in Canada], Corrado ['90-'94 & '95 in Canada], Rabbit Convertible ['81-'84], Cabriolet ['85-'93], Cabrio ['95-'96])
* K: Osnabrueck, Germany (ex-Karmann VW Osnabrueck GmbH plant: Tiguan ['17], Tiguan Limited ['17-'18])
* M: Puebla, Mexico
* P: Zwickau, Germany [For WMI: WVW or WVG]
* P: Sao Bernardo do Campo, Sao Paulo state, Brazil (Anchieta plant) [For WMI: 9BW]
* R: Windsor Assembly - Windsor, ON, Canada (Chrysler plant)
* V: Westmoreland Assembly - East Huntingdon, Westmoreland County, PA, USA [For WMI: 1VW or 1V1]
* V: Portugal [For WMI: WVW]
* W: Wolfsburg, Germany
* 4: Sao Jose dos Pinhais, Parana state, Brazil (Curitiba plant)
* 8: Dresden, Germany
'''Positions 12–17, Serial Number'''
'''Select VW equipment codes:'''
*X9A - Equipment Options for USA market
*X9B - Equipment Options for Canadian market
{{BookCat}}
qw1atl5y3bkzbb1p38kf96ao80hxya1
4640278
4640270
2026-06-14T09:15:21Z
JustTheFacts33
3434282
/* Position 5, Engine Type: */
4640278
wikitext
text/x-wiki
{{Vehicle Identification Numbers (VIN codes)/Warning}}{{clear}}
===Positions 1–3, World Manufacturer Identifier:===
* WVW - VW passenger car
* WVG - VW SUV & ID Buzz
* WV1 - VW Comm. Vehicles - cargo van, pickup truck (truck) (Canadian mkt. '92 Transporter Double-Cab Pickup)
* WV2 - VW Comm. Vehicles - passenger van, camper van, or minibus (M.P.V.) (Canadian mkt. '92 Transporter Window Van, '95 Transporter)
* WV3 - VW Comm. Vehicles - chassis cab or cutaway (incomplete vehicle) [Winnebago Rialta ('97-'04), Winnebago Vista ('02-'04), Itasca Sunstar ('02-'04)]
* WV4 - VW Comm. Vehicles made by Ford (T7 Transporter, 2nd gen. Amarok) - cargo van, pickup truck (truck)
* WV5 - VW Comm. Vehicles made by Ford (T7 Caravelle) - passenger van, camper van, or minibus (M.P.V.)
* 1VW - VW passenger car made in USA
* 1V1 - VW truck made in USA
* 1V2 - VW SUV made in USA
* 1WV - Winnebago M.P.V. - Class C Motorhome built on VW chassis & front cab [Winnebago Rialta ('95-'96)]
* 2V8 - VW M.P.V. (Routan) 2009 with side airbags made by Chrysler Canada
* 2V4 - VW M.P.V. (Routan) 2010-2011 made by Chrysler Canada
* 2C4 - Chrysler Group Canada (all brands produced) M.P.V. - used for 2012-2014 Routan
* 3VW - VW passenger car made in Mexico
* 3VV - VW SUV made in Mexico
* 8AW - VW passenger car made in Argentina
* 9BW - VW passenger car made in Brazil
M.P.V.=Multipurpose Passenger Vehicle
===Position 5, Engine Type: ===
{| class="wikitable"
|+Position 5
|-
! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications
|-
| A || 2.0L || Flat-4 || Gas || OHV || Air-cooled. Bosch L-Jetronic MPI. VW Type 4 air-cooled flat-4 engine. VW Vanagon ('81-Mid '83)
|-
| A || 1.8L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 20 valve || MPI. Audi EA827/EA113 engine. 150 hp. VW Passat ('98-'00)
|-
| A || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA113 engine. FSI. Timing belt. VW Eos ('07-'08)
|-
| A || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine. TSI. Timing chain. VW Eos ('09-'10)
|-
| A || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 16 valve || Common-Rail Direct injection. SCR. VW EA288 engine.<br> VW Golf TDI ('15), Golf SportWagen TDI ('15), Jetta sedan Mk6 TDI ('15), Beetle TDI ('15)
|-
| B || 1.9L || Flat-4 || Gas || OHV || Water-cooled. Digijet (Digital-Jetronic) MPI. VW Wasserboxer engine. VW Vanagon (Mid '83-'85)
|-
| B || 2.1L || Flat-4 || Gas || OHV || Water-cooled. VW-Bosch Digifant-controlled MPI. VW Wasserboxer engine. VW Vanagon ('86-'91)
|-
| B || 2.0L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. VW Passat ('90-'93)
|-
| B || 2.8L || 15° VR6 || Gas || SOHC,<br /> 24 valve || MPI. VW VR6 engine.<br> VW Eurovan ('01-'03), Winnebago Rialta ('01-'04), Winnebago Vista ('02-'04), Itasca Sunstar ('02-'04)
|-
| B || 3.2L || 15° VR6 || Gas || DOHC,<br /> 24 valve || MPI. VW EA390 engine. <br> VW Eos ('07-'08)
|-
| B || 4.2L || 90° V8 || Gas || DOHC,<br /> 32 valve || Direct injection. Audi EA824 engine. 4163cc.<br> VW Touareg V8 ('07-'08)
|-
| C || 2.0L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. VW Passat ('91-'93)
|-
| C || 2.5L || I5 || Gas || SOHC,<br /> 10 valve || MPI. VW Eurovan (US: '93, Canada: '92-'93), Transporter (Canada: '92)
|-
| C || 2.0L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. VW Passat ('95-'96)
|-
| C || 1.8L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 20 valve || MPI. Audi EA827/EA113 engine. 150 hp. VW Passat (B5) ('01 - 1st 1/2)
|-
| C || 3.2L || 15° VR6 || Gas || DOHC,<br /> 24 valve || MPI. VW EA390 engine. 220hp.<br> VW Touareg V6 ('04) (when C follows B or Z in the 4th pos. of VIN)
|-
| C || 4.2L || 90° V8 || Gas || DOHC,<br /> 40 valve || MPI. Audi EA824 engine. 4172cc.<br> VW Touareg V8 (Early prod. '04) (when C follows C in the 4th pos. of VIN)
|-
| C || 3.2L || 15° VR6 || Gas || DOHC,<br /> 24 valve || MPI. VW EA390 engine. 250 hp.<br> VW R32 ('08)
|-
| D || 2.5L || I5 || Gas || SOHC,<br /> 10 valve || MPI. VW Eurovan (US: '93, Canada: '93-'94)
|-
| D || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine.<br> VW Corrado ('92-'93), Passat GLX VR6 ('93), GTI VR6 (Gen 3), Jetta GLX VR6 (Gen 3) ('95-'99)
|-
| D || 2.8L || 90° V6 || Gas || DOHC,<br /> 30 valve || MPI. Audi EA835 engine - Gen 2. Iron Block.<br> VW Passat ('98-'00)
|-
| D || 1.8L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 20 valve || MPI. Audi EA827/EA113 engine. 170 hp. VW Passat (B5.5) (Mid '01-'05)
|-
| E || 2.0L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. VW Golf GTI 16V ('90-'92), Jetta GLI 16V ('90-'92)
|-
| E || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine.<br> VW Corrado ('92-'93), Passat GLX VR6 ('93, '95-'97), GTI VR6 (Gen 3) ('95), Jetta GLX VR6 (Gen 3) ('95)
|-
| E || 2.5L || I5 || Gas || SOHC,<br /> 10 valve || MPI. VW Eurovan (US: '95, Canada: '94-'96), Winnebago Rialta ('95-'96)
|-
| E || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. VW EA188 engine. VW Passat TDI ('04-'05)
|-
| E || 3.6L || 10.6° VR6 || Gas || DOHC,<br /> 24 valve || Direct injection. VW EA390 engine.<br> VW Touareg ('07-'09)
|-
| F || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine. VW Passat GLX VR6 ('93-'94), Corrado ('93-'94 & '95 in Canada)
|-
| F || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. VW EA827 engine. VW Golf TDI ('99-'00), Jetta TDI ('97-'00), New Beetle TDI ('98-'00)
|-
| F || 4.2L || 90° V8 || Gas || DOHC,<br /> 40 valve || MPI. Audi EA824 engine. 4172cc. VW Phaeton ('04-'06)
|-
| F || 3.6L || 10.6° VR6 || Gas || DOHC,<br /> 24 valve || Direct injection. VW EA390 engine.<br> VW Touareg ('10)
|-
| G || 1.6L || I4 || Diesel || SOHC,<br /> 8 valve || Water-cooled. Indirect injection. VW EA827 engine. VW Vanagon ('82-'83)
|-
| G || 2.4L || I5 || Diesel || SOHC,<br /> 10 valve || Indirect injection. VW Eurovan (Canada only: '93-'97), Transporter (Canada only: '95)
|-
| G || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. VW EA827 engine. VW Passat TDI ('96-'97)
|-
| G || 3.2L || 15° VR6 || Gas || DOHC,<br /> 24 valve || MPI. VW EA390 engine. 240 hp.<br> VW R32 ('04), Touareg ('05-'06)
|-
| H || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine. VW Eurovan ('97, '99-'00), Winnebago Rialta ('97-'00)
|-
| H || 2.8L || 90° V6 || Gas || DOHC,<br /> 30 valve || MPI. Audi EA835 engine - Gen 2. Iron Block.<br> VW Passat ('00-'04, '05: Early prod.)
|-
| H || 6.0L || 72° W12 || Gas || DOHC,<br /> 48 valve || MPI. VW W12 engine. 414 hp. VW Phaeton ('04-'05)
|-
| H || 4.9L || 90° V10 Twin Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 20 valve || Direct injection. VW V10 TDI engine. <br> VW Touareg V10 TDI ('04) (when H follows G or H in the 4th pos. of VIN)
|-
| J || 2.0L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. VW Golf GTI 16V ('91-'92), Jetta GLI 16V ('90-'92)
|-
| J || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine. TSI. Timing chain. VW Passat (Mid '08)
|-
| K || 4.0L || 72° W8 || Gas || DOHC,<br /> 32 valve || MPI. VW W8 engine. VW Passat W8 ('02-'04)
|-
| K || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA113 engine. FSI. Timing belt. VW Passat ('06-Mid '08)
|-
| K || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine. TSI. Timing chain. VW Passat ('09-'10)
|-
| K || 6.0L || 72° W12 || Gas || DOHC,<br /> 48 valve || MPI. VW W12 engine. 444 hp. VW Phaeton ('06)
|-
| K || 3.0L || 90° V6 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 24 valve || Direct injection. Audi EA897 engine. VW Touareg ('10)
|-
| L || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 16 valve || Common-Rail Direct injection. VW EA189 engine.<br> VW Jetta sedan Mk5 [1K] TDI ('09-'10), Jetta Sportwagen ('09-'14), Jetta sedan Mk6 TDI ('11-'14), Beetle TDI ('13-'14)
|-
| L || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine. TSI. Timing chain. VW CC ('09-'10)
|-
| M || 4.2L || 90° V8 || Gas || DOHC,<br /> 40 valve || MPI. Audi EA824 engine. 4172cc.<br> VW Touareg V8 ('04-'06)
|-
| M || 3.0L || 90° V6 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 24 valve || Direct injection. Audi EA897 engine. VW Touareg ('09)
|-
| M || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 16 valve || Common-Rail Direct injection. VW EA189 engine.<br> VW Golf TDI ('10-'14)
|-
| P || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. VW EA827 engine. 90 hp.<br> VW Golf TDI ('01-'03), Jetta sedan TDI ('01-'03), Jetta wagon TDI ('02-'03), New Beetle TDI ('01-'03)
|-
| R || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. Pumpe Düse (Pump Injection). VW EA827 engine. 100 hp.<br> VW Golf Mk4 [1J] TDI ('04-'06), Jetta sedan Mk4 [9M] TDI ('04-'05),<br> Jetta wagon Mk4 [1J] TDI ('04-'05 & '06 in Canada), New Beetle TDI ('04-'06)
|-
| R || 4.2L || 90° V8 || Gas || DOHC,<br /> 32 valve || Direct injection. Audi EA824 engine. 4163cc.<br> VW Touareg V8 ('09)
|-
| S || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine. VW Jetta GLX VR6 ('94)
|-
| T || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. VW EA827 engine. VW Jetta Mk5 [1K] TDI (Mid '05-'06)
|-
| T || 4.9L || 90° V10 Twin Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 20 valve || Direct injection. VW V10 TDI engine. <br> VW Touareg V10 TDI ('06-'08)
|-
| U || 2.8L || 90° V6 || Gas || DOHC,<br /> 30 valve || MPI. Audi EA835 engine - Gen 2. Iron Block.<br> VW Passat ('05)
|-
| U || 3.6L || 10.6° VR6 || Gas || DOHC,<br /> 24 valve || Direct injection. VW EA390 engine.<br> VW Passat ('06-'08), VW CC ('09-)
|-
| Z || 4.9L || 90° V10 Twin Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 20 valve || Direct injection. VW V10 TDI engine. <br> VW Touareg V10 TDI ('04) (when Z follows P in the 4th pos. of VIN)
|}
SCR=Selective Catalytic Reduction
===Position 6, Restraint Systems:===
*0 = Active (Manual) 3-point Seat Belts only
*1 = VW-RA (VW Restraint Automatic): Door-mounted front shoulder belts and front knee bolsters
*2 = VW-RA (VW Restraint Automatic): Door-mounted front shoulder belts, Manual front lap belts, and front knee bolsters
*4 = VW-ELRA (VW Electromechanical Restraint Automatic): Motorized front shoulder belts, Manual front lap belts
*5 = Driver-side Airbag, Driver and Passenger Active (Manual) 3-point Seat Belts
*8 = Driver and Passenger Front Airbags
*6 = Active (Manual) belts plus Driver and Passenger Front Airbags & Front Side Airbags & Side Curtain Airbags
*9 = Active (Manual) belts plus Driver and Passenger Front Dual-stage Airbags & Front Side Airbags & Side Curtain Airbags
*3 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front Side Airbags
*0 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front Side Airbags & Side Curtain Airbags (Phaeton)
*7 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front Side Airbags & Side Curtain Airbags (Touareg)
*8 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front and Rear Side Airbags & Side Curtain Airbags (Jetta)
*9 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front and Rear Side Airbags & Side Curtain Airbags (Except Jetta)
===Position 7-8, Model Line:===
1981-2009:
*30 = Fox ('87-'93)
*15 = Rabbit Convertible ('81-'84), Cabriolet ('85-'93)
*16 = Jetta ('81-'88)
*17 = Rabbit ('81-'84), Rabbit Truck ('81-'83), Golf (US built: '85-'89)
*1G = Golf (Mexican built: '89-'92), Jetta ('89-'92)
*1H = Golf/GTI ('93-'99 - Mark III), Jetta ('93-'99 - Mark III)
*1E = Cabrio ('95-'99)
*1V = Cabrio ('00-'02)
*1J = Golf/GTI ('99-'06 - Mark IV), R32 ('04), City Golf (Canada only: '07-'09), Jetta wagon ('01-'05 & '06 in Canada - Mark IV)
*9M = Jetta sedan ('99-'05 - Mark IV), City Jetta (Canada only: '07-'09)
*1K = Rabbit/GTI ('06-'09 - Mark V), R32 ('08), Jetta sedan ('05-'09 - Mark V), Jetta Sportwagen ('09 - Mark V)
*32 = Dasher hatchback ('81), Quantum hatchback ('82-'83)/sedan ('82-'88)
*33 = Dasher wagon ('81), Quantum wagon ('82-'88)
*31 = Passat ('90-'94)
*3A = Passat ('95-'97)
*3B = Passat ('98-'05)
*3C = Passat ('06-'09), CC ('09)
*3D = Phaeton ('04-'06)
*53 = Scirocco ('81-'88 & '89 in Canada)
*50 = Corrado ('90-'94 & '95 in Canada)
*1C = New Beetle coupe ('98-'09)
*1Y = New Beetle convertible ('03-'09)
*1F = Eos ('07-'09)
*25 - Vanagon ('81-'91)
*70 = Eurovan ('93-'03 & '92 in Canada), Eurovan-based Winnebago Rialta, Winnebago Vista, Itasca Sunstar Class C motorhomes
*5N = Tiguan ('09)
*7L = Touareg ('04-'09)
2010-:
*BE (Type 1J) = City Golf (Canada only: '10)
*AJ (Type 5K) = Golf/GTI ('10-'14 - Mark 6), Golf R ('12-'13)
*AU (Type AU) = Golf/GTI ('15-'21 - Mark 7), Golf R ('15-'19), Golf Sportwagen ('15-'19 - Mark 7), Golf Alltrack ('17-'19), e-Golf ('15-'19 & '20 in Canada)
*CD (Type CD) = Golf GTI/Golf R ('22-24 - Mark 8)
*CD (Type DA) = Golf GTI/Golf R ('25-present - Mark 8.5)
*AJ (Type 1K) = Jetta sedan ('10 - Mark V), Jetta Sportwagen ('10-'14 - Mark V)
*AJ (Type 16) = Jetta sedan ('11-'18 - Mark VI)
*BU = Jetta sedan ('19-present - Mark VII)
*AN (Type 3C) = Passat ('10)
*A3 (NMS) = Passat ('12-'22)
*AN (Type 3C) = CC ('10-'17)
*AN (Type 3H) = Arteon ('19-'23)
*AG (Type 1C) = New Beetle coupe ('10)
*AL (Type 1Y) = New Beetle convertible ('10)
*AT (Type 5C) = Beetle ('12-'19)
*AH (Type 1F) = Eos ('10-'16)
*EB = ID Buzz ('25)
*B2 (Type CL) = Taos ('22-)
*AX (Type 5N) = Tiguan ('10-'17), Tiguan Limited ('17-'18)
*AX (Type BW) = Tiguan ('18-'24)
*RM = Tiguan ('25-)
*A9 (Type 7L) = Touareg ('10)
*BP (Type 7P) = Touareg ('11-'17)
*CA = Atlas ('18-'26), Atlas Cross Sport ('20-'26)
*E2 = ID.4 (German built: '21-'22)
*E8 = ID.4 (US built: '23-'26)
===Position 9, Check Digit===
[[Vehicle Identification Numbers (VIN codes)/Check digit |Check digit]]
===Position 10, Model Year: ===
[[Vehicle Identification Numbers (VIN codes)/Model year|Model year]]
===Position 11, Production Plant:===
* B: Brussels, Belgium
* C: Chattanooga, TN, USA
* D: Bratislava, Slovakia
* E: Emden, Germany
* G: Graz, Austria (Steyr-Daimler-Puch plant: Vanagon Syncro 4wd [US: '86-'87, '89-'91, Canada: '86-'91])
* H: Hanover, Germany
* K: Osnabrueck, Germany (Karmann plant: Scirocco ['81-'88 & '89 in Canada], Corrado ['90-'94 & '95 in Canada], Rabbit Convertible ['81-'84], Cabriolet ['85-'93], Cabrio ['95-'96])
* K: Osnabrueck, Germany (ex-Karmann VW Osnabrueck GmbH plant: Tiguan ['17], Tiguan Limited ['17-'18])
* M: Puebla, Mexico
* P: Zwickau, Germany [For WMI: WVW or WVG]
* P: Sao Bernardo do Campo, Sao Paulo state, Brazil (Anchieta plant) [For WMI: 9BW]
* R: Windsor Assembly - Windsor, ON, Canada (Chrysler plant)
* V: Westmoreland Assembly - East Huntingdon, Westmoreland County, PA, USA [For WMI: 1VW or 1V1]
* V: Portugal [For WMI: WVW]
* W: Wolfsburg, Germany
* 4: Sao Jose dos Pinhais, Parana state, Brazil (Curitiba plant)
* 8: Dresden, Germany
'''Positions 12–17, Serial Number'''
'''Select VW equipment codes:'''
*X9A - Equipment Options for USA market
*X9B - Equipment Options for Canadian market
{{BookCat}}
j296qakxjn3kpw7e8ase74126kagmm6
4640281
4640278
2026-06-14T09:27:47Z
JustTheFacts33
3434282
/* Position 5, Engine Type: */
4640281
wikitext
text/x-wiki
{{Vehicle Identification Numbers (VIN codes)/Warning}}{{clear}}
===Positions 1–3, World Manufacturer Identifier:===
* WVW - VW passenger car
* WVG - VW SUV & ID Buzz
* WV1 - VW Comm. Vehicles - cargo van, pickup truck (truck) (Canadian mkt. '92 Transporter Double-Cab Pickup)
* WV2 - VW Comm. Vehicles - passenger van, camper van, or minibus (M.P.V.) (Canadian mkt. '92 Transporter Window Van, '95 Transporter)
* WV3 - VW Comm. Vehicles - chassis cab or cutaway (incomplete vehicle) [Winnebago Rialta ('97-'04), Winnebago Vista ('02-'04), Itasca Sunstar ('02-'04)]
* WV4 - VW Comm. Vehicles made by Ford (T7 Transporter, 2nd gen. Amarok) - cargo van, pickup truck (truck)
* WV5 - VW Comm. Vehicles made by Ford (T7 Caravelle) - passenger van, camper van, or minibus (M.P.V.)
* 1VW - VW passenger car made in USA
* 1V1 - VW truck made in USA
* 1V2 - VW SUV made in USA
* 1WV - Winnebago M.P.V. - Class C Motorhome built on VW chassis & front cab [Winnebago Rialta ('95-'96)]
* 2V8 - VW M.P.V. (Routan) 2009 with side airbags made by Chrysler Canada
* 2V4 - VW M.P.V. (Routan) 2010-2011 made by Chrysler Canada
* 2C4 - Chrysler Group Canada (all brands produced) M.P.V. - used for 2012-2014 Routan
* 3VW - VW passenger car made in Mexico
* 3VV - VW SUV made in Mexico
* 8AW - VW passenger car made in Argentina
* 9BW - VW passenger car made in Brazil
M.P.V.=Multipurpose Passenger Vehicle
===Position 5, Engine Type: ===
{| class="wikitable"
|+Position 5
|-
! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications
|-
| A || 2.0L || Flat-4 || Gas || OHV || Air-cooled. Bosch L-Jetronic MPI. VW Type 4 air-cooled flat-4 engine. VW Vanagon ('81-Mid '83)
|-
| A || 1.8L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 20 valve || MPI. Audi EA827/EA113 engine. 150 hp. VW Passat ('98-'00)
|-
| A || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA113 engine. FSI. Timing belt. VW Eos ('07-'08)
|-
| A || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine. TSI. Timing chain. VW Eos ('09-'10)
|-
| A || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 16 valve || Common-Rail Direct injection. SCR. VW EA288 engine.<br> VW Golf TDI ('15), Golf SportWagen TDI ('15), Jetta sedan Mk6 TDI ('15), Beetle TDI ('15)
|-
| B || 1.9L || Flat-4 || Gas || OHV || Water-cooled. Digijet (Digital-Jetronic) MPI. VW Wasserboxer engine. VW Vanagon (Mid '83-'85)
|-
| B || 2.1L || Flat-4 || Gas || OHV || Water-cooled. VW-Bosch Digifant-controlled MPI. VW Wasserboxer engine. VW Vanagon ('86-'91)
|-
| B || 2.0L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. VW Passat ('90-'93)
|-
| B || 2.8L || 15° VR6 || Gas || SOHC,<br /> 24 valve || MPI. VW VR6 engine.<br> VW Eurovan ('01-'03), Winnebago Rialta ('01-'04), Winnebago Vista ('02-'04), Itasca Sunstar ('02-'04)
|-
| B || 3.2L || 15° VR6 || Gas || DOHC,<br /> 24 valve || MPI. VW EA390 engine. <br> VW Eos ('07-'08)
|-
| B || 4.2L || 90° V8 || Gas || DOHC,<br /> 32 valve || Direct injection. Audi EA824 engine. 4163cc.<br> VW Touareg V8 ('07-'08)
|-
| C || 2.0L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. VW Passat ('91-'93)
|-
| C || 2.5L || I5 || Gas || SOHC,<br /> 10 valve || MPI. VW Eurovan (US: '93, Canada: '92-'93), Transporter (Canada: '92)
|-
| C || 2.0L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. VW Passat ('95-'96)
|-
| C || 1.8L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 20 valve || MPI. Audi EA827/EA113 engine. 150 hp. VW Passat (B5) ('01 - 1st 1/2)
|-
| C || 3.2L || 15° VR6 || Gas || DOHC,<br /> 24 valve || MPI. VW EA390 engine. 220hp.<br> VW Touareg V6 ('04) (when C follows B or Z in the 4th pos. of VIN)
|-
| C || 4.2L || 90° V8 || Gas || DOHC,<br /> 40 valve || MPI. Audi EA824 engine. 4172cc.<br> VW Touareg V8 (Early prod. '04) (when C follows C in the 4th pos. of VIN)
|-
| C || 3.2L || 15° VR6 || Gas || DOHC,<br /> 24 valve || MPI. VW EA390 engine. 250 hp.<br> VW R32 ('08)
|-
| D || 2.5L || I5 || Gas || SOHC,<br /> 10 valve || MPI. VW Eurovan (US: '93, Canada: '93-'94)
|-
| D || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine.<br> VW Corrado ('92-'93), Passat GLX VR6 ('93), GTI VR6 (Gen 3), Jetta GLX VR6 (Gen 3) ('95-'99)
|-
| D || 2.8L || 90° V6 || Gas || DOHC,<br /> 30 valve || MPI. Audi EA835 engine - Gen 2. Iron Block.<br> VW Passat ('98-'00)
|-
| D || 1.8L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 20 valve || MPI. Audi EA827/EA113 engine. 170 hp. VW Passat (B5.5) (Mid '01-'05)
|-
| E || 2.0L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. VW Golf GTI 16V ('90-'92), Jetta GLI 16V ('90-'92)
|-
| E || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine.<br> VW Corrado ('92-'93), Passat GLX VR6 ('93, '95-'97), GTI VR6 (Gen 3) ('95), Jetta GLX VR6 (Gen 3) ('95)
|-
| E || 2.5L || I5 || Gas || SOHC,<br /> 10 valve || MPI. VW Eurovan (US: '95, Canada: '94-'96), Winnebago Rialta ('95-'96)
|-
| E || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. VW EA188 engine. VW Passat TDI ('04-'05)
|-
| E || 3.6L || 10.6° VR6 || Gas || DOHC,<br /> 24 valve || Direct injection. VW EA390 engine.<br> VW Touareg ('07-'09)
|-
| F || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine. VW Passat GLX VR6 ('93-'94), Corrado ('93-'94 & '95 in Canada)
|-
| F || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. VW EA827 engine. VW Golf TDI ('99-'00), Jetta TDI ('97-'00), New Beetle TDI ('98-'00)
|-
| F || 4.2L || 90° V8 || Gas || DOHC,<br /> 40 valve || MPI. Audi EA824 engine. 4172cc. VW Phaeton ('04-'06)
|-
| F || 3.6L || 10.6° VR6 || Gas || DOHC,<br /> 24 valve || Direct injection. VW EA390 engine.<br> VW Touareg ('10)
|-
| G || 1.6L || I4 || Diesel || SOHC,<br /> 8 valve || Water-cooled. Indirect injection. VW EA827 engine. VW Vanagon ('82-'83)
|-
| G || 2.4L || I5 || Diesel || SOHC,<br /> 10 valve || Indirect injection. VW Eurovan (Canada only: '93-'97), Transporter (Canada only: '95)
|-
| G || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. VW EA827 engine. VW Passat TDI ('96-'97)
|-
| G || 3.2L || 15° VR6 || Gas || DOHC,<br /> 24 valve || MPI. VW EA390 engine. 240 hp.<br> VW R32 ('04), Touareg ('05-'06)
|-
| H || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine. VW Eurovan ('97, '99-'00), Winnebago Rialta ('97-'00)
|-
| H || 2.8L || 90° V6 || Gas || DOHC,<br /> 30 valve || MPI. Audi EA835 engine - Gen 2. Iron Block.<br> VW Passat ('00-'04, '05: Early prod.)
|-
| H || 6.0L || 72° W12 || Gas || DOHC,<br /> 48 valve || MPI. VW W12 engine. 414 hp. VW Phaeton ('04-'05)
|-
| H || 4.9L || 90° V10 Twin Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 20 valve || Direct injection. VW V10 TDI engine. <br> VW Touareg V10 TDI ('04) (when H follows G or H in the 4th pos. of VIN)
|-
| J || 2.0L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. VW Golf GTI 16V ('91-'92), Jetta GLI 16V ('90-'92)
|-
| J || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine. TSI. Timing chain. VW Passat (Mid '08)
|-
| K || 4.0L || 72° W8 || Gas || DOHC,<br /> 32 valve || MPI. VW W8 engine. VW Passat W8 ('02-'04)
|-
| K || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA113 engine. FSI. Timing belt. VW Passat ('06-Mid '08)
|-
| K || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine. TSI. Timing chain. VW Passat ('09-'10)
|-
| K || 6.0L || 72° W12 || Gas || DOHC,<br /> 48 valve || MPI. VW W12 engine. 444 hp. VW Phaeton ('06)
|-
| K || 3.0L || 90° V6 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 24 valve || Direct injection. Audi EA897 engine. VW Touareg ('10)
|-
| L || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 16 valve || Common-Rail Direct injection. VW EA189 engine.<br> VW Jetta sedan Mk5 [1K] TDI ('09-'10), Jetta Sportwagen ('09-'14), Jetta sedan Mk6 TDI ('11-'14), Beetle TDI ('13-'14)
|-
| L || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine. TSI. Timing chain. VW CC ('09-'10)
|-
| M || 4.2L || 90° V8 || Gas || DOHC,<br /> 40 valve || MPI. Audi EA824 engine. 4172cc.<br> VW Touareg V8 ('04-'06)
|-
| M || 3.0L || 90° V6 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 24 valve || Direct injection. Audi EA897 engine. VW Touareg ('09)
|-
| M || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 16 valve || Common-Rail Direct injection. VW EA189 engine.<br> VW Golf TDI ('10-'14)
|-
| N || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 16 valve || Common-Rail Direct injection. SCR. VW EA189 engine.<br> VW Passat TDI ('12-'14)
|-
| P || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. VW EA827 engine. 90 hp.<br> VW Golf TDI ('01-'03), Jetta sedan TDI ('01-'03), Jetta wagon TDI ('02-'03), New Beetle TDI ('01-'03)
|-
| R || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. Pumpe Düse (Pump Injection). VW EA827 engine. 100 hp.<br> VW Golf Mk4 [1J] TDI ('04-'06), Jetta sedan Mk4 [9M] TDI ('04-'05),<br> Jetta wagon Mk4 [1J] TDI ('04-'05 & '06 in Canada), New Beetle TDI ('04-'06)
|-
| R || 4.2L || 90° V8 || Gas || DOHC,<br /> 32 valve || Direct injection. Audi EA824 engine. 4163cc.<br> VW Touareg V8 ('09)
|-
| S || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine. VW Jetta GLX VR6 ('94)
|-
| T || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. VW EA827 engine. VW Jetta Mk5 [1K] TDI (Mid '05-'06)
|-
| T || 4.9L || 90° V10 Twin Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 20 valve || Direct injection. VW V10 TDI engine. <br> VW Touareg V10 TDI ('06-'08)
|-
| U || 2.8L || 90° V6 || Gas || DOHC,<br /> 30 valve || MPI. Audi EA835 engine - Gen 2. Iron Block.<br> VW Passat ('05)
|-
| U || 3.6L || 10.6° VR6 || Gas || DOHC,<br /> 24 valve || Direct injection. VW EA390 engine.<br> VW Passat ('06-'08), VW CC ('09-)
|-
| V || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 16 valve || Common-Rail Direct injection. SCR. VW EA288 engine.<br> VW Passat TDI ('15)
|-
| Z || 4.9L || 90° V10 Twin Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 20 valve || Direct injection. VW V10 TDI engine. <br> VW Touareg V10 TDI ('04) (when Z follows P in the 4th pos. of VIN)
|}
SCR=Selective Catalytic Reduction
===Position 6, Restraint Systems:===
*0 = Active (Manual) 3-point Seat Belts only
*1 = VW-RA (VW Restraint Automatic): Door-mounted front shoulder belts and front knee bolsters
*2 = VW-RA (VW Restraint Automatic): Door-mounted front shoulder belts, Manual front lap belts, and front knee bolsters
*4 = VW-ELRA (VW Electromechanical Restraint Automatic): Motorized front shoulder belts, Manual front lap belts
*5 = Driver-side Airbag, Driver and Passenger Active (Manual) 3-point Seat Belts
*8 = Driver and Passenger Front Airbags
*6 = Active (Manual) belts plus Driver and Passenger Front Airbags & Front Side Airbags & Side Curtain Airbags
*9 = Active (Manual) belts plus Driver and Passenger Front Dual-stage Airbags & Front Side Airbags & Side Curtain Airbags
*3 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front Side Airbags
*0 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front Side Airbags & Side Curtain Airbags (Phaeton)
*7 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front Side Airbags & Side Curtain Airbags (Touareg)
*8 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front and Rear Side Airbags & Side Curtain Airbags (Jetta)
*9 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front and Rear Side Airbags & Side Curtain Airbags (Except Jetta)
===Position 7-8, Model Line:===
1981-2009:
*30 = Fox ('87-'93)
*15 = Rabbit Convertible ('81-'84), Cabriolet ('85-'93)
*16 = Jetta ('81-'88)
*17 = Rabbit ('81-'84), Rabbit Truck ('81-'83), Golf (US built: '85-'89)
*1G = Golf (Mexican built: '89-'92), Jetta ('89-'92)
*1H = Golf/GTI ('93-'99 - Mark III), Jetta ('93-'99 - Mark III)
*1E = Cabrio ('95-'99)
*1V = Cabrio ('00-'02)
*1J = Golf/GTI ('99-'06 - Mark IV), R32 ('04), City Golf (Canada only: '07-'09), Jetta wagon ('01-'05 & '06 in Canada - Mark IV)
*9M = Jetta sedan ('99-'05 - Mark IV), City Jetta (Canada only: '07-'09)
*1K = Rabbit/GTI ('06-'09 - Mark V), R32 ('08), Jetta sedan ('05-'09 - Mark V), Jetta Sportwagen ('09 - Mark V)
*32 = Dasher hatchback ('81), Quantum hatchback ('82-'83)/sedan ('82-'88)
*33 = Dasher wagon ('81), Quantum wagon ('82-'88)
*31 = Passat ('90-'94)
*3A = Passat ('95-'97)
*3B = Passat ('98-'05)
*3C = Passat ('06-'09), CC ('09)
*3D = Phaeton ('04-'06)
*53 = Scirocco ('81-'88 & '89 in Canada)
*50 = Corrado ('90-'94 & '95 in Canada)
*1C = New Beetle coupe ('98-'09)
*1Y = New Beetle convertible ('03-'09)
*1F = Eos ('07-'09)
*25 - Vanagon ('81-'91)
*70 = Eurovan ('93-'03 & '92 in Canada), Eurovan-based Winnebago Rialta, Winnebago Vista, Itasca Sunstar Class C motorhomes
*5N = Tiguan ('09)
*7L = Touareg ('04-'09)
2010-:
*BE (Type 1J) = City Golf (Canada only: '10)
*AJ (Type 5K) = Golf/GTI ('10-'14 - Mark 6), Golf R ('12-'13)
*AU (Type AU) = Golf/GTI ('15-'21 - Mark 7), Golf R ('15-'19), Golf Sportwagen ('15-'19 - Mark 7), Golf Alltrack ('17-'19), e-Golf ('15-'19 & '20 in Canada)
*CD (Type CD) = Golf GTI/Golf R ('22-24 - Mark 8)
*CD (Type DA) = Golf GTI/Golf R ('25-present - Mark 8.5)
*AJ (Type 1K) = Jetta sedan ('10 - Mark V), Jetta Sportwagen ('10-'14 - Mark V)
*AJ (Type 16) = Jetta sedan ('11-'18 - Mark VI)
*BU = Jetta sedan ('19-present - Mark VII)
*AN (Type 3C) = Passat ('10)
*A3 (NMS) = Passat ('12-'22)
*AN (Type 3C) = CC ('10-'17)
*AN (Type 3H) = Arteon ('19-'23)
*AG (Type 1C) = New Beetle coupe ('10)
*AL (Type 1Y) = New Beetle convertible ('10)
*AT (Type 5C) = Beetle ('12-'19)
*AH (Type 1F) = Eos ('10-'16)
*EB = ID Buzz ('25)
*B2 (Type CL) = Taos ('22-)
*AX (Type 5N) = Tiguan ('10-'17), Tiguan Limited ('17-'18)
*AX (Type BW) = Tiguan ('18-'24)
*RM = Tiguan ('25-)
*A9 (Type 7L) = Touareg ('10)
*BP (Type 7P) = Touareg ('11-'17)
*CA = Atlas ('18-'26), Atlas Cross Sport ('20-'26)
*E2 = ID.4 (German built: '21-'22)
*E8 = ID.4 (US built: '23-'26)
===Position 9, Check Digit===
[[Vehicle Identification Numbers (VIN codes)/Check digit |Check digit]]
===Position 10, Model Year: ===
[[Vehicle Identification Numbers (VIN codes)/Model year|Model year]]
===Position 11, Production Plant:===
* B: Brussels, Belgium
* C: Chattanooga, TN, USA
* D: Bratislava, Slovakia
* E: Emden, Germany
* G: Graz, Austria (Steyr-Daimler-Puch plant: Vanagon Syncro 4wd [US: '86-'87, '89-'91, Canada: '86-'91])
* H: Hanover, Germany
* K: Osnabrueck, Germany (Karmann plant: Scirocco ['81-'88 & '89 in Canada], Corrado ['90-'94 & '95 in Canada], Rabbit Convertible ['81-'84], Cabriolet ['85-'93], Cabrio ['95-'96])
* K: Osnabrueck, Germany (ex-Karmann VW Osnabrueck GmbH plant: Tiguan ['17], Tiguan Limited ['17-'18])
* M: Puebla, Mexico
* P: Zwickau, Germany [For WMI: WVW or WVG]
* P: Sao Bernardo do Campo, Sao Paulo state, Brazil (Anchieta plant) [For WMI: 9BW]
* R: Windsor Assembly - Windsor, ON, Canada (Chrysler plant)
* V: Westmoreland Assembly - East Huntingdon, Westmoreland County, PA, USA [For WMI: 1VW or 1V1]
* V: Portugal [For WMI: WVW]
* W: Wolfsburg, Germany
* 4: Sao Jose dos Pinhais, Parana state, Brazil (Curitiba plant)
* 8: Dresden, Germany
'''Positions 12–17, Serial Number'''
'''Select VW equipment codes:'''
*X9A - Equipment Options for USA market
*X9B - Equipment Options for Canadian market
{{BookCat}}
2lz1q2xck49b5a9xoqeet0mp4cxydsw
Cookbook:Asaro
102
483816
4640265
4639596
2026-06-14T01:59:17Z
~2026-34882-63
3606186
The procedure formatting was fine. I fixed the headers so they'd match the template
4640265
wikitext
text/x-wiki
{{Incomplete recipe|reason=missing/incorrect categories,}}
{{recipe}}
{{Recipe summary
| Cuisine = Nigerian cuisine
| Origin = Nigerian origin
| Yield = 4 plates
| Servings = 3-4 servings
| Time = 1 hour
| Difficulty = 3
| Image = [[File:Asaro ( Yam Porridge).jpg|300px]]
| Note = * Do not over-stir during cooking, as this may cause all the yam pieces to break apart.
* The dish should be thick and creamy but still contain visible yam chunks.
* Fresh stock can be used to enhance flavor.
}}
== Introduction ==
'''Asaro''', also known as Yam Porridge is a traditional Nigerian dish made by cooking yam in a richly seasoned sauce of tomatoes, peppers, onions, and oil. It is particularly popular among the Yoruba people of southwestern Nigeria but is enjoyed throughout the country.<ref>{{Cite web |date=2022-01-25 |title=Asaro: How to prepare the Yoruba thick and spicy yam porridge |url=https://www.pulse.ng/story/asaro-how-to-prepare-the-yoruba-thick-and-spicy-yam-porridge-2024073123565836660 |access-date=2026-06-06 |website=Pulse Nigeria |language=en}}</ref><ref>{{Cite web |last=Ajoke |date=2020-03-26 |title=Yam porridge (Asaro) |url=https://www.myactivekitchen.com/asaro-elepo-rederede-yam-porridge/ |access-date=2026-06-06 |website=My Active Kitchen |language=en-GB}}</ref><ref>{{Cite web |last=Osinkolu |first=Lola |date=2022-06-17 |title=Yam pottage/Yam Porridge (Asaro recipe) |url=https://cheflolaskitchen.com/yam-porridge-pottage/ |access-date=2026-06-06 |website=Chef Lola's Kitchen |language=en-US}}</ref>
The dish is known for its soft texture and rich flavor. During cooking, part of the yam breaks down into the sauce, creating a thick and hearty porridge. Asaro may be prepared with fish, meat, vegetables, or seafood.<ref>{{Cite web |last=Nigeria |first=Guardian |date=2017-09-15 |title=How To Make Asaro (Yam Porridge) |url=https://guardian.ng/life/food/how-to-make-asaro-yam-porridge/ |access-date=2026-06-06 |website=The Guardian Nigeria News - Nigeria and World News |language=en-GB}}</ref><ref>{{Cite web |last=Nigeria |first=Guardian |date=2022-12-19 |title=Easy Homemade Asaro Recipe |url=https://guardian.ng/life/easy-homemade-asaro-recipe/ |access-date=2026-06-06 |website=The Guardian Nigeria News - Nigeria and World News |language=en-GB}}</ref><ref>{{Cite web |title=How to Make Delicious Nigerian Yam Porridge (Asaro) |url=https://kashgain.net/blog/how-to-make-yam-porridge-in-nigeria/ |access-date=2026-06-06 |website=kashgain.net |language=en}}</ref>
== Ingredients ==
* 1 medium [[Cookbook:Yam|yam]] (about 1 kg), peeled and cubed
* 3 medium tomatoes
* 2 red bell [[Cookbook:Pepper|pepper]]<nowiki/>s
* 2 scotch bonnet peppers
* 1 medium onion
* 1/2 cup [[Cookbook:Palm Oil|palm oil]] or [[Cookbook:Vegetable Oil|vegetable oil]]
* 200 g [[Cookbook:Fish|fish]], [[Cookbook:Meat|meat]], or smoked fish (optional)
* 2–3 seasoning cubes
* Salt to taste
* 4 cups water or stock
* Leafy vegetables such as [[Cookbook:Spinach|spinach]] or [[Using Ubuntu Linux/Ubuntu Variations|ugu]] (optional)
== Equipment ==
* Cooking pot
* [[Cookbook:Knife|Knife]]
* [[Cookbook:Chopping board|Chopping board]]
* [[Cookbook:Blender|Blender]] or [[Cookbook:Food Processor|food processor]]
* Mixing bowls
* Measuring cups and spoons
* Wooden spoon
* [[Cookbook:Colander|Colander]] or [[Cookbook:Sieve|sieve]]
* Stove or other heat source
== Preparation ==
1. Peel the yam and cut it into medium-sized cubes.
2. Wash the tomatoes, peppers, and onion.
3. Blend the tomatoes, peppers, and onion into a smooth mixture.
4. Prepare the fish, meat, or other protein if using.
5. Heat the oil in a pot and add the blended pepper mixture.
6. Cook for about 10 minutes, stirring occasionally.
7. Add seasoning cubes, salt, and any protein being used.
8. Pour in the water or stock and bring to a boil.
9. Add the yam cubes and stir gently.
10. Cover and cook until the yam becomes soft.
11. Stir occasionally; some of the yam will break down and thicken the porridge.
12. Add vegetables if desired and cook for an additional 3–5 minutes.
13. Adjust seasoning and remove from heat.
== Notes ==
Asaro is served hot and may be enjoyed on its own or with:
* Smoked fish
* Fresh fish
* Beef
* Chicken
* Vegetables
== Variations ==
* Palm oil may be substituted with vegetable oil.
* Seafood such as shrimp or prawns can be added.
* Some versions include leafy vegetables for additional nutrition.
* Extra pepper may be added for a spicier dish.
== References ==
{{reflist}}
[[Category:Nigerian recipes]]
[[Category:African recipes]]
[[Category:Recipes]]
[[Category:Yoruba recipes]]
[[Category:Recipes by difficulty]]
[[Category:Medium Difficulty recipes]]
[[Category:Recipes with images]]
b891179zg64vva6rbb8djc58ldw2w5z
4640266
4640265
2026-06-14T02:07:09Z
~2026-34882-63
3606186
All of the issues have been resolved. This recipe is now complete.
4640266
wikitext
text/x-wiki
{{recipe}}
{{Recipe summary
| Cuisine = Nigerian cuisine
| Origin = Nigerian origin
| Yield = 4 plates
| Servings = 3-4 servings
| Time = 1 hour
| Difficulty = 3
| Image = [[File:Asaro ( Yam Porridge).jpg|300px]]
| Note = * Do not over-stir during cooking, as this may cause all the yam pieces to break apart.
* The dish should be thick and creamy but still contain visible yam chunks.
* Fresh stock can be used to enhance flavor.
}}
== Introduction ==
'''Asaro''', also known as Yam Porridge is a traditional Nigerian dish made by cooking yam in a richly seasoned sauce of tomatoes, peppers, onions, and oil. It is particularly popular among the Yoruba people of southwestern Nigeria but is enjoyed throughout the country.<ref>{{Cite web |date=2022-01-25 |title=Asaro: How to prepare the Yoruba thick and spicy yam porridge |url=https://www.pulse.ng/story/asaro-how-to-prepare-the-yoruba-thick-and-spicy-yam-porridge-2024073123565836660 |access-date=2026-06-06 |website=Pulse Nigeria |language=en}}</ref><ref>{{Cite web |last=Ajoke |date=2020-03-26 |title=Yam porridge (Asaro) |url=https://www.myactivekitchen.com/asaro-elepo-rederede-yam-porridge/ |access-date=2026-06-06 |website=My Active Kitchen |language=en-GB}}</ref><ref>{{Cite web |last=Osinkolu |first=Lola |date=2022-06-17 |title=Yam pottage/Yam Porridge (Asaro recipe) |url=https://cheflolaskitchen.com/yam-porridge-pottage/ |access-date=2026-06-06 |website=Chef Lola's Kitchen |language=en-US}}</ref>
The dish is known for its soft texture and rich flavor. During cooking, part of the yam breaks down into the sauce, creating a thick and hearty porridge. Asaro may be prepared with fish, meat, vegetables, or seafood.<ref>{{Cite web |last=Nigeria |first=Guardian |date=2017-09-15 |title=How To Make Asaro (Yam Porridge) |url=https://guardian.ng/life/food/how-to-make-asaro-yam-porridge/ |access-date=2026-06-06 |website=The Guardian Nigeria News - Nigeria and World News |language=en-GB}}</ref><ref>{{Cite web |last=Nigeria |first=Guardian |date=2022-12-19 |title=Easy Homemade Asaro Recipe |url=https://guardian.ng/life/easy-homemade-asaro-recipe/ |access-date=2026-06-06 |website=The Guardian Nigeria News - Nigeria and World News |language=en-GB}}</ref><ref>{{Cite web |title=How to Make Delicious Nigerian Yam Porridge (Asaro) |url=https://kashgain.net/blog/how-to-make-yam-porridge-in-nigeria/ |access-date=2026-06-06 |website=kashgain.net |language=en}}</ref>
== Ingredients ==
* 1 medium [[Cookbook:Yam|yam]] (about 1 kg), peeled and cubed
* 3 medium tomatoes
* 2 red bell [[Cookbook:Pepper|pepper]]<nowiki/>s
* 2 scotch bonnet peppers
* 1 medium onion
* 1/2 cup [[Cookbook:Palm Oil|palm oil]] or [[Cookbook:Vegetable Oil|vegetable oil]]
* 200 g [[Cookbook:Fish|fish]], [[Cookbook:Meat|meat]], or smoked fish (optional)
* 2–3 seasoning cubes
* Salt to taste
* 4 cups water or stock
* Leafy vegetables such as [[Cookbook:Spinach|spinach]] or [[Using Ubuntu Linux/Ubuntu Variations|ugu]] (optional)
== Equipment ==
* Cooking pot
* [[Cookbook:Knife|Knife]]
* [[Cookbook:Chopping board|Chopping board]]
* [[Cookbook:Blender|Blender]] or [[Cookbook:Food Processor|food processor]]
* Mixing bowls
* Measuring cups and spoons
* Wooden spoon
* [[Cookbook:Colander|Colander]] or [[Cookbook:Sieve|sieve]]
* Stove or other heat source
== Preparation ==
1. Peel the yam and cut it into medium-sized cubes.
2. Wash the tomatoes, peppers, and onion.
3. Blend the tomatoes, peppers, and onion into a smooth mixture.
4. Prepare the fish, meat, or other protein if using.
5. Heat the oil in a pot and add the blended pepper mixture.
6. Cook for about 10 minutes, stirring occasionally.
7. Add seasoning cubes, salt, and any protein being used.
8. Pour in the water or stock and bring to a boil.
9. Add the yam cubes and stir gently.
10. Cover and cook until the yam becomes soft.
11. Stir occasionally; some of the yam will break down and thicken the porridge.
12. Add vegetables if desired and cook for an additional 3–5 minutes.
13. Adjust seasoning and remove from heat.
== Notes ==
Asaro is served hot and may be enjoyed on its own or with:
* Smoked fish
* Fresh fish
* Beef
* Chicken
* Vegetables
== Variations ==
* Palm oil may be substituted with vegetable oil.
* Seafood such as shrimp or prawns can be added.
* Some versions include leafy vegetables for additional nutrition.
* Extra pepper may be added for a spicier dish.
== References ==
{{reflist}}
[[Category:Nigerian recipes]]
[[Category:African recipes]]
[[Category:Recipes]]
[[Category:Yoruba recipes]]
[[Category:Medium Difficulty recipes]]
[[Category:Recipes with images]]
[[Category:Vegetable dishes]]
[[Category:Yam dishes]]
57ewmj4f3bzbndlafsdi0v5ls3oeqvz
4640267
4640266
2026-06-14T02:07:50Z
~2026-34882-63
3606186
4640267
wikitext
text/x-wiki
{{recipe}}
{{Recipe summary
| Cuisine = Nigerian cuisine
| Origin = Nigerian origin
| Yield = 4 plates
| Servings = 3-4 servings
| Time = 1 hour
| Difficulty = 3
| Image = [[File:Asaro ( Yam Porridge).jpg|300px]]
| Note = * Do not over-stir during cooking, as this may cause all the yam pieces to break apart.
* The dish should be thick and creamy but still contain visible yam chunks.
* Fresh stock can be used to enhance flavor.
}}
== Introduction ==
'''Asaro''', also known as Yam Porridge is a traditional Nigerian dish made by cooking yam in a richly seasoned sauce of tomatoes, peppers, onions, and oil. It is particularly popular among the Yoruba people of southwestern Nigeria but is enjoyed throughout the country.<ref>{{Cite web |date=2022-01-25 |title=Asaro: How to prepare the Yoruba thick and spicy yam porridge |url=https://www.pulse.ng/story/asaro-how-to-prepare-the-yoruba-thick-and-spicy-yam-porridge-2024073123565836660 |access-date=2026-06-06 |website=Pulse Nigeria |language=en}}</ref><ref>{{Cite web |last=Ajoke |date=2020-03-26 |title=Yam porridge (Asaro) |url=https://www.myactivekitchen.com/asaro-elepo-rederede-yam-porridge/ |access-date=2026-06-06 |website=My Active Kitchen |language=en-GB}}</ref><ref>{{Cite web |last=Osinkolu |first=Lola |date=2022-06-17 |title=Yam pottage/Yam Porridge (Asaro recipe) |url=https://cheflolaskitchen.com/yam-porridge-pottage/ |access-date=2026-06-06 |website=Chef Lola's Kitchen |language=en-US}}</ref>
The dish is known for its soft texture and rich flavor. During cooking, part of the yam breaks down into the sauce, creating a thick and hearty porridge. Asaro may be prepared with fish, meat, vegetables, or seafood.<ref>{{Cite web |last=Nigeria |first=Guardian |date=2017-09-15 |title=How To Make Asaro (Yam Porridge) |url=https://guardian.ng/life/food/how-to-make-asaro-yam-porridge/ |access-date=2026-06-06 |website=The Guardian Nigeria News - Nigeria and World News |language=en-GB}}</ref><ref>{{Cite web |last=Nigeria |first=Guardian |date=2022-12-19 |title=Easy Homemade Asaro Recipe |url=https://guardian.ng/life/easy-homemade-asaro-recipe/ |access-date=2026-06-06 |website=The Guardian Nigeria News - Nigeria and World News |language=en-GB}}</ref><ref>{{Cite web |title=How to Make Delicious Nigerian Yam Porridge (Asaro) |url=https://kashgain.net/blog/how-to-make-yam-porridge-in-nigeria/ |access-date=2026-06-06 |website=kashgain.net |language=en}}</ref>
== Ingredients ==
* 1 medium [[Cookbook:Yam|yam]] (about 1 kg), peeled and cubed
* 3 medium tomatoes
* 2 red bell [[Cookbook:Pepper|pepper]]<nowiki/>s
* 2 scotch bonnet peppers
* 1 medium onion
* 1/2 cup [[Cookbook:Palm Oil|palm oil]] or [[Cookbook:Vegetable Oil|vegetable oil]]
* 200 g [[Cookbook:Fish|fish]], [[Cookbook:Meat|meat]], or smoked fish (optional)
* 2–3 seasoning cubes
* Salt to taste
* 4 cups water or stock
* Leafy vegetables such as [[Cookbook:Spinach|spinach]] or [[Using Ubuntu Linux/Ubuntu Variations|ugu]] (optional)
== Equipment ==
* Cooking pot
* [[Cookbook:Knife|Knife]]
* [[Cookbook:Chopping board|Chopping board]]
* [[Cookbook:Blender|Blender]] or [[Cookbook:Food Processor|food processor]]
* Mixing bowls
* Measuring cups and spoons
* Wooden spoon
* [[Cookbook:Colander|Colander]] or [[Cookbook:Sieve|sieve]]
* Stove or other heat source
== Preparation ==
1. Peel the yam and cut it into medium-sized cubes.
2. Wash the tomatoes, peppers, and onion.
3. Blend the tomatoes, peppers, and onion into a smooth mixture.
4. Prepare the fish, meat, or other protein if using.
5. Heat the oil in a pot and add the blended pepper mixture.
6. Cook for about 10 minutes, stirring occasionally.
7. Add seasoning cubes, salt, and any protein being used.
8. Pour in the water or stock and bring to a boil.
9. Add the yam cubes and stir gently.
10. Cover and cook until the yam becomes soft.
11. Stir occasionally; some of the yam will break down and thicken the porridge.
12. Add vegetables if desired and cook for an additional 3–5 minutes.
13. Adjust seasoning and remove from heat.
== Notes ==
Asaro is served hot and may be enjoyed on its own or with:
* Smoked fish
* Fresh fish
* Beef
* Chicken
* Vegetables
== Variations ==
* Palm oil may be substituted with vegetable oil.
* Seafood such as shrimp or prawns can be added.
* Some versions include leafy vegetables for additional nutrition.
* Extra pepper may be added for a spicier dish.
== References ==
{{reflist}}
[[Category:Nigerian recipes]]
[[Category:African recipes]]
[[Category:Recipes]]
[[Category:Yoruba recipes]]
[[Category:Medium Difficulty recipes]]
[[Category:Recipes with images]]
dzjdlpoky92ay7pqe53sfft4iznk4yg
Template:FoM/Nav
10
483856
4640170
4639840
2026-06-13T15:52:29Z
ShakespeareFan00
46022
4640170
wikitext
text/x-wiki
<templatestyles src="FoM/Nav/styles.css" />
{| class="navlinks noprint fom"
| class="navprevious fom" | {{#if: {{{prev|{{{1|}}}}}} | <span class="cdx-button">[[File:Navigation_Left_Arrow.svg|18px|link={{#titleparts: {{FULLPAGENAME}} | -1}}/{{{prev|{{{1|}}}}}}|{{{prev|{{{1|}}}}}}]] [[{{#titleparts: {{FULLPAGENAME}} | -1}}/{{{prev|{{{1|}}}}}}|{{{prev|{{{1|}}}}}}]]</span> | }}
| class="navtitle fom" | [[Fundamentals of Mechanics]]<br />{{#ifeq: {{CHAPTERNAME}} | {{SUBPAGENAME}} | <b>{{CHAPTERNAME}}</b> | [[{{#titleparts: {{FULLPAGENAME}} | 2}}|{{CHAPTERNAME}}]]}}{{#if: {{#titleparts: {{FULLPAGENAME}} | 1 | 3}} | <br />{{#ifeq: {{#titleparts: {{FULLPAGENAME}} | 1 | 3}} | {{SUBPAGENAME}} | <b>{{SUBPAGENAME}}</b> | [[{{#titleparts: {{FULLPAGENAME}} | 3}}|{{#titleparts: {{FULLPAGENAME}} | 1 | 3}}]]}} | }}{{#if: {{#titleparts: {{FULLPAGENAME}} | 1 | 4}} | <br /><b>{{SUBPAGENAME}}</b> | }}
| class="navnext fom" | {{#if: {{{next|{{{2|}}}}}} | <span class="cdx-button">[[{{#titleparts: {{FULLPAGENAME}} | -1}}/{{{next|{{{2|}}}}}}|{{{next|{{{2|}}}}}}]] [[File:Navigation_Right_Arrow.svg|18px|link={{#titleparts: {{FULLPAGENAME}} | -1}}/{{{next|{{{2|}}}}}}|{{{next|{{{2|}}}}}}]] | }}
|}
<noinclude>{{Documentation}}</noinclude>
93aru8fqbc95e80xlltzumd3ji270c3
4640171
4640170
2026-06-13T15:54:22Z
ShakespeareFan00
46022
4640171
wikitext
text/x-wiki
<templatestyles src="FoM/Nav/styles.css" />
{| class="navlinks noprint fom"
| class="navprevious fom" | {{#if: {{{prev|{{{1|}}}}}} | <span class="cdx-button">[[File:Navigation_Left_Arrow.svg|18px|link={{#titleparts: {{FULLPAGENAME}} | -1}}/{{{prev|{{{1|}}}}}}|{{{prev|{{{1|}}}}}}]] [[{{#titleparts: {{FULLPAGENAME}} | -1}}/{{{prev|{{{1|}}}}}}|{{{prev|{{{1|}}}}}}]]</span> | }}
| class="navtitle fom" | [[Fundamentals of Mechanics]]<br />{{#ifeq: {{CHAPTERNAME}} | {{SUBPAGENAME}} | <b>{{CHAPTERNAME}}</b> | [[{{#titleparts: {{FULLPAGENAME}} | 2}}|{{CHAPTERNAME}}]]}}{{#if: {{#titleparts: {{FULLPAGENAME}} | 1 | 3}} | <br />{{#ifeq: {{#titleparts: {{FULLPAGENAME}} | 1 | 3}} | {{SUBPAGENAME}} | <b>{{SUBPAGENAME}}</b> | [[{{#titleparts: {{FULLPAGENAME}} | 3}}|{{#titleparts: {{FULLPAGENAME}} | 1 | 3}}]]}} | }}{{#if: {{#titleparts: {{FULLPAGENAME}} | 1 | 4}} | <br /><b>{{SUBPAGENAME}}</b> | }}
| class="navnext fom" | {{#if: {{{next|{{{2|}}}}}} | <span class="cdx-button">[[{{#titleparts: {{FULLPAGENAME}} | -1}}/{{{next|{{{2|}}}}}}|{{{next|{{{2|}}}}}}]]</span> [[File:Navigation_Right_Arrow.svg|18px|link={{#titleparts: {{FULLPAGENAME}} | -1}}/{{{next|{{{2|}}}}}}|{{{next|{{{2|}}}}}}]] | }}
|}
<noinclude>{{Documentation}}</noinclude>
83kz92zvpgcwwbf1hk8d48vsap5ig7e
Chess Opening Theory/1. e4/1...e5/2. Nf3/2...Nc6/3. Bc4/3...Nf6/4. Ng5/4...d5/5. exd5/5...Na5/6. Bb5/6...c6/7. dxc6/7...bxc6/8. Qf3/8...cxb5
0
483861
4640260
4639724
2026-06-14T01:00:13Z
JackBot
396820
Formatting, [[Special:UncategorizedPages]]
4640260
wikitext
text/x-wiki
=== 8...cxb5!? ===
Black sacrifices the exchange in return for a lead in development. The resulting position is extremely sharp, with many forced moves for both sides. Engine analysis has shown that Black enjoys full compensation for the exchange.
White's only good move is 9.Qxa8, capturing the rook.
{{BookCat}}
5t1inh7l3pnyaqtowxadcg83m8bpi4m
Chess Opening Theory/1. e4/1...e5/2. Nf3/2...Nc6/3. Bc4/3...Nf6/4. Ng5/4...d5/5. exd5/5...Na5/6. Bb5/6...c6/7. dxc6/7...bxc6/8. Qf3/8...cxb5/9. Qxa8
0
483867
4640261
4639734
2026-06-14T01:00:14Z
JackBot
396820
Formatting, [[Special:UncategorizedPages]]
4640261
wikitext
text/x-wiki
=== 9. Qxa8 ===
Capturing the rook, the only sensible move. Black's main continuation is 9...Qc7, defending the a7-pawn and preparing to trap the queen if White is not careful.
{{BookCat}}
cg5xkf38cjwpaviv242uy1jtnnchbsw
Template:FoM/Ex
10
483875
4640168
4639799
2026-06-13T15:51:14Z
ShakespeareFan00
46022
4640168
wikitext
text/x-wiki
<div style="padding: 0 1.6em; filter: invert(1) hue-rotate(180deg); backdrop-filter: invert(0) hue-rotate(0deg)">
<b><i>''Example {{{1}}}</i></b>
<span style="font-weight: normal">{{{2}}}</span>
<hr />
<b>Solution {{{1}}}</b>
<br />
{{{3}}}
</div>
<noinclude>{{Documentation}}</noinclude>
22dqn3eot7wlz8zrbo7mjhc171n6uj7
4640169
4640168
2026-06-13T15:51:31Z
ShakespeareFan00
46022
4640169
wikitext
text/x-wiki
<div style="padding: 0 1.6em; filter: invert(1) hue-rotate(180deg); backdrop-filter: invert(0) hue-rotate(0deg)">
<b><i>Example {{{1}}}</i></b>
<span style="font-weight: normal">{{{2}}}</span>
<hr />
<b>Solution {{{1}}}</b>
<br />
{{{3}}}
</div>
<noinclude>{{Documentation}}</noinclude>
ky9a99ft4k221pyx5663qeqb1ep10z3
Chess Opening Theory/1. e4/1...e5/2. Nf3/2...Nc6/3. Bc4/3...Nf6/4. Ng5/4...d5/5. exd5/5...Na5/6. Bb5/6...c6/7. dxc6/7...bxc6/8. Qf3/8...cxb5/9. Qxa8/9...Qc7
0
483881
4640262
4639818
2026-06-14T01:00:14Z
JackBot
396820
Formatting, [[Special:UncategorizedPages]]
4640262
wikitext
text/x-wiki
=== 9...Qc7 ===
Defends the a7-pawn and prepares Nc6. If White isn't careful and doesn't play 10.Qf3!, there may be ideas to trap the queen on a8.
{{BookCat}}
90iel5ks1lydys9xdve9dbanejfkkvh
Chess Opening Theory/1. e4/1...e5/2. Nf3/2...Nc6/3. Bc4/3...Nf6/4. Ng5/4...d5/5. exd5/5...Na5/6. Bb5/6...c6/7. dxc6/7...bxc6/8. Qf3/8...cxb5/9. Qxa8/9...Qc7/10. Qf3
0
483882
4640263
4639820
2026-06-14T01:00:15Z
JackBot
396820
Formatting, [[Special:UncategorizedPages]]
4640263
wikitext
text/x-wiki
=== 10. Qf3 ===
The queen returns to a safer square.
{{BookCat}}
n8pgse8ttfny3oegem7emxsm9pmbkpu
Tagalog/타갈로그어 배우기
0
483903
4640258
4639931
2026-06-14T00:44:38Z
Omphalographer
3427146
{{delete}}
4640258
wikitext
text/x-wiki
{{delete|No meaningful content. No incoming links, and the text is in Korean, not Tagalog.}}
제이드 안녕 보고싶어
s6vme2te72cjrpwymnq3stbx0key8t9
Fundamentals of Mechanics/Units and Vectors/Vector Algebra/Addition
0
483916
4640264
4640027
2026-06-14T01:00:15Z
JackBot
396820
Formatting, [[Special:UncategorizedPages]]
4640264
wikitext
text/x-wiki
There are two ways to add vectors, geometrically and algebraically. Here, we will discuss the geometric method, which is useful for solving problems without using a coordinate system. The algebraic method will be discussed later.
To add two vectors {{FoM/Vec|A}} and {{FoM/Vec|B}} using the geometric method, place the head of {{FoM/Vec|A}} at the tail of {{FoM/Vec|B}} and draw a vector from the tail of {{FoM/Vec|A}} to the head of {{FoM/Vec|B}} as shown in {{Nowrap|[[#fig 1.3|Fig. 1.3]].}} This method is known as the triangle method. An extension to sum up more than two vectors is shown in {{Nowrap|[[#fig 1.4|Fig. 1.4]].}} An alternative procedure of vector addition using the geometric method is shown in {{Nowrap|[[#fig 1.5|Fig. 1.5]].}} This is known as the parallelogram method, where {{FoM/Vec|C}} is the diagonal of a parallelogram with sides {{FoM/Vec|A}} and {{FoM/Vec|B}}. To find {{FoM/Vec|C}} analytically (see {{Nowrap|[[#fig 1.6|Fig. 1.6]]),}} we can extend the base of the parallelogram to {{Nowrap|point {{Mvar|F}}}} and draw a perpendicular side from {{Nowrap|point {{Mvar|F}}}} to {{Nowrap|point {{Mvar|G}}}}. This creates right triangle {{Mvar|DFG}}; using trigonometry, we know the following three equations hold.
{{FoM/Eqn|<math display="inline">(DG)^{2} = (DF)^{2} + (FG)^{2}</math>|1.1}}
{{FoM/Eqn|<math display="inline">DF = DE + EF = A + B\ \cos{\theta}</math>|1.2}}
{{FoM/Eqn|<math display="inline">FG = B\ \sin{\theta}</math>|1.3}}
Substituting Eqs. {{FoM/Eqref|1.2}} and {{FoM/Eqref|1.3}} into Eq. {{FoM/Eqref|1.1}} and using the trigonometric identity <math display="inline">\sin^{2}{\theta} + \cos^{2}{\theta} = 1</math> gives the following.
{{FoM/Eqn|<math display="inline">C^{2} = \left(A + B\ \cos{\theta}\right)^{2} + \left(B\ \sin{\theta}\right)^{2} = A^{2} + B^{2} + 2AB\ \cos{\theta}</math>|1.4}}
Taking the square root of both sides of Eq. {{FoM/Eqref|1.4}} gives the magnitude of {{FoM/Vec|C}}.
{{FoM/Eqn|<math display="inline">C = \sqrt{A^{2} + B^{2} + 2AB\ \cos{\theta}}</math>|1.5}}
The direction of {{FoM/Vec|C}} can be found as follows.
{{FoM/Eqn|<math display="inline">\tan{\beta} = \dfrac{GF}{DF} = \dfrac{GF}{DE + EF} = \dfrac{B\ \sin{\theta}}{A + B\ \sin{\theta}}</math>|1.6}}
Note that only when {{FoM/Vec|A}} and {{FoM/Vec|B}} are parallel is the magnitude of their vector sum equal to <math display="inline">A + B</math>. Unlike the addition of scalar quantities, which has one and only one possible value for any two given scalars, the magnitude of the sum of two vectors can vary between <math display="inline">|A - B|</math> and <math display="inline">A + B</math>.
{{FoM/Ex
| 1.4
| A jogger runs from her home a distance of {{Value|0.500|u=km}} due south and then {{Value|1.00|u=km}} to the west. Find the magnitude and direction of her resultant displacement.
|From [[#fig 1.7|Fig. 1.7]], we can see that the magnitude of the resultant displacement is given by the following.
<math display="block">R = \sqrt{(0.500 \text{ km})^{2} + (1.00 \text{ km})^{2}} = 1.12 \text{ km}</math>
The direction of {{FoM/Vec|R}} is as follows.
<math display="block">\theta = \tan^{-1}\left(\dfrac{0.500 \text{ m}}{1.00 \text{ m}}\right) = 26.6^{\circ}</math>
}}
{{BookCat}}
s9e7452cbzdvln29j36q3qs9bob4udc
User:Greatswrd/sandbox
2
483921
4640222
2026-06-13T17:57:35Z
Greatswrd
3497856
Created page with "{{Short description|1352–1576 kingdom in Bengal}} {{Other uses|Bengal (disambiguation)}} {{Use British English|date=January 2019}} {{Use dmy dates|date=February 2023}} {{Infobox former country | conventional_long_name = Bengal Sultanate | native_name = {{Native name|ben|শাহী বাঙ্গালা}}<br/>{{Native name|fas|سلطنت بنگاله}} | today = [[Bangladesh]]<br />[[India]]<br />[[Myanmar]]<br />[[Nepal]] | life_span..."
4640222
wikitext
text/x-wiki
{{Short description|1352–1576 kingdom in Bengal}}
{{Other uses|Bengal (disambiguation)}}
{{Use British English|date=January 2019}}
{{Use dmy dates|date=February 2023}}
{{Infobox former country
| conventional_long_name = Bengal Sultanate
| native_name = {{Native name|ben|শাহী বাঙ্গালা}}<br/>{{Native name|fas|سلطنت بنگاله}}
| today = [[Bangladesh]]<br />[[India]]<br />[[Myanmar]]<br />[[Nepal]]
| life_span = 1352–1539<br />1554–1576
| status = [[Sultanate]]{{efn|name=Ganesha|It was briefly turned into a [[Hindu kingdom]] under [[Raja Ganesha]] between 1414 and 1415 and again between 1416 and 1418.}}
| event_start = Unification
| year_start = 1352
| event_end = [[Battle of Raj Mahal]]
| date_end = 12 July 1576
| event1 = [[Bengal Sultanate–Delhi Sultanate War|Independence from Delhi]]
| date_event1 = 1353–1359
| event2 = [[Raja Ganesha]]'s rebellion
| date_event2 = 1414
| event3 = [[Bengal Sultanate–Jaunpur Sultanate War|Bengal–Jaunpur War]]
| date_event3 = 1415–1420
| event4 = [[Reconquest of Arakan]]
| date_event4 = 1429–1430
| event5 = [[Bengal-Kamata War]]
| date_event5 = 1498
| event6 = [[Bengal Sultanate–Kingdom of Mrauk U War of 1512–1516|Conquest of Chittagong]]
| date_event6 = 1512–1516
| event7 = [[Turbak's invasion of Assam|Gauda–Ahom War]]
| date_event7 = 1532–1533
| event8 = [[Sur Empire|Suri]] invasion
| date_event8 = 1539
| event9 = Restoration
| date_event9 = 1554
| event10 = [[Mughal invasion of Bengal|Mughal invasion]]
| date_event10 = 1572–1576
| event_post = [[Baro-Bhuyan#Baro Bhuiyans of Bengal|Baro Bhuiyan]] resistance
| date_post = 1576–1610
| p1 = Lakhnauti Sultanate
| p2 = Saptagram {{!}} Satgaon Sultanate
| p3 = Mubarak Shahi Dynasty#Mubarak Shahi Dynasty, 14th century {{!}} Mubarak Shahi dynasty
| p4 = Delhi Sultanate
| p5 = Eastern Ganga dynasty
| p6 = Kamata Kingdom
| p7 = Oiniwar dynasty
| p8 = Sur Empire
| p9 = Bhoi dynasty
| s1 = Sur Empire
| s2 = Mughal Empire
| s3 = Baro-Bhuyan#Baro Bhuiyans of Bengal {{!}} Baro Bhuiyans of Bengal
| image_flag =
| flag_width =
| flag_type =
| flag_caption =
| image_coat = Alam of Ala-ud-din Husain Shah.svg
| coa_size = 60px
| symbol =
| symbol_type = ''[[Alam (finial)|Alam]]'' of [[Alauddin Husain Shah]], the founder of the [[Hussain Shahi dynasty]]<ref>{{cite book|last = Bhattacharyya|first = A. Chandra |title = Progressive Tripura|year = 1930|url = https://archive.org/details/in.gov.ignca.27386/page/20/mode/2up|pages = 20|publisher = Bhattacharyya}}</ref><ref group="lower-alpha">Illustration from the book 'Progressive Tripura': [[File:Alam (Banner) of Alauddin Hussain Shah.png|60px]]</ref>
| image_map = {{Switcher|[[File:Map of Ilyas Shahis–Ganesha.png|upright=1.15|frameless]]|[[Ilyas Shahi dynasty]] and [[House of Ganesha]] {{Circa|1390–1450}}{{sfn|Schwartzberg|1978|p=39}}|[[File:Hussain Shahis of Bengal.png|upright=1.15|frameless]]|[[Hussain Shahi dynasty]] {{Circa|1519}}{{sfn|Schwartzberg|1978|p=40}}|default=2}}
| image_map_caption =
| capital = [[Pandua, Malda|Pandua]]{{Efn|Under the [[Ilyas Shahi dynasty]] and [[Raja Ganesha]].{{Sfn|Michell|1984|p=28}}}}<br />{{small|(1352–1390, 1410-1433)}}<br />[[Sonargaon]]{{efn|Sultan [[Ghiyasuddin Azam Shah]] (r. 1390-1410) held his court in Sonargaon.<ref name="Banglapedia-Sonargaon" />}}<br />{{small|(1390–1410)}}<br />[[Gauda (city)|Gaur]]{{Efn|Under Sultan [[Jalaluddin Muhammad Shah]],{{Sfn|Bhattacharya|2020|p=41}} the [[Ilyas Shahi dynasty#Restored dynasty|Restored Ilyas Shahi dynasty]], the [[Habshi dynasty]], and the [[Hussain Shahi dynasty]].{{Sfn|Michell|1984|p=28}}}}<br />{{small|(1433–1565)}}<br />[[Tanda, Bengal|Tanda]]{{Efn|Under the [[Karrani dynasty]].{{Sfn|Michell|1984|p=28}}}}<br />{{small|(1565–1576)}}
| official_languages = [[Bengali language|Bengali]]<br />[[Persian language|Persian]]
| religion = [[Sunni Islam]] (official){{efn|name=Ganesha}}<br />[[Hinduism]]<br />[[Buddhism]]
| government_type = [[Absolute monarchy]]
| leader1 = [[Shamsuddin Ilyas Shah]]
| year_leader1 = 1342–1358 (first)
| leader2 = [[Daud Khan Karrani]]
| year_leader2 = 1572–1576 (last)
| title_leader = [[List of rulers of Bengal#Bengal Sultanate era|Sultan]]
| currency = [[History of the taka|Tanka]]
| legislature =
}}
The '''Bengal Sultanate'''{{Efn|[[History of Bengali language|Middle Bengali]]: শাহী বাঙ্গালা, [[Romanisation of Bengali|romanization]]: ''Śāhī Bāṅgālā'', {{lit|Royal/Imperial Bengal}}<br />[[Classical Persian]]: سلطنت بنگاله, [[Romanization of Persian|romanization]]: ''Salṭanat-e Bangālah'', {{lit|Sultanate of Bengal}}}}<ref>{{cite web | title=History | quote=Shah-i-Bangalah, Shah-i-Bangaliyan and Sultan-i-Bangalah | url=http://en.banglapedia.org/index.php?title=History | website=Banglapedia | access-date=23 September 2017 | url-status=live | archive-url=https://web.archive.org/web/20170929104319/http://en.banglapedia.org/index.php?title=History | archive-date=29 September 2017 | df=dmy-all }}</ref> was a [[Post-classical history|late medieval]] [[sultanate]]{{efn|name=Ganesha}} based in the [[Bengal]] region in eastern [[South Asia]] between the 14th and 16th century. It was the dominant power of the [[Ganges-Brahmaputra Delta]], with a network of mint towns spread across the region. The Bengal Sultanate had a [[Mandala (political model)|circle]] of [[vassal states]] in the [[Indian subcontinent]] and [[Southeast Asia]], including parts of [[Odisha]] in the southwest,<ref>{{Cite web |title=Orissa – Banglapedia |url=https://en.banglapedia.org/index.php/Orissa |access-date=2025-04-16 |website=en.banglapedia.org}}</ref> parts of [[Bihar]] in the northwest,<ref>[https://munger.nic.in/history-2/ Munger, the part of Bengal Sultanate]</ref> parts of [[Assam]] in the northeast,<ref>{{Cite web |title=Assam History {{!}} Assam State Portal |url=https://assam.gov.in/about-us/394#:~:text=In%201874,%20Assam%20became%20a%20separate%20province%20with%20Shillong%20as%20its%20capital.&text=The%20medieval%20era%20began%20with%20the%20attacks,medieval%20kingdoms%20and%20chieftain-ships%20in%20its%20place. |access-date=2025-04-16 |website=assam.gov.in}}</ref> [[Arakan]] in the southeast,<ref name="Ooi2004">{{cite book |author=[[Keat Gin Ooi]] |title=Southeast Asia: A Historical Encyclopedia, from Angkor Wat to East Timor |url=https://books.google.com/books?id=QKgraWbb7yoC&pg=PA171 |year=2004 |publisher=ABC-CLIO |isbn=978-1-57607-770-2 |page=171 |access-date=31 October 2019 |archive-date=22 October 2023 |archive-url=https://web.archive.org/web/20231022222946/https://books.google.com/books?id=QKgraWbb7yoC&pg=PA171 |url-status=live }}</ref> and [[Tripura]] in the east.{{Sfn|Eaton|1996|loc=p. [https://books.google.com/books?id=gKhChF3yAOUC&pg=PA64&redir_esc=y#v=onepage&q&f=false 64]}}
The sultanate controlled large parts of eastern South Asia under its five unrelated dynasties, reaching its peak under [[Jalaluddin Muhammad Shah]]. Its raids and conquests reached [[Kingdom of Nepal|Nepal]] in the north, [[Brahmaputra Valley]] (modern-day Assam) in the east, and [[Jaunpur Sultanate|Jaunpur]] and [[Varanasi]] in the west. It was reputed as a thriving trading nation. Its decline began with an [[interregnum]] by the [[Sur Empire]], followed by [[Mughal Empire|Mughal]] [[Mughal conquest of Bengal|conquest]] and disintegration into petty kingdoms. The Bengal Sultanate was a Sunni Muslim monarchy<ref>{{Cite book|url=https://books.google.com/books?id=nyYslywJUE8C&pg=PA139|title=Indo-Islamic society: 14th – 15th centuries|last=Wink|first=André|date=2003|publisher=Brill|isbn=978-9004135611}}</ref><ref>{{Cite book|title=Encyclopaedia Aethiopica|last=Uhlig|first=Siegbert|year=2003|page=151}}</ref><ref>{{Cite book|title=Encyclopedia of Asian history|last=Embree|first=Ainslie|publisher=[[Asia Society]]|year=1988|page=149}}</ref> with [[Bengalis|Bengali]], [[Turco-Persian tradition|Turco-Persian]], [[Afghan (ethnonym)|Afghan]] and [[Habshi|Abyssinian]] elites.<ref name="auto1">{{cite web|url=https://www.sahapedia.org/gaur-and-pandua-architecture|title=Gaur and Pandua Architecture|website=Sahapedia|access-date=27 September 2019|archive-date=13 November 2020|archive-url=https://web.archive.org/web/20201113111721/https://www.sahapedia.org/gaur-and-pandua-architecture|url-status=live}}</ref> The most prominent dynasties were the [[Ilyas Shahi dynasty|Ilyas Shahi]], [[House of Ganesha]] and [[Hussain Shahi dynasty|Hussain Shahi]]. The kingdom was known for its religious pluralism where non-Muslim communities co-existed peacefully. While [[Persian language|Persian]] was used as the primary official, diplomatic and commercial language, it was under the Sultans that [[Bengali language|Bengali]] first received court recognition as an official language.<ref name=stars/><ref>{{cite book|year=1978|author=Saikia, Mohini Kumar|title=Assam-Muslim Relation and Its Cultural Significance|publisher=Luit Printers|page=20}}</ref> The cities of the Bengal Sultanate are termed as Mint Towns where the historical [[History of the taka|taka]] was [[Mint (facility)|minted]]. These cities were adorned with stately medieval buildings.<ref>{{Cite news|url=https://www.thehindu.com/society/history-and-culture/once-upon-a-fort-gaurs-firoz-minar-is-still-an-imposing-sight/article26407049.ece|title=Once upon a fort: Gaur's Firoz Minar is still an imposing sight|first=Rana|last=Safvi|date=2 March 2019|newspaper=The Hindu|access-date=27 September 2019|archive-date=31 October 2019|archive-url=https://web.archive.org/web/20191031230453/https://www.thehindu.com/society/history-and-culture/once-upon-a-fort-gaurs-firoz-minar-is-still-an-imposing-sight/article26407049.ece|url-status=live}}</ref> In 1500, the royal capital of [[Gauda (city)|Gaur]] was the fifth-most populous city in the world.<ref name="ft" /><ref name="scroll" /> Other notable cities included the initial royal capital of [[Pandua, Malda|Pandua]], the economic hub of [[Sonargaon]], the [[Mosque City of Bagerhat]], and the seaport and trading hub of [[Chittagong]]. The Bengal Sultanate was connected to states in Asia, Africa, the Indian Ocean, and Europe through maritime links and overland trade routes. The Bengal Sultanate was a major trading center on the coast of the Bay of Bengal. It attracted immigrants and traders from different parts of the world. Bengali ships and merchants traded across the region, including in Malacca, China, and the Maldives.
Contemporary European and Chinese visitors described the Bengal Sultanate as a prosperous and thriving kingdom. Due to the abundance of goods in Bengal, the region was described as the "richest country to trade with". The Bengal Sultanate left a strong architectural legacy. Buildings from the period show foreign influences merged into a distinct Bengali style.<ref name="auto1"/> The Bengal Sultanate was also the largest and most prestigious authority among the independent medieval Muslim-ruled states in the [[history of Bengal]].<ref name="AndayaAndaya2015">{{cite book|author1=Barbara Watson Andaya|author2=Leonard Y. Andaya|title=A History of Early Modern Southeast Asia, 1400–1830|url=https://books.google.com/books?id=0Rh2BgAAQBAJ&pg=PA114|date=2015|publisher=Cambridge University Press|isbn=978-0-521-88992-6|page=114|access-date=29 May 2019|archive-date=22 October 2023|archive-url=https://web.archive.org/web/20231022222946/https://books.google.com/books?id=0Rh2BgAAQBAJ&pg=PA114#v=onepage&q&f=false|url-status=live}}</ref>
==History==
===Background (13th and 14th centuries)===
{{See also|Mubarak Shahi Dynasty}}
Bengal was gradually absorbed into the [[Delhi Sultanate]] during the 1200s. It began with [[Muhammad Bakhtiyar Khalji|Bakhtiyar]]'s 1202–1204 conquest of Gauda during the reign of [[Muhammad of Ghor]]. This saw the beginning of the rise of [[Khalaj people|Turko-Afghans]] in the Indian subcontinent.<ref>{{Cite book|last=|first=|title=Know Your State West Bengal|publisher=Arihant Experts|year=2019|isbn=|location=|pages=15|quote=Turk-Afghan Rule: Muhammad Bin Bakhtiyar Khilji's invasion to Bengal marked the advent of Turk-Afghan rule in Bengal.}}</ref><ref>{{Cite book|last=Chandra|first=Satish|title=Medieval India: From Sultanat to the Mughals-Delhi Sultanat (1206–1526)|publisher=|year=2004|isbn=|location=|pages=226|quote=Although the Afghans formed a large group in the army of the Delhi Sultanat, only few Afghan nobles had been accorded important positions. That is why Bakhtiyar Khalji who was part - Afghan had to seek his fortune in Bihar and Bengal.}}</ref> Bakhityar Khalji served as a military general of the [[Ghurid]] ruler Muhammad of Ghor. He formed the [[Khalji dynasty of Bengal]].<ref>{{cite book |title=Turkish History and Culture in India: Identity, Art and Transregional Connections |date= 2020 |publisher=Brill |isbn=978-90-04-43736-4 |page=237 |url=https://books.google.com/books?id=ml75DwAAQBAJ&pg=PA237 |language=en |access-date=2 August 2023 |archive-date=22 October 2023 |archive-url=https://web.archive.org/web/20231022222946/https://books.google.com/books?id=ml75DwAAQBAJ&pg=PA237#v=onepage&q&f=false |url-status=live }}</ref> After the assassination of Bakhtiar Khalji by his own officer [[Ali Mardan Khalji|Ali Mardan]] in 1206, Bengal was administered by various Maliks belonging to the Khalji tribe (except a brief interregnum by Ali Mardan himself) until Delhi Sultan [[Iltutmish]] sent forces under his son, Nasir-ud-Din Mahmud, to bring Bengal under the direct control of the Delhi Sultans.<ref>{{Cite book|last=Minhaj-ud-din|first=Maulana Abu' Umar-i-Usman|title=Tabakat-i-Nasiri translated from Original Persian texts by Maj. H. G. Raverty|publisher=The Asiatic Society|year=1881|location=Kolkata|pages=572–595}}</ref> Iltutmish declared Bengal as a province of Delhi in 1225. The Delhi Sultans attempted to govern Bengal through appointed governors, however, Delhi could not succeed given the considerable overland distance with Bengal. Ambitious governors rebelled and ruled as independent rulers until being suppressed militarily by the Delhi Sultanate. However, there were capable rulers among the rebels, including Yuzbak Shah (1257), [[Tughral Tughan Khan|Tughral Khan]] (1271–1282), and [[Shamsuddin Firoz Shah]] (1301–1322). The latter achieved the [[Conquest of Sylhet]] and established a strong administration in eastern and south-western Bengal. In 1325, the Delhi Sultan Ghiyath al-Din Tughluq reorganized the province into three administrative regions, with [[Sonargaon]] ruling eastern Bengal; [[Gauda (city)|Gauda]] ruling northern Bengal; and [[Satgaon]] ruling southern Bengal. Even this arrangement broke down. By 1338, the three administrative regions had separatist [[Sultan]]s, including [[Fakhruddin Mubarak Shah]] in Sonargaon; [[Alauddin Ali Shah]] in Gauda, and [[Shamsuddin Ilyas Shah]] in Satgaon.<ref name="Kunal Chakrabarti 2013 p. 12">Kunal Chakrabarti; Shubhra Chakrabarti (22 August 2013). Historical Dictionary of the Bengalis. Scarecrow Press. p. 12. {{ISBN|978-0-8108-8024-5}}.</ref> Fakhruddin conquered Chittagong in 1340 and was succeeded by his son [[Ikhtiyaruddin Ghazi Shah]] in 1349. Shamsuddin Ilyas Shah (or just ''Ilyas Shah'') defeated Alauddin Ali Shah and secured control of Gauda. He then defeated Ikhtiyaruddin of Sonargaon. By 1352, Ilyas Shah emerged victorious among the Bengali triad.{{Citation needed|date=January 2024}}
===Early Bengal Sultanate (14th and 15th centuries)===
{{See also|Shamsuddin Ilyas Shah}}[[File:Adina Mosque at Malda district of West Bengal 07.jpg|thumb|right|Ruins of [[Adina Mosque]], the largest mosque in the subcontinent, in [[Pandua, Malda|Pandua]], the first capital of the Bengal Sultanate.]]
[[File:DG 36 - 08 GRAVE YARD OF SULTAN GIAS UDDIN AZAM SHAH 14 CENTURY MUGRA PARA SONARGAON IMG 5650.jpg|thumb|The 14th-century tomb of Sultan Ghiyasuddin Azam Shah in [[Sonargaon]]]]
Ilyas Shah established his capital in [[Pandua, Malda|Pandua]]. He unified the [[Bengal delta|delta]] of Ganges, Brahmaputra and Meghna Rivers into the Sultanate of Bengal. Ilyas Shah waged wars and raids against several city-states and kingdoms in the eastern subcontinent. He conquered eastern Bengal and northern Bihar. He led the first Muslim army into [[Nepal]], raided the [[Kathmandu Valley]], and returned to Bengal with treasures.<ref name=":2">{{cite web | url=https://en.banglapedia.org/index.php?title=Iliyas_Shah | title=Iliyas Shah | website=Banglapedia | access-date=7 October 2019 |archive-url=https://web.archive.org/web/20241202205855/https://en.banglapedia.org/index.php?title=Iliyas_Shah |archive-date=2 December 2024 | url-status=live }}</ref> He controlled an area stretching from Assam in the east to [[Varanasi]] in the west.<ref name="Kunal Chakrabarti 2013 p. 12"/> In 1353, Ilyas Shah was defeated by Delhi Sultan [[Firuz Shah Tughluq]] in the Siege of Ekdala Fort during the [[Ekdala Wars]]. Bengal agreed to pay a tribute to the Delhi Sultan. Despite losing control of many conquered areas, Ilyas Shah remained in firm control of Bengal.<ref name="Kunal Chakrabarti 2013 p. 12"/>
Ilyas Shah founded the [[Ilyas Shahi dynasty]] which ruled Bengal for fifteen decades. His son and successor [[Sikandar Shah]] defeated Delhi Sultan Firuz Shah Tughluq during the second Siege of Ekdala Fort in 1359. A peace treaty was signed between Delhi and Bengal, with the former recognizing the independence of the latter. Firuz Shah Tughluq gave a golden [[Crown (headgear)|crown]] estimated to be worth 80,000 [[History of the taka|taka]] to Sikandar Shah. The peace treaty ensured Bengal's independence for two centuries.<ref>Nitish K. Sengupta (2011). Land of Two Rivers: A History of Bengal from the Mahabharata to Mujib. Penguin Books India. p. 73. {{ISBN|978-0-14-341678-4}}.</ref>
Sikandar Shah's reign lasted three decades. The [[Adina Mosque]] was built during his reign. The mosque's design was based on the [[Great Mosque of Damascus]], style used during the introduction of Islam in new areas. During this time, much of the agricultural land was controlled by Hindu [[zamindar]]s, which caused tensions with Muslim [[taluqdar]]s.<ref name="Lewis2011">{{cite book|author=David Lewis|title=Bangladesh: Politics, Economy and Civil Society|url=https://books.google.com/books?id=5lH40gT7xvYC&pg=PA44|date= 2011|publisher=Cambridge University Press|isbn=978-1-139-50257-3|pages=44–45}}</ref>
The third Sultan [[Ghiyasuddin Azam Shah]] began expanding Bengal's influence abroad. He began to send embassies to [[Ming China]], which continued as a tradition during the reigns of his successors. Ghiyasuddin also sponsored construction projects in [[Arabia]]. He exchanged letters and poetry with the Persian poet [[Hafez]].<ref>{{cite web | url=https://en.banglapedia.org/index.php?title=Ghiyasuddin_Azam_Shah | title=Ghiyasuddin Azam Shah | website=Banglapedia | access-date=5 April 2018 | archive-date=15 January 2025 | archive-url=https://web.archive.org/web/20250115000851/https://en.banglapedia.org/index.php?title=Ghiyasuddin_Azam_Shah | url-status=live }}</ref> The Bengal Sultans pledged nominal allegiance to the [[Abbasid Caliphate]] in Cairo. The coins of the Bengal Sultans often bore the name of the contemporary Abbasid Caliph.<ref>{{cite web | url=https://en.banglapedia.org/index.php?title=Coins | title=Coins | website=Banglapedia | access-date=3 September 2019 | archive-date=9 September 2024 | archive-url=https://web.archive.org/web/20240909191203/https://en.banglapedia.org/index.php?title=Coins | url-status=live }}</ref> Ghiyasuddin Azam Shah held his court in the central Bengali city of Sonargaon, in addition to Pandua. The travel accounts of Chinese envoys state that the Sultan lived in a palace near the [[river port]] of Sonargaon. The river port had shipping links to China, Southeast Asia, and the Middle East. In 1406, Ma Huan found Sonargaon as a large metropolis. Other Chinese envoys provided descriptions of a fortified walled city. Sonargaon was a center of [[Sufi]] education and Persian literature and Azam Shah even invited Hafez to settle there. The institutions founded by [[Abu Tawwama]] during the Delhi Sultanate were maintained by his successors in the Bengal Sultanate, including the Sufi preachers [[Ibrahim Danishmand]], Saiyid Arif Billah, Muhammad Kamel, Saiyid Muhammad Yusuf and others.<ref name="Banglapedia-Sonargaon">{{cite web | url=http://en.banglapedia.org/index.php?title=Sonargaon | title=Sonargaon | website=Banglapedia | access-date=7 June 2019 | archive-date=18 December 2017 | archive-url=https://web.archive.org/web/20171218050811/http://en.banglapedia.org/index.php?title=Sonargaon | url-status=live }}</ref>
In the 14th century, Islamic kingdoms stretched from [[Muslim Spain]] in the west to the Indian subcontinent in the east. The Islamic kingdoms had [[multiethnic]] elites. Persian and Arabic were used alongside local languages. Persian was used as a diplomatic and commercial language. Arabic was the liturgical language of the clergy. In Bengal, the Bengali language became a court language and was the main vernacular language under Muslim rule.<ref name=stars>{{cite web|url=https://www.thedailystar.net/shout/cover-story/news/evolution-bangla-1705177|title=Evolution of Bangla|date=21 February 2019|website=The Daily Star|access-date=31 December 2019|archive-date=11 September 2020|archive-url=https://web.archive.org/web/20200911153955/https://www.thedailystar.net/shout/cover-story/news/evolution-bangla-1705177|url-status=live}}</ref>
===Rise of native Ganesha dynasty (15th century)===
[[File:Sixty dome mosque in the evening.jpg|thumb|left|The [[Sixty Dome Mosque]] is a UNESCO World Heritage Site]]
[[File:India in 1525 Joppen.jpg|thumb|upright|The Indian subcontinent in 1525, with Bengal in the east]]
During the early 15th century, the Ilyas Shahi rule was challenged by [[Raja Ganesha]], a powerful Hindu landowner, who managed to place his son (a convert to Islam), [[Jalaluddin Muhammad Shah]], on the throne. Jalaluddin had a relatively short-lived but significant reign, during which he helped an Arakanese king to achieve the [[reconquest of Arakan]]. Jalaluddin established control over [[Faridpur District|Fatehabad]].<ref name="banglapedia.org1"/> Jalaluddin also promoted more native Bengali elements into the architecture and governance of the sultanate. He was initially loyal to the Abbasid Caliph but later declared himself as the Caliph of Allah.{{Sfn|Eaton|1996|p=57}} The Ilyas Shahi dynasty was restored in 1432.
Nine kings ruled Bengal from Pandua over the course of ten decades. They built palaces, forts, bridges, mosques, and mausoleums.<ref>{{cite web | url=https://www.livehistoryindia.com/cover-story/2018/06/25/pandua-the-lost-capital-of-the-sultanate-of-bengal | title=Pandua: The Lost Capital of the Sultanate of Bengal | access-date=7 October 2019 | archive-date=5 June 2019 | archive-url=https://web.archive.org/web/20190605200520/https://www.livehistoryindia.com/cover-story/2018/06/25/pandua-the-lost-capital-of-the-sultanate-of-bengal | url-status=dead }}</ref> Chinese envoy [[Ma Huan]] described the city at the time in his travel accounts, which state that "the city walls are very imposing, the bazaars well-arranged, the shops side by side, the pillars in orderly rows, they are full of every kind of goods". Pandua was an export center for cloth and wine. At least six varieties of fine [[muslin]] and four types of wine were found in Pandua. High-quality paper was produced from the bark of Pandua's mulberry trees.<ref>María Dolores Elizalde; Wang Jianlang (2017). ''China's Development from a Global Perspective''. Cambridge Scholars Publishing. pp. 57–70. {{ISBN|978-1-5275-0417-2}}.</ref> Sultan [[Mahmud Shah of Bengal]] shifted the capital from Pandua to Gaur in 1450. One of the probable reasons behind the move was a change in the course of nearby rivers.<ref>Aniruddha Ray (2016). ''Towns and Cities of Medieval India: A Brief Survey''. Taylor & Francis. p. 165. {{ISBN|978-1-351-99731-7}}.</ref>
The reign of Mahmud Shah witnessed greater control over the [[Sundarbans]]. The governor of the Sundarbans, [[Khan Jahan Ali]], built the mint town of [[Mosque City of Bagerhat|Khalifatabad]].<ref>{{cite web | url=https://whc.unesco.org/en/list/321 | title=Historic Mosque City of Bagerhat | access-date=19 December 2019 | archive-date=3 July 2010 | archive-url=https://web.archive.org/web/20100703185032/http://whc.unesco.org/en/list/321 | url-status=live }}</ref> In 1459, [[Jessore District|Jessore]] and [[Khulna Division|Khulna]] became part of Bengal Sultanate.<ref>{{Harvard citation no brackets|Bhattacharya|2020|p=41}}</ref> Like many other officials, Khan Jahan had settled in Bengal after [[Timur]]'s sack of Delhi. During the reign of [[Rukunuddin Barbak Shah]], the [[Kingdom of Mrauk U]] conquered Chittagong. The late 1480s saw four usurper Sultans from the [[Abyssinian people|Abyssinian]] mercenary corps. Tensions between different Muslim communities often affected the sultanate.<ref name="Lewis2011"/>
===Regional kingdom (15th and 16th centuries)===
[[Alauddin Husain Shah|Alauddin Hussain Shah]] gained control of Bengal in 1494 when he was prime minister. Alauddin Husain Shah founded the [[Hussain Shahi dynasty]]. [[Francis Buchanan-Hamilton]]'s writings make mention of a manuscript found in the former Bengali capital of [[Hazrat Pandua|Pandua]] which labels Hussain as a native of a village named [[Gobindaganj Upazila|Devnagar]] in Rangpur who seized an opportunity to redeem the throne of Bengal that his grandfather, Sultan Ibrahim, had held seventy years prior.<ref name="SarkarP151">{{cite book |title=The History of Bengal|publisher=Academica Asiatica|year=1973|editor-last=Sarkar|editor-first=Jadunath|editor-link=Jadunath Sarkar|volume=II: Muslim Period, 1200–1757|location=Patna|chapter=VII: The Husain Shāhī Dynasty|oclc=924890|orig-year=First published 1948|chapter-url=https://archive.org/details/in.ernet.dli.2015.24396/page/n171/mode/1up|page=142}}</ref> The local Bengali traditions make him a native of [[Rangpur, Bangladesh|Rangpur]],{{Sfn|Majumdar|1980|loc=p. [https://archive.org/details/delhisultanate0006rcma/page/215/mode/1up 215–216]}} while other sources describe the dynasty to have Arab [[Sayyid]]{{Sfn|Eaton|1996|p=63|loc=Ala al-Din Hasan, a Mecan Arab...}}<ref>{{Cite book |last=Markovits |first=Claude |url=https://books.google.com/books?id=r2OKvG5wbaAC&pg=PA38 |title=A History of Modern India, 1480–1950 |date=2004|publisher=Anthem Press |isbn=978-1-84331-152-2 |language=en |page=38 |access-date=2 August 2023 |archive-date=2 August 2023 |archive-url=https://web.archive.org/web/20230802114425/https://books.google.com.pk/books?id=r2OKvG5wbaAC&pg=PA38&dq=&hl=en&newbks=1&newbks_redir=0&source=gb_mobile_search&sa=X&ved=2ahUKEwihouG78b2AAxWLXqQEHajIBks4ChDoAXoECAMQAw |url-status=live}}</ref><ref>{{Cite book |last=Jr |first=Everett Jenkins |url=https://books.google.com/books?id=xBIkCQAAQBAJ&pg=PA335 |title=The Muslim Diaspora (Volume 1, 570–1500): A Comprehensive Chronology of the Spread of Islam in Asia, Africa, Europe and the Americas |date=2015 |publisher=McFarland |isbn=978-1-4766-0888-4 |language=en |page=335 |access-date=2 August 2023 |archive-date=2 August 2023 |archive-url=https://web.archive.org/web/20230802114426/https://books.google.com.pk/books?id=xBIkCQAAQBAJ&pg=PA335&dq=&hl=en&newbks=1&newbks_redir=0&source=gb_mobile_search&sa=X&ved=2ahUKEwiggbf08b2AAxVaQaQEHeZgAzE4FBDoAXoECAQQAw |url-status=live}}</ref> origins. [[Nitish Sengupta]] asserts that Alauddin's mother was a Bengali,<ref name=":0">{{Cite book |last=Sengupta |first=Nitish |title=Land of Two Rivers: A History of Bengal from the Mahabharata to Mujib |publisher=Penguin Books India |isbn=9780143416784 |publication-date=2011 |pages=10}}</ref> crediting Alauddin Hussain Shah of being the first Bengali ruler of Gaur. Alauddin brought end to a period of instability. As sultan, Hussain Shah ruled until 1519. The dynasty he founded reigned until 1538. Muslims and Hindus jointly served in the royal administration during the Hussain Shahi dynasty. This era is often regarded as the golden age of the Bengal Sultanate, in which Bengali territory included areas of [[Arakan]], [[Odisha|Orissa]], [[Tripura]], and [[Assam]].<ref name="Lewis2011"/> Under the order of Hussain Shah, [[Shah Ismail Ghazi]] commanded the Bengali forces in the [[Conquest of Kamata]], conquering large parts of Assam. After overthrowing the Hindu [[Khen dynasty]], Prince [[Shahzada Danyal|Danyal]] was appointed the governor of the new region. Hussain Shah also restored Bengali sovereignty in Chittagong and northern Arakan after the [[Bengal–Mrauk U War (1512–1516)|war of 1512–1516]]. Hussain Shah minted coins with the proclamation "conqueror of Kamrupa, Kamata, Jajnagar and Orissa".<ref>{{cite Banglapedia |article=Kamata-Kamatapura}}</ref> According to historian [[Jadunath Sarkar]], a 1513 inscription from Sonargaon indicates that Hussain Shah annexed a part of the [[Twipra Kingdom]].{{Sfn|Majumdar|1980|p=219, 243}} The [[Pratapgarh Kingdom]] came under Bengali [[suzerainty]].<ref>{{cite wikisource |script-title=bn:শ্রীহট্রের ইতিবৃত্ত: উত্তরাংশ |title=Srihattar Itibritta: Uttarrangsho |wslink=পাতা:শ্রীহট্টের_ইতিবৃত্ত_-_উত্তরাংশ.pdf/৪৮৪ |wslanguage=bn |last=Choudhury |first=Achyut Charan |author-link=Achyut Charan Choudhury |year=1917 |location=Calcutta |publisher=Katha |page=484}}</ref><ref>{{cite book |last1=Motahar |first1=Hosne Ara |editor-last1=Ahmed |editor-first1=Sharif Uddin |chapter=Museum Establishment and Heritage Preservation: Sylhet Perspective |title=Sylhet: History and Heritage |year=1999 |publisher=Bangladesh Itihas Samiti |isbn=984-31-0478-1 |pages=714–715}}</ref> Hussain Shah also waged several campaigns against the [[Gajapati rulers]] of Orissa.{{Sfn|Majumdar|1980|p=218}} Hussain Shah extended Bengali territory in the west beyond Bihar, up to [[Saran district|Saran]] in [[Jaunpur Sultanate|Jaunpur]]. The Sultan of Jaunpur took refuge in Bengal after an invasion by the [[Lodi dynasty]] of Delhi. The Delhi Sultan attacked Bengal in pursuit of the Jaunpur Sultan. Unable to make headway, the Delhi Sultan withdrew after concluding a peace treaty with Bengal.<ref>{{Harvard citation|Hasan|2007|ps=“[Husayn Shah pushed] its western frontier past Bihar up to Saran in Jaunpur ... when Sultan Husayn Shah Sharqi of Jaunpur fled to Bengal after being defeated in battle by Sultan Sikandar Lodhi of Delhi, the latter attacked Bengal in pursuit of the Jaunpur ruler. Unable to make any gains, Sikandar Lodhi returned home after concluding a peace treaty with the Bengal sultan.”|pp=16-17}}</ref> Under [[Nasiruddin Nasrat Shah]], the Sultanate pushed into the [[Mithila (region)|Mithila]] region and annexed the ruling [[Oiniwar dynasty]] in 1526 with the ruler of the Oiniwars, Laksminathasimha, being killed in battle.<ref name=Schwartzberg1992>{{cite book |last1=Schwartzberg |first1=Joseph |title=A Historical Atlas of South Asia |date=1992 |publisher=University of Chicago Press |isbn=9780195068696 |page=40 |url=https://dsal.uchicago.edu/reference/schwartzberg/pager.html?object=077 |archive-date=22 February 2024 |access-date=23 March 2024 |archive-url=https://web.archive.org/web/20240222200743/https://dsal.uchicago.edu/reference/schwartzberg/pager.html?object=077 |url-status=dead }}</ref><ref name=":1">{{cite journal |last1=Mishra |first1=Vijaykanta |title=Chronology of the Oiniwara Dynasty of Mithila |journal=Proceedings of the Indian History Congress |year=1953 |volume=16 |pages=200–210 |jstor=44303873}}</ref>
Embassies from [[Portuguese India]] frequented Bengal after the landing of [[Vasco Da Gama]] in the principality of Calicut.<ref name="en.banglapedia.org">{{cite Banglapedia|article=Portuguese, The}}</ref> Individual Portuguese merchants are recorded to have lived in the Bengal Sultanate's capital of Gaur. Portuguese politics played out in Gaur as a reflection of contradictions in contemporary Portugal.<ref name="en.banglapedia.org"/> The Portuguese provided vivid descriptions of Gaur. They compared the affluence of Gaur with [[Lisbon]]. The city included a citadel, a royal palace and [[Durbar (court)|durbar]], mosques, houses for the rich, and bustling bazaars. Portuguese historian Castenhada de Lopez described the houses of Gaur as being one-storeyed with ornamental floor tiles, courtyards, and gardens. Gaur was the centre of regional politics. The Sultan of Bengal gave permission for establishing the [[Portuguese settlement in Chittagong]]. During the period of the [[Iberian Union]], there was no official Portuguese sovereignty over Chittagong. The Portuguese trading post was dominated by [[pirate]]s who allied with the Arakanese against Bengal.
[[File:Babur crossing the river Son.jpg|thumb|upright|[[Babur]] crossing the Son River. The river was the western boundary of the Bengal Sultanate during the Karrani dynasty]]
===Decline (16th century)===
{{Main|Mughal conquest of Bengal}}
The absorption of Bengal into the [[Mughal Empire]] was a gradual process. It began with the defeat of Bengal forces under Sultan [[Nasiruddin Nasrat Shah]] by the first Mughal ruler [[Babur]] at the Battle of Ghaghra. The second Mughal ruler [[Humayun]] occupied the Bengal capital of Gaur during the invasion of [[Sher Shah Suri]] against both the Mughals and Bengal Sultans. Humayun later took refuge in the [[Safavid Empire]] in Persia. Sher Shah Suri succeeded in conquering Bengal, forming the [[Sur Empire]], which was of Afghan origin. During this period, the [[Grand Trunk Road]] was renovated, while the Sur rulers placed successive governors in Bengal.<ref name="Elisseeff1998">{{cite book|author=Vadime Elisseeff|title=The Silk Roads: Highways of Culture and Commerce|url=https://books.google.com/books?id=nVVoRKSZxagC&pg=PA161|year=1998|publisher=Berghahn Books|isbn=978-1-57181-221-6|page=161|url-status=live|archive-url=https://web.archive.org/web/20180515014103/https://books.google.com/books?id=nVVoRKSZxagC&pg=PA161|archive-date=15 May 2018}}</ref> The third governor [[Muhammad Khan Sur]] declared independence after the death of [[Islam Shah Suri]]. Muhammad Khan ended the interrupting period of Delhi's rule and re-established the Bengal Sultanate under the Muhammad Shahi dynasty, which was also of Afghan origin.<ref>{{Cite book |last=Sarker |first=Sunil Kumar |url=https://books.google.com/books?id=H8GH0MBWfcoC&q=muhammad+khan+sur+independence |title=Himu, the Hindu "Hero" of Medieval India: Against the Background of Afghan-Mughal Conflicts |date=1994 |publisher=Atlantic Publishers & Dist |isbn=978-81-7156-483-5 |language=en|page=46}}</ref>
The [[Afghan (ethnonym)|Afghan]] [[Karrani dynasty]] was the last ruling dynasty of the sultanate. According to the ''[[Riyaz-us-Salatin]]'', Sultan [[Sulaiman Khan Karrani]] shifted the capital from Gaur to [[Tanda, Bengal|Tanda]] in 1565.{{Sfn|Eaton|1996|p=143}} Sulaiman Khan Karrani annexed large parts of Orissa. During his reign, the Bengal Sultanate's territory extended from [[Cooch Behar State|Koch Bihar]] in the north to [[Puri]] in the south and from the [[Son River]] in the west to the [[Brahmaputra River]] in the east. The Mughals became determined to bring an end to the expansionism of the Bengal Sultanate; while eager to absorb the Bengal region for its riches. The [[Battle of Tukaroi]] in Orissa saw Mughal forces led by [[Akbar]] overwhelm the Bengal Sultanate's forces led by the last Sultan [[Daud Khan Karrani]], resulting in the Treaty of [[Cuttack]]. Mughal rule formally began with the [[Battle of Raj Mahal]] when the last reigning Sultan of Bengal was defeated by the forces of Akbar. The Mughal province of [[Bengal Subah]] was created. The eastern deltaic [[Bhati (region)|Bhati]] region remained outside of Mughal control until being absorbed in the early 17th century. The delta was controlled by a confederation of twelve aristocrats of the former sultanate, who became known as the [[Baro Bhuyans]]. Their leader was [[Isa Khan]], a zamindar and a former nobleman of the sultanate through his mother princess [[Syeda Momena Khatun]]. The confederation was made up of [[petty kingdoms]]. The Mughal government eventually suppressed the remnants of the sultanate in the Bhati area and brought all of Bengal under full Mughal control.{{Citation needed|date=January 2024}}
==Administration==
[[File:Inside Kusumba Mosque (02).jpg|thumb|The Sultan's Throne in [[Kusumba Mosque]]. Many mosques across the sultanate had an in-built throne for the Sultan. The mosques served as royal courts.]]
The Bengal Sultanate was an [[absolute monarchy]], and took influence from [[Persianate society|Persianate]] traditions. Its revenue system was maintained in the [[Bengali language]] throughout the course of its history.<ref name="auto">{{cite encyclopedia|url=http://www.iranicaonline.org/articles/bengal|title=Bengal|encyclopedia=Encyclopædia Iranica|url-status=live|archive-url=https://web.archive.org/web/20170930180854/http://www.iranicaonline.org/articles/bengal|archive-date=30 September 2017}}</ref> The government employed both Muslims and Hindus, promoting a form of religious pluralism.<ref>{{cite book |author=Lewis |first=David |url=https://books.google.com/books?id=5lH40gT7xvYC&pg=PA44 |title=Bangladesh: Politics, Economy and Civil Society |publisher=Cambridge University Press |year=2011 |isbn=978-1-139-50257-3 |pages=44–45}} "He founded the Bengali Husayn Shahi dynasty, which ruled from 1493 to 1538, and was known to be tolerant to Hindus, employing many on them in his service and promoting a form of religious pluralism"</ref> In addition to the royal family and government body, the Sultan also relied on the support of the ''[[ulama]]'' (Islamic scholars).<ref>{{cite Banglapedia|article=Nur Qutb Alam|author=Karim|first=Abdul|author1-link=Abdul Karim (historian)}}</ref>
The Sultanate was divided into administrative subdivisions such as ''arsa'' and ''iqlim'', which were further divided into ''mahals'', ''[[thana]]s'' and ''[[qasba]]s''.<ref name="dani">{{cite book |author=Dani |first=Ahmad Hasan |author-link=Ahmad Hasan Dani |title=Asiatic Society Of Pakistan Vol II |year=1957 |pages=114–116 |chapter=Analysis of the Inscriptions |chapter-url=https://archive.org/details/in.ernet.dli.2015.126929/page/n125}}</ref>
=== Capital city ===
[[File:Silver Coin of Jalaluddin.jpg|thumb|Silver coin of [[Jalaluddin Muhammad Shah|Sultan Jalaluddin Muhammad Shah]] with a lion inscription]]
From 1342 to 1415, the [[Ilyas Shahi dynasty]] ruled Bengal from Pandua, followed by the [[House of Ganesha|House of Raja Ganesh]] in Pandua (1415–1433). During the reign of [[Ghiyasuddin Azam Shah]] ({{Reign|1390|1411}}), [[Sonargaon]] became the capital of the sultanate.<ref name="Banglapedia-Sonargaon" /> The restored Ilyas Shahi dynasty governed from Gaur (1433–1486), succeeded by the [[Habshi dynasty|Abyssinian Sultans]] (1486–1493) and [[Hussain Shahi dynasty]] (1493–1538) in Gaur. The Afghan sultans of the House of [[Sher Shah Sur]] (1538–c. 1553) and House of Muhammad Khan (c. 1553–1564) both ruled from Gaur while the [[Karrani dynasty]] (1564–1576) ruled in [[Tanda, Bengal|Tanda]].{{Sfn|Michell|1984|p=28}}
{| class="wikitable sortable"
|-
! Period
! Dynasty
! Capital
|-
| 1342–1415
| [[Ilyas Shahi dynasty]]
| Pandua
|-
| 1415–1433
| [[House of Ganesha]]
| Pandua
|-
| 1433–1486
| [[Ilyas Shahi dynasty#Restored dynasty|Restored Ilyas Shahi dynasty]]
| Gaur
|-
| 1486–1493
| [[Habshi dynasty]]
| Gaur
|-
| 1493–1538
| [[Hussain Shahi dynasty]]
| Gaur
|-
| c. 1553–1564
| [[House of Muhammad Khan]]
| Tanda
|-
| 1564–1576
| [[Karrani dynasty]]
| Tanda
|}
===Mint towns===
Mint towns consisted of royal and provincial capitals where taka coins were minted, thus developing the areas as important economic urban centres within the Sultanate. With the expansion of the empire, the number of mint towns increased gradually. The following is a partial listing of mint towns:<ref name="banglapedia1">{{cite Banglapedia|article=Mint Towns}}</ref>
{{columns-list|colwidth=20em|
# Jannatabad ([[Lakhnauti]])
# Muzzamabad ([[Sonargaon]])
# Ghiyaspur ([[Mymensingh]])
# [[Satgaon]]
# Firuzabad ([[Hazrat Pandua]])
# Shahr-i-Naw (Hazrat Pandua)
# Fathabad ([[Faridpur District|Faridpur]])
# Chatgaon ([[Chittagong]])
# Mahmudabad ([[Jessore (city)|Jessore]] and [[Nadia district|Nadia]])
# Barbakaabad ([[Dinajpur]])
# Muzaffarabad (Pandua)
# Muhammadabad ([[Baro Bazar Union|Baro Bazar]])
#[[Hasnabad|Husaynabad]]
# Chandrabad ([[Murshidabad district]])
# Nusratabad ([[Dinajpur District, Bangladesh|Dinajpur district]])
# [[Khalifatabad]]/Badarpur (Bagerhat district)
# Sharifabad ([[Birbhum district]])
# [[Tanda, Bengal|Khwaspur Tandah]] (Malda district)
# [[Rohtasgarh|Rotaspur]]
}}
== Military ==
[[File:Attributed to Hiranand - Illustration from a Dictionary (unidentified)- Da'ud Receives a Robe of Honor from Mun'im Khan - Google Art Project.jpg|thumb|Sultan Daud Khan Karrani receives a robe of honour from Mughal general Munim Khan]]The Sultans had a well-organised army, including cavalry, artillery, infantry and war elephants; and a navy. Due to the riverine geography and climate, it was not feasible to use cavalry throughout the year in Bengal. The cavalry was probably the weakest component of the Bengal Sultanate's army, as the horses had to be imported from foreign countries. The artillery was an important section. Portuguese historian [[João de Barros]] opined that the military supremacy of Bengal over Arakan and Tripura was due to its efficient artillery. The artillery used cannons and guns of various sizes.<ref name="banglapedia2">{{cite Banglapedia|article=Military}}</ref> The ''paiks'' formed the vital part of the Bengal infantry during this period. There were occasions when the paiks also tackled political situations. The particular battle array of the foot-soldiers who used bows, arrows and guns attracted the attention of Babur.<ref name="banglapedia2" />
[[War elephant]]s played an important part in the Bengal army. Apart from carrying war materials, elephants were also used for the movement of the armed personnel. In riverine Bengal the usefulness of elephants, though very slow, could not be minimised. The navy was of prime necessity in riverine Bengal. In fact, the cavalry could ensure the hold over this country for a period of six months whereas the boats backed by the paiks could command supremacy over the other half of the year. Since the time of Iwaz Khalji, who first organised a naval force in Islamic Bengal, the war boats played an important role in the political affairs of the country. The chief of the admiralty had various responsibilities, including [[Shipbuilding in Bangladesh|shipbuilding]], river transport, to fit out strong boats for transporting war elephants; to recruit seamen; to patrol the rivers and to collect tolls at ghats. The efficiency of the navy eroded during the Hussain Shahi dynasty. The Sultans also built forts, including temporary mud walled forts.<ref name="banglapedia2" />
== Campaigns and conquests ==
[[File:Defeat of the last Bengal Sultan by Akbar.jpg|thumb|Akbar leads his army into battle against Daud Khan Karrani, the last Sultan of Bengal]]
===Bengal–Delhi Wars===
{{Main|Bengal Sultanate–Delhi Sultanate War}}
In 1353, the Sultan of Delhi attacked the newly formed Bengal Sultanate. After the siege of Ekdala Fort, Bengal agreed to pay a tribute to the Sultan of Delhi. In 1359, Delhi again invaded Bengal after the previous peace treaty collapsed and this time the Delhi forces were repulsed leading to Bengali victory. However, negotiations ultimately resulted in a new treaty in which Delhi recognized the independence of Bengal.<ref name="Kunal Chakrabarti 2013 p. 12" /> The Bengal Sultans also received support from South Indian allies. During the 16th century, the Lodi dynasty of Delhi again attacked Bengal in pursuit of the Sultan of Jaunpur. The Lodis eventually agreed to a peace treaty with Bengal.
===Bengal–Jaunpur War===
{{Main|Bengal Sultanate–Jaunpur Sultanate War}}
The Jaunpur Sultanate attacked Bengal during the 15th century. With diplomatic help from Ming China and the [[Timurid Empire|Timurid]] ruler of [[Herat]], Bengal fended off the Jaunpuri invasion.{{Sfn|Eaton|1996|p=53}}<ref>{{Harvard citation|Hasan|2007|p=15|ps=“He also wrote to Sultan Ibrahim Sharqi of the neighbouring kingdom of Jaunpur imploring him to invade Bengal and rid them of Raja Ganesh, but the Raja was able to deal successfully with the invader.”}}</ref> The motivation behind this sudden war was the newly emerged Hindu House of Ganesha which rose to prominence after Raja Ganesha rose to power by assassinating the Sultans of the previous dynasty. Qutb al Alam a powerful Muslim holy man was asked by Raja Ganesha for help due to the imminent threat of invasion soon after Ganesha usurped the throne. Qutb Alam eventually came to the agreement that Raja Ganesha's son, Jadu, would convert to Islam and rule in his place. Raja Ganesha agreed and Jadu started ruling Bengal as Jalaluddin Muhammad Shah in 1415.
The war began in 1415 and ended in 1420.{{Sfn|Eaton|1996|p=53}} The Jaunpaur Sultanate challenged the newly emerged Hindu dynasty of Raja Ganesha. Raja Ganesha was later removed as a result but his son Jalaluddin Muhammad Shah converted to Islam and ruled the Sultanate. Parts of the Jaunpur Sultanate were annexed by Bengal and peace was established between the two states.
The Timurid Empire as well as[[Ming China]] mediated the war. A diplomat in the court of Shahrukh Mirza recorded that the Timurid ruler of Herat intervened during the Bengal-Jaunpur conflict after a request from the Sultan of Bengal. The record speaks of Shahrukh Mirza "directing the ruler of Jaunpur to abstain from attacking the King of Bengal, or to take the consequence upon himself. To which the intimation of the Jaunpur ruler was obedient, and desisted from his attacks upon Bengal".{{Sfn|Eaton|1996|p=53}} Records from Ming China state that the Yongle Emperor also mediated between Jaunpur and Bengal after the Bengali ambassador in his Peking court complained of the conflict.<ref>{{Cite book |last=Tan |first=Chung |title=India and China Twenty Centuries of Civilization Interaction and Vibrations |publisher=Project of History of Indian Science, Philosophy and Culture, Centre for Studies in Civilizations |isbn=9788187586210 |publication-date=2005 |pages=361}}</ref>
=== Bengali–Assamese Wars ===
{{See also|Bengal Sultanate–Kamata Kingdom War|Turbak's invasion of Assam|Muslim Invasions of Assam}}
==== Ilyas Shahi Dynasty ====
[[Shamsuddin Ilyas Shah]] led the first military engagement and led a successful campaign against the [[Kamarupa]] kingdom in present-day Assam, being the first Muslim king to capture [[Guwahati]].{{citation needed|date=January 2025}}
The invasion of Assam by [[Sikandar Shah]] (son of Shamsuddin Ilyas Shah) weakened Indranarayan. Though Shah had to retreat from central Assam because of an attack on Bengal by [[Firuz Shah Tughlaq]], Indranarayana was sufficiently damaged that a Bhuyan from [[Darrang]], Arimatta, was able to usurp power.{{efn|Indranarayan's inability to resist the Muslims paved the way for the rise of the Bhuyans. Indeed, one of them, Arimatta or Sasanka became so ambitious that he killed Indranarayan and usurped the throne of Kamata.<ref>{{Cite journal |last=Dorji |first=Lham |year=2005 |title=The Historical Anecdotes of Kheng Nobilities |journal=Journal of Bhutan Studies |publisher=Centre for Bhutan Studies |volume=13 |issn=1608-411X |place=Thimpu}}</ref>}}
==== Habshi Conquest of Assam ====
[[Shamsuddin Muzaffar Shah]], the last ruler of the Habshi dynasty defeated the [[Kamata Kingdom]] of Assam. He developed an army of 40,000 soldiers; recruiting thousands of Afghans and 5,000 Abyssinians.<ref>{{cite Banglapedia|author=Ibrahim, Muhammad|article=Rule of Afghans}}</ref> In 896 AH (1490–1491 AD), he constructed a [[mosque]] in [[Gangarampur]], adjacent to the [[Dargah]] of Makhdum Mawlana Ata. On 30 December 1492, his governor [[Khurshid Khan]] established a [[Jama Mosque]] near [[Chapai Nawabganj District|Nawabganj]] on the banks of the [[Mahananda River]].<ref name="dani2">{{cite book |author=Ahmad Hasan Dani |author-link=Ahmad Hasan Dani |title=Asiatic Society Of Pakistan Vol-ii |date=20 April 2024 |chapter=Analysis of the Inscriptions |chapter-url=https://archive.org/details/in.ernet.dli.2015.126929/page/n51/mode/2up}}</ref> He defeated the Kamata Kingdom in battle and conquered their territory in the year 898 AH (1492–93 AD) and subsequently issued coins bearing ''Kamata Mardan 898''.<ref>{{cite Banglapedia|article=Coins|author=Muhammad Rezaul Karim}}</ref>
[[File:Rangamati_Mosque.jpg|thumb|The [[Panbari Mosque]] built by Sultan [[Alauddin Husain Shah|Husain Shah]] to after the successful [[Conquest of Kamata]].<ref>{{cite web |author=Rupkamal |date=3 June 2011 |title=A forgotten chapter of history – Panbari mosque |url=http://itsmynortheast.com/2011/06/a-forgotten-chapter-of-history-panbari-mosque/#comment-502 |url-status=dead |archive-url=https://web.archive.org/web/20160404144612/http://itsmynortheast.com/2011/06/a-forgotten-chapter-of-history-panbari-mosque/#comment-502 |archive-date=4 April 2016 |access-date=26 December 2012 |publisher=Its my northeast}}</ref>]]
==== Hussein Shah's conquest ====
{{See also|Bengal Sultanate–Kamata Kingdom War}}
During Husain Shah's rule, Bengali control over Assam reached its zenith. Under the military command of [[Shah Ismail Ghazi]], the Bengali army overthrew the Kamata Kingdom's Hindu [[Khen dynasty]] in 1498. In 1499, Husain Shah's general Shah Ismail Ghazi led an expedition to the Kamata Kingdom. Husain Shah's army imprisoned King Nilambar of Kamata, pillaged the capital city and annexed the territory up to [[Hajo]]. The victory was publicly recorded in an inscription at [[Malda, West Bengal|Malda]].{{Sfn|Majumdar|1980|p=217}}
==== Gauda-Ahom War ====
{{See also|Turbak's invasion of Assam}}
In 1532, a [[Bengali Muslims|Bengali Muslim]] commander named Turbak invaded [[Ahom kingdom|Ahom]] territory with a force comprising 1,000 cavalry, 30 elephants, and numerous guns and cannons. He set up camp near the fort at Singiri.{{sfn|Acharyya|1966|p=95}} Ahom forces, under [[Suklenmung|Suklen]], crossed the Brahmaputra and attacked the Muslim encampment, despite warnings from astrologers. However, the battle ended in disaster for the Ahoms, who suffered heavy losses, with eight commanders killed. [[Suklenmung|Suklen]] barely escaped with a serious wound. The Muslim forces stopped advancing for the rainy season at Koilabar.{{sfn|Basu|1970|p=25}}{{sfn|Shakespear|2012|p=31–32}}
The Ahoms retreated to Sala after their initial setbacks,{{sfn|Shakespear|2012|p=31–32}} where they regrouped with reinforcements and appointed Senglung as the new Commander-in-Chief. By March 1533, however, the Ahoms turned the tide in their favor. In a naval [[Battle of Duimunisila|battle at Duimunisila]], they inflicted significant losses on the Muslim forces, The Muslim commanders, Taju and Sangal, were killed, The invading forces lost 2,500 men, 20 ships, and several large cannons, marking a turning point in the war in favor of the Ahoms.{{sfn|Shakespear|2012|p=31–32}}{{sfn|Basu|1970|p=25}}
During this time, Husain Khan, another Muslim general, arrived to reinforce Turbak's forces with six elephants, 100 cavalry, and 1,000 infantry troops. Reinforced by Hussain Khan, Turbak took position near the Dikrai River, across from the Ahom camp. However, the Ahoms were now better prepared and managed to defeat the Muslims in several engagements. The final confrontation occurred near the [[Bharali river|Bharali River]], where Turbak was killed by a spear, and the Muslims were thrown into disarray. The Ahoms pursued the retreating forces all the way to the [[Karatoya River]], where they achieved a complete victory.{{sfn|Acharyya|1966|p=96}}
=== Campaigns in Arakan ===
{{See also|Restoration of Min Saw Mon|3=Bengal–Mrauk U War (1512–1516)|4=Mrauk U invasion of Chittagong}}
Arakan and the Brahmaputra Valley were often subjected to Bengali invasions. The restoration of Min Saw Mon was a military campaign led by the Bengal Sultanate to help [[Min Saw Mon]] regain control of his [[Launggyet Dynasty]]. The campaign was successful. Min Saw Mon was restored to the Launggyet throne, and Arakan became a [[vassal state]] of the Bengal Sultanate. However, conflict later emerged between Arakan and Bengal based on the control of [[Chittagong]]. Arakan asserted its independence as a coastal power. Under Alauddin Husain Shah, Bengali sovereignty was restored in Chittagong and northern Arakan. However, the [[Maghs|Arakanese]] persisted to fight over Chittagong, often allying with [[Portuguese people|Portuguese pirates]].
=== Campaigns in Orissa ===
{{See also|Bengal Sultanate conquest of Orissa}}
==== Eastern-Ganga Dynasty ====
The first conflict between the Bengal Sultanate and the [[Odia people|Odias]] dates back to the time of Shamsuddin Ilyas Shah where on his conquests subjugated Orissa. He defeated Bhanudeva II of the [[eastern Ganga dynasty]]. He further sacked [[Jajpur]], [[Cuttack]] and reached as far as the [[Chilika Lake]].
==== Gajapati Empire ====
During the reign of Alauddin Hussain Shah, his commander Shah Ismail Ghazi led his first campaign against the confronting [[Kapilendra Deva]] of the [[Gajapati Empire]] on the south-western frontier. He defeated the Gajapati Empire, recovering [[Gar Mandaran|Mandaran]],<ref>{{Cite web |date=2019-11-05 |title=Gold Tanka of Bengal Sultan Rukn Al-Din Barbak Shah |url=http://www.mintageworld.com/media/detail/10736-gold-tanka-of-bengal-sultan-rukn-Al-din-barbak-shah |access-date=2020-04-01 |website=Mintage World}}</ref> where he constructed a fort.<ref>{{Cite book |last=Chattopadhyay |first=Bankim Chandra |url=https://books.google.com/books?id=PobpAgAAQBAJ&q=Shah+Ismail+Ghazi+mandaran&pg=PT73 |title=Durgeshnandini |date=2014-02-25 |publisher=Diamond Pocket Books Pvt Ltd |isbn=978-93-5083-240-0}}</ref><ref>{{Cite web |title=Bader Maqams or the shrines of Badr Al-Din-Auliya (Part II) - Kaladan Press Network |url=https://www.kaladanpress.org/index.php/scholar-column-mainmenu-36/arakan/1135-bader-maqams-or-the-shrines-of-badr-al-din-auliya-part-ii.html |access-date=2020-04-01 |website=www.kaladanpress.org |archive-date=15 February 2021 |archive-url=https://web.archive.org/web/20210215031725/https://www.kaladanpress.org/index.php/scholar-column-mainmenu-36/arakan/1135-bader-maqams-or-the-shrines-of-badr-al-din-auliya-part-ii.html |url-status=dead }}</ref>
==== Chalukya and Bhoi dynasty ====
Orissa was also conquered again by [[Sulaiman Khan Karrani]] and Orissa was annexed into the Bengal Sultanate in 1568. The [[Eastern Chalukyas|Chalukya dynasty]] and Mughal Empire forged a close alliance through Akbar and his increasing desire to annex Bengal. Akbar and [[Mukunda Deva]] the ruler of the [[Eastern Chalukyas|Chalukya dynasty]] exchanged many gifts in the hopes of defeating Bengal.<ref>{{Cite book |last=Ranjan |first=Patnaik |url=https://books.google.com/books?id=mIzXAAAAMAAJ |title=Religious History of Orissa |publisher=Indian Publishers' Distributors |year=2004 |isbn=978-81-7341-339-1 |pages=271}}</ref> However the [[Bhoi dynasty]] and [[Eastern Chalukyas|Chalukya dynasty]] were defeated leading to Bengali sovereignty over Orissa.<ref>{{Cite book |last=Anwarul |first=Haque |url=https://books.google.com/books?id=Co8eAAAAMAAJ |title=Muslim Administration in Orissa, 1568–1751 |publisher=Punthi Pustak |year=1980 |pages=50–58}}</ref>
=== Campaigns in Nepal ===
{{See also|Bengal Invasion of Nepal (1349)}}
Shamsuddin Ilyas Shah was the first Sultan of the Bengal and unified the three city-states into what is now known as the Bengal Sultanate. He was the first to lead a Muslim army into Nepal.<ref name=":2" /> He began his expedition with the occupation of [[Tirhut]] which he divided into north and south. Ilyas kept the southern part for himself stretching from [[Begusarai district|Begusarai]] to [[Inner Terai Valleys of Nepal|Nepal Terai]] and restored the northern part of Tirhut, north of the [[Budhi Gandaki River]] to the ruler of the [[Oiniwar dynasty]], Raja Kameshwar. Its headquarters was situated in the village of [[Hajipur|Ukkacala]] (later known as [[Hajipur]] in his honor),<ref>''Prajñā-bhāratī''. Vol. 6. K.P. Jayaswal Research Institute. 1992. pp. 175–178.</ref> where Ilyas had constructed a large fort and urbanised the area.<ref>Hussain, Syed Ejaz (2000). ''Numismatic Digest''. Vol. 21–22. Numismatic Society of Bombay. pp. 63–64.</ref> Ilyas then thrust through the [[Terai]] plains with his army, into the [[Kathmandu Valley]] ruled by [[Malla dynasty (Nepal)|Jayaraja Deva]]. His army sacked the temple of [[Swayambhunath]] and looted [[Kathmandu]] city for three days, returning to Bengal with plentiful spoils.<ref name=":2" />
Later on during the period of the Hussain Shahi dynasty under [[Nasiruddin Nasrat Shah]], the Sultanate pushed into the [[Mithila (region)|Mithila]] region and annexed the ruling [[Oiniwar dynasty]] in 1526 with the ruler of the Oiniwars, Laksminathasimha, being killed in battle.<ref name="Schwartzberg1992" /><ref name=":1" />
===Sher Shah Suri's invasion===
{{See also|Sur Empire|Battle of Surajgarh}}
Bengal was overwhelmed during the pan-Indian invasion of Sher Shah Suri and became part of the Sur Empire. The invasion prompted the Mughal Empire to occupy parts of Bengal. Both the Mughals and Bengal Sultanate were overrun by the Suri forces. Bengal regained its independence after Suri governors rebelled and re-established the sultanate.
===Bengal–Mughal Wars===
{{Main|Mughal conquest of Bengal}}
The first Mughal emperor Babur turned his sights on Bengal after the Battle of Panipat in 1526. At the Battle of Ghaghra in 1529, Bengal reached a peace treaty with Babur. During the invasion of Sher Shah Suri, the second Mughal emperor Humayun occupied Gaur. The third Mughal emperor Akbar launched a war against Bengal at the Battle of Tukaroi in 1575. Akbar finally defeated the last Sultan of Bengal at the Battle of Raj Mahal in 1576.
== Vassal states ==
Vassal states were a number of tributary states and [[protectorate]]s on the periphery of the Bengal Sultanate under the [[suzerainty]] of the Sultan of Bengal. Direct control was not established over these territories for various reasons. Vassal states had Muslim, Hindu and Buddhist rulers.
=== Arakan ===
[[File:Muhghazi.jpg|thumb|Coinage from Arakan during its vassalage to the Bengal Sultanate]]
In the southeast, Arakan was a prominent vassal of the Bengal Sultanate. In 1430, the Bengal Sultanate restored the Arakanese throne in [[Mrauk U]] after driving out Burmese invaders who came from [[Bagan]]. The [[Kingdom of Mrauk U]] paid tributes to the Sultan of Bengal for a sustained period, with the timeframe ranging between estimates of a century or a few decades.{{Sfn|Eaton|1996|p=64}}<ref name="Ooi2004" /> Arakanese rulers replicated the Sultan's governing techniques, including adopting the title of ''[[shah]]'' and minting coins in Arabic and Bengali inscriptions. A close cultural and commercial relationship developed across the Bay of Bengal.<ref name="Smithsonian">{{Cite magazine |last=Hammer |first=Joshua |date=December 2019 |title=The Hidden City of Myanmar |url=https://www.smithsonianmag.com/travel/hidden-city-myanmar-180973486/ |magazine=Smithsonian |access-date=31 December 2019 |archive-date=19 December 2019 |archive-url=https://web.archive.org/web/20191219143126/https://www.smithsonianmag.com/travel/hidden-city-myanmar-180973486/ |url-status=live }}</ref> Eventually, Arakan asserted its independence. The Kingdom of Mrauk U became a formidable coastal power.
=== Chandradwip ===
In southern Bengal, the island of [[Chandradwip]] hosted remnants of the pre-Islamic Hindu [[Deva dynasty]]. The kingdom was a vassal state of the Bengal Sultanate until the reign of the Hussain Shahi dynasty, when it was formally annexed by the sultanate.<ref name="Hasan1987">{{cite book |author=Sayed Mahmudul Hasan |title=Muslim Monuments of Bangladesh |url=https://books.google.com/books?id=9vdtAAAAMAAJ |year=1987 |publisher=Islamic Foundation Bangladesh |edition=2nd |oclc=21044013 |page=196 |quote=Chandradwip-Bakla was the kingdom of Chandradwip, founded by Danuj Rai. This Hindu Kingdom was annexed by Sultan Alauddin Huasain Shah to his Kingdom in the 15th century A. D. ... Chandrawip-Bakla continued to be a vassal state to Muslim Sultanate until the end of the Husain Shahi rule.}}</ref><ref>{{cite book |title=Population Census of Bangladesh, 1974: District census report |url=https://books.google.com/books?id=cE7C3wpNgX4C |year=1979 |publisher=Bangladesh Bureau of Statistics, Statistics Division, Ministry of Planning, Government of the People's Republic of Bangladesh |access-date=29 November 2019 |archive-date=7 July 2023 |archive-url=https://web.archive.org/web/20230707092905/https://books.google.com/books?id=cE7C3wpNgX4C |url-status=live }}</ref>
=== Pratapgarh ===
In the northeastern [[Barak Valley]], the ruler Bazid of the [[Pratapgarh Kingdom]] declared himself as a Sultan on par with the Sultan of Bengal. This invited the retribution of Alauddin Husain Shah, who dispatched [[Majumdars of Sylhet|Sarwar Khan]] to suppress the newly formed sultanate in Pratapgarh. Bazid was defeated and agreed to pay a tribute to the Sultan of Bengal. He was also made to relinquish his claims over [[Sylhet]], which was under direct Sultanate rule.<ref>{{cite conference |year=1999 |author=Hosne Ara Motahar |editor=Sharif Uddin Ahmed |book-title=Sylhet: History and Heritage |publisher=Bangladesh Itihas Samiti |isbn=978-984-31-0478-6 |page=715 |title=Museum Establishment and Heritage Preservation: Sylhet Perspective}}</ref><ref>{{cite wikisource |script-title=bn:শ্রীহট্রের ইতিবৃত্ত: উত্তরাংশ |title=Srihattar Itibritta: Uttarrangsho |wslink=পাতা:শ্রীহট্টের_ইতিবৃত্ত_-_উত্তরাংশ.pdf/২৮৮ |wslanguage=bn |last=Choudhury |first=Achyut Charan |author-link=Achyut Charan Choudhury |year=1917 |location=Calcutta |publisher=Katha |page=288}}</ref>
=== Tripura ===
In the east, [[Tripura]] was vital to Bengal for the supply of gold, silver and other commodities. Tripura had coarse gold mines and mountain trade networks linked to the Far East. In 1464, the Sultan of Bengal helped [[Ratna Manikya I]] assume the Tripuri throne. Tripura was a prominent vassal of Bengal.{{Sfn|Eaton|1996|p=64}}<ref>{{cite book |author=Rila Mukherjee |title=Pelagic Passageways: The Northern Bay of Bengal Before Colonialism |url=https://books.google.com/books?id=7xeqhnYtrKcC&pg=PA34 |year=2011 |publisher=Primus Books |isbn=978-93-80607-20-7 |pages=34– |quote=The ''Sri Rajmala'' indicates that the periodic invasions of Tripura by the Bengal sultans were part of the same strategy [to control the sub-Himalayan routes from the south-eastern delta]. Mines of coarse gold were found in Tripura. |access-date=29 November 2019 |archive-date=7 July 2023 |archive-url=https://web.archive.org/web/20230707092412/https://books.google.com/books?id=7xeqhnYtrKcC&pg=PA34 |url-status=live }}</ref><ref>{{Harvard citation|Hasan|2007|ps=“[Husayn Shah] reduced the kingdoms of ... Tripura in the east to vassalage.”|p=15}}</ref>
=== Orissa ===
In the southwest, Orissa was prominent in the military history of the Bengal Sultanate. The first Bengali Sultan Shamsuddin Ilyas Shah defeated the rulers of Orissa and extended his realm up to [[Chilika Lake]]. He raided [[Jajpur]] and Cuttack. Ilyas Shah returned to Bengal with plunders from Orissa, including 44 elephants.<ref>{{cite Banglapedia|article=Iliyas Shah}}</ref> During the reign of Alauddin Hussain Shah, Orissa was a vassal state of Bengal.{{Sfn|Eaton|1996|p=64}}<ref>{{Harvard citation|Hasan|2007|p=13|ps=“[Ilyas Shah] extended his domain in every direction by defeating the local Hindu rajas (kings)—in the south to Jajnagar (Orissa).”}}</ref> Northern Orissa was directly ruled by Bengal. During the Karrani dynasty, Orissa was the scene of the Battle of Tukaroi and the Treaty of Cuttack between the Mughals and Bengal Sultanate in 1575.{{citation needed|date=July 2020}}
==Economy==
{{See also|Muslin trade in Bengal|History of the taka}}
[[File:Chinese porcelain and coins of Bengal Sultans in British Museum.jpg|thumb|left|[[Porcelain|Chinese porcelain]] and coins from the Bengal Sultanate in the [[British Museum]]]]
[[File:Maritime links of the Sultanate of Bengal.png|thumb|Maritime links of the Bengal sultanate]]
[[File:Sd2-baggala.JPG|thumb|The [[Baghlah]] was a type of ship widely used by traders in the Indian Ocean, the Arabian Sea, the Bay of Bengal, the Malacca Straits and the South China Sea]]
The economy of the Bengal Sultanate inherited earlier aspects of the Delhi Sultanate, including mint towns, a salaried bureaucracy and the [[jagirdar]] system of land ownership. The production of silver coins inscribed with the name of the Sultan of Bengal was a mark of Bengali sovereignty.<ref name=iranica>{{cite web |website=Encyclopædia Iranica |title=Bengal |url=http://www.iranicaonline.org/articles/bengal |archive-url=https://web.archive.org/web/20180103102347/http://www.iranicaonline.org/articles/bengal |archive-date=3 January 2018}}</ref> Bengal was more successful in perpetuating purely silver coinage than Delhi and other contemporary Asian and European governments. There were three sources of silver. The first source was the leftover silver reserve of previous kingdoms. The second source was the tribute payments of subordinate kingdoms which were paid in silver bullion. The third source was during military campaigns when Bengali forces sacked neighboring states.<ref>John H Munro (2015). ''Money in the Pre-Industrial World: Bullion, Debasements and Coin Substitutes''. Routledge. p. 176. {{ISBN|978-1-317-32191-0}}.</ref>
The apparent vibrancy of the Bengal economy in the beginning of the 15th century is attributed to the end of tribute payments to Delhi, which ceased after Bengali independence and stopped the outflow of wealth. [[Ma Huan]]'s testimony of a flourishing shipbuilding industry was part of the evidence that Bengal enjoyed significant seaborne trade. The expansion of [[muslin]] production, [[sericulture]] and the emergence of several other crafts were indicated in Ma Huan's list of items exported from Bengal to China. Bengali shipping co-existed with Chinese shipping until the latter withdrew from the Indian Ocean in the mid-15th century. The testimony of European travelers such as [[Ludovico di Varthema]], [[Duarte Barbosa]] and [[Tomé Pires]] attest to the presence of a large number of wealthy Bengali merchants and shipowners in [[Malacca Sultanate|Malacca]].<ref name="Habib2011">{{cite book |author=Irfan Habib |title=Economic History of Medieval India, 1200–1500 |url=https://books.google.com/books?id=K8kO4J3mXUAC&pg=PA185 |year=2011 |publisher=Pearson Education India |isbn=978-81-317-2791-1 |page=185 |author-link=Irfan Habib |access-date=29 May 2019 |archive-date=4 April 2023 |archive-url=https://web.archive.org/web/20230404212706/https://books.google.com/books?id=K8kO4J3mXUAC&pg=PA185 |url-status=live }}</ref> Historian [[Rila Mukherjee]] wrote that ports in Bengal may have been [[entrepot]]s, importing goods and re-exporting them to China.<ref name="Mukherjee2011">{{cite book |author=Rila Mukherjee |year=2011 |title=Pelagic Passageways: The Northern Bay of Bengal Before Colonialism |url=https://books.google.com/books?id=7xeqhnYtrKcC&pg=PA30 |publisher=Primus Books |page=30 |isbn=978-93-80607-20-7 |quote=Some of them [items exported from Bengal to China] were probably re-exports. The Bengal ports possibly functioned as entrepots in Western routes in the trade with China. |access-date=17 May 2016 |archive-date=7 July 2023 |archive-url=https://web.archive.org/web/20230707092905/https://books.google.com/books?id=7xeqhnYtrKcC&pg=PA30 |url-status=live }}</ref>
A vigorous riverine shipbuilding tradition existed in Bengal. The shipbuilding tradition is evidenced in the sultanate's naval campaigns in the Ganges delta. The trade between Bengal and the Maldives, based on rice and cowry shells, was probably done on Arab-style [[baghlah]] ships. Chinese accounts point to Bengali ships being prominent in Southeast Asian waters. A vessel from Bengal, probably owned by the Sultan of Bengal, could accommodate three tribute missions- from Bengal, [[Brunei]] and Sumatra- and was evidently the only vessel capable of such a task. Bengali ships were the largest vessels plying in those decades in Southeast Asian waters.<ref name="auto2">{{cite book |editor1=Tapan Raychaudhuri |editor1-link=Tapan Raychaudhuri |editor2=Irfan Habib |editor2-link=Irfan Habib |year=1982 |title=The Cambridge Economic History of India |volume=I |publisher=Cambridge University Press |page=130 |isbn=978-0-521-22692-9}}</ref>
All large business transactions were done in terms of silver taka. Smaller purchases involved [[shell currency]]. One silver coin was worth 10,250 cowry shells. Bengal relied on shiploads of cowry shell imports from the Maldives. Due to the fertile land, there was an abundance of agricultural commodities, including bananas, jackfruits, pomegranate, sugarcane, and honey. Native crops included rice and sesame. Vegetables included ginger, mustard, onions, and garlic among others. There were four types of wines, including coconut, rice, ''tarry'' and ''kajang''. Bengali streets were well provided with eating establishments, drinking houses and bathhouses. At least six varieties of fine muslin cloth existed. Silk fabrics were also abundant. [[Pearling in Bangladesh|Pearls]], rugs and [[ghee]] were other important products. The finest variety of paper was made in Bengal from the bark of [[mulberry]] trees. The high quality of paper was compared with the lightweight white muslin cloth.<ref name="auto3">{{cite book |author1=María Dolores Elizalde |author2=Wang Jianlang |title=China's Development from a Global Perspective |url=https://books.google.com/books?id=mjI9DwAAQBAJ&pg=PA61 |date=2017 |publisher=Cambridge Scholars Publishing |isbn=978-1-5275-0417-2 |pages=57–70 |access-date=30 May 2019 |archive-date=22 October 2023 |archive-url=https://web.archive.org/web/20231022222947/https://books.google.com/books?id=mjI9DwAAQBAJ&pg=PA61#v=onepage&q&f=false |url-status=live }}</ref>
Europeans & Ming Chinese referred to Bengal as "the richest country to trade with".<ref>{{cite book |author=J. N. Nanda |year=2005 |title=Bengal: the unique state |publisher=Concept Publishing Company |page=10 |isbn=978-81-8069-149-2 |quote="Bengal [...] was rich in the production and export of grain, salt, fruit, liquors and wines, precious metals and ornaments besides the output of its handlooms in silk and cotton. Europe referred to Bengal as the richest country to trade with."}}</ref> Bengal was the eastern pole of Islamic India. Like the [[Gujarat Sultanate]] in the western coast of India, Bengal in the east was open to the sea and accumulated profits from trade. Merchants from around the world traded in the [[Bay of Bengal]].<ref name="Markovits2004">{{cite book |editor=Claude Markovits |year=2004 |orig-year=1994 as Histoire de L'Inde Moderne |title=A History of Modern India, 1480–1950 |url=https://books.google.com/books?id=uzOmy2y0Zh4C&pg=PA37 |publisher=Anthem Press |page=37 |isbn=978-1-84331-004-4 |access-date=22 September 2017 |archive-date=22 October 2023 |archive-url=https://web.archive.org/web/20231022222947/https://books.google.com/books?id=uzOmy2y0Zh4C&pg=PA37#v=onepage&q&f=false |url-status=live }}</ref> Cotton textile exports were a unique aspect of the Bengali economy. [[Marco Polo]] noted Bengal's prominence in the textile trade.<ref name=trade>{{cite Banglapedia|author=Chaudhury, Sushil|article=Trade and Commerce}}</ref> In 1569, Venetian explorer Caesar Frederick wrote about how merchants from [[Pegu]] in Burma traded in silver and gold with Bengalis.<ref name=trade/> Overland trade routes such as the Grand Trunk Road connected Bengal to northern India, Central Asia and the Middle East.
==Foreign relations==
The Bengal Sultanate had robust [[foreign relations]]. Records show that the Bengal Sultanate exchanged embassies with states in China, Europe, Africa, Central Asia, South Asia and Southeast Asia. Diplomatic allies helped Bengal to fend off invasions from neighbouring kingdoms. For example, the Timurid ruler of Herat and the Ming emperor of China helped bring an end to the [[Bengal Sultanate–Jaunpur Sultanate War]]. Bengal was also active in regional diplomacy. For example, the ship of the Bengali embassy to China also transported the envoys of [[Bruneian Empire|Brunei]] and [[Aceh Sultanate|Aceh]] ([[Sumatra]]) to China.<ref name="auto2"/> Bengal gave consent to envoys from [[Portuguese India]] for setting up Portuguese trading posts in coastal areas.<ref name="en.banglapedia.org"/> Other European visitors included [[Niccolo De Conti]], [[Ludovico di Varthema]] and Caeser Fredrick from the [[Republic of Venice]] and [[Bologna]].<ref>{{cite Banglapedia|article=Conti, Nicolo de}}</ref><ref>{{cite Banglapedia|article=Frederick, Caeser}}</ref>
In the Islamic world, the sultanate pledged allegiance to the contemporary [[Abbasid Caliphate]], which was at the time held by the [[Mamluk Egypt|Mamluk Sultan]] of [[Cairo]]. The Abbasid caliph was still considered to be the symbolic leader of Sunni Islam at the time, despite dwindling territory under direct caliphate rule. For the Bengali Sultans, relations with the caliphate provided legitimacy among the Muslim clergy. For example, the converted sultan [[Jalaluddin Muhammad Shah]] received recognition from [[Al-Mu'tadid II]], which strengthened Jalaluddin's legitimacy in the eyes of the clergy.<ref name="banglapedia.org1"/> Many coins minted by the Bengal Sultanate bore the names of both the Bengali Sultans and the Abbasid Caliphs.<ref>{{cite Banglapedia|article=Coins}}</ref>
[[File:Tribute Giraffe with Attendant.jpg|thumb|200px|Chinese manuscript ''Tribute Giraffe with Attendant'', depicting a giraffe presented by Bengali envoys to the Ming court (Philadelphia Museum of Art)]]
During the latter part of his reign, Shamsuddin Ilyas Shah established amicable diplomatic relations with [[Firuz Shah Tughlaq|Firuz Shah Tughluq]] ({{Reign|1351|88}}). The both courts exchange of gifts, with Ilyas Shah sending elephants to the Delhi court in return for Turkish and Arabian horses.<ref>{{Harvard citation no brackets|Bhattacharya|2020|p=40}}</ref> Sultan [[Ghiyasuddin Azam Shah]] sponsored the construction of [[madrasa]]s (Islamic theological schools) in the pilgrimage cities of [[Makkah]] and [[Madinah]].{{Sfn|Eaton|1996|p=47}} The schools became known as the [[Ghiyasia Madrasa]] and Banjaliah Madrasa. [[Taqi al-Din Muhammad ibn Ahmad al-Fasi|Taqi al-Din al-Fasi]], a contemporary Arab scholar, was a teacher at the madrasa in Makkah. The madrasa in Madinah was built at a place called Husn al-Atiq near the [[Prophet's Mosque]].<ref name=bpedia>{{cite Banglapedia|author=Abdul Karim|article=Ghiyasia Madrasa}}</ref> Several other Bengali Sultans also sponsored madrasas in the [[Hejaz]].<ref name="banglapedia.org1"/>
In Africa, Sultan [[Barsbay|Ashraf Barsbay]] of Egypt sent the Bengali Sultan a robe of honour and a letter of recognition.{{Sfn|Eaton|1996|p=57}} There are also records of envoys from the East African city-state of [[Malindi]] being hosted in the Bengali court.<ref name="Sobania2003">{{cite book|author=N. W. Sobania|title=Culture and Customs of Kenya|url=https://archive.org/details/culturecustomsof00soba|url-access=registration|year=2003|publisher=Greenwood Publishing Group|isbn=978-0-313-31486-5|page=[https://archive.org/details/culturecustomsof00soba/page/14 14]}}</ref> Animals constituted a significant part of tributes in medieval courts.<ref name="MaBrakel2016"/> The East African envoys brought giraffes, which were also noticed by the Chinese envoys in Bengal.<ref name="Sobania2003"/> In Central Asia, there are records of contacts between Sultan Jalaluddin Muhammad Shah and Sultan [[Shahrukh Mirza]] of the Timurid Empire. In Southeast Asia, European accounts refer to the presence of a large number of Bengali merchants in the [[Malacca Sultanate]]. The merchants were wealthy shipowners. It is yet to be ascertained whether these merchants had a significant role in the Sultan's court.<ref name="Habib2011"/> Ship-owning merchants were often royal envoys.<ref>{{cite book|author1=María Dolores Elizalde|author2=Wang Jianlang|title=China's Development from a Global Perspective|url=https://books.google.com/books?id=mjI9DwAAQBAJ&pg=PA61|date= 2017|publisher=Cambridge Scholars Publishing|isbn=978-1-5275-0417-2|page=68|access-date=30 May 2019|archive-date=22 October 2023|archive-url=https://web.archive.org/web/20231022222947/https://books.google.com/books?id=mjI9DwAAQBAJ&pg=PA61#v=onepage&q&f=false|url-status=live}}</ref> Contacts between Bengal and the Bruneian Empire and the Sumatran Aceh Sultanate are recorded in Chinese accounts.<ref name="auto2"/> Arab traveller and scholar Aḥmad ibn Sulaymān ibn Aḥamd al-Tarūjī (d. 1410), who visited Bengal mentioned the country very prosperous.{{Sfn|Siddiq|2015|p=38}}
Within the subcontinent, Bengal had both tense and peaceful relations with the Delhi Sultanate and the Jaunpur Sultanate. The Delhi Sultanate initially received tributes from the Bengal Sultanate between 1353 and 1359. Tributes stopped after a war and peace treaty in 1359. Sultan Ghiyasuddin Azam sent envoys to the neighboring Jaunpur Sultanate. He sent elephants as gifts to Sultan Malik Sarwar Khwajah-i-Jahan.<ref name="banglapedia.org"/> The two sultanates fought a war between 1415 and 1420. The end of the war brought a long period of peace between the neighbouring states. In 1494, the Jaunpuri Sultan Hussain Shah Sharqi was given refuge in Bengal after being defeated by the [[Lodi dynasty]] of Delhi.<ref>{{Harvard citation|Hasan|2007|ps=“[Husayn Shah pushed] its western frontier past Bihar up to Saran in Jaunpur ... when Sultan Husayn Shah Sharqi of Jaunpur fled to Bengal after being defeated in battle by Sultan Sikandar Lodhi of Delhi, the latter attacked Bengal in pursuit of the Jaunpur ruler. Unable to make any gains, Sikandar Lodhi returned home after concluding a peace treaty with the Bengal sultan.”|pp=16-17}}</ref>
On the coastline of the Bay of Bengal, the Bengal Sultanate became influential in the control of Arakan. [[Min Saw Mon]], a deposed Arakanese king, fled to Bengal after a Burmese invasion. With the support of Bengali forces led by a Pashtun general, he regained control of his country during the [[Reconquest of Arakan]]. The restored Arakanese realm became a vassal state of Bengal. A war with Arakan in 1459 led to the defeat of Bengali Sultan [[Rukunuddin Barbak Shah]]. The Arakanese developed an alliance with [[Portuguese Chittagong]] against Bengal. Despite achieving independence from the Sultans of Bengal, the Arakanese kings continued to fashion themselves after the Bengali Sultans by copying clothes, coins, titles and administrative techniques. Bengali Muslim influence on Arakan lasted for 350 years.<ref name="TopichLeitich2013">{{cite book|author1=William J. Topich|author2=Keith A. Leitich|title=The History of Myanmar|url=https://books.google.com/books?id=DIuaa5yKv-sC&pg=PA17|date= 2013|publisher=ABC-CLIO|isbn=978-0-313-35725-1|page=20}}</ref> In the Indian Ocean, the Bengal Sultanate was involved in trading with the Maldives where Bengali rice was exchanged for Maldivian shell currency.
Historians have focused on Bengal's relations with Ming China during the early 15th century. For example, ''Trade and Diplomacy in India-China Relations: A Study of Bengal During the Fifteenth Century'' chronicles the relationship between the Bengal Sultanate and Ming China.<ref>{{Cite journal|url=https://www.cambridge.org/core/journals/journal-of-the-royal-asiatic-society/article/trade-and-diplomacy-in-indiachina-relations-a-study-of-bengal-during-the-fifteenth-century-by-ray-haraprasad-pp-ix-221-3-maps-new-delhi-radiant-publishers-london-sangam-books-1993-rs-200/BE39CDDE8F973EED2E7AC4BA9A22D6AD|title=Trade and Diplomacy in India-China Relations: A Study of Bengal During the Fifteenth Century. By Haraprasad Ray. pp. ix, 221, 3 maps. New Delhi, Radiant Publishers; London, Sangam Books, 1993. Rs 200.|first=Roderich|last=Ptak|year=1995|journal=Journal of the Royal Asiatic Society|volume=5|issue=2|pages=300–303|via=Cambridge Core|doi=10.1017/S1356186300015637|s2cid=164048218|access-date=27 September 2019|archive-date=1 November 2019|archive-url=https://web.archive.org/web/20191101193711/https://www.cambridge.org/core/journals/journal-of-the-royal-asiatic-society/article/trade-and-diplomacy-in-indiachina-relations-a-study-of-bengal-during-the-fifteenth-century-by-ray-haraprasad-pp-ix-221-3-maps-new-delhi-radiant-publishers-london-sangam-books-1993-rs-200/BE39CDDE8F973EED2E7AC4BA9A22D6AD|url-status=live|url-access=subscription}}</ref> This relationship was also noted by Indian independence leader Jawaharlal Nehru in his book ''[[The Discovery of India]]''.<ref name="Nehru1985">{{cite book|author=Jawaharlal Nehru|title=The discovery of India|url=https://books.google.com/books?id=9BSjQhakjAAC|year=1985|publisher=Oxford University Press|isbn=978-0-19-562359-8|page=198|access-date=27 September 2019|archive-date=22 October 2023|archive-url=https://web.archive.org/web/20231022223949/https://books.google.com/books?id=9BSjQhakjAAC|url-status=live}}</ref> Political relations between China and the Indian subcontinent became nonexistent after the decline of Buddhism in India.<ref>{{cite book|title=India and China: Interactions through Buddhism and Diplomacy: A Collection of Essays by Professor Prabodh Chandra Bagchi|url=https://books.google.com/books?id=hrA1DgAAQBAJ&pg=PA109|date= 2011|publisher=Anthem Press|isbn=978-0-85728-821-9|page=109|url-status=live|archive-url=https://web.archive.org/web/20180515014104/https://books.google.com/books?id=hrA1DgAAQBAJ&pg=PA109|archive-date=15 May 2018}}</ref> In the 15th century, the Bengal Sultanate revived the subcontinent's relations with China through regular contacts. Sultan Ghiyasuddin Azam Shah began sending envoys to the [[Ming dynasty]]. He sent ambassadors in 1405, 1408 and 1409.<ref name="banglapedia.org">{{cite Banglapedia|article=Ghiyasuddin Azam Shah}}</ref> Emperor [[Yongle]] of China responded by sending ambassadors to Bengal between 1405 and 1433, including members of the [[Treasure voyages]] fleet led by [[Admiral Zheng He]].<ref name="sagepub.com">{{cite journal |last1=Church |first1=Sally K. |s2cid=161549135 |year=2016 |title=The Giraffe of Bengal: A Medieval Encounter in Ming China |journal=The Medieval History Journal |volume=7 |pages=1–37 |doi=10.1177/097194580400700101}}</ref> The exchange of embassies included the gift of an East African giraffe by Sultan [[Shihabuddin Bayazid Shah]] to the Chinese emperor in 1414.<ref name="MaBrakel2016">{{cite book|author1=Lin Ma|author2=Jaap van Brakel|title=Fundamentals of Comparative and Intercultural Philosophy|url=https://books.google.com/books?id=vPjSCwAAQBAJ&pg=PA135|date=2016|publisher=SUNY Press|isbn=978-1-4384-6017-8|page=135|access-date=5 April 2018|archive-date=22 October 2023|archive-url=https://web.archive.org/web/20231022223950/https://books.google.com/books?id=vPjSCwAAQBAJ&pg=PA135#v=onepage&q&f=false|url-status=live}}</ref><ref name="RielloBiedermann2017">{{cite book|author1=Giorgio Riello|author2=Zoltán Biedermann|author3=Anne Gerritsen|title=Global Gifts: The Material Culture of Diplomacy in Early Modern Eurasia|url=https://books.google.com/books?id=KJNADwAAQBAJ&pg=PA18|date= 2017|publisher=Cambridge University Press|isbn=978-1-108-41550-7|page=18|url-status=live|archive-url=https://web.archive.org/web/20180515014104/https://books.google.com/books?id=KJNADwAAQBAJ&pg=PA18|archive-date=15 May 2018}}</ref><ref name="sagepub.com"/> China also mediated an end to the Bengal-Jaunpur War after a request from Sultan Jalaluddin Muhammad Shah.<ref name="banglapedia.org1">{{cite Banglapedia|article=Jalaluddin Muhammad Shah}}</ref> Ming China considered Bengal to be "rich and civilized" and one of the strongest countries in the entire chain of contacts between China and Asian states during the 15th century.<ref>{{cite book|author1=María Dolores Elizalde|author2=Wang Jianlang|title=China's Development from a Global Perspective|url=https://books.google.com/books?id=mjI9DwAAQBAJ&pg=PA61|date= 2017|publisher=Cambridge Scholars Publishing|isbn=978-1-5275-0417-2|page=70|access-date=30 May 2019|archive-date=22 October 2023|archive-url=https://web.archive.org/web/20231022222947/https://books.google.com/books?id=mjI9DwAAQBAJ&pg=PA61#v=onepage&q&f=false|url-status=live}}</ref> Sino-Bengali contacts was the main feature of relations between China and the Indian subcontinent during the 15th century.
==Culture and society==
[[File:Codice Casanatense Bengalis.jpg|thumb|"People of the Kingdom of Bengal", 16th-century Portuguese illustration]]
The [[Bengali language]] was the most spoken language while [[Persian language|Persian]] was an administrative and commercial language. Men wore white [[Shirt|shirts]], [[Cotton Fabric|cotton fabrics]] of various colors, [[Turban|turbans]], [[Sarong|sarongs]], [[Lungi|lungis]], [[Dhoti|dhutis]], [[Leather|leather shoes]], and belts to wrap their robes on the waist. Women wore cotton [[Sari|saris]]. Upper-class women wore gold jewelry. There were various classes of artisans, as well as physicians and fortune tellers. There was a class of musicians who would gather by the houses of the rich during dawn and play music; and they would be rewarded with wine, food and money during breakfast hours. Some men would have performances with a chained tiger. The [[Hindu]] minority did not eat beef. The streets and markets included bathing areas, eating and drinking places, and dessert shops. [[Betel nut]] was offered to guests. The population included royalty, aristocrats, natives and foreigners. Many of the rich built ships and went abroad for trade. Many were agriculturalists. Punishments for breaking the law included expulsion from the kingdom, as well as bamboo flogging.<ref name="auto3"/>
Bengali male clothing is mentioned in a Chinese envoy of 1415 which described men of [[Pandua, Malda|Pandua]] who “wear a white cotton [[turban]] and a long white cotton shirt. On their feet they wear low sheep-skin shoes with [[gold thread]]. The smarter ones think it the correct thing to have designs on them. Everyone of them is engaged in business, the value of which may be ten thousand pieces of gold.”{{Sfn|Eaton|1996|p=99}}
Bengal was rich in textile production and export. [[Marco Polo]] mentioned the commercial importance of Bengali cotton. Maghrebi traveler [[Ibn Battuta]] admired the local fine Muslin during his visit. Between 1415 and 1432 [[Ming dynasty|Chinese diplomats]] wrote of [[muslin]], rugs, [[Veil|veils]] of various colours, [[Gauze|gauzes]], [[turban]] materials, embroidered silks etc. In early 16th Century [[Ludovico di Varthema]] noted, “Fifty ships are laden every year in this place with cotton and silk stuffs... These same stuffs go through all Turkey, through Syria, through Persia, through Arabia Felix, through Ethiopia, and through all India." Contemporary Tome Pires described the export of Bengali textiles to ports in the eastern half of the Indian Ocean.{{Sfn|Eaton|1996|p=97|loc=Economy, Society and Culture}}
Chinese traveler [[Wang Dayuan]] who visited Bengal writes on the Bengali people
{{blockquote|text=These people [the Bengalis] owe all their tranquility and prosperity to themselves, for its source lies in their devotion to agriculture, whereby a land originally covered with jungle has been reclaimed by their unremitting toil in tilling and planting.{{Sfn|Eaton|1996|p=95}} |author=Wang Dayuan (1349)
|source=}}
Bengal received settlers from North India, the Middle East and Central Asia. They included Turks, Afghans, Persians and Arabs.<ref name="Khan2013">{{cite book|author=Muhammad Mojlum Khan|title=The Muslim Heritage of Bengal: The Lives, Thoughts and Achievements of Great Muslim Scholars, Writers and Reformers of Bangladesh and West Bengal|url=https://books.google.com/books?id=-2s9BAAAQBAJ&pg=PA5|year=2013|publisher=Kube Publishing Limited|isbn=978-1-84774-062-5|pages=5–|url-status=live|archive-url=https://web.archive.org/web/20180515014104/https://books.google.com/books?id=-2s9BAAAQBAJ&pg=PA5|archive-date=15 May 2018}}</ref> An important migrant community were Persians. Many Persians in Bengal were teachers, lawyers, scholars and clerics.<ref>{{cite Banglapedia|article=Iranians, The}}</ref> Mercenaries were widely imported for domestic, military and political service. One particular group of mercenaries were the Abyssinians.<ref name="auto" />
The Hindu and Muslim populations had their own endogamous communities (jāti) with distinctive occupations 16th century poet [[Mukundaram Chakrabarti|Mukundaram]], mentions fifteen Muslim communities inhabiting an idealized Bengali city of his day. The Muslim population engaged in professions like weavers, livestock herders, cake sellers, [[Fishmonger|fishmongers]], loom makers, circumcisers, [[Bow maker|bow makers]], [[Papermaking|papermakers]], wandering holy men, [[Tailor|tailors]], weavers of thick cord, dyers, users of hoes, and [[Butcher|beef sellers]].{{Sfn|Eaton|1996|p=101|loc=Economy, Society and Culture}} Saraikhanas (hotels) with [[Hammam|Turkish baths]] had established for the merchants and travellers.<ref>{{Harvard citation no brackets|Bhattacharya|2020|p=40}}</ref>
==Arts==
===Literature and painting===
[[File:Sharafnama of Nizami, Bengal.jpg|thumb|A sultanate-era Persian manuscript showing [[Alexander the Great|Alexander]] sharing his throne with Queen Nushabah. The scene is based on [[Nizami Ganjavi|Nizami Ganjavi's]] ''[[Iskandarnameh of Nizami|Iskandar Nama]]'' ''(Book of Alexander)''. [[British Library]].]]
Muslim poets were writing in the Bengali language by the 15th century. By the turn of the 16th century, a vernacular literature based on concepts of [[Sufism]] and [[Islamic cosmology]] flourished in the region. Bengali Muslim mystic literature was one of the most original in Islamic India.<ref name="Markovits2004"/>
{{poemquote|And with the three washers [cups of wine], this dispute is going on.
All the parrots [poets] of India have fallen into a sugar shattering situation (become excited)
That this Persian candy [ode], to Bangalah [Bengal] is going on.|Excerpt of a poem jointly written by [[Hafez]] and Sultan [[Ghiyasuddin Azam Shah]] in the 14th century<ref name=abumusa/>}}
With Persian as an [[official language]], Bengal witnessed an influx of [[Persian people|Persian]] scholars, lawyers, teachers and clerics. It was the preferred language of the aristocracy and the [[Sufi]]s. Thousands of Persian books and manuscripts were published in Bengal. The earliest Persian work compiled in Bengal was a translation of Amrtakunda from Sanskrit by Qadi Ruknu'd-Din Abu Hamid Muhammad bin Muhammad al-'Amidi of Samarqand, a famous Hanafi jurist and Sufi. During the reign of Ghiyasuddin Azam Shah, the city of Sonargaon became an important centre of [[Persian literature]], with many publications of prose and poetry. The period is described as the "[[golden age]] of Persian literature in Bengal". Its stature is illustrated by the Sultan's own correspondence with the Persian poet Hafez. When the Sultan invited Hafez to complete an incomplete [[ghazal]] by the ruler, the renowned poet responded by acknowledging the grandeur of the king's court and the literary quality of Bengali-Persian poetry.<ref name=abumusa>{{cite Banglapedia|article=Persian|author=Abu Musa Mohammad Arif Billah}}</ref>
Manuscript paintings depict the fashion and architecture of the Bengal Sultanate. Persian manuscripts with paintings are a key artistic hallmark of the Bengal Sultanate. One of the best-known examples of this heritage is Sultan [[Nasiruddin Nasrat Shah|Nasrat Shah's]] copy of Nizami's ''Iskandar Nama.'' The manuscript was published sometime during Nasrat Shah's reign, lasting from 1519 to 1538. It includes epic poetry by [[Nizami Ganjavi]] about the conquests of [[Alexander the Great]].<ref name="Grabar1989">{{cite book|author=Oleg Grabar|title=Muqarnas: An Annual on Islamic Art and Architecture|url=https://books.google.com/books?id=O0NCAAAAIAAJ&pg=PA58|year=1989|publisher=Brill Archive|isbn=978-90-04-09050-7|pages=58–72|author-link=Oleg Grabar|access-date=7 April 2018|archive-date=22 October 2023|archive-url=https://web.archive.org/web/20231022223953/https://books.google.com/books?id=O0NCAAAAIAAJ&pg=PA58#v=onepage&q&f=false|url-status=live}}</ref><ref>{{Cite encyclopedia|url=http://www.iranicaonline.org/articles/eskandar-nama|title=ESKANDAR-NĀMA|encyclopedia=Encyclopædia Iranica|access-date=31 December 2019|archive-date=19 May 2023|archive-url=https://web.archive.org/web/20230519181117/https://www.iranicaonline.org/articles/eskandar-nama|url-status=live}}</ref>
In the 15th century, the court scholar [[Nur Qutb Alam]] pioneered Bengali Muslim poetry by establishing the [[Dobhashi]] tradition, which saw poems written half in Persian and half in colloquial Bengali. The invocation tradition saw Islamic figures replacing the invocation of Hindu gods and goddesses in Bengali texts. The literary romantic tradition saw poems by [[Shah Muhammad Sagir]] on [[Yusuf and Zulaikha]], as well as works of Bahram Khan and Sabirid Khan. The ''Dobhashi'' culture featured the use of [[Arabic]] and Persian words in Bengali texts to illustrate Muslim stories. [[Epic poetry]] included ''Nabibangsha'' by [[Syed Sultan]], ''Janganama'' by [[Abdul Hakim (poet)|Abdul Hakim]] and ''Rasul Bijay'' by Shah Barid. Sufi literature flourished with a dominant theme of [[cosmology]]. Bengali Muslim writers produced translations of numerous Arabic and Persian works, including the [[Thousand and One Nights]] and the [[Shahnameh]].<ref>{{cite web |url=https://blogs.edgehill.ac.uk/sacs/files/2012/07/Document-6-Billah-A.-M.-M.-A-The-Development-of-Bengali-Literature-during-Muslim-Rule.pdf |title=The development of Bengali literature during Muslim rule |access-date=22 September 2017 |url-status=live |archive-url=https://web.archive.org/web/20170809050525/https://blogs.edgehill.ac.uk/sacs/files/2012/07/Document-6-Billah-A.-M.-M.-A-The-Development-of-Bengali-Literature-during-Muslim-Rule.pdf |archive-date=9 August 2017 }}</ref><ref>{{cite Banglapedia|article=Sufi Literature}}</ref>
Hindu poets from the period included [[Maladhar Basu]], [[Bipradas Pipilai]] and [[Vijay Gupta (poet)|Vijay Gupta]].
===Architecture===
{{See also|Bengali architecture|Architecture of Bangladesh|Islamic architecture}}
A majority of the Bengal Sultanate's mint towns and surviving structures are found in Bangladesh. These structures have been studied in the book ''Sultans and Mosques: The Early Muslim Architecture of Bangladesh'' by Perween Hasan.{{Sfn|Hasan|2007}}<ref>{{cite web|url=https://www.thedailystar.net/news-detail-36880|title=Royalty, aesthetics and the story of mosques|date=17 May 2008|website=The Daily Star|access-date=18 September 2020|archive-date=5 January 2022|archive-url=https://web.archive.org/web/20220105030930/https://www.thedailystar.net/news-detail-36880|url-status=live}}</ref> The Indian state of West Bengal is home to two of the sultanate's former capitals Gaur and Pandua, as well as several notable structures including a watchtower, fortified walls and mausoleum. The oldest mosque in the Indian state of Assam dates from the Bengal Sultanate. A 15th-century sultanate-era mosque lies in ruins and covered with vegetation in Myanmar's Rakhine State.<ref name="Smithsonian" />
====Urban architecture====
{{multiple image
| perrow = 2
| total_width = 365
| image1 = "DAKHIL DARWAZA, GOUR".jpg
| image2 = Baisgazi Wall 03.jpg
| image3 = Firoz Minar.JPG
| image4 = Gumti Gateway (Gaur).jpg
| footer = Urban architecture of Bengal Sultanate. Clockwise from upper left: [[Dakhil Darwaza]], Baisgazi Wall was a city wall, [[Gumti Darwaza]] eastern gate of citadel of Lakhnauti, the [[Firoz Minar]]
}}
Cities in the Bengal Sultanate had stately medieval architecture, particularly in the royal capitals of Gaur and Pandua. In 1500, the royal capital of Gaur had the fifth-largest urban population in the world after [[Beijing]], [[Vijayanagara]], [[Cairo]] and Canton. It had a population of 200,000 (at the time, the global population is estimated to have ranged between 400 and 500 million).<ref name="ft">{{Citation|title=Bar chart race: the most populous cities through time|url=https://www.youtube.com/watch?v=pMs5xapBewM| archive-url=https://ghostarchive.org/varchive/youtube/20211117/pMs5xapBewM| archive-date=17 November 2021 | url-status=live|work=Financial Times| date=20 March 2019 |access-date=31 December 2019}}{{cbignore}}</ref><ref name="scroll">{{cite web|url=https://scroll.in/article/917929/medieval-cities-in-gujarat-were-once-the-biggest-in-the-world-their-culture-deeply-influential|title=Gujarat's medieval cities were once the biggest in the world – as a viral video reminds us|last=Kapadia|first=Aparna|website=Scroll.in|date=30 March 2019 |access-date=31 December 2019|archive-date=8 November 2020|archive-url=https://web.archive.org/web/20201108003030/https://scroll.in/article/917929/medieval-cities-in-gujarat-were-once-the-biggest-in-the-world-their-culture-deeply-influential|url-status=live}}</ref><ref>Data from History Database of the Global Environment. K. Klein Goldewijk, A. Beusen and P. Janssen, "HYDE 3.1: Long-term dynamic modeling of global population and built-up area in a spatially explicit way", from table on p. 2, Netherlands Environmental Assessment Agency (MNP), Bilthoven, The Netherlands.</ref><ref>Data from United Nations Department of Economic and Social Affairs, Population Division.
1950–2100 estimates (only medium variants shown): (a) World Population Prospects: The 2008 Revision.
Estimates prior to 1950: (b) "The World at Six Billion", 1999.
Estimates from 1950 to 2100: (c) "Population of the entire world, yearly, 1950–2100", 2013. Archived 19 November 2016, at the Wayback Machine
2014: (d) http://esa.un.org/unpd/wup/Highlights/WUP2014-Highlights.pdf {{Webarchive|url=https://web.archive.org/web/20141102043800/http://esa.un.org/unpd/wup/Highlights/WUP2014-Highlights.pdf |date=2 November 2014 }} "2014 World Urbanization Prospects", 2014.
2015: (e) http://esa.un.org/unpd/wpp/Publications/Files/Key_Findings_WPP_2015.pdf {{Webarchive|url=https://web.archive.org/web/20140320035709/http://esa.un.org/unpd/wpp/unpp/panel_population.htm |date=20 March 2014 }} "2015 World Urbanization Prospects", 2015.</ref> The Portuguese historian Castenhada de Lopez described houses in Gaur as being one-storeyed with ornamental floor tiles, courtyards and gardens. The city had a citadel, [[Durbar (court)|durbar]], watchtowers, canals, bridges, large gateways, and a city wall.<ref>{{cite Banglapedia |article=Gaur, City}}</ref> The royal palace was divided into three compartments. The first compartment was the royal court. The second was the living quarter of the Sultan. The third was the harem. A high wall enclosed the palace. A moat surrounded the palace on three sides and was connected to the Ganges. The city of Pandua developed from a small hamlet into a military garrison. It included imperial mosques and mausolea. Urban architecture in the Bengal Sultanate was based on Arab, Bengali, Persian, Indo-Turkish, and Byzantine influences. A glimpse of houses in the Bengal Sultanate can be seen in the ''Iskandar Nama'' (Book of Alexander) published by Sultan Nasrat Shah.<ref name="Grabar1989" /> There were significant indigenous developments. The [[Bengal roofs]] began appearing in concrete forms during the 15th century. These roofs were later widely replicated in the Mughal Empire and the Rajput kingdoms of the northwestern Indian subcontinent.
====Mosque architecture====
{{Category see also|Bengal Sultanate mosques}}
{| class="wikitable mw-collapsible mw-collapsed" style="float: right; margin-left:1em;"
|+Construction of Dated Mosques in Bengal from 1200–1800{{Sfn|Eaton|1996|p=67}}
|- style="text-align:left;"
! Date
! style="text-align:center;" | Ordinary
! Congregational
! Total
|-
| style="text-align:left;" | 1200-1250
| 2
| 0
| 2
|-
| style="text-align:left;" | 1250–1300
| 3
| 1
| 4
|-
| style="text-align:left; background:#FFFACD;" | 1300–1350
| style="background:#FFFACD;" | 2
| style="background:#FFFACD;" | 0
| style="background:#FFFACD;" | 2
|-
| style="text-align:left; background:#FFFACD;" | 1350–1400
| style="background:#FFFACD;" | 4
| style="background:#FFFACD;" | 1
| style="background:#FFFACD;" | 5
|-
| style="text-align:left; background:#FFFACD;" | 1400–1450
| style="background:#FFFACD;" | 5
| style="background:#FFFACD;" | 0
| style="background:#FFFACD;" | 5
|-
| style="text-align:left; background:#FFFACD;" | 1450–1500
| style="background:#FFFACD;" | 52
| style="background:#FFFACD;" | 9
| style="background:#FFFACD;" | 61
|-
| style="text-align:left; background:#FFFACD;" | 1500–1550
| style="background:#FFFACD;" | 28
| style="background:#FFFACD;" | 28
| style="background:#FFFACD;" | 56
|-
| style="text-align:left; background:#FFFACD;" | 1550–1600
| style="background:#FFFACD;" | 15
| style="background:#FFFACD;" | 2
| style="background:#FFFACD;" | 17
|-
| style="text-align:left;" | 1600–1650
| 7
| 0
| 7
|-
| style="text-align:left;" | 1650–1700
| 17
| 0
| 17
|-
| style="text-align:left;" | 1700–1750
| 8
| 0
| 8
|-
| style="text-align:left;" | 1750–1800
| 4
| 0
| 4
|-
| style="text-align:left;" | '''Total'''
| 147
| 41
| 188
|}
According to Perween Hasan, the mosques of the Bengal Sultanate have several common features, including pointed arches, multiple [[mihrab]]s, engaged corner towers, and [[terracotta]] and stone decoration.<ref name="Grabar1989" /> In particular, the art of the mihrab is meticulous and unique to Bengal's mosque architecture.<ref name="thedailystar.net">{{cite news |url=https://www.thedailystar.net/in-focus/news/badshah-ka-takth-and-the-gem-bengal-kusumba-mosque-1840753 |title=Badshah-ka Takth and the gem of Bengal, Kusumba Mosque |date=16 December 2019 |work=The Daily Star |access-date=31 December 2019 |archive-date=19 December 2019 |archive-url=https://web.archive.org/web/20191219145658/https://www.thedailystar.net/in-focus/news/badshah-ka-takth-and-the-gem-bengal-kusumba-mosque-1840753 |url-status=live}}</ref> Mosques were either rectangular and multi-domed or square and single-domed. The large number of mosques built during the Bengal Sultanate indicates the rapidity with which the local population converted to Islam. The period between 1450 and 1550 was an intensive mosque building era.{{Efn|Out of 127 mosques constructed between 1200-1800, 92 were built during 1450-1550, almost three-quarters of total.{{Sfn|Michell|1984|p=28}}}} These mosques dotted the countryside, ranged from small to medium sizes and were used for daily devotion. [[Ponds]] were often located beside a mosque. Arabic inscriptions in the mosques often include the name of the patron or builder. The most commonly cited verse from the Quran in inscriptions was Surah 72 ([[Al-Jinn]]).<ref name="Grabar1989" /> The buildings were made of brick or stone. The brick mosque with terracotta decoration represented a grand structure in the Bengal Sultanate. They were often the gift of a wealthy patron and the fruit of extraordinary effort, which would not be found in every Muslim neighborhood.<ref name="Grabar1989" /> {{multiple image
| perrow = 2
| total_width = 365
| image1 = Adina Mosque, Malda, West Bengal 02.jpg
| image2 = গোয়ালদি মসজিদ 3.jpg
| image3 = Choto Shona Mosque Rajshahi.jpg
| image4 = Sixty Dome Mosque,Bagerhat.jpg
| footer = Bengal Sultanate era mosque architecture. Clockwise from upper left: Arches in [[Adina Mosque]], [[Goaldi Mosque]] in [[Sonargaon]], [[Sixty Dome Mosque]], pointed arches and a Bengal roof in [[Choto Sona Mosque]].
}}
Mosques were built across the length and breadth of the Bengal Sultanate. The highest concentration of mosques from the Bengal Sultanate can be found in the [[North Bengal]] regions of Bangladesh and Indian West Bengal. A [[Mosque City of Bagerhat|mosque city]] developed near the southwestern Bengali Sundarbans forest as a result of the patronization of Governor Khan Jahan Ali. In 1985, UNESCO designated the city as a [[World Heritage Site]].<ref>{{cite web |url=https://whc.unesco.org/en/list/321/ |title=Historic Mosque City of Bagerhat |website=UNESCO World Heritage Centre |access-date=31 December 2019 |archive-date=6 December 2019 |archive-url=https://web.archive.org/web/20191206133932/http://whc.unesco.org/en/list/321 |url-status=live}}</ref> In central areas, the [[Pathrail Mosque]] in Faridpur is one of the best-preserved sultanate-era structures. In the northeast, the [[Shankarpasha Shahi Masjid]] in [[Sylhet Division|Sylhet]] is a well-preserved structure of the Bengal Sultanate. In the northeastern Indian state of Assam, the [[Panbari Mosque]] was built during the reign of Sultan Alauddin Hussain Shah. Other mosques can be found in coastal areas of West Bengal and parts of Bihar, such as the [[Sayed Jamaluddin Mosque]]. In the southeast, the Santikan Mosque (built in the 1430s) stands in ruins in Rakhine State (formerly Arakan) of [[Myanmar]].<ref>{{cite web |url=https://www.nationalgeographic.com/news/2015/06/150625-myanmar-burma-rohingya-refugees-archaeology-world/ |title=Lost Myanmar Empire Is Stage for Modern Violence |date=26 June 2015 |website=National Geographic News |access-date=31 December 2019 |archive-date=11 December 2019 |archive-url=https://web.archive.org/web/20191211080917/https://www.nationalgeographic.com/news/2015/06/150625-myanmar-burma-rohingya-refugees-archaeology-world/ |url-status=dead}}</ref>
Imperial mosques had an in-built throne for the Sultan. These thrones are termed as ''Badshah-e-Takht'' (King's Throne). The Sultans sat on the elevated throne and addressed his subjects below. The Sultans also administered justice and managed government affairs while sitting on these thrones. Mosques served as royal courts.<ref name="thedailystar.net"/> Mosques across the Bengal Sultanate had these thrones. The Sultans traveled from one town to another and hosted royal court activities in mosques with a Badshah-e-Takht. The Badshah-e-Takht in [[Kusumba Mosque]] is heavily decorated with a small intrinsically designed mihrab. The Adina Mosque has one of the largest royal galleries in the subcontinent.<ref name="thedailystar.net"/>
====Tomb architecture====
{{multiple image
| perrow = 2
| total_width = 365
| image1 = Eklakhi Mausoleum at Pandua in Malda district 02.jpg
| image2 = The Tomb of Fateh Khan.jpg
| image3 = Chapai ChotoSonaMashjidShomadhi MG 5051.jpg
| image4 = বাঘা মসজিদের সম্মুখভাগের মাজার (৩).jpg
| footer = Tomb architecture of Bengal Sultanate. Clockwise from upper left: [[Eklakhi Mausoleum]], [[Qadam Rasul Mosque#Tomb of Fateh Khan|Tomb of Fateh Khan]], [[Bagha Mosque]] cemetery, [[Choto Sona Mosque]] cemetery.
}}
Mausoleums of the Bengal Sultanate are an important architectural hallmark. Initially, [[sarcophagus|sarcophagi]] were erected based on Iranian models, such as the [[Tomb of Cyrus]]. Sarcophagi would include mihrabs and arches resembling the architecture in Adina Mosque. For example, the tomb of Sultan Ghiyasuddin Azam Shah in Sonargaon has features similar to the architecture of [[Adina Mosque]] built by his father Sultan Sikandar Shah. An indigenous Islamic mausolea style developed with the [[Eklakhi Mausoleum]], which is the royal tomb chamber of Sultan Jalaluddin Muhammad Shah. Other mausolea, such as the [[Qadam Rasul Mosque#Tomb of Fateh Khan|Tomb of Fateh]] Khan in Gaur, featured Bengali ''do-chala'' roof.<ref>{{cite Banglapedia|article=Tomb Architecture}}</ref>
====Legacy====
The architecture of the Bengal Sultanate has influenced [[modern architecture]] in Bangladesh. The sultanate era inspired the [[Baitur Rauf Mosque]], which won the [[Aga Khan Award for Architecture]] in 2016.<ref>{{cite news |url=https://www.thenationalnews.com/arts-culture/architect-marina-tabassum-on-her-aga-khan-award-winning-design-for-the-bait-ur-rouf-mosque-in-dhaka-1.160592 |title=Architect Marina Tabassum on her Aga Khan Award-winning design for the Bait Ur Rouf mosque in Dhaka |work=The National |date=6 October 2016 |access-date=18 September 2020 |archive-date=29 December 2019 |archive-url=https://web.archive.org/web/20191229061654/https://www.thenational.ae/arts-culture/architect-marina-tabassum-on-her-aga-khan-award-winning-design-for-the-bait-ur-rouf-mosque-in-dhaka-1.160592 |url-status=live}}</ref>
==List of dynasties==
;Ilyas Shahi dynasty (1342–1414)
{{Main|Ilyas Shahi dynasty}}
{| class="wikitable"
|-
! style="width:180px;"| Name
! style="width:80px;"| Reign
! style="width:400px;"| Notes
|-
| [[Shamsuddin Ilyas Shah]]
| 1342–1358
| Became the first sole ruler of whole [[Bengal]] comprising [[Sonargaon]], [[Satgaon]] and [[Gauḍa (city)|Lakhnauti]].
|-
| [[Sikandar Shah]]
| 1358–1390
| Assassinated by his son and successor, [[Ghiyasuddin Azam Shah]]
|-
| [[Ghiyasuddin Azam Shah]]
| 1390–1411
|
|-
| [[Saifuddin Hamza Shah]]
| 1411–1413
|
|-
| Nasiruddin Muhammad Shah bin Hamza Shah
| 1413
| His coins were minted from Muazzamabad. Noman Nasir theorizes, based on numismatic evidence, that he was a son of Hamza Shah.<ref>Nasir, Noman. “Nasir Al-Din Muhammad - A New Sultan of Bengal.” Journal of the Oriental Numismatic Society, 2010</ref> Assassinated by either his half-brother or his father's slave [[Shihabuddin Bayazid Shah]] on the orders of the landlord of [[Dinajpur]], [[Raja Ganesha]]
|-
| [[Shihabuddin Bayazid Shah]]
| 1413–1414
|Assassinated by [[Raja Ganesha]]
|-
| [[Alauddin Firuz Shah I]]
| 1414
| Son of Shihabuddin Bayazid Shah. Assassinated by Raja Ganesha
|}
In 2009 a coin of a ruler named Nasiruddin Ibrahim Shah was found in Bangladesh, which was struck in 818 AH (around 1416 CE). It is possible he was a claimant to the throne. An undated coin of another ruler called Siraj-al Din Sikandar Shah was found in southwestern Bengal in 2014. MD. Sharif Islam theorizes that this Siraj-al Din is the same Siraj-al Din mentioned by Riyaz As Salatin, who was a judge serving under Ghiyasuddin Azam Shah.<ref>Nasir N, Islam MS (2014) Siraj al-Din ‘Sikandar’ (?) Shah – a new ruler of the Bengal Sultanate. J Orient Numismat Soc 220:39–40</ref>
;House of Raja Ganesha (1414–1435)
{{Main|Ganesha dynasty}}
{| class="wikitable"
|-
! style="width:180px;"| Name
! style="width:80px;"| Reign
! style="width:400px;"| Notes
|-
| [[Raja Ganesha]]
| 1414–1415
|
|-
| [[Jalaluddin Muhammad Shah]]
| 1415–1416
| Son of Raja Ganesha and converted into Islam
|-
| [[Raja Ganesha]]
| 1416–1418
| Second Phase
|-
| [[Jalaluddin Muhammad Shah]]
| 1418–1433
| Second Phase
|-
| [[Shamsuddin Ahmad Shah]]
| 1433–1435
|
|}
Two ephemeral rulers: Qutbuddin Azam Shah and Ghiyasuddin Nusrat Shah ruled Eastern Bengal for a brief period and struck coins in AH 837 (1434 CE). Siraj-al Din Sikandar Shah is only known from his undated coins, it is possible he ruled in this time period. It is not known if any of them were related to Shamsuddin Ahmad Shah or the Ilyas Shahis.<ref>Nasir N, Islam MS (2014) Siraj al-Din ‘Sikandar’ (?) Shah – a new ruler of the Bengal Sultanate. J Orient Numismat Soc 220:39–40</ref>
;Restored Ilyas Shahi dynasty (1435–1487)
{| class="wikitable"
|-
! style="width:180px;"| Name
! style="width:80px;"| Reign
! style="width:400px;"| Notes
|-
| [[Mahmud Shah (Sultan of Bengal)|Nasiruddin Mahmud Shah I]]
|1435–1459
|
|-
| [[Rukunuddin Barbak Shah]]
| 1459–1474
|
|-
| [[Shamsuddin Yusuf Shah]]
| 1474–1481
|
|-
| [[Sikandar Shah II]]
| 1481
|
|-
| [[Jalaluddin Fateh Shah]]
| 1481–1487
|
|}
;Habshi rule (1487–1494)
{{Main|Habshi dynasty}}
{| class="wikitable"
|-
! style="width:180px;"| Name
! style="width:80px;"| Reign
! style="width:400px;"| Notes
|-
| [[Shahzada Barbak]]
| 1487
|
|-
| [[Saifuddin Firuz Shah]]
| 1487–1489
|
|-
| [[Mahmud Shah II of Bengal|Mahmud Shah II]]
| 1489–1490
|
|-
| [[Shamsuddin Muzaffar Shah]]
| 1490–1494
|
|}
;Hussain Shahi dynasty (1494–1538)
{{Main|Hussain Shahi dynasty}}
{| class="wikitable"
|-
! style="width:180px;"| Name
! style="width:80px;"| Reign
! style="width:400px;"| Notes
|-
| [[Alauddin Hussain Shah]]
| 1494–1518
|
|-
| [[Nasiruddin Nasrat Shah]]
| 1518–1533
|
|-
| [[Alauddin Firuz Shah II]]
| 1533
|
|-
| [[Ghiyasuddin Mahmud Shah]]
| 1533–1538
|
|}
;Governors under Suri rule (1539–1554)
{| class="wikitable"
|-
! style="width:180px;"| Name
! style="width:80px;"| Reign
! style="width:400px;"| Notes
|-
| [[Khidr Khan Surak|Khidr Khan]]
| 1539–1541
|Declared independence in 1541 and was replaced
|-
| [[Qazi Fazilat]]
| 1541–1545
|
|-
| [[Muhammad Khan Sur]]
| 1545–1554
|Declared independence upon the death of [[Islam Shah Suri]]
|}
;Muhammad Shahi dynasty (1554–1564)
{| class="wikitable"
|-
! style="width:180px;"| Name
! style="width:80px;"| Reign
! style="width:400px;"| Notes
|-
| [[Muhammad Khan Sur]]
| 1554–1555
| Declared independence and styled himself as ''Shamsuddin Muhammad Shah''
|-
| [[Ghiyasuddin Bahadur Shah II]]
| 1555–1561
|
|-
| [[Ghiyasuddin Jalal Shah]]
| 1561–1563
|
|-
| [[Ghiyasuddin Bahadur Shah III]]
| 1563–1564
|
|}
;Karrani dynasty (1564–1576)
{{Main|Karrani dynasty}}
{| class="wikitable"
|-
! style="width:180px;"| Name
! style="width:80px;"| Reign
! style="width:400px;"| Notes
|-
| [[Taj Khan Karrani]]
| 1564–1566
|
|-
| [[Sulaiman Khan Karrani]]
| 1566–1572
|
|-
| [[Bayazid Khan Karrani]]
| 1572
|
|-
| [[Daud Khan Karrani]]
| 1572–1576
|Last independent Sultan of Bengal Sultanate
|}
==Family trees==
{{History of Bangladesh}}
{{Bengal Sultanate}}
===Ilyas Shahi Dynasty (1342–1414)===
{{Chart top|width=60%|collapsed=yes|Ilyas Shahi Dynasty}}
{{Tree chart/start|align=center|style=font-size:90%}}
{{Tree chart|border=1| | | | A01 | | | |A01='''[[Shamsuddin Ilyas Shah|Ilyas Shah]]''' <br>?–1358 <br>'''Sultan of Bengal''' <br>R.1342–1358 |boxstyle_ A01=border-color:#FFD700}}
{{Tree chart|border=1| | | | |!| | | | |}}
{{Tree chart|border=1| | | | A01 | | | |A01='''[[Sikandar Shah|Sikandar Shah I]]''' <br>?–1390 <br>'''Sultan of Bengal''' <br>R.1358–1390 |boxstyle_ A01=border-color:#FFD700}}
{{Tree chart|border=1| | | | |!| | | | |}}
{{Tree chart|border=1| | | | A01 | | | |A01='''[[Ghiyasuddin Azam Shah|Azam Shah]]''' <br>?–1411 <br>'''Sultan of Bengal''' <br>R.1390–1411 |boxstyle_ A01=border-color:#FFD700}}
{{Tree chart|border=1| | | | |!| | | | |}}
{{Tree chart|border=1| | | | A01 | | | |A01='''[[Saifuddin Hamza Shah|Hamza Shah]]''' <br>?–1412 <br>'''Sultan of Bengal''' <br>R.1411–1412 |boxstyle_ A01=border-color:#FFD700}}
{{Tree chart|border=1| | |,|-|^|-|.| | |}}
{{Tree chart|border=1| | A01 | | A02 | |A01='''[[Muhammad Shah (Ilyas dynasty)|Muhammad Shah I]]''' <br>?–1413 <br>'''Sultan of Bengal''' <br>R.1412–1413 |A02='''[[Shihabuddin Bayazid Shah|Bayazid Shah]]''' <br>?–1414 <br>'''Sultan of Bengal''' <br>R.1413–1414 |boxstyle_ A01=border-color:#FFD700 |boxstyle_ A02=border-color:#FFD700}}
{{Tree chart|border=1| | | | | | |!| | |}}
{{Tree chart|border=1| | | | | | A01 | |A01='''[[Alauddin Firuz Shah I|Firuz Shah II]]''' <br>?–1414 <br>'''Sultan of Bengal''' <br>R.1414 |boxstyle_ A01=border-color:#FFD700}}
{{Tree chart/end}}
{{Chart bottom}}
===Ganesha Dynasty (1414–1436)===
{{Chart top|width=60%|collapsed=yes|Ganesha Dynasty}}
{{Tree chart/start|align=center|style=font-size:90%}}
{{Tree chart|border=1| | A01 | |A01='''[[Raja Ganesha|Ganesha]]''' <br>?–1418 <br>'''Raja of Bengal''' <br>R.1414–1415, <br>1416–1418 |boxstyle_ A01=border-color:#FFD700}}
{{Tree chart|border=1| | |!| | |}}
{{Tree chart|border=1| | A01 | |A01='''[[Jalaluddin Muhammad Shah|Muhammad Shah II]]''' <br>?–1433 <br>'''Sultan of Bengal''' <br>R.1415–1416, <br>1418–1433 |boxstyle_ A01=border-color:#FFD700}}
{{Tree chart|border=1| | |!| | |}}
{{Tree chart|border=1| | A01 | |A01='''[[Shamsuddin Ahmad Shah|Ahmad Shah]]''' <br>1419–1436 <br>'''Sultan of Bengal''' <br>R.1433–1436 |boxstyle_ A01=border-color:#FFD700}}
{{Tree chart/end}}
{{Chart bottom}}
===Restored Ilyas Shahi Dynasty (1436–1487)===
{{Chart top|width=60%|collapsed=yes|Restored Ilyas Shahi Dynasty}}
{{Tree chart/start|align=center|style=font-size:90%}}
{{Tree chart|border=1| | | | | | A01 | | | | | |A01='''[[Mahmud Shah of Bengal|Mahmud Shah I]]''' <br>?–1459 <br>'''Sultan of Bengal''' <br>R.1436–1459 |boxstyle_ A01=border-color:#FFD700}}
{{Tree chart|border=1| | |,|-|-|-|+|-|-|-|.| | |}}
{{Tree chart|border=1| | A01 | | A02 | | A03 | |A01='''[[Ruknuddin Barbak Shah|Barbak Shah I]]''' <br>?–1474 <br>'''Sultan of Bengal''' <br>R.1459–1474 |A02='''[[Nuruddin Sikandar Shah|Sikandar Shah II]]''' <br>?–1481 <br>'''Sultan of Bengal''' <br>R.1481 |A03='''[[Jalaluddin Fateh Shah|Fateh Shah]]''' <br>?–1487 <br>'''Sultan of Bengal''' <br>R.1481–1487 |boxstyle_ A01=border-color:#FFD700 |boxstyle_ A02=border-color:#FFD700 |boxstyle_ A03=border-color:#FFD700}}
{{Tree chart|border=1| | |!| | | | | | | | | | |}}
{{Tree chart|border=1| | A01 | | | | | | | | | |A01='''[[Shamsuddin Yusuf Shah|Yusuf Shah]]''' <br>?–1481 <br>'''Sultan of Bengal''' <br>R.1474–1481 |boxstyle_ A01=border-color:#FFD700}}
{{Tree chart/end}}
{{Chart bottom}}
===Habshi Rule (1487–1494)===
{{Chart top|width=60%|collapsed=yes|Habshi Rulers}}
{{Tree chart/start|align=center|style=font-size:90%}}
{{Tree chart|border=1| | A01 | | A02 | | A03 | | A04 | |A01='''[[Shahzada Barbak|Barbak Shah II]]''' <br>?–1487 <br>'''Sultan of Bengal''' <br>R.1487 |A02='''[[Saifuddin Firuz Shah|Firuz Shah III]]''' <br>?–1489 <br>'''Sultan of Bengal''' <br>R.1487–1489 |A03='''[[Mahmud Shah II]]''' <br>?–1490 <br>'''Sultan of Bengal''' <br>R.1489–1490 |A04='''[[Shamsuddin Muzaffar Shah|Muzaffar Shah]]''' <br>?–1494 <br>'''Sultan of Bengal''' <br>R.1490–1494 |boxstyle_ A01=border-color:#FFD700 |boxstyle_ A02=border-color:#FFD700 |boxstyle_ A03=border-color:#FFD700 |boxstyle_ A04=border-color:#FFD700}}
{{Tree chart/end}}
{{Chart bottom}}
===Hussain Shahi Dynasty (1494–1538)===
{{Chart top|width=60%|collapsed=yes|Hussain Shahi Dynasty}}
{{Tree chart/start|align=center|style=font-size:90%}}
{{Tree chart|border=1| | | | | | A01 | | | | | |A01='''[[Alauddin Husain Shah|Hussain Shah]]''' <br>?–1519 <br>'''Sultan of Bengal''' <br>R.1494–1519 |boxstyle_ A01=border-color:#FFD700}}
{{Tree chart|border=1| | |,|-|-|-|+|-|-|-|.| | |}}
{{Tree chart|border=1| | A01 | | A02 | | A03 | |A01='''[[Danyal (Hussain Shahi dynasty)|Daniyal]]''' <br>?–1515 |A02='''[[Nasiruddin Nasrat Shah|Nasrat Shah]]''' <br>?–1533 <br>'''Sultan of Bengal''' <br>R.1519–1533 |A03='''[[Ghiyasuddin Mahmud Shah|Mahmud Shah III]]''' <br>?–1538 <br>'''Sultan of Bengal''' <br>R.1533–1538 |boxstyle_ A01=border-color:#FFD700 |boxstyle_ A02=border-color:#FFD700 |boxstyle_ A03=border-color:#FFD700}}
{{Tree chart|border=1| | | | | | |!| | | | | | |}}
{{Tree chart|border=1| | | | | | A01 | | | | | |A01='''[[Alauddin Firuz Shah II|Firuz Shah IV]]''' <br>?–1533 <br>'''Sultan of Bengal''' <br>R.1533 |boxstyle_ A01=border-color:#FFD700}}
{{Tree chart/end}}
{{Chart bottom}}
===Muhammad Shahi Dynasty (1554–1564)===
{{Chart top|width=60%|collapsed=yes|Muhammad Shahi Dynasty}}
{{Tree chart/start|align=center|style=font-size:90%}}
{{Tree chart|border=1| | | | A01 | | | |A01='''[[Muhammad Khan Sur|Muhammad Shah III]]''' <br>?–1555 <br>'''Sultan of Bengal''' <br>R.1554–1555 |boxstyle_ A01=border-color:#FFD700}}
{{Tree chart|border=1| | |,|-|^|-|.| | |}}
{{Tree chart|border=1| | A01 | | A02 | |A01='''[[Ghiyasuddin Bahadur Shah II|Bahadur Shah II]]''' <br>?–1561 <br>'''Sultan of Bengal''' <br>R.1555–1561 |A02='''[[Ghiyasuddin Jalal Shah|Jalal Shah]]''' <br>?–1563 <br>'''Sultan of Bengal''' <br>R.1561–1563 |boxstyle_ A01=border-color:#FFD700 |boxstyle_ A02=border-color:#FFD700}}
{{Tree chart|border=1| | |!| | | | | | |}}
{{Tree chart|border=1| | A01 | | | | | |A01='''[[Ghiyasuddin Bahadur Shah III|Bahadur Shah III]]''' <br>?–1564 <br>'''Sultan of Bengal''' <br>R.1563–1564 |boxstyle_ A01=border-color:#FFD700}}
{{Tree chart/end}}
{{Chart bottom}}
===Karrani Dynasty (1564–1576)===
{{Chart top|width=60%|collapsed=yes|Karrani Dynasty}}
{{Tree chart/start|align=center|style=font-size:90%}}
{{Tree chart|border=1| | | | A01 | | | |A01=Unnamed}}
{{Tree chart|border=1| | |,|-|^|-|.| | |}}
{{Tree chart|border=1| | A01 | | A02 | |A01='''[[Taj Khan Karrani|Taj Khan]]''' <br>?–1565 <br>'''Sultan of Bengal''' <br>R.1564–1565 |A02='''[[Sulaiman Khan Karrani|Sulaiman Khan]]''' <br>?–1572 <br>'''Sultan of Bengal''' <br>R.1565–1572 |boxstyle_ A01=border-color:#FFD700 |boxstyle_ A02=border-color:#FFD700}}
{{Tree chart|border=1| | |,|-|-|-|(| | |}}
{{Tree chart|border=1| | A01 | | A02 | |A01='''[[Bayazid Khan Karrani|Bayazid Khan]]''' <br>?–1572 <br>'''Sultan of Bengal''' <br>R.1572 |A02='''[[Daud Khan Karrani|Daud Khan]]''' <br>?–1576 <br>'''Sultan of Bengal''' <br>R.1572–1576 |boxstyle_ A01=border-color:#FFD700 |boxstyle_ A02=border-color:#FFD700}}
{{Tree chart/end}}
{{Chart bottom}}
==See also==
* [[Bengal Subah]]
* [[List of rulers of Bengal]]
* [[List of medieval great powers]]
* [[Madrasa Al-Bangaliyyah]]
==Notes==
{{notelist}}
==References==
{{reflist|colwidth=30em}}
==Bibliography==
{{refbegin}}
* {{Cite book |last=Schwartzberg |first=Joseph E. |url=https://dsal.uchicago.edu/reference/schwartzberg/pager.html?object=185 |title=A Historical atlas of South Asia |date=1978 |publisher=University of Chicago Press |isbn=0226742210 |location=Chicago}}
* {{cite book |last1=Eaton |first1=Richard Maxwell |author-link=Richard M. Eaton |title=The Rise of Islam and the Bengal Frontier, 1204-1760 |url=https://books.google.com/books?id=gKhChF3yAOUC&pg=PA64 |year=1996 |publisher=[[University of California Press]] |isbn=978-0-520-20507-9 |access-date=31 October 2019 |archive-date=22 October 2023 |archive-url=https://web.archive.org/web/20231022222946/https://books.google.com/books?id=gKhChF3yAOUC&pg=PA64#v=onepage&q&f=false |url-status=live}}
* {{cite book |editor1-last=Majumdar |editor1-first=R. C. |editor1-link=R. C. Majumdar |title=The Delhi Sultanate |url=https://archive.org/details/delhisultanate0006rcma/page/219/mode/1up |year=1980 |orig-year=1960 |series=The History and Culture of the Indian People |volume=VI |edition=3rd |publisher=Bharatiya Vidya Bhavan |location=Bombay |oclc=664485}}
* {{cite book |last=Hasan |first=Perween |author-link=Perween Hasan |title=Sultans and Mosques: The Early Muslim Architecture of Bangladesh |url=https://books.google.com/books?id=Uunyz4qFZwEC |year=2007 |publisher=Bloomsbury Academic |isbn=978-1-84511-381-0}}
* {{Cite book |last=Shakespear |first=Leslie |url=https://books.google.com/books?id=dA5E8UJ7TpkC |title=History of Upper Assam, Upper Burmah and North-Eastern Frontier |date=2012-04-26 |publisher=Cambridge University Press |isbn=978-1-108-04607-7 |language=en}}
* {{Cite book |last=Basu |first=Nirmal Kumar |url=https://books.google.com/books?id=C8UBAAAAMAAJ |title=Assam in the Ahom Age, 1228-1826: Being Politico-economic and Socio-cultural Studies |date=1970 |publisher=Sanskrit Pustak Bhandar |language=en}}
* {{Cite book |last=Acharyya |first=Nagendra Nath |url=https://books.google.com/books?id=Z7cKAQAAIAAJ |title=The History of Medieval Assam, from the Thirteenth to the Seventeenth Century: A Critical and Comprehensive History of Assam During the First Four Centuries of Ahom Rule, Based on Original Assamese Sources, Available Both in India and England |date=1966 |publisher=Dutta Baruah |language=en}}
* {{Cite book |last= |url=https://books.google.com/books?id=iiNUAAAAMAAJ |title=The Islamic Heritage of Bengal |publisher=UNESCO |year=1984 |isbn=978-92-3-102174-9 |editor-last=Michell |editor-first=George |location=France |language=en}}
* {{Cite book |last=Siddiq |first=Mohammad Yusuf |author-link=Mohammad Yusuf Siddiq |url=https://books.google.com/books?id=4wQBCwAAQBAJ |title=Epigraphy and Islamic Culture: Inscriptions of the Early Muslim Rulers of Bengal (1205-1494) |publisher=Routledge |year=2015 |isbn=978-1-317-58745-3 |language=en}}
* {{Cite book |last=Bhattacharya |first=Sabyasachi |url=https://books.google.com/books/about/A_Comprehensive_History_of_Modern_Bengal.html?id=Z3GxzQEACAAJ&source=kp_book_description&redir_esc=y |title=A Comprehensive History of Modern Bengal, 1700-1950 |date=2020 |publisher=Asiatic Society |isbn=978-93-89901-95-5 |language=en}}
{{refend}}
==Further reading==
{{wikiquote}}
{{commons category|Bengal Sultanate}}
* {{cite book |last=Yegar |first=Moshe |year=2002 |title=Between Integration and Secession: The Muslim Communities of the Southern Philippines, Southern Thailand, and Western Burma/Myanmar |location=Lanham, Maryland |publisher=Lexington Books |pages=23–24 |isbn=978-0-7391-0356-2}}
* Hussain, Syed Ejaz (2003). The Bengal Sultanate: Politics, Economy and Coins, A.D. 1205–1576. Manohar. {{ISBN|978-81-7304-482-3}}.
* ''The Grammar of Sultanate Mosque in Bengal Architecture'', Nujaba Binte Kabir (2012)
{{coord|24|52|0|N|88|8|0|E|region:IN_type:country|display=title}}
{{Authority control}}
[[Category:Bengal Sultanate| ]]
[[Category:Former sultanates]]
[[Category:Bay of Bengal]]
[[Category:States and territories established in the 14th century]]
[[Category:States and territories disestablished in the 1570s]]
[[Category:Former empires]]
tfifalxndfqcfh5c2060c13lwobsjoa
4640223
4640222
2026-06-13T17:58:07Z
Greatswrd
3497856
Blanked the page
4640223
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
User:Dirk Hünniger/bugs
2
483923
4640274
2026-06-14T09:02:54Z
Dirk Hünniger
343292
Created page with "= Crazy Bug Facts = {{:Wikijunior:Bugs/Crazy Bug Facts}} = Insects Intro = {{:Wikijunior:Bugs/Insects Intro}} = Ant = {{:Wikijunior:Bugs/Ant}} = Aphid = {{:Wikijunior:Bugs/Aphid}} = Beetle = {{:Wikijunior:Bugs/Beetle}} = Bee = {{:Wikijunior:Bugs/Bee}} = Black Fly = {{:Wikijunior:Bugs/Black Fly}} = Caterpillar/Butterfly = {{:Wikijunior:Bugs/Caterpillar/Butterfly}} = Cockroach = {{:Wikijunior:Bugs/Cockroach}} = Crane Fly = {{:Wikijunior:Bugs/Crane Fly}} = Cricket = {{:Wiki..."
4640274
wikitext
text/x-wiki
= Crazy Bug Facts =
{{:Wikijunior:Bugs/Crazy Bug Facts}}
= Insects Intro =
{{:Wikijunior:Bugs/Insects Intro}}
= Ant =
{{:Wikijunior:Bugs/Ant}}
= Aphid =
{{:Wikijunior:Bugs/Aphid}}
= Beetle =
{{:Wikijunior:Bugs/Beetle}}
= Bee =
{{:Wikijunior:Bugs/Bee}}
= Black Fly =
{{:Wikijunior:Bugs/Black Fly}}
= Caterpillar/Butterfly =
{{:Wikijunior:Bugs/Caterpillar/Butterfly}}
= Cockroach =
{{:Wikijunior:Bugs/Cockroach}}
= Crane Fly =
{{:Wikijunior:Bugs/Crane Fly}}
= Cricket =
{{:Wikijunior:Bugs/Cricket}}
= Cicada =
{{:Wikijunior:Bugs/Cicada}}
= Diving Beetle =
{{:Wikijunior:Bugs/Diving Beetle}}
= Dragonfly =
{{:Wikijunior:Bugs/Dragonfly}}
= Damselfly =
{{:Wikijunior:Bugs/Damselfly}}
= Dragonfly & Damselfly =
{{:Wikijunior:Bugs/Dragonfly & Damselfly}}
= Firefly =
{{:Wikijunior:Bugs/Firefly}}
= Fly =
{{:Wikijunior:Bugs/Fly}}
= Flea =
{{:Wikijunior:Bugs/Flea}}
= Fruit Fly =
{{:Wikijunior:Bugs/Fruit Fly}}
= Grasshopper =
{{:Wikijunior:Bugs/Grasshopper}}
= Ladybug =
{{:Wikijunior:Bugs/Ladybug}}
= Locust =
{{:Wikijunior:Bugs/Locust}}
= Louse =
{{:Wikijunior:Bugs/Louse}}
= Mayfly =
{{:Wikijunior:Bugs/Mayfly}}
= Mosquito =
{{:Wikijunior:Bugs/Mosquito}}
= Monarch butterfly =
{{:Wikijunior:Bugs/Monarch butterfly}}
= Moth =
{{:Wikijunior:Bugs/Moth}}
= Pondskater/Water Strider =
{{:Wikijunior:Bugs/Pondskater/Water Strider}}
= Praying Mantis =
{{:Wikijunior:Bugs/Praying Mantis}}
= Predaceous Diving Beetle =
{{:Wikijunior:Bugs/Predaceous Diving Beetle}}
= Shield Bug =
{{:Wikijunior:Bugs/Shield Bug}}
= Stinkbug =
{{:Wikijunior:Bugs/Stinkbug}}
= Walking Stick =
{{:Wikijunior:Bugs/Walking Stick}}
= Arachnids Intro =
{{:Wikijunior:Bugs/Arachnids Intro}}
= Black Widow =
{{:Wikijunior:Bugs/Black Widow}}
= Harvestman (Daddy Longlegs) =
{{:Wikijunior:Bugs/Harvestman (Daddy Longlegs)}}
= Pseudoscorpion =
{{:Wikijunior:Bugs/Pseudoscorpion}}
= Tarantula =
{{:Wikijunior:Bugs/Tarantula}}
= Mexican Red-Kneed Tarantula =
{{:Wikijunior:Bugs/Mexican Red-Kneed Tarantula}}
= Mite =
{{:Wikijunior:Bugs/Mite}}
= Scorpion =
{{:Wikijunior:Bugs/Scorpion}}
= Australian burrowing scorpion =
{{:Wikijunior:Bugs/Australian burrowing scorpion}}
= Spider =
{{:Wikijunior:Bugs/Spider}}
= Ant-Mimicking Spider =
{{:Wikijunior:Bugs/Ant-Mimicking Spider}}
= Brown Recluse =
{{:Wikijunior:Bugs/Brown Recluse}}
= Crab Spider =
{{:Wikijunior:Bugs/Crab Spider}}
= Funnel-Web Spider =
{{:Wikijunior:Bugs/Funnel-Web Spider}}
= Jumping Spider =
{{:Wikijunior:Bugs/Jumping Spider}}
= Orb Weaver =
{{:Wikijunior:Bugs/Orb Weaver}}
= Trap-door Spider =
{{:Wikijunior:Bugs/Trap-door Spider}}
= Wolf Spider =
{{:Wikijunior:Bugs/Wolf Spider}}
= Tick =
{{:Wikijunior:Bugs/Tick}}
= Other Intro =
{{:Wikijunior:Bugs/Other Intro}}
= Earthworm =
{{:Wikijunior:Bugs/Earthworm}}
= Centipede =
{{:Wikijunior:Bugs/Centipede}}
= Millipede =
{{:Wikijunior:Bugs/Millipede}}
= Woodlouse, Pill Bug or Armadillo Bug =
{{:Wikijunior:Bugs/Woodlouse}}
= Glossary =
{{:Wikijunior:Bugs/Glossary}}
by2zcc1tbrif70vka2qy6bt9vt0c10t
Wikijunior:Bugs/Printable version
110
483924
4640276
2026-06-14T09:09:05Z
Dirk Hünniger
343292
Created page with "= Crazy Bug Facts = {{:Wikijunior:Bugs/Crazy Bug Facts}} = Insects Intro = {{:Wikijunior:Bugs/Insects Intro}} = Ant = {{:Wikijunior:Bugs/Ant}} = Aphid = {{:Wikijunior:Bugs/Aphid}} = Beetle = {{:Wikijunior:Bugs/Beetle}} = Bee = {{:Wikijunior:Bugs/Bee}} = Black Fly = {{:Wikijunior:Bugs/Black Fly}} = Caterpillar/Butterfly = {{:Wikijunior:Bugs/Caterpillar/Butterfly}} = Cockroach = {{:Wikijunior:Bugs/Cockroach}} = Crane Fly = {{:Wikijunior:Bugs/Crane Fly}} = Cricket = {{:Wiki..."
4640276
wikitext
text/x-wiki
= Crazy Bug Facts =
{{:Wikijunior:Bugs/Crazy Bug Facts}}
= Insects Intro =
{{:Wikijunior:Bugs/Insects Intro}}
= Ant =
{{:Wikijunior:Bugs/Ant}}
= Aphid =
{{:Wikijunior:Bugs/Aphid}}
= Beetle =
{{:Wikijunior:Bugs/Beetle}}
= Bee =
{{:Wikijunior:Bugs/Bee}}
= Black Fly =
{{:Wikijunior:Bugs/Black Fly}}
= Caterpillar/Butterfly =
{{:Wikijunior:Bugs/Caterpillar/Butterfly}}
= Cockroach =
{{:Wikijunior:Bugs/Cockroach}}
= Crane Fly =
{{:Wikijunior:Bugs/Crane Fly}}
= Cricket =
{{:Wikijunior:Bugs/Cricket}}
= Cicada =
{{:Wikijunior:Bugs/Cicada}}
= Diving Beetle =
{{:Wikijunior:Bugs/Diving Beetle}}
= Dragonfly =
{{:Wikijunior:Bugs/Dragonfly}}
= Damselfly =
{{:Wikijunior:Bugs/Damselfly}}
= Dragonfly & Damselfly =
{{:Wikijunior:Bugs/Dragonfly & Damselfly}}
= Firefly =
{{:Wikijunior:Bugs/Firefly}}
= Fly =
{{:Wikijunior:Bugs/Fly}}
= Flea =
{{:Wikijunior:Bugs/Flea}}
= Fruit Fly =
{{:Wikijunior:Bugs/Fruit Fly}}
= Grasshopper =
{{:Wikijunior:Bugs/Grasshopper}}
= Ladybug =
{{:Wikijunior:Bugs/Ladybug}}
= Locust =
{{:Wikijunior:Bugs/Locust}}
= Louse =
{{:Wikijunior:Bugs/Louse}}
= Mayfly =
{{:Wikijunior:Bugs/Mayfly}}
= Mosquito =
{{:Wikijunior:Bugs/Mosquito}}
= Monarch butterfly =
{{:Wikijunior:Bugs/Monarch butterfly}}
= Moth =
{{:Wikijunior:Bugs/Moth}}
= Pondskater/Water Strider =
{{:Wikijunior:Bugs/Pondskater/Water Strider}}
= Praying Mantis =
{{:Wikijunior:Bugs/Praying Mantis}}
= Predaceous Diving Beetle =
{{:Wikijunior:Bugs/Predaceous Diving Beetle}}
= Shield Bug =
{{:Wikijunior:Bugs/Shield Bug}}
= Stinkbug =
{{:Wikijunior:Bugs/Stinkbug}}
= Walking Stick =
{{:Wikijunior:Bugs/Walking Stick}}
= Arachnids Intro =
{{:Wikijunior:Bugs/Arachnids Intro}}
= Black Widow =
{{:Wikijunior:Bugs/Black Widow}}
= Harvestman (Daddy Longlegs) =
{{:Wikijunior:Bugs/Harvestman (Daddy Longlegs)}}
= Pseudoscorpion =
{{:Wikijunior:Bugs/Pseudoscorpion}}
= Tarantula =
{{:Wikijunior:Bugs/Tarantula}}
= Mexican Red-Kneed Tarantula =
{{:Wikijunior:Bugs/Mexican Red-Kneed Tarantula}}
= Mite =
{{:Wikijunior:Bugs/Mite}}
= Scorpion =
{{:Wikijunior:Bugs/Scorpion}}
= Australian burrowing scorpion =
{{:Wikijunior:Bugs/Australian burrowing scorpion}}
= Spider =
{{:Wikijunior:Bugs/Spider}}
= Ant-Mimicking Spider =
{{:Wikijunior:Bugs/Ant-Mimicking Spider}}
= Brown Recluse =
{{:Wikijunior:Bugs/Brown Recluse}}
= Crab Spider =
{{:Wikijunior:Bugs/Crab Spider}}
= Funnel-Web Spider =
{{:Wikijunior:Bugs/Funnel-Web Spider}}
= Jumping Spider =
{{:Wikijunior:Bugs/Jumping Spider}}
= Orb Weaver =
{{:Wikijunior:Bugs/Orb Weaver}}
= Trap-door Spider =
{{:Wikijunior:Bugs/Trap-door Spider}}
= Wolf Spider =
{{:Wikijunior:Bugs/Wolf Spider}}
= Tick =
{{:Wikijunior:Bugs/Tick}}
= Other Intro =
{{:Wikijunior:Bugs/Other Intro}}
= Earthworm =
{{:Wikijunior:Bugs/Earthworm}}
= Centipede =
{{:Wikijunior:Bugs/Centipede}}
= Millipede =
{{:Wikijunior:Bugs/Millipede}}
= Woodlouse, Pill Bug or Armadillo Bug =
{{:Wikijunior:Bugs/Woodlouse}}
= Glossary =
{{:Wikijunior:Bugs/Glossary}}
by2zcc1tbrif70vka2qy6bt9vt0c10t
4640277
4640276
2026-06-14T09:11:04Z
Dirk Hünniger
343292
4640277
wikitext
text/x-wiki
= Crazy Bug Facts =
{{:Wikijunior:Bugs/Crazy Bug Facts}}
= Insects Intro =
{{:Wikijunior:Bugs/Insects Intro}}
= Ant =
{{:Wikijunior:Bugs/Ant}}
= Aphid =
{{:Wikijunior:Bugs/Aphid}}
= Beetle =
{{:Wikijunior:Bugs/Beetle}}
= Bee =
{{:Wikijunior:Bugs/Bee}}
= Black Fly =
{{:Wikijunior:Bugs/Black Fly}}
= Caterpillar/Butterfly =
{{:Wikijunior:Bugs/Caterpillar/Butterfly}}
= Cockroach =
{{:Wikijunior:Bugs/Cockroach}}
= Crane Fly =
{{:Wikijunior:Bugs/Crane Fly}}
= Cricket =
{{:Wikijunior:Bugs/Cricket}}
= Cicada =
{{:Wikijunior:Bugs/Cicada}}
= Diving Beetle =
{{:Wikijunior:Bugs/Diving Beetle}}
= Dragonfly =
{{:Wikijunior:Bugs/Dragonfly}}
= Damselfly =
{{:Wikijunior:Bugs/Damselfly}}
= Dragonfly & Damselfly =
{{:Wikijunior:Bugs/Dragonfly & Damselfly}}
= Firefly =
{{:Wikijunior:Bugs/Firefly}}
= Fly =
{{:Wikijunior:Bugs/Fly}}
= Flea =
{{:Wikijunior:Bugs/Flea}}
= Fruit Fly =
{{:Wikijunior:Bugs/Fruit Fly}}
= Grasshopper =
{{:Wikijunior:Bugs/Grasshopper}}
= Ladybug =
{{:Wikijunior:Bugs/Ladybug}}
= Locust =
{{:Wikijunior:Bugs/Locust}}
= Louse =
{{:Wikijunior:Bugs/Louse}}
= Mayfly =
{{:Wikijunior:Bugs/Mayfly}}
= Mosquito =
{{:Wikijunior:Bugs/Mosquito}}
= Monarch butterfly =
{{:Wikijunior:Bugs/Monarch butterfly}}
= Moth =
{{:Wikijunior:Bugs/Moth}}
= Pondskater/Water Strider =
{{:Wikijunior:Bugs/Pondskater/Water Strider}}
= Praying Mantis =
{{:Wikijunior:Bugs/Praying Mantis}}
= Predaceous Diving Beetle =
{{:Wikijunior:Bugs/Predaceous Diving Beetle}}
= Shield Bug =
{{:Wikijunior:Bugs/Shield Bug}}
= Stinkbug =
{{:Wikijunior:Bugs/Stinkbug}}
= Walking Stick =
{{:Wikijunior:Bugs/Walking Stick}}
= Arachnids Intro =
{{:Wikijunior:Bugs/Arachnids Intro}}
= Black Widow =
{{:Wikijunior:Bugs/Black Widow}}
= Harvestman (Daddy Longlegs) =
{{:Wikijunior:Bugs/Harvestman (Daddy Longlegs)}}
= Pseudoscorpion =
{{:Wikijunior:Bugs/Pseudoscorpion}}
= Tarantula =
{{:Wikijunior:Bugs/Tarantula}}
= Mexican Red-Kneed Tarantula =
{{:Wikijunior:Bugs/Mexican Red-Kneed Tarantula}}
= Mite =
{{:Wikijunior:Bugs/Mite}}
= Scorpion =
{{:Wikijunior:Bugs/Scorpion}}
= Australian burrowing scorpion =
{{:Wikijunior:Bugs/Australian burrowing scorpion}}
= Spider =
{{:Wikijunior:Bugs/Spider}}
= Ant-Mimicking Spider =
{{:Wikijunior:Bugs/Ant-Mimicking Spider}}
= Brown Recluse =
{{:Wikijunior:Bugs/Brown Recluse}}
= Crab Spider =
{{:Wikijunior:Bugs/Crab Spider}}
= Funnel-Web Spider =
{{:Wikijunior:Bugs/Funnel-Web Spider}}
= Jumping Spider =
{{:Wikijunior:Bugs/Jumping Spider}}
= Orb Weaver =
{{:Wikijunior:Bugs/Orb Weaver}}
= Trap-door Spider =
{{:Wikijunior:Bugs/Trap-door Spider}}
= Wolf Spider =
{{:Wikijunior:Bugs/Wolf Spider}}
= Tick =
{{:Wikijunior:Bugs/Tick}}
= Other Intro =
{{:Wikijunior:Bugs/Other Intro}}
= Earthworm =
{{:Wikijunior:Bugs/Earthworm}}
= Centipede =
{{:Wikijunior:Bugs/Centipede}}
= Millipede =
{{:Wikijunior:Bugs/Millipede}}
= Woodlouse, Pill Bug or Armadillo Bug =
{{:Wikijunior:Bugs/Woodlouse}}
= Glossary =
{{:Wikijunior:Bugs/Glossary}}
= Contributing Page =
{{:Wikijunior:Bugs/Contributing}}
= Authors List =
{{:Wikijunior:Bugs/Authors}}
rzrlwthdddxvul1nv63r3ekdncabzy1
User:Dirk Hünniger/jc
2
483925
4640279
2026-06-14T09:23:08Z
Dirk Hünniger
343292
Created page with "= Basic principles = {{:Mathematics_of_the_Jewish_CalendarBasic principles}} = The 19 year cycle = {{:Mathematics_of_the_Jewish_CalendarThe 19 year cycle}} = The lengths of the months = {{:Mathematics_of_the_Jewish_CalendarThe lengths of the months}} = The calculation of the Molad = {{:Mathematics_of_the_Jewish_CalendarThe calculation of the Molad}} = The four postponements of the New Year = {{:Mathematics_of_the_Jewish_CalendarThe four postponements of the New Year}} =..."
4640279
wikitext
text/x-wiki
= Basic principles =
{{:Mathematics_of_the_Jewish_CalendarBasic principles}}
= The 19 year cycle =
{{:Mathematics_of_the_Jewish_CalendarThe 19 year cycle}}
= The lengths of the months =
{{:Mathematics_of_the_Jewish_CalendarThe lengths of the months}}
= The calculation of the Molad =
{{:Mathematics_of_the_Jewish_CalendarThe calculation of the Molad}}
= The four postponements of the New Year =
{{:Mathematics_of_the_Jewish_CalendarThe four postponements of the New Year}}
= The fourteen types of year =
{{:Mathematics_of_the_Jewish_CalendarThe fourteen types of year}}
= The main festivals and fasts =
{{:Mathematics_of_the_Jewish_CalendarThe main festivals and fasts}}
= Minor fasts =
{{:Mathematics_of_the_Jewish_CalendarMinor fasts}}
= Special Shabbats =
{{:Mathematics_of_the_Jewish_CalendarSpecial Shabbats}}
= The Annual Cycle of Torah Readings =
{{:Mathematics_of_the_Jewish_CalendarThe Annual Cycle of Torah Readings}}
= The Atbash =
{{:Mathematics_of_the_Jewish_CalendarThe Atbash}}
= The prayer for rain and the blessing of the sun =
{{:Mathematics_of_the_Jewish_CalendarThe prayer for rain and the blessing of the sun}}
= The sixty-one types of cycle =
{{:Mathematics_of_the_Jewish_CalendarThe sixty-one types of cycle}}
= Anniversaries =
{{:Mathematics_of_the_Jewish_CalendarAnniversaries}}
= Gauss' Formula for the Date of Pesach =
{{:Mathematics_of_the_Jewish_CalendarGauss' Formula for the Date of Pesach}}
= Slonimsky's Formula for the Year Type =
{{:Mathematics_of_the_Jewish_CalendarSlonimsky's Formula for the Year Type}}
= The recurrence period of the calendar =
{{:Mathematics_of_the_Jewish_CalendarThe recurrence period of the calendar}}
= Long-term data on the calendar =
{{:Mathematics_of_the_Jewish_CalendarLong-term data on the calendar}}
= The long-term accuracy of the calendar =
{{:Mathematics_of_the_Jewish_CalendarThe long-term accuracy of the calendar}}
= Further reading =
{{:Mathematics_of_the_Jewish_CalendarFurther reading}}
= Authors & Contributors =
{{:Mathematics_of_the_Jewish_CalendarAuthors & Contributors}}
s4okv6wogabg8oi9f1frk5fwkxkqs20
4640280
4640279
2026-06-14T09:23:44Z
Dirk Hünniger
343292
4640280
wikitext
text/x-wiki
= Basic principles =
{{:Mathematics_of_the_Jewish_Calendar/Basic principles}}
= The 19 year cycle =
{{:Mathematics_of_the_Jewish_Calendar/The 19 year cycle}}
= The lengths of the months =
{{:Mathematics_of_the_Jewish_Calendar/The lengths of the months}}
= The calculation of the Molad =
{{:Mathematics_of_the_Jewish_Calendar/The calculation of the Molad}}
= The four postponements of the New Year =
{{:Mathematics_of_the_Jewish_Calendar/The four postponements of the New Year}}
= The fourteen types of year =
{{:Mathematics_of_the_Jewish_Calendar/The fourteen types of year}}
= The main festivals and fasts =
{{:Mathematics_of_the_Jewish_Calendar/The main festivals and fasts}}
= Minor fasts =
{{:Mathematics_of_the_Jewish_Calendar/Minor fasts}}
= Special Shabbats =
{{:Mathematics_of_the_Jewish_Calendar/Special Shabbats}}
= The Annual Cycle of Torah Readings =
{{:Mathematics_of_the_Jewish_Calendar/The Annual Cycle of Torah Readings}}
= The Atbash =
{{:Mathematics_of_the_Jewish_Calendar/The Atbash}}
= The prayer for rain and the blessing of the sun =
{{:Mathematics_of_the_Jewish_Calendar/The prayer for rain and the blessing of the sun}}
= The sixty-one types of cycle =
{{:Mathematics_of_the_Jewish_Calendar/The sixty-one types of cycle}}
= Anniversaries =
{{:Mathematics_of_the_Jewish_Calendar/Anniversaries}}
= Gauss' Formula for the Date of Pesach =
{{:Mathematics_of_the_Jewish_Calendar/Gauss' Formula for the Date of Pesach}}
= Slonimsky's Formula for the Year Type =
{{:Mathematics_of_the_Jewish_Calendar/Slonimsky's Formula for the Year Type}}
= The recurrence period of the calendar =
{{:Mathematics_of_the_Jewish_Calendar/The recurrence period of the calendar}}
= Long-term data on the calendar =
{{:Mathematics_of_the_Jewish_Calendar/Long-term data on the calendar}}
= The long-term accuracy of the calendar =
{{:Mathematics_of_the_Jewish_Calendar/The long-term accuracy of the calendar}}
= Further reading =
{{:Mathematics_of_the_Jewish_Calendar/Further reading}}
= Authors & Contributors =
{{:Mathematics_of_the_Jewish_Calendar/Authors & Contributors}}
4mn9b7t2w4ft4xpw6b5jrrzmei6i5fv