]> git.zerfleddert.de Git - m1-debian/blobdiff - doc/notes.txt
add a sanity check that checks if it runs as root
[m1-debian] / doc / notes.txt
index d0d2342473b26012c2dc0a0fe8e73b5c8983ca14..e2b2d8b6ed751b7b19e7153bf747f0afbd4f7f08 100644 (file)
 09:19 < _jannau_> Glanzmann: git rebase --onto 5.17-rc3 6f59bc24287
 09:23 < j`ey> if you add -p it can also preserve the merges
 
-01:31 < jmr2> Has anyone tried LVM so far? Not sure if I'm doing something dumb or if it's really unhappy with 16K pages. http://paste.debian.net/plainh/016c394b
-jmr2@debian:/tmp$ dd if=/dev/zero of=loopfile bs=32M count=1
-1+0 records in
-1+0 records out
-33554432 bytes (34 MB, 32 MiB) copied, 0.0328437 s, 1.0 GB/s
-jmr2@debian:/tmp$ sudo losetup /dev/loop0 loopfile 
-jmr2@debian:/tmp$ sudo pvcreate /dev/loop0
-  Using metadata size 960 KiB for non-standard page size 16384.
-  Using metadata size 960 KiB for non-standard page size 16384.
-  Physical volume "/dev/loop0" successfully created.
-jmr2@debian:/tmp$ sudo pvremove /dev/loop0
-  Using metadata size 960 KiB for non-standard page size 16384.
-  Labels on physical volume "/dev/loop0" successfully wiped.
-jmr2@debian:/tmp$ sudo pvcreate /dev/loop0
-  Using metadata size 960 KiB for non-standard page size 16384.
-  Using metadata size 960 KiB for non-standard page size 16384.
-  Physical volume "/dev/loop0" successfully created.
-jmr2@debian:/tmp$ sudo pvs
-jmr2@debian:/tmp$ sudo pvdisplay
-jmr2@debian:/tmp$ sudo pvck -t /dev/loop0
-  TEST MODE: Metadata will NOT be updated and volumes will not be (de)activated.
-  CHECK: pv_header.disk_locn[2].offset expected 4096 # for first mda
-  Found label on /dev/loop0, sector 1, type=LVM2 001
-  Found text metadata area: offset=16384, size=1032192
-  Command failed with status code 5.
-jmr2@debian:/tmp$
+19:13 < j`ey> but there's also CONFIG_OF_DMA_DEFAULT_COHERENT, which makes of_dma_is_coherent always return true
 
+21:02 < jannau> mps: you need https://lore.kernel.org/u-boot/20220208210215.8612-1-j@jannau.net/ for extlinux
+
+ARCH: 23:29 < ah-[m]> yep, exactly. I had to grub-mkconfig -o /boot/grub/grub.cfg, and move my Image.gz to /boot, otherwise it was just what was on the wiki page
+
+https://lore.kernel.org/linux-arm-kernel/20211011165707.138157-1-marcan@marcan.st/
+19:02 < jannau> I think based on this branch https://github.com/AsahiLinux/linux/tree/cpufreq/v1
+
+23:41 < kov> Glanzmann, hmm interesting, I'll try upgrading libinput firs then, see if that fixes it
+23:42 < kov> it's weird because I remember the trackpad working a while ago
+23:45 -!- mtjzh (~mtjzh@2a02:8388:1742:9b80:658f:93d3:ec68:d60e) has joined #asahi
+23:46 < kov> yep, just upgrading to testing's libinput makes it work heh thanks Glanzmann!
+
+Chromium 16KB patch: https://tg.st/u/Set-kernal-page-size-to-16K-on-loongson-MIPS-archtec.patch
+10:10 < jannau> see the commit message for 64k on ppc64 https://chromium.googlesource.com/chromium/src.git/+/445c099c6486b8e5ff8dafaefcd812a7ea4bdfff%5E%21/
+15:26 < tpw_rules> Glanzmann: https://pastebin.com/NzJEQJDW - https://tg.st/u/NzJEQJDW
+15:26 < tpw_rules> last i checked the built chromium only worked with the flags --in-process-gpu --no-sandbox --no-zygote but that may have been a kernel config problem
+Upstream BUG: https://bugs.webkit.org/show_bug.cgi?id=236564
+
+22:39 < jannau> `dtc -I fs -O dts -o - /proc/device-tree` will output the device-tree as seen by linux
+
+19:11 < Glanzmann> axboe: Could you explain how to mark a device as write-through? Does that mean if I issue a sync in Linux that no flush will happen. Because this would be helpful for the m1 notebook owners to improve performance.
+19:11 < axboe> I just do: `echo "write through" > /sys/block/nvme0n1/queue/write_cache"` for now...
+19:11 < axboe> Glanzmann: ^^
+19:12 < axboe> Glanzmann: and yes, that's what it means
+19:12 < Glanzmann> axboe: Thanks.
+19:12 < axboe> Glanzmann: it'll bump your test case from 56 iops to 14k or something like that :)
+19:12 < axboe> alternatively, some sort of time based hack might make sense
+19:13 < axboe> "only issue flush if X seconds has passed since last issue"
+19:13 < axboe> kinda nasty, but safer
+
+15:50 < mps> axboe: Glanzmann: `libinput Disable While Typing Enabled (268):    1` is set in my case and it works fine
+15:51 < mps> though I built latest beta of libinput and rebuilt xf86-input-libinput with it
+15:52 < mps> i.e. libinput-1.19.901
+15:52 < axboe> mps: promising
+15:53 < mps> but still didn't got it to detect thumb
+16:07 < mps> Glanzmann: `libinput quirks list /dev/input/event1` will show you features of input device
+16:09 < mps> and `libinput quirks list /dev/input/event1` will show quirks from libinput database
+
+From mps:
+#!/bin/sh
+echo 2 > /sys/module/hid_apple/parameters/fnmode
+echo 1 > /sys/module/hid_apple/parameters/swap_fn_leftctrl
+echo 1 > /sys/module/hid_apple/parameters/swap_opt_cmd
+
+19:19 < Glanzmann> sven: Do you know why axboe set the admin queue to 2 instead of 8?
+19:19 < sven> yes
+19:19 < sven> almost all commands go through the io queue, no need to waste that space for the admin queue
+
+# j`ey on deleting efi and Linux partitions from the gui in macos
+20:46 < j`ey> Glanzmann: I didnt figure it out at the diskutil cli, but I managed to do it from the GUI, I think you have to erase/reformat as APFS before you can delete the volumes
+10:53 < j`ey> Glanzmann: for your notes: < tpw_rules> you can delete a non-apfs partition with: diskutil eraseVolume free n disk0sX
+21:07 < tpw_rules> you can delete a non-apfs partition with: diskutil eraseVolume free n disk0sX
+
+08:54 < mixi> Glanzmann: the command you're looking for should be "dtc -I dtb -O dts /sys/firmware/fdt"
+08:57 < jannau> Glanzmann: dtc -I fs -O dts -o - /proc/device-tree
+
+# j`ey on hack to hookup lid close/open
+23:19 < j`ey> apple_smc_event_received in drivers/platform/apple/smc_core.c is a good place to start looking
+
+# kettenis on the same issue using existing infrastructure
+23:20 < kettenis> so the lid is hooked up to gP01
+23:24 < kettenis> looks like you could try hooking that up using gpio-keys-polled
+23:27 < Glanzmann> kettenis: So gpio-keys-polled would poll gP01 and send a key event and than I could use my window manager to do something when that key event is received?
+23:29 < kettenis> look at arch/arm/boot/dts/imx6q-novena.dts
+
+# How to subscribe to smc events
+23:45 < j`ey> Glanzmann: if youre still interested in looking: drivers/power/supply/macsmc_power.c apple_smc_register_notifier(power->smc, &power->nb);
+23:46 < j`ey> so this driver gets called, when an SMC notification happens. looks like all registered handlers would be called and its up to the callback to figure out if it needs to do something
+
+# More background
+23:54 < kettenis> if the interrupts are hooked up correctly for thise SMC gpios, gpio-keys instead of gpio-keys-polled should work
+23:54 < j`ey> no irq_chip in the current driver
+
+17:34 <marcan> the image as built will have a real grub config with static UUIDs
+17:35 <marcan> well, a systemd early unit but yes
+
+{
+    "os_list": [
+        {
+            "name": "Asahi Linux reference distro (Arch Linux ARM)",
+            "default_os_name": "Asahi Linux",
+            "boot_object": "m1n1_uboot.bin",
+            "package": "asahi-alarm.zip",
+            "partitions": [
+                {
+                    "name": "EFI",
+                    "type": "EFI",
+                    "size": "512MB",
+                    "format": "fat",
+                    "volume_id": "0x03f103f1",
+                    "copy_firmware": true,
+                    "copy_installer_data": true,
+                    "source": "esp"
+                },
+                {
+                    "name": "Root",
+                    "type": "Linux",
+                    "size": "5GB",
+                    "expand": true,
+                    "image": "root.img"
+                }
+            ]
+        },
+        {
+            "name": "UEFI environment only (m1n1 + U-Boot + ESP)",
+            "default_os_name": "UEFI boot",
+            "boot_object": "m1n1_uboot.bin",
+            "partitions": [
+                {
+                    "name": "EFI",
+                    "type": "EFI",
+                    "size": "512MB",
+                    "format": "fat",
+                    "copy_firmware": true,
+                    "copy_installer_data": true
+                }
+            ]
+        },
+        {
+            "name": "Tethered boot (m1n1, for development)",
+            "default_os_name": "m1n1 proxy",
+            "expert": true,
+            "boot_object": "m1n1.bin",
+            "partitions": []
+        }
+    ]
+}
+
+cloud-initramfs-growroot
+16:00 < Glanzmann> So applying a new uuid to the rootfs needs to be done in the initrd.
+tune2fs -U random /dev/whatever
+
+07:54 < VinDuv> So I’ve been looking at how macOS installation from USB works on M1 Macs and I think it might be interesting for the Asashi installer. The way it works is that there’s a hidden plist file on the USB drive that references a macOS
+                application on the drive; if this file is present, the USB drive will show up in the power-button-held boot menu, and when selected, it will run the application. It doesn’t seem to care about file signature
+07:54 < VinDuv> (it works even if the app is just a shell script) and it looks like it’s in 1TR mode.
+07:56 < VinDuv> So the installation workflow from 1TR could be “plug in a USB stick, hold the power button, select Install Asahi” instead of having to manually open the terminal and run curl | sh. The installer doesn’t even need to be graphical since
+                it’s possible for the launched shell script to start the recovery environment’s Terminal and giving it an arbitrary command to run.
+07:59 < VinDuv> This is also not limited to external USB drives; it also works if the files are in an APFS volume in internal storage, which I guess might be useful to have a Asahi Recovery boot option in the boot menu or something.
+
+---- .IAPhysicalMedia ---------------------------------------------------------
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>AppName</key>
+       <string>Some App.app</string>
+       <key>ProductBuildVersion</key>
+       <string>00A191</string>
+       <key>ProductVersion</key>
+       <string>12.2.1</string>
+</dict>
+</plist>
+
+---- Some App.app/Contents/Info.plist -----------------------------------------
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>CFBundleDisplayName</key>
+       <string>Some App</string>
+       <key>CFBundleExecutable</key>
+       <string>SomeApp</string>
+</dict>
+</plist>
+
+---- Some App.app/Contents/Resources/<lang code>.lproj/InfoPlist.strings ------
+"CFBundleDisplayName" = "Some App";
+
+---- Some App.app/Contents/MacOS/SomeApp (executable) -------------------------
+#!/bin/bash
+exec /System/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal "${0%/*}/../Resources/myscript.command"
+
+---- Some App.app/Contents/Resources/myscript.command -------------------------
+#!/bin/sh
+
+echo "Hello, world!"
+exec /bin/bash
+
+
+19:14 <VinDuv> marcan: I have done a bit more testing with the .IAPhysicalMedia file and it looks like ProductBuildVersion can be any value including blank. ProductVersion seems to be checked against the minimal macOS version supported by the Mac; on my mini the icon shows up in the boot menu only if it’s >= 11.3.
+19:15 <VinDuv> Maybe it should be set to a higher value for forward compatibility with future Macs that will require 13.0? I’ve tested setting it to 99 and it works.
Impressum, Datenschutz