AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / 问题

All perguntas(unix)

Martin Hope
fauve
Asked: 2025-02-03 01:54:47 +0800 CST

Opções de autocompletar do Zsh a partir de variáveis

  • 6

Visão geral

Tenho que definir um autocompletar de valores no zsh para um comando (no exemplo mínimo a seguir, mostrarei com testcmd). Então meu código atual funciona muito bem com valores codificados:

Código de autocompletar atual (aquele que funciona)

function testcmd()
{
    echo "Nothing to do, just a test command"
}


_test_complete() {
    _values \
        "Possible values" \
        foo'[Foo]' \
        bar'[Bar baz]' \
}

compdef _test_complete testcmd

Comportamento atual de preenchimento automático

Quando digito testcmd <tab>, obtenho corretamente a seguinte renderização desejada:

$ testcmd
Possible values
bar  -- Bar baz
foo  -- Foo

Qual é o objetivo que busco alcançar

Mas, como você pode ver, os valores são codificados dentro da função. O ideal é que a função os recupere de uma variável.

O que eu já tentei

Então, naturalmente, coloquei os valores dentro da variável values_variableda seguinte forma:

O código testado (aquele que não funciona)

function testcmd()
{
    echo "Nothing to do, just a test command"
}


_test_complete() {
    local values_variable
    values_variable="foo'[Foo]' \
        bar'[Bar baz]' \ "
    _values \
        "Possible values" \
        ${values_variable}
}

compdef _test_complete testcmd

O comportamento do código testado

Mas então, quando tento, testcmd <tab>falha completamente:

$ testcmd
_values:compvalues:11: invalid value definition: foo'[Foo]' \t\tbar'[Bar baz]' \
_values:compvalues:11: invalid value definition: foo'[Foo]' \t\tbar'[Bar baz]' \
_values:compvalues:11: invalid value definition: foo'[Foo]' \t\tbar'[Bar baz]' \
$ testcmd 

O que eu também fiz

  • Tentei escapar dos espaços com echo ${values_variable} | sed "s/ /\\ /g" ;
  • Tentei usar $values_variableo evalcomando para fingir que o conteúdo foi digitado diretamente dentro da _valuesdefinição;
  • Eu tentei os dois evale escapei com eval $(echo ${values_variable} | sed "s/ /\\ /g") ;
  • Tentei revelar linha por linha com um loop:
echo "$values_variable" | while read -r line; do
    eval "$line"
  done
  • Expansão com ${(@f)values_variable}̀ ;
  • Muitas outras ideias. Mas também falhou.

A solução mais próxima que encontrei

Em Como passar o conteúdo de um arquivo usando catto _values(zsh conclusion) tread, encontrei uma solução para valores importados de um arquivo externo, mas o usuário parece estar enfrentando o mesmo problema de escape de espaço. No entanto, não consigo ajustá-lo ao caso com a $values_variablesvariável interna.

Eu naturalmente tentei este, que também não funciona:

_test_complete() {
    local values_variable
    values_variable="foo'[Foo]' \
        bar'[Bar baz]' \ "
    OLD_IFS=$IFS
    IFS=$'\n'
    _values \
        "Possible values" \
        ${values_variable}
    IFS=$OLD_IFS
}

A questão

Como posso carregar os valores para fornecer _valuesdentro da função de preenchimento automático de uma variável?

zsh
  • 1 respostas
  • 37 Views
Martin Hope
PersianGulf
Asked: 2025-02-02 20:46:08 +0800 CST

Tentativa de chamar método de importação indefinido com argumentos ("abs2rel") via pacote "File::Spec"

  • 7

Eu tenho Debian GNU/Linux trixie/side instalei o publican do repositório do Debian. (O publican está fazendo gravação e publicação para DocBook)
Quando eu executo publican, ele recebo as seguintes mensagens:

Attempt to call undefined import method with arguments ("abs2rel") via package "File::Spec" (Perhaps you forgot to load the package?) at /usr/share/perl5/Publican/TreeView.pm line 12.
Duplicate specification "help" for option "help"
Can't open publican: No such file or directory at /usr/bin/publican line 646.

A versão do meu publican é 4.3.2-4.
Também instalei libfile-spec-native-perlo pacote do repositório.

Então eu baixo o código fonte via:

apt source publican

Em seguida, execute publican e obtenha o seguinte erro:

mohsen@debian:~/src-compiled/publican/publican-4.3.2/bin$ ./publican 
Attempt to call undefined import method with arguments ("abs2rel") via package "File::Spec" (Perhaps you forgot to load the package?) at /usr/share/perl5/Publican/TreeView.pm line 12.
Duplicate specification "help" for option "help"

Action required!

De acordo com a string acima Action Required!adicionada à saída.

Não sei como resolver isso.
Você me deixa feliz se resolver meu problema.

perl
  • 1 respostas
  • 107 Views
Martin Hope
Janne Paalijarvi
Asked: 2025-02-02 18:17:55 +0800 CST

O dispositivo multifuncional Samsung SCX-3205 não consegue digitalizar (com sane) após imprimir (com copos)

  • 5

Tenho uma impressora/copiadora/scanner Samsung SCX-3205 muito antiga. Ela escaneia bem e funciona bem. NO ENTANTO, quando imprimo com o CUPS, ela para de escanear. "scanimage -L" informa na primeira execução após a impressão que o dispositivo ainda está lá, mas na próxima execução ele não consegue mais encontrá-lo.

Fiz um strace, veja as diferenças:

Caso não funcional:

ppoll([{fd=5, events=POLLIN}, {fd=6, events=POLLIN}, {fd=8, events=POLLOUT}], 3, {tv_sec=60, tv_nsec=0}, NULL, 8) = 1 ([{fd=6, revents=POLLIN}], left {tv_sec=59, tv_nsec=4341630})
ioctl(8, USBDEVFS_DISCARDURB, 0x55933dbfb0) = 0
timerfd_settime(6, 0, {it_interval={tv_sec=0, tv_nsec=0}, it_value={tv_sec=0, tv_nsec=0}}, NULL) = 0
ppoll([{fd=5, events=POLLIN}, {fd=6, events=POLLIN}, {fd=8, events=POLLOUT}], 3, {tv_sec=60, tv_nsec=0}, NULL, 8) = 1 ([{fd=8, revents=POLLOUT}], left {tv_sec=59, tv_nsec=999980518})
ioctl(8, USBDEVFS_REAPURBNDELAY, 0x7fc9c97a50) = 0
timerfd_settime(6, 0, {it_interval={tv_sec=0, tv_nsec=0}, it_value={tv_sec=0, tv_nsec=0}}, NULL) = 0
ioctl(8, USBDEVFS_REAPURBNDELAY, 0x7fc9c97a50) = -1 EAGAIN (Resource temporarily unavailable)
ioctl(8, USBDEVFS_CLEAR_HALT, 0x7fc9c97cb4) = 0
ioctl(8, USBDEVFS_CLEAR_HALT, 0x7fc9c97eb4) = 0
ioctl(8, USBDEVFS_CLEAR_HALT, 0x7fc9c97eb4) = 0
ioctl(8, USBDEVFS_RELEASEINTERFACE, 0x7fc9c97e5c) = 0

Caso de trabalho:

ppoll([{fd=5, events=POLLIN}, {fd=6, events=POLLIN}, {fd=8, events=POLLOUT}], 3, {tv_sec=60, tv_nsec=0}, NULL, 8) = 1 ([{fd=8, revents=POLLOUT}], left {tv_sec=59, tv_nsec=999981204})
ioctl(8, USBDEVFS_REAPURBNDELAY, 0x7ff3d45d80) = 0
timerfd_settime(6, 0, {it_interval={tv_sec=0, tv_nsec=0}, it_value={tv_sec=0, tv_nsec=0}}, NULL) = 0
ioctl(8, USBDEVFS_REAPURBNDELAY, 0x7ff3d45d80) = -1 EAGAIN (Resource temporarily unavailable)
ioctl(8, USBDEVFS_CLEAR_HALT, 0x7ff3d461e4) = 0
ioctl(8, USBDEVFS_CLEAR_HALT, 0x7ff3d461e4) = 0
ioctl(8, USBDEVFS_RELEASEINTERFACE, 0x7ff3d4618c) = 0

Então posso ver que há ppoll extra ("fd=6, revents=POLLIN") na mistura para o caso de falha. FD é daqui:

timerfd_create(CLOCK_MONOTONIC, TFD_CLOEXEC|TFD_NONBLOCK) = 6

Estou executando um Alpine Linux 3.15.0 no Raspberry Pi 4 Modelo B Rev 1.1.

usb
  • 1 respostas
  • 6 Views
Martin Hope
user153245
Asked: 2025-02-02 17:37:20 +0800 CST

O convidado do Windows 10 no Qemu/KVM no host Linux Mint não tem som

  • 6

Instalei o Windows 10 no Qemu/kvm em uma máquina com Linux Mint 22. Tudo parece estar funcionando corretamente, mas o Windows não emite som. No entanto, quando me conecto ao Windows via RDP usando o Remmina, o som do Windows está OK.

Quero ouvir o som do Windows diretamente (não via sessão RDP). Como posso corrigir isso?

ATUALIZAÇÃO O arquivo de configuração xml do convidado é o seguinte:

<domain type='kvm'>
  <name>win10</name>
  <uuid>febb531c-95f7-4022-bdd6-46363978364e</uuid>
  <metadata>
    <libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
      <libosinfo:os id="http://microsoft.com/win/10"/>
    </libosinfo:libosinfo>
  </metadata>
  <memory unit='KiB'>4194304</memory>
  <currentMemory unit='KiB'>4194304</currentMemory>
  <vcpu placement='static'>4</vcpu>
  <os>
    <type arch='x86_64' machine='pc-q35-8.2'>hvm</type>
    <bootmenu enable='yes'/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <hyperv mode='custom'>
      <relaxed state='on'/>
      <vapic state='on'/>
      <spinlocks state='on' retries='8191'/>
    </hyperv>
    <vmport state='off'/>
  </features>
  <cpu mode='host-passthrough' check='none' migratable='on'>
    <topology sockets='1' dies='1' cores='2' threads='2'/>
  </cpu>
  <clock offset='localtime'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
    <timer name='hypervclock' present='yes'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <pm>
    <suspend-to-mem enabled='no'/>
    <suspend-to-disk enabled='no'/>
  </pm>
  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2' discard='unmap'/>
      <source file='/home/user/Qemu/QEMU-VMs/win-10/win10.qcow2'/>
      <target dev='vda' bus='virtio'/>
      <boot order='2'/>
      <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/home/user/Software/virtio-win-0.1.262.iso'/>
      <target dev='sdc' bus='sata'/>
      <readonly/>
      <boot order='3'/>
      <address type='drive' controller='0' bus='0' target='0' unit='2'/>
    </disk>
    <controller type='usb' index='0' model='qemu-xhci' ports='15'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
    </controller>
    <controller type='pci' index='0' model='pcie-root'/>
    <controller type='pci' index='1' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='1' port='0x10'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
    </controller>
    <controller type='pci' index='2' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='2' port='0x11'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
    </controller>
    <controller type='pci' index='3' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='3' port='0x12'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
    </controller>
    <controller type='pci' index='4' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='4' port='0x13'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
    </controller>
    <controller type='pci' index='5' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='5' port='0x14'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/>
    </controller>
    <controller type='pci' index='6' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='6' port='0x15'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x5'/>
    </controller>
    <controller type='pci' index='7' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='7' port='0x16'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x6'/>
    </controller>
    <controller type='pci' index='8' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='8' port='0x17'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x7'/>
    </controller>
    <controller type='pci' index='9' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='9' port='0x18'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0' multifunction='on'/>
    </controller>
    <controller type='pci' index='10' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='10' port='0x19'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x1'/>
    </controller>
    <controller type='pci' index='11' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='11' port='0x1a'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x2'/>
    </controller>
    <controller type='pci' index='12' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='12' port='0x1b'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x3'/>
    </controller>
    <controller type='pci' index='13' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='13' port='0x1c'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x4'/>
    </controller>
    <controller type='pci' index='14' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='14' port='0x1d'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x5'/>
    </controller>
    <controller type='sata' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
    </controller>
    <interface type='network'>
      <mac address='52:54:00:68:9d:5b'/>
      <source network='default'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target type='isa-serial' port='0'>
        <model name='isa-serial'/>
      </target>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <channel type='spicevmc'>
      <target type='virtio' name='com.redhat.spice.0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <input type='tablet' bus='usb'>
      <address type='usb' bus='0' port='1'/>
    </input>
    <input type='mouse' bus='ps2'/>
    <input type='keyboard' bus='ps2'/>
    <graphics type='spice' autoport='yes'>
      <listen type='address'/>
      <image compression='off'/>
    </graphics>
    <graphics type='vnc' port='-1' autoport='yes'>
      <listen type='address'/>
    </graphics>
    <sound model='ich9'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/>
    </sound>
    <audio id='1' type='none'/>
    <video>
      <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
    </video>
    <redirdev bus='usb' type='spicevmc'>
      <address type='usb' bus='0' port='2'/>
    </redirdev>
    <redirdev bus='usb' type='spicevmc'>
      <address type='usb' bus='0' port='3'/>
    </redirdev>
    <watchdog model='itco' action='reset'/>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
    </memballoon>
  </devices>
</domain>

ATUALIZAÇÃO 2 A seguir está o resultado de $ inxi -A:

Audio:
  Device-1: Intel CM238 HD Audio driver: snd_hda_intel
  Device-2: NVIDIA GP106 High Definition Audio driver: snd_hda_intel
  API: ALSA v: k6.8.0-52-generic status: kernel-api
  Server-1: PipeWire v: 1.0.5 status: active
linux-mint
  • 2 respostas
  • 127 Views
Martin Hope
user648855
Asked: 2025-02-02 03:39:03 +0800 CST

Como posso extrair strings entre aspas dentro de uma variável?

  • 11

Reconheço que há perguntas superficialmente semelhantes feitas aqui antes, mas todas as que vi são mais simples do que o que estou tentando alcançar. Soluções somente Bash são preferidas.

Tenho uma variável contendo uma string que parece uma comparação de algum tipo, e gostaria de dividi-la em um array. A seguir estão alguns exemplos, incluindo como gostaria que fossem divididos:

var='name="value"'                # arr=([0]=name [1]='=' [2]=value)
var="name != '!value='"           # arr=([0]=name [1]='!=' [2]='!value=')
var='"na=me" = value'             # arr=([0]=na=me [1]='=' [2]=value)
var='name >= value'               # arr=([0]=name [1]='>=' [2]=value)
var='name'                        # arr=([0]=name)
var='name = "escaped \"quotes\""' # arr=([0]=name [1]='=' [2]=escaped\ \"quotes\")
var="name = \"nested 'quotes'\""  # arr=([0]=name [1]='=' [2]=nested\ \'quotes\')
var="name = 'nested \"quotes\"'"  # arr=([0]=name [1]='=' [2]=nested\ \"quotes\")

Você entendeu. Qualquer um dos lados (ou nenhum) pode ser citado, com aspas simples ou duplas. Pode haver aspas de escape ou aninhadas. O operador entre elas pode ser qualquer um de um conjunto predefinido, mas também pode ser incluído dentro das strings citadas. Pode haver ou não espaços. Pode não haver operador algum.

Tenho que analisar muitas linhas e, portanto, prefiro não bifurcar um novo processo a cada vez, e é por isso que soluções somente Bash são preferidas. Esta é uma adição a um script Bash existente que não precisa ser portátil para outros shells e está sendo executado no Bash 5.2, então tenho acesso a recursos Bash modernos que podem ser úteis.

IFS=\" read -a arr <<<"$var"é legal porque entende como lidar com aspas de escape, e se eu tivesse que lidar apenas com aspas simples ou duplas e não ambas , eu poderia fazer isso funcionar. Do jeito que está, só espero não ter que escrever um algoritmo tokenizador inteiro em script de shell, e que haja alguma combinação de recursos que eu não tenha considerado que possa analisar isso de forma confiável.

bash
  • 2 respostas
  • 499 Views
Martin Hope
Enlico
Asked: 2025-02-01 22:27:08 +0800 CST

Estou entendendo corretamente a implicação de saber o ID de usuário de um arquivo na acessibilidade desse arquivo em outros sistemas de arquivos?

  • 5

Em Classic Shell Scripting da O'Reilly , Arnold Robbins e Nelson HF Beebe escrevem o seguinte:

Se um sistema de arquivos com usuário smithanexado ao ID de usuário 100 fosse montado ou importado para um sistema de arquivos com ID de usuário 100 atribuído ao usuário jones, então jonesteria acesso total aos smitharquivos de . Isso seria verdade mesmo se outro usuário chamado smithexistisse no sistema de destino.

e sinceramente não tenho certeza se realmente entendo as implicações disso.

Isso significa que se eu tiver um pendrive, eu mounto tenho e cpnele coloco um arquivo que myselfcriei no meu sistema, então esse pendrive pode ser umountacessado mountem outro sistema com um nome de usuário myself(talvez criado ad-hoc para esse propósito), e então esse usuário terá o mesmo acesso que eu tinha no meu sistema para esse arquivo?


Agora que escrevi isso, começo a pensar que não há nada de estranho nisso, no sentido de que o arquivo não foi criptografado nem nada, e myself cpcolocar um arquivo em um pendrive significa que estou tentando compartilhá-lo, então não há nada de errado/inseguro em ele se tornar legível em outro lugar.

Estou esquecendo de alguma coisa?

linux
  • 3 respostas
  • 38 Views
Martin Hope
Enlico
Asked: 2025-02-01 21:15:57 +0800 CST

Quais são as regras que determinam as permissões de arquivo de b depois que eu executo cp /path/to/a /p/t/b, dependendo das permissões de arquivo de /path/to/a e de todos os diretórios?

  • 8

Em Classic Shell Scripting da O'Reilly , Arnold Robbins e Nelson HF Beebe escrevem o seguinte exemplo:

$ umask
023
$ rm -f foo
$ cp /bin/pwd foo
$ ls -l /bin/pwd foo
-rwxr-xr-x   1 root    root     10428 2001-07-23 10:23 /bin/pwd
-rwxr-xr--   1 jones   devel    10428 2002-09-21 16:37 foo

A sequência de permissões resultante rwxr-xr--reflete a perda de privilégios: o grupo perdeu o acesso de gravação e outros perderam o acesso de gravação e execução.

Agora, a 023saída no início me diz que no shell atual, os arquivos recém-criados teriam wo acesso removido para ge wxremovido para o, então, embora eu entenda que "outro perdeu o acesso de execução", não recebo "grupo perdeu o acesso de gravação" nem "outro perdeu o acesso de gravação", pois nenhum deles tinha isso em primeiro lugar.

Você acha que é apenas uma imprecisão na formulação desse comentário ou estou esquecendo de algo?

Além disso, tentei isso no meu sistema e o resultado me deixou um pouco mais intrigado:

$ umask 
0023
$ cp /bin/pwd ~/foo
$ ls -l /bin/pwd ~/foo 
-rwxr-xr-x 1 root   root   35072 Jan 18 19:17 /bin/pwd*
-rw-r--r-- 1 myself myself 35072 Feb  1 12:54 /home/myself/foo

Agora, a saída de 0023deveria significar a remoção de wfor ge wxfor o(dos quais apenas xfor oestava realmente presente, então é o único removido neste caso), mas, em vez disso, parece que a xpermissão também foi removida para ue g.

Por que é que?

Onde posso encontrar todas as regras que determinam o que acontece, em termos de permissões, quando crio e quando copio um arquivo?

linux
  • 1 respostas
  • 40 Views
Martin Hope
ZiiMakc
Asked: 2025-02-01 21:07:46 +0800 CST

Como descobrir o motivo dos picos de CPU do gpe10 a cada ~10 segundos

  • 5

Gostaria de descobrir o motivo dos picos de CPU no meu laptop. Reduzi para /sys/firmware/acpi/interrupts/gpe10, mas não tenho certeza de como prosseguir.


Veja como os picos aparecem ao usar o monitor do sistema quando o laptop está ocioso.

insira a descrição da imagem aqui

Usando grep -r . /sys/firmware/acpi/interruptsposso ver que cada pico adiciona 1 a gpe10.

insira a descrição da imagem aqui

Desabilitar gpe10com um dos comandos a seguir remove os picos, mas faz com que os ventiladores girem ao máximo durante o jogo.

systemctl disable disable_gpe10
echo disable > /sys/firmware/acpi/interrupts/gpe10

Como posso prosseguir com a investigação e o que é isso gpe10?


Ubuntu 24

Especificações do laptop: 17,3" 1920 x 1080, IPS, 144 Hz, AMD Ryzen 7 8845HS, 16 GB DDR5, SSD 1024 GB, NVIDIA GeForce RTX 4060 8 GB

ubuntu
  • 1 respostas
  • 23 Views
Martin Hope
Chris Pavey
Asked: 2025-02-01 19:02:06 +0800 CST

Ao tentar descompactar o arquivo do script, recebo uma falha de segmentação (core dumped)

  • 7

Estou tentando descompactar um arquivo em um script bash, mas recebo o erro "Falha de segmentação (core dumped)" após uma mensagem de saída repetida "Descompactar arquivos do agente".

Unzip agent files.
Unzip agent files.
Unzip agent files.
Unzip agent files.
Unzip agent files.
Unzip agent files.
Unzip agent files.
Unzip agent files.
Unzip agent files.
Unzip agent files.
Unzip agent files.
Unzip agent files.
Unzip agent files.
Segmentation fault (core dumped)

Veja o script abaixo:

cat /usr/local/bin/release-agent.sh
#! /bin/bash -e

source functions.sh

arg1=$1

check_arg (){
        if [[ -z ${arg1} ]]; then
                output "ERROR! Usage: Agent-unzip.sh [local zip file]..." red
                exit 0
        else
                arg=${arg1}
                if [[ ! -f ${arg} ]]; then
                        output "No local file found!" blue
                        exit 0
                else
                        file=${arg}
                        ext=${file##*.}
                        if [[ ${ext} != "zip" ]]; then
                                output "File specified does not appear to be a zip." red
                                confirm "Would you like to proceed."  #yes no question

                                if [[ $? == "1" ]]; then  #if no
                                        exit 0
                                fi
                        else
                                output "Local file, ${file} found." blue
                        fi
                fi
                zip="${file##*/}"
        fi
}


select_version (){
        prompt="Enter agent version number: "
        read -p "${prompt}" version

        while [ -z ${version} ]; do
                output "No input entered" red
                read -p "${prompt}" version
        done

        output "You entered: ${version}" blue
}

create_dir (){
        path="Agent/agent-${version}"
        output "Creating working directory ${path}" blue
        mkdir -p "${path}"
}

unzip (){
        output "Unzip agent files." blue
        unzip -uq "$zip" -d "${path}"
}

conf_details (){
        output "See details entered below:" blue
        output "VERSION = ${version}" green
        output "FILE PATH = ${zip}" green
        confirm "Would you like to proceed? press 'Y' to initiate the release of the agent image, press 'N' to edit any details:"  #yes no question
        if [[ $? != "0" ]]; then  #if anything but yes is returned
                $0 ${arg}
                exit 0
        fi
}

check_arg
select_version
conf_details
create_dir
unzip

## If script has't crashed out ##
output "Success! All operations completed" green
exit 0

A função de saída é apenas algo que escrevi para facilitar a saída. Veja abaixo como referência:

output() {
#
# Useage output "string" [colour] {flash}
#

if [[ $3 == "flash" ]]; then
        _blink=";5"
else
        _blink=""
fi

case $2 in
        grey)
                echo -e "\e[30;1${_blink}m${1}\e[0m"
                ;;
        red)
                echo -e "\e[31;1${_blink}m${1}\e[0m"
                ;;
        green)
                echo -e "\e[32;1${_blink}m$1\e[0m"
                ;;
        yellow)
                echo -e "\e[33;1${_blink}m$1\e[0m"
                ;;
        blue)
                echo -e "\e[34;1${_blink}m$1\e[0m"
                ;;
        magenta)
                echo -e "\e[35;1${_blink}m$1\e[0m"
                ;;
        lightblue)
                echo -e "\e[36;1${_blink}m$1\e[0m"
                ;;
        white)
                echo -e "\e[37;1${_blink}m$1\e[0m"
                ;;
        *)
                echo -e "\e[0mNo formatting option!"
                ;;
esac
}
bash
  • 1 respostas
  • 249 Views
Martin Hope
Renan
Asked: 2025-02-01 06:58:36 +0800 CST

Controle do ventilador da placa-mãe ASUS no Linux

  • 5

Montei uma máquina usando uma placa-mãe ASUS TUF GAMING B650M-PLUS e uma CPU Ryzen 7 8700G. Linux instalado sem problemas, mas estou sentindo falta do controle e monitoramento do ventilador.

No Windows, uso o software ASUS para fazer coisas como definir curvas de ventoinha e monitorar velocidades de ventoinha:

insira a descrição da imagem aqui insira a descrição da imagem aqui

O que eu tentei:

  • pwmconfig não encontra nenhum fã.
  • sensors-detect não consegue encontrar nada além de spd5118(temperatura da RAM, acredito), k10temp(temperatura da CPU) amdgpue temperatura do NVME.
  • O CoolerControl também não encontra nenhuma ventoinha.

Continuo encontrando coisas sobre controle de ventoinhas em laptops ASUS, o que não é o caso. Quais ferramentas posso usar no Linux para gerenciar ventoinhas de CPU? Agora, preciso reiniciar e entrar no Setup, o que é muito impraticável.

cpu
  • 1 respostas
  • 53 Views
Prev
Próximo

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve