Min linuxkärna startar inte rootfs på / - Något är fel?

Permalänk

Kolla här! Detta har jag inte sett!
https://pastebin.com/SFud9xP2

Den verkar försöka montera upp rootfs systemet nu. Men fortfarande så är det något som kärvar! Det är nära nu!

[ 0.181977] Initialise system trusted keyrings [ 0.182570] workingset: timestamp_bits=14 max_order=17 bucket_order=3 [ 0.187474] Trying to unpack rootfs image as initramfs... [ 0.204262] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 0.227796] NFS: Registering the id_resolver key type [ 0.227940] Key type id_resolver registered [ 0.227949] Key type id_legacy registered [ 0.228112] nfs4filelayout_init: NFSv4 File Layout Driver Registering... [ 0.228124] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering... [ 0.228313] ntfs: driver 2.1.32 [Flags: R/O]. [ 0.228608] jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc. [ 0.229336] fuse: init (API version 7.37) [ 0.230420] NET: Registered PF_ALG protocol family [ 0.230444] Key type asymmetric registered

Hmmm...kan detta vara ett problem? Varför ska jag ta bort initrd minnet när jag vill använda den?

[ 0.558498] registered taskstats version 1 [ 0.558554] Loading compiled-in X.509 certificates [ 1.391090] Freeing initrd memory: 6100K [ 1.423095] Loaded X.509 cert 'Build time autogenerated kernel key: 96c9d5901f398595f8d0147113c422cf9d80a5c4' [ 1.603175] arm-scmi firmware:scmi: Enabled polling mode TX channel - prot_id:16

https://unix.stackexchange.com/questions/499180/what-frees-th...

Det kanske är så att systemet är redan bootat upp och allt bara fungerar?
Det kanske är så att for-looparna avslutas inte, och därmed så kommer jag inte till loginpromten?

Edit:
Jag tror att det som behöver göras nu är att förstå vad detta meddelande säger. Notera att detta meddelande är sista felmeddelandet direkt efter sista manuella utskriftet från for-satsen. Så jag antar att dom hör ihop.

[ 3.057092] Unhandled fault: imprecise external abort (0x1c06) at 0xdeb10588 [ 3.057107] [deb10588] *pgd=c3487811, *pte=c348f24f, *ppte=c348f01f [ 3.057146] Internal error: : 1c06 [#1] PREEMPT ARM

Permalänk

Nu har jag kommit vidare för första gången på länge!
Jag lade till detta i Linux Device Tree

&m4_rproc{ status = "okay"; /* USER CODE BEGIN m4_rproc */ resets = <&scmi_reset RST_SCMI_MCU>, <&scmi_reset RST_SCMI_MCU_HOLD_BOOT>; reset-names = "mcu_rst", "hold_boot"; /*/delete-property/ st,syscfg-holdboot;*/ mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>, <&ipcc 3>; mbox-names = "vq0", "vq1", "shutdown", "detach"; memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>, <&vdev0vring1>, <&vdev0buffer>, <&mcu_rsc_table>; interrupt-parent = <&exti>; interrupts = <68 1>; wakeup-source; /* USER CODE END m4_rproc */ m4_system_resources{ status = "okay"; /* USER CODE BEGIN m4_system_resources */ /* USER CODE END m4_system_resources */ }; };

Nu har jag kommit hit. Det fetmarkerade är vad jag kom senast.

D/TC:0 pwr_scv_handler:56 PWR service: set 0x40000000 at offset 0xc F/TC:0 pwr_scv_handler:77 set off c=40000000 => 40000000 [ 6.375948] stm32-rproc 10000000.m4: wdg irq registered [ 6.380655] mmcblk0: mmc0:0001 008GB0 7.28 GiB [ 6.387325] remoteproc remoteproc0: releasing m4 D/TC:0 pwr_scv_handler:56 PWR service: set 0x10000000 at offset 0xc F/TC:0 pwr_scv_handler:77 set off c=10000000 => d0000000 [ 6.405443] stm32-rproc 10000000.m4: wdg irq registered [ 6.413798] remoteproc remoteproc0: releasing m4 [ 6.419014] mmcblk0: p1 p2 p3 p4 p5 p6 p7 p8 p9 [ 6.425717] mmcblk0boot0: mmc0:0001 008GB0 4.00 MiB [ 6.429622] ohci-platform 5800c000.usb: Generic Platform OHCI controller [ 6.436059] ohci-platform 5800c000.usb: new USB bus registered, assigned bus number 1 [ 6.446715] ehci-platform 5800d000.usb: EHCI Host Controller [ 6.451542] mmcblk0boot1: mmc0:0001 008GB0 4.00 MiB [ 6.457069] ehci-platform 5800d000.usb: new USB bus registered, assigned bus number 2 [ 6.465283] mmcblk0rpmb: mmc0:0001 008GB0 4.00 MiB, chardev (244:0) [ 6.471785] stm32-rproc 10000000.m4: wdg irq registered [ 6.476375] ohci-platform 5800c000.usb: irq 53, io mem 0x5800c000 [ 6.482036] ehci-platform 5800d000.usb: irq 52, io mem 0x5800d000 [ 6.488079] remoteproc remoteproc0: releasing m4 [ 6.516993] ehci-platform 5800d000.usb: USB 2.0 started, EHCI 1.00 [ 6.523000] hub 2-0:1.0: USB hub found [ 6.525612] hub 2-0:1.0: 2 ports detected [ 6.532725] stm32-rproc 10000000.m4: wdg irq registered [ 6.561384] remoteproc remoteproc0: releasing m4 [ 6.566082] stm32-rproc 10000000.m4: wdg irq registered F/TC:? 0 pta_scmi_ocall:205 Posting MSG message on channel 0u F/TC:? 0 plat_scmi_clock_set_state:472 SCMI clock 13 disable [ 6.583351] hub 1-0:1.0: USB hub found [ 6.585764] hub 1-0:1.0: 2 ports detected F/TC:0 0 __clk_disable:1187 Clock 140 has been disabled [ 6.596848] remoteproc remoteproc0: releasing m4 [ 6.601661] stm32-rproc 10000000.m4: wdg irq registered [ 6.627218] remoteproc remoteproc0: releasing m4 [ 16.488370] stm32-rproc 10000000.m4: wdg irq registered [ 16.497239] remoteproc remoteproc0: releasing m4 [ 16.500608] platform 10000000.m4: deferred probe pending

Så detta betyder att något är "deferred".

Edit:
När jag adderar detta i mmc0_extlinux/extlinux.conf inuti bootfs.ext4

# Generic Distro Configuration file generated by OpenEmbedded DEFAULT UUID TIMEOUT 20 LABEL UUID KERNEL /uImage FDTDIR / INITRD /uInitrd APPEND root=PARTUUID=e91c4e10-16e6-4c0e-bd0e-77becf4a3582 rootwait rw console=${console},${baudrate} dyndbg="file drivers/usb/core/hub.c +p" loglevel=8 earlyprintk debug log_buf_len=4M

Då ser jag lite mera loggar i just hub.c filen. Kanske man ska använda detta i file init/main.c ?

[ 6.451867] ohci-platform 5800c000.usb: Generic Platform OHCI controller [ 6.458287] ohci-platform 5800c000.usb: new USB bus registered, assigned bus number 1 [ 6.468045] stm32-rproc 10000000.m4: wdg irq registered [ 6.472020] ehci-platform 5800d000.usb: EHCI Host Controller [ 6.477519] ehci-platform 5800d000.usb: new USB bus registered, assigned bus number 2 [ 6.489597] remoteproc remoteproc0: releasing m4 [ 6.494267] stm32-rproc 10000000.m4: wdg irq registered [ 6.504621] ohci-platform 5800c000.usb: irq 53, io mem 0x5800c000 [ 6.510126] ehci-platform 5800d000.usb: irq 52, io mem 0x5800d000 [ 6.519646] remoteproc remoteproc0: releasing m4 [ 6.539414] ehci-platform 5800d000.usb: USB 2.0 started, EHCI 1.00 [ 6.544547] usb usb2: udev 1, busnum 2, minor = 128 [ 6.550109] hub 2-0:1.0: USB hub found [ 6.552918] hub 2-0:1.0: 2 ports detected [ 6.556874] hub 2-0:1.0: standalone hub [ 6.560716] hub 2-0:1.0: individual port power switching [ 6.565981] hub 2-0:1.0: individual port over-current protection [ 6.576097] hub 2-0:1.0: power on to power good time: 20ms [ 6.580260] hub 2-0:1.0: local power source is good [ 6.585318] hub 2-0:1.0: enabling power on all ports F/TC:? 0 pta_scmi_ocall:205 Posting MSG message on channel 0u F/TC:? 0 plat_scmi_clock_set_state:472 SCMI clock 13 disable [ 6.605042] stm32-rproc 10000000.m4: wdg irq registered [ 6.610071] usb usb1: udev 1, busnum 1, minor = 0 [ 6.614709] hub 1-0:1.0: USB hub found [ 6.617467] hub 1-0:1.0: 2 ports detected F/TC:0 0 __clk_disable:1187 Clock 140 has been disabled [ 6.627986] remoteproc remoteproc0: releasing m4 [ 6.631445] hub 2-0:1.0: state 7 ports 2 chg 0000 evt 0000 [ 6.636748] hub 2-0:1.0: hub_suspend [ 6.640351] hub 1-0:1.0: standalone hub [ 6.644101] hub 1-0:1.0: ganged power switching [ 6.648654] hub 1-0:1.0: individual port over-current protection [ 6.656094] stm32-rproc 10000000.m4: wdg irq registered [ 6.660668] remoteproc remoteproc0: releasing m4 [ 6.664643] hub 1-0:1.0: power on to power good time: 4ms [ 6.670096] hub 1-0:1.0: local power source is good [ 6.675044] hub 1-0:1.0: enabling power on all ports [ 6.681262] stm32-rproc 10000000.m4: wdg irq registered [ 6.699474] hub 1-0:1.0: state 7 ports 2 chg 0000 evt 0000 [ 6.703580] hub 1-0:1.0: hub_suspend [ 6.709597] remoteproc remoteproc0: releasing m4 [ 6.714213] stm32-rproc 10000000.m4: wdg irq registered [ 6.718419] remoteproc remoteproc0: releasing m4 [ 17.130731] stm32-rproc 10000000.m4: wdg irq registered [ 17.139611] remoteproc remoteproc0: releasing m4 [ 17.142985] platform 10000000.m4: deferred probe pending

Kan detta vara ett problem när jag bränner? För när jag bootar så efterfrågar den efter EFI.

partitions on mmc0: Writing GPT: success! done Erasing fip-b on mmc 0: done Erasing u-boot-env on mmc 0: done

[ 0.000000] efi: UEFI not found.

Permalänk

@mc68000
Hej! Nu vet jag vad som orsakar problemet!
Jag ändrade lite i min kod så den ser ut så här nu.

int __init_or_module do_one_initcall(initcall_t fn) { int count = preempt_count(); char msgbuf[64]; int ret; ret = initcall_blacklisted(fn); if (ret) return -EPERM; pr_info("fn not black listed. Let's see if that was good choice"); do_trace_initcall_start(fn); pr_info("Made trace init call start on fn. Begin call the function"); ret = fn(); pr_info("Function fn called: %i = fn();", ret); do_trace_initcall_finish(fn, ret); pr_info("Made trace init call stop on fn"); msgbuf[0] = 0; .. .. .. }

static bool __init_or_module initcall_blacklisted(initcall_t fn) { struct blacklist_entry *entry; char fn_name[KSYM_SYMBOL_LEN]; unsigned long addr; addr = (unsigned long) dereference_function_descriptor(fn); sprint_symbol_no_offset(fn_name, addr); /* * fn will be "function_name [module_name]" where [module_name] is not * displayed for built-in init functions. Strip off the [module_name]. */ strreplace(fn_name, ' ', '\0'); pr_info("Fn name = %s", fn_name); if (list_empty(&blacklisted_initcalls)) return false; list_for_each_entry(entry, &blacklisted_initcalls, next) { if (!strcmp(fn_name, entry->buf)) { pr_debug("initcall %s blacklisted\n", fn_name); return true; } } return false; }

Som du förstår koden så skriver den ut namnet på fn() och sedan kollar om det finns några kallelser som är svartlistade. Nix, det finns INGA som är svartlistade.

Så jag skriver ut namnen och sedan anropar jag funktionen. Retunerar den 0 så är funktionen OK och har exekverats. Retunerar den inget...ja, då blir det ett problem, vilket är mitt problem.

ret = fn();

Så jag skrev ut alla namn som hittas här: https://pastebin.com/JYhLiygj
Här är också dom sista namnen på listan.

[ 25.344907] Fn name = udp_bpf_v4_build_proto [ 25.349088] fn not black listed. Let's see if that was good choice [ 25.353335] Made trace init call start on fn. Begin call the function [ 25.359512] Function fn called: 0 = fn(); [ 25.365977] Made trace init call stop on fn [ 25.370070] Fn name = bpf_tcp_ca_kfunc_init [ 25.374119] fn not black listed. Let's see if that was good choice [ 25.378399] Made trace init call start on fn. Begin call the function [ 25.384562] Function fn called: 0 = fn(); [ 25.390944] Made trace init call stop on fn [ 25.394994] Fn name = late_trace_init [ 25.399174] fn not black listed. Let's see if that was good choice [ 25.402817] Made trace init call start on fn. Begin call the function [ 25.408999] Function fn called: 0 = fn(); [ 25.415464] Made trace init call stop on fn [ 25.419426] Fn name = trace_eval_sync [ 25.423574] fn not black listed. Let's see if that was good choice [ 25.427350] Made trace init call start on fn. Begin call the function [ 35.048412] stm32-rproc 10000000.m4: wdg irq registered [ 35.077183] remoteproc remoteproc0: releasing m4 [ 35.080560] platform 10000000.m4: deferred probe pending

Så detta betyder att det hände inget mer efter funktionsanropet trace_eval_sync. Då tar vi och kollar på vad för funktion det är.
I filen kernel/trace/trace.c så kan vi hitta funktionen

static int __init trace_eval_sync(void) { /* Make sure the eval map updates are finished */ if (eval_map_wq) destroy_workqueue(eval_map_wq); return 0; }

Så den ska alltså förstöra en arbetskö av något slag, men det verkar inte ske! Så DÄR är problemet! Tittar vi i loggen så nämns två funktioner som är satt i arbetskö: eval_map_wq och eval_map_work_func

[ 3.107016] 8<--- cut here --- [ 3.107031] Unhandled fault: imprecise external abort (0x1c06) at 0xe0b0c588 [ 3.107046] [e0b0c588] *pgd=c3445811, *pte=c344d24f, *ppte=c344d01f [ 3.107085] Internal error: : 1c06 [#1] PREEMPT ARM [ 3.107098] Modules linked in: [ 3.107110] CPU: 0 PID: 9 Comm: kworker/u2:0 Not tainted 6.1.82 #15 [ 3.107125] Hardware name: STM32 (Device Tree Support) [ 3.107134] Workqueue: eval_map_wq eval_map_work_func [ 3.107164] PC is at update_event_printk+0x60/0x1c0 [ 3.107191] LR is at update_event_printk+0x8c/0x1c0

Så ytterligare ett bevis på att det är en kö som ska förstöras, men den verkar inte ha körts klart, eller så är det så att kön krockar? Eller vad tror du?

Här är funktionen eval_map_work_func. Notera att denna är inte med i arbetskön som är med loggen för att eval_map_work_func retunerar void.

static void __init eval_map_work_func(struct work_struct *work) { int len; len = __stop_ftrace_eval_maps - __start_ftrace_eval_maps; trace_insert_eval_map(NULL, __start_ftrace_eval_maps, len); }

Permalänk

Nu fungerar det!
Hemligenheten var att kommentera denna rad!

static int __init trace_eval_sync(void) { /* Make sure the eval map updates are finished */ if (eval_map_wq){ pr_info("eval_map_wq is not null!"); //destroy_workqueue(eval_map_wq); pr_info("destroy_workqueue(eval_map_wq);"); } return 0; }

Den verkade ställa till med något helvete! Fy fan vad glad jag är nu @mc68000
Jag ska uppdatera en logg. Jag måste bara ta bort lite debugg-meddelanden.

Men kul att det fungerar! Ett fulhack tydligen.

Permalänk
Medlem

Galant, har du fått din logn-prompt då alltså? Ja en och annan debugutskrift lär du få kratta ut nu! Om du inte har fått blodad tand och vill hitta slutraden?

Linuxkärnan drar ju igång ett stort antal hjälp-processer när den är igång. Ett sjuttiotal av dem har väldigt låga PID-nummer (<100) så de startas kanske t.o.m. innan initrd? Jag räknade till 70-100 stycken när udev startar på min maskin och 200+ när allt är färdigt. Workqueue drar ju igång asynkrona processer, så har de något att göra med kworker? En sökning bekräftar det, och det finns några fler. (cpuhp och rcuop såg jag direkt relaterade till kworker/workqueue.)

Permalänk
Skrivet av mc68000:

Galant, har du fått din logn-prompt då alltså? Ja en och annan debugutskrift lär du få kratta ut nu! Om du inte har fått blodad tand och vill hitta slutraden?

Jag kan logga in ja. Jag misstänker att PMIC tappade anslutningen till I2C när workqueue tog bort I2C!!!

root@stm32mp1:/home/weston# cd / root@stm32mp1:/# ls bin dev home lost+found mnt root sbin sys typescript var boot etc lib media proc run srv tmp usr vendor root@stm32mp1:/# cd home/root root@stm32mp1:~# ls README-CHECK-GPU root@stm32mp1:~# cd / root@stm32mp1:/# ls bin dev home lost+found mnt root sbin sys typescript var boot etc lib media proc run srv tmp usr vendor root@stm32mp1:/# cd home root@stm32mp1:/home# ls root weston root@stm32mp1:/home# cd weston root@stm32mp1:/home/weston# ls typescript weston-previous.log weston.log root@stm32mp1:/home/weston# cd typescript -sh: cd: can't cd to typescript: Not a directory root@stm32mp1:/home/weston# lls -sh: lls: not found root@stm32mp1:/home/weston# ls typescript weston-previous.log weston.log root@stm32mp1:/home/weston# la -a -sh: la: not found root@stm32mp1:/home/weston# ls -a . .bashrc .config .profile weston-previous.log .. .cache .local typescript weston.log root@stm32mp1:/home/weston# less typescript [0;0H[KScript started on 2023-03-03 11:28:25+00:00 [COMMAND="/tmp/pulse_temp_switch.sh" [K <not executed on terminal>] [K [KScript done on 2023-03-03 11:28:25+00:00 [COMMAND_EXIT_CODE="0"] [K [K~ [K~ [K~ [K~ [K~ [K~ [K~ [K~ [K~ [K~ [K~ [K~ [K~ [K~ [K~ [K~ [K~ [K~ [24;0H[K[7mtypescript[m[24;0H[Kroot@stm32mp1:/home/weston# root@stm32mp1:/home/weston#

Citat:

Linuxkärnan drar ju igång ett stort antal hjälp-processer när den är igång. Ett sjuttiotal av dem har väldigt låga PID-nummer (<100) så de startas kanske t.o.m. innan initrd? Jag räknade till 70-100 stycken när udev startar på min maskin och 200+ när allt är färdigt. Workqueue drar ju igång asynkrona processer, så har de något att göra med kworker? En sökning bekräftar det, och det finns några fler. (cpuhp och rcuop såg jag direkt relaterade till kworker/workqueue.)

Ja. Det verkar som att ST själva inte riktigt har tänkt till.
Men jag har alltid undrat om det kanske är bättre att ladda ned linuxkärnan från Linus Torvalds GitHub och kompilera den själv. Men åt andra sidan så kanske ST har gjort något med den linuxkärna som dom ber en att ladda ned från STs hemsida. Det kanske är en annan kod där. Vem vet. Det verkar vara lite unika konfigurationer i ARM, beroende på fabrikat.

Jag tror det har med PMIC att göra.

Nästa steg är att få igång HDMI:n. (Edit: Den fungerar! Klockrent! Snygg skärpa på bilden!
https://wiki.st.com/stm32mpu/wiki/How_to_display_on_HDMI

root@stm32mp1:/home/weston# modetest -M stm [45182.942356] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:32:HDMI-A-1] [45182.950215] [drm:drm_do_probe_ddc_edid] drm: skipping non-existent adapter i2c-1-mux (chan_id 0) [45182.961185] [drm:drm_mode_debug_printmodeline] Modeline "640x480": 60 25175 640 656 752 800 480 490 492 525 0x40 0xa [45182.971626] [drm:drm_mode_prune_invalid] Not using 640x480 mode: CLOCK_RANGE [45182.978380] [drm:drm_mode_debug_printmodeline] Modeline "800x600": 56 36000 800 824 896 1024 600 601 603 625 0x40 0x5 [45182.989016] [drm:drm_mode_prune_invalid] Not using 800x600 mode: CLOCK_RANGE [45182.996071] [drm:drm_mode_debug_printmodeline] Modeline "800x600": 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5 [45183.006616] [drm:drm_mode_prune_invalid] Not using 800x600 mode: CLOCK_RANGE [45183.012756] [drm:drm_mode_debug_printmodeline] Modeline "848x480": 60 33750 848 864 976 1088 480 486 494 517 0x40 0x5 [45183.025036] [drm:drm_mode_prune_invalid] Not using 848x480 mode: CLOCK_RANGE [45183.030751] [drm:drm_mode_debug_printmodeline] Modeline "1024x768": 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa [45183.044154] [drm:drm_mode_prune_invalid] Not using 1024x768 mode: CLOCK_RANGE Encoders: id crtc type possible crtcs possible clones 31 0 DPI 0x00000001 0x00000001 Connectors: id encoder status name size (mm) modes encoders 32 0 connected HDMI-A-1 0x0 0 31 props: 1 EDID: flags: immutable blob blobs: value: 2 DPMS: flags: enum enums: On=0 Standby=1 Suspend=2 Off=3 value: 0 5 link-status: flags: enum enums: Good=0 Bad=1 value: 0 6 non-desktop: flags: immutable range values: 0 1 value: 0 4 TILE: flags: immutable blob blobs: value: 33 dithering: flags: enum enums: Off=0 On=1 value: 0 CRTCs: id fb pos size 38 0 (0,0) (0x0) #0 nan 0 0 0 0 0 0 0 0 0 flags: ; type: props: 24 VRR_ENABLED: flags: range values: 0 1 value: 0 28 GAMMA_LUT: flags: blob blobs: value: 29 GAMMA_LUT_SIZE: flags: immutable range values: 0 4294967295 value: 256 Planes: id crtc fb CRTC x,y x,y gamma size possible crtcs 34 0 0 0,0 0,0 0 0x00000001 formats: AR24 XR24 RG24 RG16 AR15 XR15 AR12 XR12 C8 props: 8 type: flags: immutable enum enums: Overlay=0 Primary=1 Cursor=2 value: 1 30 IN_FORMATS: flags: immutable blob blobs: value: 01000000000000000900000018000000 01000000400000004152323458523234 52473234524731364152313558523135 41523132585231324338202000000000 ff010000000000000000000000000000 0000000000000000 in_formats blob decoded: AR24: LINEAR XR24: LINEAR RG24: LINEAR RG16: LINEAR AR15: LINEAR XR15: LINEAR AR12: LINEAR XR12: LINEAR C8: LINEAR 36 alpha: flags: range values: 0 65535 value: 65535 37 zpos: flags: immutable range values: 0 0 value: 0 39 0 0 0,0 0,0 0 0x00000001 formats: AR24 RG24 RG16 AR15 AR12 C8 props: 8 type: flags: immutable enum enums: Overlay=0 Primary=1 Cursor=2 value: 0 30 IN_FORMATS: flags: immutable blob blobs: value: 01000000000000000600000018000000 01000000300000004152323452473234 52473136415231354152313243382020 3f000000000000000000000000000000 0000000000000000 in_formats blob decoded: AR24: LINEAR RG24: LINEAR RG16: LINEAR AR15: LINEAR AR12: LINEAR C8: LINEAR 41 alpha: flags: range values: 0 65535 value: 65535 42 zpos: flags: immutable range values: 1 1 value: 1 Frame buffers: id size pitch root@stm32mp1:/home/weston#

Permalänk
Medlem

Wayland på den lilla ST32'n, imponerande. Då kommer här ett tips som får din maskin att kännas än rappare. Framför allt när man skall ta bort många tecken, scolla eller flytta med piltangenterna när man editerar.

Det handlar om tangentbordets auto-repeat som kan ställas in i mjukvara genom två parametrar. Den första är antalet millisekunder som en tangent skall vara nedtryckt innan den börjar repetera sig själv automatiskt. (Nackdelen är om man börjar fundera medans man skriver och har en tangent nedtryckt, då får man helt plötsligt 20 stycken kopior ).
Den andra är hur många repeteringar per sekund den skall göra när den första gränsen har passerats. Jag kör X11 och tycker 200 50 är lagom.

En kärnparameter som jag inte vet om den behövs för konsolen? (Jag använder den inte)

atkbd.softrepeat=1

För konsolen: (Fungerar sedan i X11 miljön också.)

# kbdrate [-d delay] [-r rate]

X11: (AutoRepeat i config-filerna är begränsade)

$ xset r rate 200 60

Wayland: in hyprland.conf

input { repeat_delay = 200 repeat_rate = 50 }

Weston: "added a [keyboard] section to /etc/xdg/weston/weston.ini"
https://unix.stackexchange.com/questions/688240/how-to-set-ke...

[core] idle-time=0 require-input=false repaint-window=17 [keyboard] repeat-rate=50 repeat-delay=500

Vissa av de här sätten att konfigurera repeteringen kan vara begränsade till ca 250 30, men det är bara att prova sig fram.

Permalänk
Skrivet av mc68000:

Wayland på den lilla ST32'n, imponerande. Då kommer här ett tips som får din maskin att kännas än rappare. Framför allt när man skall ta bort många tecken, scolla eller flytta med piltangenterna när man editerar.

Det handlar om tangentbordets auto-repeat som kan ställas in i mjukvara genom två parametrar. Den första är antalet millisekunder som en tangent skall vara nedtryckt innan den börjar repetera sig själv automatiskt. (Nackdelen är om man börjar fundera medans man skriver och har en tangent nedtryckt, då får man helt plötsligt 20 stycken kopior ).
Den andra är hur många repeteringar per sekund den skall göra när den första gränsen har passerats. Jag kör X11 och tycker 200 50 är lagom.

En kärnparameter som jag inte vet om den behövs för konsolen? (Jag använder den inte)

atkbd.softrepeat=1

För konsolen: (Fungerar sedan i X11 miljön också.)

# kbdrate [-d delay] [-r rate]

X11: (AutoRepeat i config-filerna är begränsade)

$ xset r rate 200 60

Wayland: in hyprland.conf

input { repeat_delay = 200 repeat_rate = 50 }

Weston: "added a [keyboard] section to /etc/xdg/weston/weston.ini"
https://unix.stackexchange.com/questions/688240/how-to-set-ke...

[core] idle-time=0 require-input=false repaint-window=17 [keyboard] repeat-rate=50 repeat-delay=500

Vissa av de här sätten att konfigurera repeteringen kan vara begränsade till ca 250 30, men det är bara att prova sig fram.

Tackar. Jag ska försöka implementera detta. Jag har dock inget tangetbort tillgängligt för nuvarande.
Men! Jag ska försöka installera
https://wiki.st.com/stm32mpu/index.php?title=X-LINUX-QT_Expan...

Men när jag kör

apt-get install -y packagegroup-x-linux-qt

Då står det

E: Unable to locate package packagegroup-x-linux-qt

Skumt.