[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: dexconf should default to PCI:1:0:0 ?



On Thu, May 27, 2004 at 11:03:24AM +0200, Bill Allombert wrote:
> Hello X Strike Force,
> 
> I have just made a sarge install and I found that
> dexconf default to PCI:0:1:0. 

That's just about completely incorrect.

More accurately, it defaults to:
  1) whatever lspci says the first VGA compatible device is, if lspci is
     available, returns information, and (if you have more than one video
     card or if you're on a PowerPC);
  2) "1", if you're on an SGI Indigo2 machine;
  3) blank, if neither of the above apply

Let's look at the code, shall we?

# BusID
PRIORITY=low
DEFAULT=

# Some PowerPCs need to be told where to find the video card even if there is
# only one in the machine (broken PCI bus code in the XFree86 X server, most
# likely).  If there are multiple video cards, we need to configure one as the
# primary head.
if [ "$ARCH" = "powerpc" -o "$MULTIHEAD" = "yes" ]; then
  if [ "$ARCH" = "powerpc" ]; then
    PRIORITY=medium
  fi
  if [ "$MULTIHEAD" = "yes" ]; then
    PRIORITY=high
  fi
  if which lspci > /dev/null 2>&1; then
    # try to guess the correct BusID
    VIDEO_CARD=$(LC_ALL=C lspci -n | grep "Class 0300:" | head -n 1 | cut -d\  -f1)
    if [ -n "$VIDEO_CARD" ]; then
      # we now have an entry in "hex:hex.hex" format, need "PCI:decimal:decimal:decimal"
      BUS=$(printf "%d" 0x$(echo $VIDEO_CARD | cut -d: -f1) )
      DEVICE=$(printf "%d" 0x$(echo $VIDEO_CARD | cut -d: -f2 | cut -d. -f1) )
      FUNCTION=$(printf "%d" 0x$(echo $VIDEO_CARD | cut -d. -f2) )
      DEFAULT=PCI:$BUS:$DEVICE:$FUNCTION
    fi
  fi
fi

# SGI Indigo2 XLs require a special hack, per Guido Guenther (see Debian
# #249614).
if [ -e /proc/cpuinfo ]; then
  if grep -q "system type.*:.*SGI Indigo2" /proc/cpuinfo; then
    PRIORITY=medium
    DEFAULT=1
  fi
fi

> I expect most box to have a video adapter on the AGP port nowadays, so
> PCI:1:0:0 seems a better default.

I think you're proceeding from an invalid assumption; namely that
"PCI:0:1:0" is some sort of hard-coded default.

> Also it is unfortunate XFree86 and lspci does not use the same exact
> format for PCI ids, (lspci give 0000:01:00.0, but XFree86 want
> PCI:1:0:0) so I ended up slighlty confused...

The debconf template explains the format, and cautions about the
difference between decimal and hexadecimal.

I am unwilling to change the format of the BusID parameter that the
XFree86 X server accepts.  To do would render people's XF86Config-4
files incompatible between distributions.

If you have suggestions for how the following can be improved, please
offer them.

Template: xserver-xfree86/config/device/bus_id
Type: string
_Description: Please enter the video card's bus identifier.
 Users of PowerPC machines, and users of any computer with multiple video
 devices, should specify the BusID of the video card in the format:
 .
 PCI:nn:nn:nn
 .
 (where each nn is a decimal number referring to the card's bus, device, and
 function number, respectively).
 .
 For users of multi-head setups, this option will configure only one of the
 heads.  Further configuration will have to be done manually in the X server
 configuration file, /etc/X11/XF86Config-4.
 .
 Users of SGI Indigo2 XL machines should specify simply "1" here.
 .
 You may wish to use the "lspci" command to determine the bus location of your
 PCI or AGP video card.  Keep in mind that lspci reports the bus, device, and
 function numbers in hexadecimal, not decimal.
 .
 When possible, this question has been pre-answered for you and you should
 accept the default unless you know it doesn't work.
 .
 Users of machines other than PowerPCs or SGI Indigo2 XLs with only one video
 card should leave this entry blank.

Does anybody actually read the template descriptions I write?  You're
from France -- is the French translation badly out of date?

#. Type: string
#. Description
#: ../xserver-xfree86.templates:147
msgid "Please enter the video card's bus identifier."
msgstr "Identifiant du bus de la carte vidéo :"

#. Type: string
#. Description
#: ../xserver-xfree86.templates:147
msgid ""
"Users of PowerPC machines, and users of any computer with multiple video "
"devices, should specify the BusID of the video card in the format:"
msgstr ""
"Les utilisateurs de machines PowerPC et les utilisateurs d'ordinateurs avec "
"plusieurs cartes vidéo, doivent préciser l'identifiant du bus de la carte "
"vidéo au format suivant :"

#. Type: string
#. Description
#: ../xserver-xfree86.templates:147
msgid "PCI:nn:nn:nn"
msgstr "PCI:nn:nn:nn"

#. Type: string
#. Description
#: ../xserver-xfree86.templates:147
msgid ""
"(where each nn is a decimal number referring to the card's bus, device, and "
"function number, respectively)."
msgstr ""
"où chaque nn est un nombre décimal qui désigne le numéro, respectivement, du "
"bus, du périphérique et de la fonction."

#. Type: string
#. Description
#: ../xserver-xfree86.templates:147
msgid ""
"For users of multi-head setups, this option will configure only one of the "
"heads.  Further configuration will have to be done manually in the X server "
"configuration file, /etc/X11/XF86Config-4."
msgstr ""
"Pour ceux qui disposent de matériel avec plusieurs sorties graphiques "
"(« multi-head »), cette option ne configurera que l'une des sorties. Le "
"reste de la configuration devra se faire manuellement, dans le fichier de "
"configuration du serveur /etc/X11/XF86Config-4."

#. Type: string
#. Description
#: ../xserver-xfree86.templates:147
msgid ""
"You may wish to use the \"lspci\" command to determine the bus location of "
"your PCI or AGP video card.  Keep in mind that lspci reports the bus, "
"device, and function numbers in hexadecimal, not decimal."
msgstr ""
"Il est possible d'utiliser la commande « lspci » pour déterminer "
"l'identifiant de votre carte graphique, sur bus PCI ou AGP. Souvenez-vous "
"bien que lspci donne les numéros de bus, de périphérique et de fonction en "
"hexadécimal, et non pas en décimal."

#. Type: string
#. Description
#: ../xserver-xfree86.templates:147
msgid ""
"When possible, this question has been pre-answered for you and you should "
"accept the default unless you know it doesn't work."
msgstr ""
"Dans la mesure du possible, cette question est déjà pré-remplie, et il vous "
"suffit d'accepter la réponse par défaut, sauf si vous savez qu'elle ne "
"fonctionnera pas."

#. Type: string
#. Description
#: ../xserver-xfree86.templates:147
msgid ""
"Users of non-PowerPC machines with only one video card should leave this "
"entry blank."
msgstr ""
"Les utilisateurs de machines non-PowerPC qui n'ont qu'une seule carte "
"graphique devraient laisser cette entrée vide."

Please reformulate your complaint in light of the actual facts about how
the BusID default is determined.

-- 
G. Branden Robinson                |     Don't use nuclear weapons to
Debian GNU/Linux                   |     troubleshoot faults.
branden@debian.org                 |     -- US Air Force Instruction 91-111
http://people.debian.org/~branden/ |

Attachment: signature.asc
Description: Digital signature


Reply to: