via686a base address not set

Weit weniger häufig als der ähnlich gelagerte Fall in VMs dürfte heute noch folgende Ausgabe sein:

via686a 0000:00:04.4: base address not set - upgrade BIOS or use force_addr=0xaddr

Diese VIA-Mainboard-Chipsets sind einiges über 10 Jahre alt (dieser Artikel ist infolge besagten Problemes eines Forenusers entstanden), damals jedoch sehr häufig verbaut worden (und schon unter 2k/XP verdammt problematisch gewesen, ich habe etliche Kd.rechner mit verschiedenen Mainboards und derartigen VIA-Chipsets im PC-Support gehabt, Stichwort Interrupts, Latenzen etc.).


Natürlich sollte man nicht nur wegen dieses Problems das letzterhältliche BIOS flashen, um zumindest dahingehend die machbare Grundlage zu erreichen (sofern man eben noch ‘rankommt). Das SMBus-Problem betreffend wird es nicht genügen. Es muß also eine zu verwendende Adresse mitgeteilt werden.

Wir checken auf belegte Adressen

1
cat /proc/ioports

bzw. freie Bereiche. Ausgegeben wird etwas wie

1
2
3
4
5
0000-001f : dma1
0020-0021 : pic1
0040-0043 : timer0
0050-0053 : timer1
(...)

Dies sind natürlich hexadezimale Zahlen (0 – f). Für via686a werden 128 bit benötigt (1 Adresse ≙ 1 bit). Beispielsweise der freie Bereich 0022 – 0039 ist dafür also zu klein. Ab etwas über 5000h sollte es mehr Luft geben. Mit einem Taschenrechner wie galculator, auf scientific mode geschaltet, ist schnell zwischen dec und hex umgerechnet.

Ich mag nicht unbedingt krumme Zahlen mittendrin, also wählen wir als Beispiel die Adresse ab 6000h und führen aus:

Für Ubuntu und -Derivate bzw. bei deaktiviertem root:

1
2
sudo bash -c "echo 'options via686a force_addr=0x6000' >> /etc/modprobe.d/via686a.conf"
sudo update-initramfs -u -k all

Sonstige Linux-Distributionen:

1
2
3
4
su
bash -c "echo 'options via686a force_addr=0x6000' >> /etc/modprobe.d/via686a.conf"
update-initramfs -u -k all
exit

Anders als das SMBus-Problem mit VBox kann ich dies hier mangels entsprechender Hardware (gottseidank) nicht testen. Rückmeldung erwünscht.