354
354
# Use them without the usual filtering. This may cause the system
355
355
# to blow up, but they explicitly asked for it.
356
356
remove_parameters --quirk-test
357
echo "Quirk testing mode enabled."
357
358
elif using_kms; then
358
359
# Using kernel modesetting? No quirks, and do not change vts.
359
360
remove_parameters $possible_video_quirks
360
361
add_parameters --quirk-no-chvt
362
echo "Kernel modesetting video driver detected, not using quirks."
361
363
elif using_nvidia; then
362
364
# Ditto for nVidia binary drivers
363
365
remove_parameters $possible_video_quirks
366
echo "nVidia binary video drive detected, not using quirks."
364
367
elif using_fglrx; then
365
368
# fglrx may or may not have to change vts, reports one
366
369
# way or the other welcome.
367
370
remove_parameters $possible_video_quirks
368
371
add_parameters --quirk-none
372
echo "ATI Catalyst driver detected, not using quirks."
369
373
elif have_nvidia_g80; then
370
374
# nVidia G80 GPUs require special handling when not using nvidia
371
375
# binary drivers. I do not know if noveau requires help or not.
372
376
remove_parameters $possible_video_quirks
373
377
add_parameters --quirk-vbe-post
378
echo "nVidia g80 series card detected."
375
380
# Go ahead and get our quirks.
376
381
if has_video_parameters; then
377
382
# Parameters from the command line take precedence
378
383
# over the database, so do not query it.
384
echo "Using quirks passed as parameters."
380
385
elif [[ $PM_QUIRKS ]]; then
381
386
# If we have $PM_QUIRKS. use it instead of the quirk database
382
387
add_parameters $PM_QUIRKS
388
echo "Using PM_QUIRKS environment variable for quirks."
383
389
# If we were not passed any quirks on the command line,
384
390
# get them from the database.
385
391
elif QUIRKS=$(find_native "$PM_LKW_QUIRKS"); then
386
392
# Known working quirks from our last run are still valid.
388
394
add_parameters $QUIRKS
395
echo "Using last known working set of quirks."
390
397
# Our known working quirks from the last run are either
391
398
# nonexistent or invalid. Either way, start over.
395
402
QUIRKS=$(find_native "$f") && break
397
404
# some default quirks if we did not get any.
398
[[ -z $QUIRKS ]] && QUIRKS="--quirk-vbe-post
399
--quirk-dpms-on --quirk-dpms-suspend
400
--quirk-vbestate-restore
401
--quirk-vbemode-restore
405
if [[ -z $QUIRKS ]]; then
406
QUIRKS="--quirk-vbe-post --quirk-dpms-on
407
--quirk-dpms-suspend --quirk-vbestate-restore
408
--quirk-vbemode-restore --quirk-vga-mode-3"
409
echo "No quirk database entry for this system, using default."
411
echo "Using quirks for this system from quirk database."
403
413
add_parameters $QUIRKS
404
414
savestate video_quirks "$QUIRKS"
425
436
if state_exists video_quirks; then
426
437
QUIRKS=$(restorestate video_quirks);
427
438
write_last_known_working
439
echo "Saving last known working quirks: $QUIRKS"
428
440
elif has_parameter --store-quirks-as-lkw; then
429
441
for x in $(get_parameters); do
430
442
for y in $possible_video_quirks; do