I've just installed Debian 11 LXDE without any non-free packages into my old notebook.
Everything went fine except for the screen display, which there were some issues. Some of them could be solved by switching the BIOS from LEGACY to UEFI mode and reinstalling Debian. However, even so, some unpleasant issues still remain:
- no backlight brightness control
- ScreenLock (and other similar software) unable to turnoff the backlight
All these issues could be easily solved by installing the non-free package firmware-amd-graphics
. However, according to some sources:
- "Non-free includes packages that do not comply with the DFSG (Debian Free Software Guidelines)", Wikipedia
- "Non-free software is made available to those who wish to risk its ills. Before blindly installing non-free software it may be prudent to ask if there is a Free replacement.", Debian Wiki
QUESTION
Therefore, as suggested by the Debian Wiki, is there a DFSG alternative to avoid the non-free package firmware-amd-graphics
?
System Specifications
Product Name: Aspire E1-421 APU
CPU: AMD E1-1200 APU @ 1400 MHz
GPU: Radeon(tm) HD Graphics
root@debian:~# journalctl -b | grep -i "vga\|radeon\|kms\|drm"
Jan 28 22:30:33 debian kernel: smpboot: CPU0: AMD E1-1200 APU with Radeon(tm) HD Graphics (family: 0x14, model: 0x2, stepping: 0x0)
Jan 28 22:30:33 debian kernel: pci 0000:00:01.0: vgaarb: setting as boot VGA device
Jan 28 22:30:33 debian kernel: pci 0000:00:01.0: vgaarb: VGA device added: decodes=io+mem,owns=io+mem,locks=none
Jan 28 22:30:33 debian kernel: pci 0000:00:01.0: vgaarb: bridge control possible
Jan 28 22:30:33 debian kernel: vgaarb: loaded
Jan 28 22:30:33 debian kernel: fb0: EFI VGA frame buffer device
Jan 28 22:30:33 debian kernel: ACPI: Video Device [VGA] (multi-head: yes rom: no post: no)
Jan 28 22:30:33 debian kernel: [drm] radeon kernel modesetting enabled.
Jan 28 22:30:33 debian kernel: [drm:radeon_pci_probe [radeon]] *ERROR* radeon kernel modesetting for R600 or later requires firmware installed
Jan 28 22:30:33 debian systemd[1]: Starting Load Kernel Module drm...
Jan 28 22:30:33 debian systemd[1]: modprobe@drm.service: Succeeded.
Jan 28 22:30:33 debian systemd[1]: Finished Load Kernel Module drm.
root@debian:~# lspci -k | grep -EA3 'VGA|3D|Display'
00:01.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Wrestler [Radeon HD 7310]
Subsystem: Acer Incorporated [ALI] Wrestler [Radeon HD 7310]
Kernel modules: radeon
00:01.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Wrestler HDMI Audio
root@debian:~# lsmod | grep "kms\|drm"
drm_kms_helper 278528 1 radeon
cec 61440 1 drm_kms_helper
drm 618496 3 drm_kms_helper,radeon,ttm
root@debian:~# modinfo drm_kms_helper
filename: /lib/modules/5.10.0-11-amd64/kernel/drivers/gpu/drm/drm_kms_helper.ko
license: GPL and additional rights
description: DRM KMS helper
author: David Airlie, Jesse Barnes
license: GPL
depends: drm,cec
retpoline: Y
intree: Y
name: drm_kms_helper
vermagic: 5.10.0-11-amd64 SMP mod_unload modversions
sig_id: PKCS#7
signer: Debian Secure Boot CA
sig_key: 4B:6E:F5:AB:CA:66:98:25:17:8E:05:2C:84:66:7C:CB:C0:53:1F:8C
sig_hashalgo: sha256
signature: 0D:81:25:6D:08:D1:C4:83:0F:49:AA:AE:71:B8:89:84:E6:04:8D:5E:
94:BB:C0:2C:68:D8:06:01:2D:3C:E0:ED:25:CC:29:4D:69:DF:58:25:
5F:9C:CB:44:23:3B:4A:04:C5:C2:13:B7:3A:7D:B8:12:61:64:10:12:
33:86:02:7D:84:92:BA:24:EB:D5:B9:51:5F:F1:44:28:DF:C2:D4:87:
08:14:4C:4F:92:49:B1:F4:68:95:5D:80:26:32:D4:C6:2A:4B:36:0C:
E2:58:76:7F:76:26:D4:AB:14:18:AD:63:44:E0:F8:99:BB:83:DD:B9:
5D:61:36:21:1F:8E:A9:55:96:AB:AF:03:93:DE:EE:C7:F8:03:55:35:
BD:01:C7:33:23:C6:89:C7:E5:CA:E6:9F:93:EF:AF:66:9C:DD:0A:35:
EF:64:0C:79:3E:BD:CC:7A:EF:61:55:83:4B:F4:97:E7:70:93:FE:B6:
19:70:62:4C:0D:81:A9:E0:8D:B9:9C:6E:D6:0C:3F:84:B8:B2:E7:2D:
7B:10:B1:5D:48:3A:53:C1:2A:B5:09:4A:84:44:AF:3B:26:49:BF:04:
96:74:1A:AD:C0:1B:6C:73:34:55:97:81:BD:6A:20:A1:EB:57:C6:FA:
78:E8:E4:8E:04:9F:AE:6B:B9:F4:AB:EF:27:7B:98:0A
parm: drm_dp_cec_unregister_delay:CEC unregister delay in seconds, 0: no delay, >= 1000: never unregister (uint)
parm: fbdev_emulation:Enable legacy fbdev emulation [default=true] (bool)
parm: drm_fbdev_overalloc:Overallocation of the fbdev buffer (%) [default=100] (int)
parm: edid_firmware:DEPRECATED. Use drm.edid_firmware module parameter instead. (charp)
parm: poll:bool
parm: dp_aux_i2c_speed_khz:Assumed speed of the i2c bus in kHz, (1-400, default 10) (int)
parm: dp_aux_i2c_transfer_size:Number of bytes to transfer in a single I2C over DP AUX CH message, (1-16, default 16) (int)
root@debian:~# modinfo cec
filename: /lib/modules/5.10.0-11-amd64/kernel/drivers/media/cec/core/cec.ko
license: GPL
description: Device node registration for cec drivers
author: Hans Verkuil <hans.verkuil@cisco.com>
depends:
retpoline: Y
intree: Y
name: cec
vermagic: 5.10.0-11-amd64 SMP mod_unload modversions
sig_id: PKCS#7
signer: Debian Secure Boot CA
sig_key: 4B:6E:F5:AB:CA:66:98:25:17:8E:05:2C:84:66:7C:CB:C0:53:1F:8C
sig_hashalgo: sha256
signature: AF:93:56:FC:05:50:7F:3E:9A:73:C5:C9:58:9D:C0:82:03:BF:ED:C5:
D5:D6:6F:18:AD:1D:5B:BE:8B:87:20:5A:DE:1E:F4:E3:72:EA:6B:19:
A6:54:46:98:D0:89:25:B1:7F:D8:C9:D5:BE:26:89:F8:E3:8E:03:AD:
6C:BD:D7:B5:85:20:E9:19:B5:78:47:8F:9B:F9:CA:0F:60:E2:EE:EC:
E6:30:D2:41:3E:8B:38:08:B6:FE:71:4C:5B:0D:77:3A:0D:68:D8:75:
01:55:CB:C3:DA:B6:9E:D2:7E:B1:B0:6D:9F:AA:E3:FC:20:56:9C:EB:
B7:B1:E4:93:0B:61:9E:B1:61:B5:05:67:89:4C:6A:16:B5:01:31:3D:
78:7C:83:93:CA:C1:F3:F5:21:CD:4B:80:BF:B8:27:A3:B9:84:05:AD:
0B:F5:43:A3:7E:F5:BC:1C:B3:C2:B2:63:06:22:F4:45:22:9E:E9:D7:
1F:57:7B:89:85:33:28:D1:5D:EF:09:07:56:CA:2D:65:6C:F8:FC:45:
E9:D9:F1:47:29:C2:F6:18:52:51:B3:A0:77:8F:A9:48:DC:6F:09:BE:
C9:81:0B:9F:93:10:69:0A:7B:E0:37:BF:29:A0:63:67:D2:E6:11:B7:
21:52:6D:F5:E2:88:BA:06:A9:EF:4D:E5:AF:35:A9:FF
parm: debug:debug level (0-2) (int)
parm: debug_phys_addr:add CEC_CAP_PHYS_ADDR if set (bool)
root@debian:~# modinfo drm
filename: /lib/modules/5.10.0-11-amd64/kernel/drivers/gpu/drm/drm.ko
license: GPL and additional rights
description: DRM shared core routines
author: Gareth Hughes, Leif Delgass, José Fonseca, Jon Smirl
license: GPL and additional rights
description: DRM bridge infrastructure
author: Ajay Kumar <ajaykumar.rs@samsung.com>
license: GPL and additional rights
description: DRM panel infrastructure
author: Thierry Reding <treding@nvidia.com>
depends:
retpoline: Y
intree: Y
name: drm
vermagic: 5.10.0-11-amd64 SMP mod_unload modversions
sig_id: PKCS#7
signer: Debian Secure Boot CA
sig_key: 4B:6E:F5:AB:CA:66:98:25:17:8E:05:2C:84:66:7C:CB:C0:53:1F:8C
sig_hashalgo: sha256
signature: 6A:01:C0:42:CA:61:EB:E7:CA:FA:A1:22:62:41:E4:50:87:00:B2:B9:
E9:2A:C2:EB:90:3A:95:F5:69:93:81:AE:F9:44:9A:F3:55:B8:42:1B:
BF:AA:18:B3:33:53:E9:55:98:EC:F8:1F:C7:8B:E7:3B:5E:58:20:41:
DE:3E:58:4D:7F:CB:2B:51:65:30:38:A7:F1:91:A1:4E:69:65:73:32:
AF:3F:D9:93:F1:5F:E3:D7:32:2B:96:46:EF:9E:D1:DE:8A:6A:02:54:
2A:24:C7:8A:C6:2C:21:7C:94:20:B2:1C:9F:4C:7E:B8:36:C7:3F:29:
AE:AC:BF:D0:D4:41:7C:B6:99:4B:9F:A9:BF:9C:A6:F2:F8:86:F1:C7:
BB:0A:14:D9:A5:E1:54:21:B3:4D:65:34:8B:00:83:AF:B8:20:CB:8B:
C1:90:C8:46:B8:39:8E:3B:1B:77:B4:8C:91:FA:4F:A0:9B:1B:56:A6:
B4:D1:9A:57:27:16:BB:DF:D8:8D:75:D8:80:0F:61:9C:1F:7F:87:E8:
DE:7F:6D:A4:25:B2:9D:E3:9B:16:78:6C:48:75:7B:AB:37:97:3F:A7:
9D:A3:DC:D9:F7:00:CB:ED:8A:81:AC:9C:AE:7C:C5:EF:57:11:0F:7F:
B1:56:50:1C:8D:26:7D:6A:A6:36:09:3F:FE:89:AC:8D
parm: edid_firmware:Do not probe monitor, use specified EDID blob from built-in data or /lib/firmware instead. (string)
parm: vblankoffdelay:Delay until vblank irq auto-disable [msecs] (0: never disable, <0: disable immediately) (int)
parm: timestamp_precision_usec:Max. error on timestamps [usecs] (int)
parm: debug:Enable debug output, where each bit enables a debug category.
Bit 0 (0x01) will enable CORE messages (drm core code)
Bit 1 (0x02) will enable DRIVER messages (drm controller code)
Bit 2 (0x04) will enable KMS messages (modesetting code)
Bit 3 (0x08) will enable PRIME messages (prime code)
Bit 4 (0x10) will enable ATOMIC messages (atomic code)
Bit 5 (0x20) will enable VBL messages (vblank code)
Bit 7 (0x80) will enable LEASE messages (leasing code)
Bit 8 (0x100) will enable DP messages (displayport code) (int)
parm: edid_fixup:Minimum number of valid EDID header bytes (0-8, default 6) (int)
> "AMD GPU driver has to be significantly newer than the AMD GPU hardware"
I'm not sure how to check that, neither how to use this kind of info in order to solve the aforementioned issue. Even so, I've included some additional GPU info to the post. Let me know your thoughts.lsmod
, then get the module version usingmodinfo driver_module
(output is long, unsure there is a version string). Maybe also look in the syslog (jounalctl -b
) for messages fromamdgpu
. I don't know for Debian, but SUSE Linux has ahwinfo --gfxcard
that will output information about the graphics card and the driver being used.drm_kms_helper 278528 1 radeon
as I posted above?modinfo
,journalctl
andhwinfo
. Let me know your thoughts.