Расширение подстановочных знаков zsh

URI данных обычно просто закодированы в base64, а MIME-тип прикреплен спереди. Я использую этот самодельный сценарий, который принимает имя файла в качестве первого и единственного параметра и возвращает uri данных, уже заключенных в url ('data:') :

[0 1026 8:29:38] ~ % cat $(which cssify.sh)
#!/bin/sh
mimetype=$(file -bN --mime-type "$1")
content=$(base64 -w0 < "$1")
echo "url('data:$mimetype;base64,$content')"
4
06.09.2018, 21:19
2 ответа

Первое включениеCONFIG_BPF_SYSCALL=y

┌── Enable bpf() system call ─────────────────────────────────┐
│                                                             │
│ CONFIG_BPF_SYSCALL:                                         │
│                                                             │
│ Enable the bpf() system call that allows to manipulate eBPF │
│ programs and maps via file descriptors.                     │
│                                                             │
│ Symbol: BPF_SYSCALL [=y]                                    │
│ Type  : bool                                                │
│ Prompt: Enable bpf() system call                            │
│   Location:                                                 │
│     -> General setup                                        │
│   Defined at init/Kconfig:1414                              │
│   Selects: ANON_INODES [=y] && BPF [=y] && IRQ_WORK [=y]    │
│   Selected by [n]:                                          │
│   - AF_KCM [=n] && NET [=y] && INET [=y]                    │
└─────────────────────────────────────────────────────────────┘

^ что позволяет также включитьCONFIG_CGROUP_BPF=y:

┌── Support for eBPF programs attached to cgroups ─────────────────┐
│                                                                  │
│ CONFIG_CGROUP_BPF:                                               │
│                                                                  │
│ Allow attaching eBPF programs to a cgroup using the bpf(2)       │
│ syscall command BPF_PROG_ATTACH.                                 │
│                                                                  │
│ In which context these programs are accessed depends on the type │
│ of attachment. For instance, programs that are attached using    │
│ BPF_CGROUP_INET_INGRESS will be executed on the ingress path of  │
│ inet sockets.                                                    │
│                                                                  │
│ Symbol: CGROUP_BPF [=y]                                          │
│ Type  : bool                                                     │
│ Prompt: Support for eBPF programs attached to cgroups            │
│   Location:                                                      │
│     -> General setup                                             │
│       -> Control Group support (CGROUPS [=y])                    │
│   Defined at init/Kconfig:845                                    │
│   Depends on: CGROUPS [=y] && BPF_SYSCALL [=y]                   │
│   Selects: SOCK_CGROUP_DATA [=y]                                 │
└──────────────────────────────────────────────────────────────────┘

Это все, что нужно, чтобы эти systemdсообщения исчезли.

Когда вы выбираете выше, это происходит в.config:
До:

# CONFIG_BPF_SYSCALL is not set

После:

CONFIG_BPF_SYSCALL=y
# CONFIG_XDP_SOCKETS is not set
# CONFIG_BPF_STREAM_PARSER is not set
CONFIG_CGROUP_BPF=y
CONFIG_BPF_EVENTS=y

Становятся доступными еще две опции:CONFIG_XDP_SOCKETSи CONFIG_BPF_STREAM_PARSER, но включать их необязательно. Но если вам интересно, о чем они:

┌── XDP sockets ────────────────────────────────────────┐
│                                                       │
│ CONFIG_XDP_SOCKETS:                                   │
│                                                       │
│ XDP sockets allows a channel between XDP programs and │
│ userspace applications.                               │
│                                                       │
│ Symbol: XDP_SOCKETS [=n]                              │
│ Type  : bool                                          │
│ Prompt: XDP sockets                                   │
│   Location:                                           │
│     -> Networking support (NET [=y])                  │
│       -> Networking options                           │
│   Defined at net/xdp/Kconfig:1                        │
│   Depends on: NET [=y] && BPF_SYSCALL [=y]            │
└───────────────────────────────────────────────────────┘

┌── enable BPF STREAM_PARSER ───────────────────────────────────────────┐
│                                                                       │
│ CONFIG_BPF_STREAM_PARSER:                                             │
│                                                                       │
│ Enabling this allows a stream parser to be used with                  │
│ BPF_MAP_TYPE_SOCKMAP.                                                 │
│                                                                       │
│ BPF_MAP_TYPE_SOCKMAP provides a map type to use with network sockets. │
│ It can be used to enforce socket policy, implement socket redirects,  │
│ etc.                                                                  │
│                                                                       │
│ Symbol: BPF_STREAM_PARSER [=n]                                        │
│ Type  : bool                                                          │
│ Prompt: enable BPF STREAM_PARSER                                      │
│   Location:                                                           │
│     -> Networking support (NET [=y])                                  │
│       -> Networking options                                           │
│   Defined at net/Kconfig:301                                          │
│   Depends on: NET [=y] && BPF_SYSCALL [=y]                            │
│   Selects: STREAM_PARSER [=m]                                         │
└───────────────────────────────────────────────────────────────────────┘

Если интересно, почемуCONFIG_BPF_EVENTS=y:

┌── Search Results ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│                                                                                                                                         │
│ Symbol: BPF_EVENTS [=y]                                                                                                                 │
│ Type  : bool                                                                                                                            │
│   Defined at kernel/trace/Kconfig:476                                                                                                   │
│   Depends on: TRACING_SUPPORT [=y] && FTRACE [=y] && BPF_SYSCALL [=y] && (KPROBE_EVENTS [=n] || UPROBE_EVENTS [=y]) && PERF_EVENTS [=y] │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Ядро протестировало 4.18.5 на Fedora 28 AppVM внутри Qubes OS 4.0

12
27.01.2020, 20:52

Если все вышеперечисленные параметры уже установлены, попробуйте добавить systemd.unified _cgroup _иерархия=1 в командную строку ядра.

Это позволяет cgroups v2, которая была отсутствующей частью (по крайней мере для моей установки ), включить брандмауэр IP в BPF и избавиться от ошибки в журналах dmesg.

1
12.09.2021, 02:57

Теги

Похожие вопросы